diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 78a24b7c218..e867d78a3bd 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -18,7 +18,7 @@ body: A clear and specific description of what the bug is. If applicable, add screenshots, config files and/or logs to help explain the problem. validations: - required: true + required: false - type: textarea id: steps-to-reproduce attributes: @@ -28,7 +28,7 @@ body: 2. Click on '...' 3. Scroll down to '...' validations: - required: true + required: false - type: textarea id: actual-result attributes: @@ -36,7 +36,7 @@ body: description: What is the reproducible outcome? placeholder: See error... validations: - required: true + required: false - type: textarea id: expected-result attributes: @@ -44,11 +44,11 @@ body: description: A clear and concise description of what you expected to happen. placeholder: No errors observed. validations: - required: true + required: false - type: textarea id: fix-it-yourself attributes: - label: Describe the approach you would take to fix this + label: Describe the approach you would take to fix this description: If you would like to work on this yourself (optional!), then let us know what approach you would take so we can advise you. validations: required: false @@ -61,5 +61,4 @@ body: Version: [e.g. 20.04] Plutus: version or commit hash validations: - required: true - + required: false diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml index 0999e9e663e..e2def837ca2 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.yml +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -1,7 +1,6 @@ name: Feature Request description: Submit a feature request #title: "" -labels: ["enhancement"] #assignees: # - body: @@ -9,7 +8,7 @@ body: attributes: value: | Thanks for taking the time to fill out this feature request. - 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 and [Plutus Docs](https://plutus.readthedocs.io/en/latest/) before raising. - type: textarea id: description attributes: @@ -23,4 +22,4 @@ body: label: Describe alternatives you've considered description: A clear and concise description of any alternative solutions or features you've considered. validations: - required: false \ No newline at end of file + required: false diff --git a/.github/ISSUE_TEMPLATE/security_report.yml b/.github/ISSUE_TEMPLATE/security_report.yml deleted file mode 100644 index bb5106d460a..00000000000 --- a/.github/ISSUE_TEMPLATE/security_report.yml +++ /dev/null @@ -1,38 +0,0 @@ -name: Security Report -description: Report a security issue -#title: "" -labels: ["security"] -#assignees: -# - -body: - - type: markdown - attributes: - value: | - Thanks for taking the time to fill out this security report. - Make sure you have read the security policy before filling this out. Depending on the issue, you may wish to email security@iohk.io instead. - Please also check the existing issues, [Plutus Docs](https://plutus.readthedocs.io/en/latest/) and [Cardano Stack Exchange](https://cardano.stackexchange.com/) before raising. - - type: textarea - id: summary - attributes: - label: Summary - description: A clear and specific description of what the issue is - validations: - required: true - - type: textarea - id: proposed-solution - attributes: - label: Do you have a proposed solution for this issue? - description: Describe what solutions you've considered - validations: - required: false - - type: textarea - id: system-info - attributes: - label: System info - placeholder: | - OS: [e.g. Ubuntu] - Version: [e.g. 20.04] - Plutus: version or commit hash - validations: - required: false - diff --git a/.github/workflows/add-triage-label.yml b/.github/workflows/add-triage-label.yml index 963b4a3ba56..d896fb0ec22 100644 --- a/.github/workflows/add-triage-label.yml +++ b/.github/workflows/add-triage-label.yml @@ -1,9 +1,13 @@ +# Whenever a new issue is opened, this workflow adds the "status: needs triage" +# label, unless the issue already has one of the "Internal" labels. + name: Add Triage Label on: issues: types: - reopened - opened + jobs: add-triage-label: runs-on: ubuntu-latest @@ -13,10 +17,41 @@ jobs: - name: Run uses: actions/github-script@v7 with: - script: | - github.rest.issues.addLabels({ - issue_number: context.issue.number, - owner: context.repo.owner, - repo: context.repo.repo, - labels: ["status: needs triage"] - }) \ No newline at end of file + script: | + const INTERNAL_LABELS = ["Internal", "status: triaged"]; + + async function getIssueLabels() { + const { data: labels } = await github.rest.issues.listLabelsOnIssue({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: context.issue.number + }); + return labels.map(label => label.name); + } + + async function issueHasInternalLabels() { + const labels = await getIssueLabels(); + return INTERNAL_LABELS.some(item => labels.includes(item)); + } + + async function addNeedsTriageLabelToIssue() { + await github.rest.issues.addLabels({ + issue_number: context.issue.number, + owner: context.repo.owner, + repo: context.repo.repo, + labels: ["status: needs triage"] + }); + } + + try { + if (!await issueHasInternalLabels()) { + await addNeedsTriageLabelToIssue(); + } + } catch (error) { + core.setFailed(`Error: ${error}`); + } + + + + + \ No newline at end of file diff --git a/.github/workflows/longitudinal-benchmark.yml b/.github/workflows/longitudinal-benchmark.yml index 0b704711783..26c74321742 100644 --- a/.github/workflows/longitudinal-benchmark.yml +++ b/.github/workflows/longitudinal-benchmark.yml @@ -41,7 +41,7 @@ jobs: run: git config core.hooksPath no-hooks - name: Store benchmark result - uses: benchmark-action/github-action-benchmark@v1.19.3 + uses: benchmark-action/github-action-benchmark@v1.20.3 with: name: Plutus Benchmarks tool: 'customSmallerIsBetter' diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index c7f14577e29..01dddffcaf0 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -3,32 +3,32 @@ name: Nightly Test Suite on: schedule: - cron: 0 0 * * * # daily at midnight + workflow_dispatch: # or manually dispatch the job + inputs: + hedgehog-tests: + description: Numer of tests to run (--hedgehog-tests XXXXX) + required: false + default: "100000" + +env: + HEDGEHOG_TESTS: ${{ github.event.inputs.hedgehog-tests || 100000 }} jobs: nightly-test-suite: - runs-on: ubuntu-latest + runs-on: [self-hosted, plutus-benchmark] steps: - name: Checkout uses: actions/checkout@v4 - - name: Quick Install Nix - uses: cachix/install-nix-action@V27 - with: - extra_nix_config: | - experimental-features = nix-command flakes - accept-flake-config = true - - name: plutus-core-nightly - if: always() - run: | + run: | pushd plutus-core - nix run --no-warn-dirty --accept-flake-config .#plutus-core-test -- --hedgehog-tests 10000 + nix run --no-warn-dirty --accept-flake-config .#plutus-core-test -- --hedgehog-tests $HEDGEHOG_TESTS popd - name: plutus-ir-nightly - if: always() run: | pushd plutus-core - nix run --no-warn-dirty --accept-flake-config .#plutus-ir-test -- --hedgehog-tests 10000 + nix run --no-warn-dirty --accept-flake-config .#plutus-ir-test -- --hedgehog-tests $HEDGEHOG_TESTS popd diff --git a/.github/workflows/haddock.yml b/.github/workflows/publish-docs.yml similarity index 68% rename from .github/workflows/haddock.yml rename to .github/workflows/publish-docs.yml index 2693b5e12a5..69317178e50 100644 --- a/.github/workflows/haddock.yml +++ b/.github/workflows/publish-docs.yml @@ -23,10 +23,20 @@ jobs: 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 }} - # We publish our haddock, which is non-trivially big. + # 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/cabal.project b/cabal.project index 07ec151e6f4..fbdc55dea12 100644 --- a/cabal.project +++ b/cabal.project @@ -26,6 +26,7 @@ packages: doc/read-the-docs-site plutus-metatheory plutus-tx plutus-tx-plugin + plutus-tx-test-util prettyprinter-configurable stubs/plutus-ghc-stub diff --git a/doc/notes/plutus-core/cek-budgeting-profiling/CostingDetails.md b/doc/notes/plutus-core/cek-budgeting-profiling/CostingDetails.md index 173dccdf2de..73af0aaba22 100644 --- a/doc/notes/plutus-core/cek-budgeting-profiling/CostingDetails.md +++ b/doc/notes/plutus-core/cek-budgeting-profiling/CostingDetails.md @@ -70,7 +70,7 @@ instance (Eq fun, Hashable fun, ToExMemory term) => Restricting resb -> when (exceedsBudget resb newBudget) $ throwingWithCause _EvaluationError - (UserEvaluationError $ CekOutOfExError resb newBudget) + (OperationalEvaluationError $ CekOutOfExError resb newBudget) Nothing -- No value available for error ``` @@ -96,7 +96,7 @@ to the current mode: newBudget <- exBudgetStateBudget <%= (<> budget) when (exceedsBudget resb newBudget) $ throwingWithCause _EvaluationError - (UserEvaluationError $ CekOutOfExError resb newBudget) + (OperationalEvaluationError $ CekOutOfExError resb newBudget) Nothing ``` @@ -114,7 +114,7 @@ of memory very quickly. Changing the code to Restricting resb -> when (exceedsBudget resb newBudget) $ throwingWithCause _EvaluationError - (UserEvaluationError $ CekOutOfExError resb newBudget) + (OperationalEvaluationError $ CekOutOfExError resb newBudget) Nothing ``` diff --git a/doc/read-the-docs-site/howtos/Cip57Blueprint.hs b/doc/read-the-docs-site/howtos/Cip57Blueprint.hs index 4093df6bfba..ebf255e5b2a 100644 --- a/doc/read-the-docs-site/howtos/Cip57Blueprint.hs +++ b/doc/read-the-docs-site/howtos/Cip57Blueprint.hs @@ -33,7 +33,7 @@ import GHC.Generics (Generic) import PlutusLedgerApi.V3 (BuiltinData, ScriptContext, UnsafeFromData (..)) import PlutusTx.Blueprint.TH (makeIsDataSchemaIndexed) import PlutusTx.Lift (makeLift) -import PlutusTx.Prelude (check) +import PlutusTx.Prelude (BuiltinUnit, check) -- END imports -- BEGIN MyParams annotations @@ -88,7 +88,7 @@ typedValidator MkMyParams{..} datum redeemer _scriptContext = R1 -> myBool R2 -> myInteger == datum -untypedValidator :: MyParams -> BuiltinData -> BuiltinData -> BuiltinData -> () +untypedValidator :: MyParams -> BuiltinData -> BuiltinData -> BuiltinData -> BuiltinUnit untypedValidator params datum redeemer scriptContext = check $ typedValidator params datum' redeemer' scriptContext' where @@ -162,4 +162,3 @@ writeBlueprintToFile :: FilePath -> IO () writeBlueprintToFile path = writeBlueprint path myContractBlueprint -- END write blueprint to file - diff --git a/doc/read-the-docs-site/plutus-doc.cabal b/doc/read-the-docs-site/plutus-doc.cabal index 1c31b3d75b1..4ec172df787 100644 --- a/doc/read-the-docs-site/plutus-doc.cabal +++ b/doc/read-the-docs-site/plutus-doc.cabal @@ -17,13 +17,6 @@ source-repository head type: git location: https://github.com/IntersectMBO/plutus -flag defer-plugin-errors - description: - Defer errors from the plugin, useful for things like Haddock that can't handle it. - - default: False - manual: True - common lang default-language: Haskell2010 default-extensions: @@ -47,8 +40,6 @@ common lang -fobject-code -fno-ignore-interface-pragmas -fno-omit-interface-pragmas - if flag(defer-plugin-errors) - common ghc-version-support -- See the section on GHC versions in CONTRIBUTING if (impl(ghc <9.6) || impl(ghc >=9.7)) @@ -78,9 +69,9 @@ executable doc-doctests , containers , flat ^>=0.6 , lens - , plutus-core ^>=1.28 - , plutus-ledger-api ^>=1.28 - , plutus-tx ^>=1.28 + , plutus-core ^>=1.29 + , plutus-ledger-api ^>=1.29 + , plutus-tx ^>=1.29 , prettyprinter , random , serialise @@ -105,10 +96,10 @@ executable quick-start , base >=4.9 && <5 , base16-bytestring , bytestring - , plutus-core ^>=1.28 - , plutus-ledger-api ^>=1.28 - , plutus-tx ^>=1.28 - , plutus-tx-plugin ^>=1.28 + , plutus-core ^>=1.29 + , plutus-ledger-api ^>=1.29 + , plutus-tx ^>=1.29 + , plutus-tx-plugin ^>=1.29 if !(impl(ghcjs) || os(ghcjs)) build-depends: plutus-tx-plugin diff --git a/doc/read-the-docs-site/tutorials/AuctionValidator.hs b/doc/read-the-docs-site/tutorials/AuctionValidator.hs index 31bd69e57c0..64b002a3f6d 100644 --- a/doc/read-the-docs-site/tutorials/AuctionValidator.hs +++ b/doc/read-the-docs-site/tutorials/AuctionValidator.hs @@ -192,7 +192,12 @@ auctionTypedValidator params (AuctionDatum highestBid) redeemer ctx@(ScriptConte Nothing -> PlutusTx.traceError ("Not found: Output paid to highest bidder") -- BLOCK8 {-# INLINEABLE auctionUntypedValidator #-} -auctionUntypedValidator :: AuctionParams -> BuiltinData -> BuiltinData -> BuiltinData -> () +auctionUntypedValidator :: + AuctionParams -> + BuiltinData -> + BuiltinData -> + BuiltinData -> + PlutusTx.BuiltinUnit auctionUntypedValidator params datum redeemer ctx = PlutusTx.check ( auctionTypedValidator @@ -204,7 +209,7 @@ auctionUntypedValidator params datum redeemer ctx = auctionValidatorScript :: AuctionParams -> - CompiledCode (BuiltinData -> BuiltinData -> BuiltinData -> ()) + CompiledCode (BuiltinData -> BuiltinData -> BuiltinData -> PlutusTx.BuiltinUnit) auctionValidatorScript params = $$(PlutusTx.compile [||auctionUntypedValidator||]) `PlutusTx.unsafeApplyCode` PlutusTx.liftCode plcVersion100 params diff --git a/doc/read-the-docs-site/tutorials/BasicPolicies.hs b/doc/read-the-docs-site/tutorials/BasicPolicies.hs index 4bf2565a008..abac078a5c0 100644 --- a/doc/read-the-docs-site/tutorials/BasicPolicies.hs +++ b/doc/read-the-docs-site/tutorials/BasicPolicies.hs @@ -42,14 +42,14 @@ currencyValueOf (Value m) c = case Map.lookup c m of -- BLOCK2 -- The 'plutus-ledger' package from 'plutus-apps' provides helper functions to automate -- some of this boilerplate. -oneAtATimePolicyUntyped :: BuiltinData -> BuiltinData -> () +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 -> ()) +oneAtATimeCompiled :: CompiledCode (BuiltinData -> BuiltinData -> BuiltinUnit) oneAtATimeCompiled = $$(compile [|| oneAtATimePolicyUntyped ||]) -- BLOCK3 singleSignerPolicy :: () -> ScriptContext -> Bool diff --git a/doc/read-the-docs-site/tutorials/BasicValidators.hs b/doc/read-the-docs-site/tutorials/BasicValidators.hs index 5dde554e8c2..24add791f32 100644 --- a/doc/read-the-docs-site/tutorials/BasicValidators.hs +++ b/doc/read-the-docs-site/tutorials/BasicValidators.hs @@ -61,16 +61,16 @@ 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 -> () +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 -> ()) +dateValidator :: CompiledCode (BuiltinData -> BuiltinData -> BuiltinData -> BuiltinUnit) dateValidator = $$(compile [|| validateDate ||]) -- BLOCK4 -validatePayment :: BuiltinData -> BuiltinData -> BuiltinData -> () +validatePayment :: BuiltinData -> BuiltinData -> BuiltinData -> BuiltinUnit validatePayment _ _ ctx = let valCtx = unsafeFromBuiltinData ctx -- The 'TxInfo' in the validation context is the representation of the diff --git a/docusaurus/.gitignore b/docusaurus/.gitignore new file mode 100644 index 00000000000..b2d6de30624 --- /dev/null +++ b/docusaurus/.gitignore @@ -0,0 +1,20 @@ +# Dependencies +/node_modules + +# Production +/build + +# Generated files +.docusaurus +.cache-loader + +# Misc +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/docusaurus/README.md b/docusaurus/README.md new file mode 100644 index 00000000000..ba50651e8e0 --- /dev/null +++ b/docusaurus/README.md @@ -0,0 +1,41 @@ +# Website + +This website is built using [Docusaurus](https://docusaurus.io/), a modern static website generator. + +### Installation + +``` +$ yarn +``` + +### Local development + +``` +$ yarn start +``` + +This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server. + +### Build + +``` +$ yarn build +``` + +This command generates static content into the `build` directory and can be served using any static contents hosting service. + +### Deployment + +Using SSH: + +``` +$ 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. diff --git a/docusaurus/babel.config.js b/docusaurus/babel.config.js new file mode 100644 index 00000000000..e00595dae7d --- /dev/null +++ b/docusaurus/babel.config.js @@ -0,0 +1,3 @@ +module.exports = { + presets: [require.resolve('@docusaurus/core/lib/babel/preset')], +}; diff --git a/docusaurus/docs/adr/_category_.json b/docusaurus/docs/adr/_category_.json new file mode 100644 index 00000000000..2a7ea02f583 --- /dev/null +++ b/docusaurus/docs/adr/_category_.json @@ -0,0 +1,8 @@ +{ + "label": "Architectural decision records", + "position": 60, + "link": { + "type": "generated-index", + "description": "This section provides documentation of the Plutus team's important architectural decisions made to date along with the context and consequences." + } + } diff --git a/docusaurus/docs/adr/adr-index.md b/docusaurus/docs/adr/adr-index.md new file mode 100644 index 00000000000..5d57773eb63 --- /dev/null +++ b/docusaurus/docs/adr/adr-index.md @@ -0,0 +1,25 @@ +--- +sidebar_position: 5 +--- + +# Architectural decision records + +We document our architectural and design decisions for all of our components. +To do that, there is a 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 with 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: + `[-.md]` in the directory `[doc/adr]` +3. Adding the ADR in the table of contents tree of the documentation +4. Committing and pushing to the repository. + diff --git a/docusaurus/docs/adr/adr1.md b/docusaurus/docs/adr/adr1.md new file mode 100644 index 00000000000..46ca55df2ea --- /dev/null +++ b/docusaurus/docs/adr/adr1.md @@ -0,0 +1,124 @@ +--- +sidebar_position: 10 +--- + +# ADR 1: Record architectural decisions + +Date: 2022-06-08 + +## Authors + +[koslambrou](mailto:konstantinos.lambrou@iohk.io) + +## Status + +Accepted + +## Context + +We are in search for a means to document our architectural and design decisions for all of our components. +To do that, there is a 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 with: + +- 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. + +## 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 the [Implications](#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](https://github.com/npryce/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](#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](https://cognitect.com/blog/2011/11/15/documenting-architecture-decisions) by Michael Nygard (Nov. 15, 2011). + +## ADR template + +What follows is the ADR format (adapted from the book). + +### 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, or '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 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 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 (or consequences) + +Describe the decision’s implications. For example, it may: + +* 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/docusaurus/docs/adr/adr2.md b/docusaurus/docs/adr/adr2.md new file mode 100644 index 00000000000..9a54710156e --- /dev/null +++ b/docusaurus/docs/adr/adr2.md @@ -0,0 +1,215 @@ +--- +sidebar_position: 15 +--- + +# ADR 2: Steppable CEK machine + +Date: 2022-10 + +## Authors + +[Marty Stumpf](mailto:marty.stumpf@iohk.io) + +[Ziyang Liu](mailto:ziyang.liu@iohk.io) + +## 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 (eg, we need to check its conformance) +- We will add a debugger for our users providing them with more information at each evaluation step +- We will need to write some tests to ensure that the debugging machine continuously outputs reasonable information. diff --git a/docusaurus/docs/adr/adr3.md b/docusaurus/docs/adr/adr3.md new file mode 100644 index 00000000000..d6f0e93bb8b --- /dev/null +++ b/docusaurus/docs/adr/adr3.md @@ -0,0 +1,138 @@ +--- +sidebar_position: 20 +--- + +# ADR 3: Sharing code between the production and debugging CEK machine + +Date: 2022-10 + +## Authors + +[Marty Stumpf](mailto:marty.stumpf@iohk.io) + +## 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 needs 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 + <other_clauses> -- 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. + <other_clauses> +``` + +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/docusaurus/docs/adr/adr4.md b/docusaurus/docs/adr/adr4.md new file mode 100644 index 00000000000..dd1efbaf9ba --- /dev/null +++ b/docusaurus/docs/adr/adr4.md @@ -0,0 +1,88 @@ +--- +sidebar_position: 25 +--- + +# ADR 4: Deferred unlifting in Plutus Core + +Date: 2022-11 + +## Authors + +[Michael Peyton Jones](mailto:michael.peyton-jones@iohk.io) + +## 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/docusaurus/docs/essential-concepts/_category_.json b/docusaurus/docs/essential-concepts/_category_.json new file mode 100644 index 00000000000..d9092bccb02 --- /dev/null +++ b/docusaurus/docs/essential-concepts/_category_.json @@ -0,0 +1,9 @@ +{ + "label": "Essential concepts", + "position": 20, + "link": { + "type": "generated-index", + "description": "To use Plutus most skillfully and securely, gaining a deep understanding of its foundational concepts is a requirement." + } + } + \ No newline at end of file diff --git a/docusaurus/docs/essential-concepts/language-versions.md b/docusaurus/docs/essential-concepts/language-versions.md new file mode 100644 index 00000000000..90971b4d4a6 --- /dev/null +++ b/docusaurus/docs/essential-concepts/language-versions.md @@ -0,0 +1,50 @@ +--- +sidebar_position: 20 +--- + +# 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. +To interpret simple scripts, the ledger must (among other things) extract the validation interval information from the transaction 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 [Scripts and the Extended UTXO model](ledger.md#scripts-and-the-extended-utxo-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. + +> :pushpin: **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/). + +Therefore, 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: + +1. Plutus Core is a *programming* language in which Plutus scripts are written +2. 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:* + +- [Plutus language changes](../reference/plutus-language-changes.md) for a description of what has changed between versions +- [Upgrading to Vasil and Plutus script addresses](../reference/upgrade-vasil-plutus-script-addresses.md). diff --git a/docusaurus/docs/essential-concepts/ledger.md b/docusaurus/docs/essential-concepts/ledger.md new file mode 100644 index 00000000000..1f12d713a59 --- /dev/null +++ b/docusaurus/docs/essential-concepts/ledger.md @@ -0,0 +1,107 @@ +--- +sidebar_position: 10 +--- + +# Ledgers + +The Plutus Platform is designed to work with distributed ledgers, which we'll just call "ledgers" from now on. +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. + +> :pushpin: **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 second 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, [Hydra](../reference/glossary.md#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 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 [Extended UTXO Model](../reference/glossary.md#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. + +## Three arguments passed to validator scripts + +With the EUTXO model, validator scripts are passed three arguments: + +1. **Datum**: 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. +2. **Redeemer**: 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. +3. **Context**: 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. + +### Logic of the validator script + +The logic of the validator script, then, is as follows: +- 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 [Plutus language versions](language-versions.md)) + +## Further reading + +See [The EUTXO Handbook, A deep dive into Cardano's accounting model](https://www.essentialcardano.io/article/the-eutxo-handbook). + +For more help on how to actually implement interesting logic using the EUTXO model and scripts, see: + +- [Using Plutus Tx](../category/using-plutus-tx) +- [Working with scripts](../category/working-with-scripts) diff --git a/docusaurus/docs/essential-concepts/plutus-foundation.md b/docusaurus/docs/essential-concepts/plutus-foundation.md new file mode 100644 index 00000000000..6e4e6f28fc1 --- /dev/null +++ b/docusaurus/docs/essential-concepts/plutus-foundation.md @@ -0,0 +1,39 @@ +--- +sidebar_position: 15 +--- + +# Plutus foundation + +In order for an application to run its trusted kernel of logic as a script on 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 designed for simplicity, determinism, and to allow careful cost control of program execution. +Plutus Core is our "assembly language." +Plutus Core is a low-level language based on higher-order polymorphic lambda calculus, a well-studied formalism for computing. +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 Core is designed to be written by a compiler, and the Platform provides a compiler from a subset of Haskell to Plutus Core. + +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 a Plutus script or a Plutus validator. + +## Plutus Tx + +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. + +Plutus Tx is also a Haskell library that provides a compiler for writing Plutus smart contracts in Haskell. +Plutus Tx enables developers to write secure and reliable smart contracts which are then compiled to the Plutus Core language for execution on the Cardano blockchain. + +This allows developers 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](https://github.com/IntersectMBO/plutus#specifications-and-design). + +The design is discussed in the [technical report](https://ci.iog.io/job/input-output-hk-plutus/master/x86_64-linux.packages.plutus-report/latest/download/1). diff --git a/docusaurus/docs/essential-concepts/plutus-platform.mdx b/docusaurus/docs/essential-concepts/plutus-platform.mdx new file mode 100644 index 00000000000..108caedb409 --- /dev/null +++ b/docusaurus/docs/essential-concepts/plutus-platform.mdx @@ -0,0 +1,104 @@ +--- +sidebar_position: 5 +--- + +# Plutus platform + +The Plutus platform is a platform for writing *applications* that interact with a *distributed ledger* featuring *scripting* capabilities, in particular the [Cardano](../reference/glossary.md#cardano) blockchain. + +## Example application + +What sort of "applications" are we talking about here? +As an example, let's think about an application that provides the function of helping a pair of users, Alice and Bob, who want to engage in an atomic swap of some assets stored on Cardano. + +### Alice initiates the swap + +```mermaid +graph TD; + A[Alice] -->|requests swap| App[Application]; + App -->|requests token lock| L[Ledger]; + L -->|confirms lock| App; + + classDef default fill:#33B6FF,stroke:#333,stroke-width:2px; +``` + +- **Alice:** tells the Application, "I want to do an escrowed swap with Bob, 50 Ada for my Special Token." +- **Application:** tells the Ledger, "I want to lock up Alice's Special Token so that it can only be unlocked if Bob completes the swap." +- **Ledger:** responds to the Application, "Ok, that change has settled." + +### Application interacts with Bob, Cardano and the ledger to execute the swap + +```mermaid +graph TD; + App[Application] -->|notifies Bob| B[Bob]; + B -->|agrees to swap| App; + App -->|executes swap on| C((Cardano)); + C -->|transaction processed| L[Ledger]; + L -->|checks conditions| D{Decision}; + D -- Yes --> L1[Ledger]; + L1 -->|confirms transaction| App; + + classDef default fill:#33B6FF,stroke:#333,stroke-width:2px; + class C database; + + style C fill:#33B6FF,stroke:#333,stroke-width:2px; +``` + + +- **Application:** tells Bob, "Hey, Alice wants to do a swap with you." +- **Bob:** tells the Application, "I want to take up Alice's swap." +- **Application:** communicates to Cardano, "I want to spend that locked output with Alice's Special Token while sending 50 of Bob's Ada to Alice." +- **Ledger:** checks with itself: "Does this transaction satisfy the conditions that were asked for? Yes it does!" +- **Ledger:** tells the Application, "Ok, that change has settled." + +### Application communicates that the swap completed + +```mermaid +graph TD; + App[Application] -->|notifies Alice: swap completed| A[Alice]; + App -->|notifies Bob: swap completed| B[Bob]; + + classDef default fill:#33B6FF,stroke:#333,stroke-width:2px; +``` + +- **Application:** tells Alice, "The swap is completed!" +- **Application:** tells 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 on 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. + +## Why we call it a 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, all the way through from authoring to testing, runtime support, and (eventually) verification. + +Conceptually, the Platform breaks down based on which part of the system we're interested in: + +- [Plutus Foundation](plutus-foundation.md): 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 + +![A high-level architecture of the Plutus Platform, with an emphasis on applications](../../static/img/platform-architecture.png) +*A high-level architecture of the Plutus Platform, with an emphasis on applications* + +## Additional resources + +- Michael Peyton-Jones and Jann Mueller introduce the Plutus platform in [this session](https://youtu.be/usMPt8KpBeI?si=4zkS3J7Bq8aFxWbU) from the Cardano 2020 event. + +- The design of the platform is discussed in the [Plutus technical report](https://ci.iog.io/job/input-output-hk-plutus/master/x86_64-linux.packages.plutus-report/latest/download/1). + diff --git a/docusaurus/docs/index.md b/docusaurus/docs/index.md new file mode 100644 index 00000000000..08cbeeb43c2 --- /dev/null +++ b/docusaurus/docs/index.md @@ -0,0 +1,56 @@ +--- +sidebar_position: 0 +--- + +# Plutus user guide + +## Introduction + +Plutus is the native smart contract language for the Cardano ecosystem. + +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 these elements are used in combination to write Plutus Core scripts that run on the Cardano blockchain. + +To develop and deploy a smart contract, you 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 a better user experience. + +Plutus allows all programming to be done from a single Haskell library. This lets developers build secure applications, forge new assets, and create smart contracts in a predictable, deterministic environment with the highest level of assurance. Furthemore, developers don’t have to run a full Cardano node to test their work. + +With Plutus you can: + +- Forge new tokens in a lightweight environment +- Build smart contracts +- Support basic multi-sig scripts. + +## Getting started with Plutus Tx +See [Getting started with Plutus Tx](using-plutus-tx/getting-started-plutus-tx.md) if you want to jump right in and start a project. + +## Intended audience + +The intended audience of this documentation includes developers 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. + +## Educational resources + +The IOG Education Team provides the IOG Academy Haskell Course and the Plutus Pioneer Program (PPP) to attract and train software developers in Plutus. + +If you are new to Plutus or are looking for additional educational material, please see the following resources: + +- [IOG Academy Haskell Course](https://www.youtube.com/playlist?list=PLNEK_Ejlx3x1D9Vq5kqeC3ZDEP7in4dqb) +- [Plutus Pioneer Program Gitbook](https://iog-academy.gitbook.io/plutus-pioneers-program-fourth-cohort/) +- [Plutus Pioneer Program GitHub page](https://github.com/input-output-hk/plutus-pioneer-program) +- IOG's technical community on Discord for PPP. Follow this [invitation link](https://iohk.us20.list-manage.com/track/click?u=26d3b656ecc43aa6f3063eaed&id=46c99986ab&e=6489217014) to join the discord server. diff --git a/docusaurus/docs/reference/_category_.json b/docusaurus/docs/reference/_category_.json new file mode 100644 index 00000000000..27452d0feff --- /dev/null +++ b/docusaurus/docs/reference/_category_.json @@ -0,0 +1,8 @@ +{ + "label": "Reference", + "position": 70, + "link": { + "type": "generated-index", + "description": "The Reference section covers Plutus Tx compiler options, script optimization techniques, common weaknesses, Plutus language changes, and how upgrading to Vasil can impact script addresses." + } + } diff --git a/docusaurus/docs/reference/common-weaknesses.md b/docusaurus/docs/reference/common-weaknesses.md new file mode 100644 index 00000000000..aafdc1265fe --- /dev/null +++ b/docusaurus/docs/reference/common-weaknesses.md @@ -0,0 +1,145 @@ +--- +sidebar_position: 20 +--- + +# 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. + +## 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). + +![Double satisfaction](../../static/img/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](#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 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. + +## 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. + +<!-- Verify that CIP-32 and CIP-33 have already been implemented, and update statements above as appropriate. --> + diff --git a/docusaurus/docs/reference/cost-model-parameters.md b/docusaurus/docs/reference/cost-model-parameters.md new file mode 100644 index 00000000000..716971b3947 --- /dev/null +++ b/docusaurus/docs/reference/cost-model-parameters.md @@ -0,0 +1,18 @@ +--- +sidebar_position: 35 +--- + +# 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. + +## Machine parameters + +<CsvTable file="machine-parameters.csv" widths={[30, 30, 40]} minWidth={600} /> + +## Builtin parameters + +<CsvTable file="builtin-parameters.csv" widths={[30, 30, 40]} minWidth={600} /> + diff --git a/docusaurus/docs/reference/examples.md b/docusaurus/docs/reference/examples.md new file mode 100644 index 00000000000..027cb5f5478 --- /dev/null +++ b/docusaurus/docs/reference/examples.md @@ -0,0 +1,20 @@ +--- +sidebar_position: 15 +--- + +# 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](https://github.com/IntersectMBO/plutus-apps/tree/master/plutus-use-cases) as you are using, to ensure that the examples work. + diff --git a/docusaurus/docs/reference/further-resources.md b/docusaurus/docs/reference/further-resources.md new file mode 100644 index 00000000000..31bbc78c835 --- /dev/null +++ b/docusaurus/docs/reference/further-resources.md @@ -0,0 +1,21 @@ +--- +sidebar_position: 40 +--- + +# Further resources + +1. Manuel M. T. Chakravarty, James Chapman, Kenneth MacKenzie, Orestis Melkonian, Jann Müller, Michael Peyton Jones, Polina Vinogradova, Philip Wadler, and Joachim Zahnentferner. UTXO$_\mathrm ma$: UTXO with multi-asset support. In *International Symposium on Leveraging Applications of Formal Methods.* Springer, 2020. Also available at [https://github.com/IntersectMBO/plutus](https://github.com/IntersectMBO/plutus). + +2. Manuel M. T. Chakravarty, James Chapman, Kenneth MacKenzie, Orestis Melkonian, Michael Peyton Jones, and Philip Wadler. The Extended UTXO model. In *Proceedings of Trusted Smart Contracts (WTSC)*, volume 12063 of LNCS. Springer, 2020. Also available at [https://github.com/IntersectMBO/plutus](https://github.com/IntersectMBO/plutus). + +3. Manuel M. T. Chakravarty, Sandro Coretti, Matthias Fitzi, Peter Gazi, Philipp Kant, Aggelos Kiayias, and Alexander Russell. [Hydra: Fast Isomorphic State Channels](https://eprint.iacr.org/2020/299). Technical Report, Cryptology ePrint Archive, Report 2020/299, 2020. + +4. Manuel MT Chakravarty, James Chapman, Kenneth MacKenzie, Orestis Melkonian, Jann Müller, Michael Peyton Jones, Polina Vinogradova, and Philip Wadler. Native custom tokens in the extended UTXO model. In *International Symposium on Leveraging Applications of Formal Methods*, 89–111. Springer, 2020. Also available at [https://github.com/IntersectMBO/plutus](https://github.com/IntersectMBO/plutus). + +5. Manuel MT Chakravarty, Simon Thompson, and Philip Wadler. [Functional smart contracts on cardano](https://www.youtube.com/watch?v=MpWeg6Fg0t8). + +6. IOHK. Formal specification of the Plutus Core language. Technical Report, IOHK, 2019. Available at [https://github.com/IntersectMBO/plutus](https://github.com/IntersectMBO/plutus). + +7. IOHK. Plutus platform technical report. Technical Report, IOHK, 2019. Available at [https://github.com/IntersectMBO/plutus](https://github.com/IntersectMBO/plutus). + +8. Michael Peyton Jones and Jann Müller. [The plutus platform](https://www.youtube.com/watch?v=usMPt8KpBeI). diff --git a/docusaurus/docs/reference/glossary.md b/docusaurus/docs/reference/glossary.md new file mode 100644 index 00000000000..23150fea146 --- /dev/null +++ b/docusaurus/docs/reference/glossary.md @@ -0,0 +1,153 @@ +--- +sidebar_position: 35 +--- + +# 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 [Ledgers](../essential-concepts/ledger.md). + +### 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. + +For a detailed technical report, please see: + +> Manuel M. T. Chakravarty, Sandro Coretti, Matthias Fitzi, Peter Gazi, Philipp Kant, Aggelos Kiayias, and Alexander Russell. [Hydra: Fast Isomorphic State Channels. Technical Report, Cryptology ePrint Archive, Report 2020/299, 2020](https://eprint.iacr.org/2020/299). + +### distributed ledger + +### ledger + +> See [Ledgers](../essential-concepts/ledger.md). + +### Marlowe + +A domain-specific language for writing financial contract applications. + +> See [Marlowe documentation](https://docs.marlowe.iohk.io/docs/introduction). + +### 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 + +Plutus Core is our "assembly language." +It is a low-level language based on higher-order polymorphic lambda calculus, a well-studied formalism for computing. +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 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. + +Plutus Core is designed for simplicity, determinism, and to allow careful cost control of program execution. + +### 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. Plutus application framework + + Please see: + + - [Plutus platform](../essential-concepts/plutus-platform.mdx) + - [Plutus foundation](../essential-concepts/plutus-foundation.md) + +### Plutus Tx + +Plutus Tx is a high-level language for writing the validation logic of a smart 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. + +Plutus Tx is also 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 [transaction output](glossary.md#transaction-output). + +### utxo congestion + +The effect of multiple transactions attempting to spend the same [transaction output](glossary.md#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/docusaurus/docs/reference/plutus-language-changes.md b/docusaurus/docs/reference/plutus-language-changes.md new file mode 100644 index 00000000000..f76295cae50 --- /dev/null +++ b/docusaurus/docs/reference/plutus-language-changes.md @@ -0,0 +1,96 @@ +--- +sidebar_position: 25 +--- + +# Plutus language changes + +## Language versions + +See the documentation on `language versions <what_are_plutus_language_versions>` for an explanation of what they are. + +### Plutus V1 + +`PlutusV1` was the initial version of Plutus, introduced in the Alonzo hard fork. + +### Plutus V2 + +`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 + +- [Plutus V2 functionalities](https://github.com/IntersectMBO/cardano-node/blob/master/doc/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 **add cross-reference link** : [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 (i.e., 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/docusaurus/docs/reference/plutus-tx-compiler-options.md b/docusaurus/docs/reference/plutus-tx-compiler-options.md new file mode 100644 index 00000000000..4fe6ff08b34 --- /dev/null +++ b/docusaurus/docs/reference/plutus-tx-compiler-options.md @@ -0,0 +1,45 @@ +--- +sidebar_position: 5 +--- + +# Plutus Tx compiler options + +These options can be passed to the compiler via the `OPTIONS_GHC` pragma, for instance + +``` 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`. + +| 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`. | +| `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 | +| `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 | +| `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. | +| `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/docusaurus/docs/reference/script-optimization-techniques.md b/docusaurus/docs/reference/script-optimization-techniques.md new file mode 100644 index 00000000000..44d5a141d85 --- /dev/null +++ b/docusaurus/docs/reference/script-optimization-techniques.md @@ -0,0 +1,97 @@ +--- +sidebar_position: 10 +--- + +# Optimization techniques for Plutus scripts + +## Identifying problem areas + +<!-- The link in this paragraph needs to become a cross-reference --> + +In order to identify which parts of the script are responsible for significant resource consumption, you can use the `profiling support`. + +## 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. + +``` 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. + +``` 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. + +``` 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. + +``` 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, `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 `PlutusTx.IsData.Class.UnsafeFromData` does the same but fails with `error`. + diff --git a/docusaurus/docs/reference/upgrade-vasil-plutus-script-addresses.md b/docusaurus/docs/reference/upgrade-vasil-plutus-script-addresses.md new file mode 100644 index 00000000000..6673e6ff4ac --- /dev/null +++ b/docusaurus/docs/reference/upgrade-vasil-plutus-script-addresses.md @@ -0,0 +1,29 @@ +--- +sidebar_position: 30 +--- + +# 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 [Exporting scripts, datums and redeemers](../working-with-scripts/exporting-scripts-datums-redeemers.md). + diff --git a/docusaurus/docs/simple-example/_category_.json b/docusaurus/docs/simple-example/_category_.json new file mode 100644 index 00000000000..055fc46b7db --- /dev/null +++ b/docusaurus/docs/simple-example/_category_.json @@ -0,0 +1,8 @@ +{ + "label": "Simple example", + "position": 30, + "link": { + "type": "generated-index", + "description": "This section walks you through a straightforward auction smart contract through a practical example, detailing the EUTXO model, how Plutus Tx integrates data types, validator functions and script execution." + } + } diff --git a/docusaurus/docs/simple-example/alternatives-to-plutus-tx.md b/docusaurus/docs/simple-example/alternatives-to-plutus-tx.md new file mode 100644 index 00000000000..41fcec45308 --- /dev/null +++ b/docusaurus/docs/simple-example/alternatives-to-plutus-tx.md @@ -0,0 +1,18 @@ +--- +sidebar_position: 35 +--- + +# 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) + diff --git a/docusaurus/docs/simple-example/auction-properties.md b/docusaurus/docs/simple-example/auction-properties.md new file mode 100644 index 00000000000..7ba9bee0d27 --- /dev/null +++ b/docusaurus/docs/simple-example/auction-properties.md @@ -0,0 +1,15 @@ +--- +sidebar_position: 15 +--- + +# 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, in the next section, for this specific example of an auction smart contract. diff --git a/docusaurus/docs/simple-example/eutxo-model.md b/docusaurus/docs/simple-example/eutxo-model.md new file mode 100644 index 00000000000..e0cd70d7aca --- /dev/null +++ b/docusaurus/docs/simple-example/eutxo-model.md @@ -0,0 +1,46 @@ +--- +sidebar_position: 10 +--- + +# 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. + +<!-- talking about "UTXO concept" --> + +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. + +<!-- talking about "EUTXO concept" --> + +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*. + +<!-- talking about "the role of a Plutus script" --> + +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. + +<!-- talking about "predicatable transaction fees" --> + +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: + +- [Working with scripts](../category/working-with-scripts) for further reading about scripts +- [Understanding the Extended UTXO model](https://docs.cardano.org/learn/eutxo-explainer) + diff --git a/docusaurus/docs/simple-example/further-reading.md b/docusaurus/docs/simple-example/further-reading.md new file mode 100644 index 00000000000..6f1a5467ff1 --- /dev/null +++ b/docusaurus/docs/simple-example/further-reading.md @@ -0,0 +1,11 @@ +--- +sidebar_position: 45 +--- + +# 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/docusaurus/docs/simple-example/libraries.md b/docusaurus/docs/simple-example/libraries.md new file mode 100644 index 00000000000..ffc7dc22067 --- /dev/null +++ b/docusaurus/docs/simple-example/libraries.md @@ -0,0 +1,11 @@ +--- +sidebar_position: 30 +--- + +# 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)`. + diff --git a/docusaurus/docs/simple-example/life-cycle.md b/docusaurus/docs/simple-example/life-cycle.md new file mode 100644 index 00000000000..b398bc65136 --- /dev/null +++ b/docusaurus/docs/simple-example/life-cycle.md @@ -0,0 +1,74 @@ +--- +sidebar_position: 25 +--- + +# 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. + +![First bid diagram](../../static/img/first-bid-simple-auction-v3.png) + +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. + +![Second bid diagram](../../static/img/second-bid-simple-auction-v3.png) + +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. + +![Closing transaction diagram](../../static/img/closing-tx-simple-auction-v3.png) + diff --git a/docusaurus/docs/simple-example/off-chain-code.md b/docusaurus/docs/simple-example/off-chain-code.md new file mode 100644 index 00000000000..779d66a0b89 --- /dev/null +++ b/docusaurus/docs/simple-example/off-chain-code.md @@ -0,0 +1,17 @@ +--- +sidebar_position: 40 +--- + +# 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. + +<!-- Correct the inaccurate info below about Plutus Apps --> + +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. diff --git a/docusaurus/docs/simple-example/plutus-tx-code.md b/docusaurus/docs/simple-example/plutus-tx-code.md new file mode 100644 index 00000000000..1a975b09499 --- /dev/null +++ b/docusaurus/docs/simple-example/plutus-tx-code.md @@ -0,0 +1,139 @@ +--- +sidebar_position: 20 +--- + +# 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). + +<!-- will need to update the link and file location for the new docs platform implementation --> + +## Data types + +First, let's define the following data types and instances for the validator: + +<LiteralInclude file="AuctionValidator.hs" language="haskell" title="Data types" start="-- BLOCK1" end="-- 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: + +### 1. Contract parameters + +These are fixed properties of the contract. +In our example, it is the `AuctionParams` type, containing properties like seller and minimum bid. + +### 2. 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. + +### 3. 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. + +### 4. 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`. + +> :pushpin: **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 file="AuctionValidator.hs" language="haskell" title="Main validator function" start="-- BLOCK2" end="-- 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. + +### Sufficient bid condition + +The `sufficientBid` condition verifies that the bid amount is sufficient: + +<LiteralInclude file="AuctionValidator.hs" language="haskell" title="Sufficient bid condition" start="-- BLOCK3" end="-- BLOCK4" /> + +### Valid bid time condition + +The `validBidTime` condition verifies that the bid is submitted before the auction's deadline: + +<LiteralInclude file="AuctionValidator.hs" language="haskell" title="Valid bid time condition" start="-- BLOCK4" end="-- 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. + +### Refunds previous highest bid condition + +The `refundsPreviousHighestBid` condition checks that the transaction pays the previous highest bid to the previous bidder: + +<LiteralInclude file="AuctionValidator.hs" language="haskell" title="Refunds previous highest bid condition" start="-- BLOCK5" end="-- 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. + +### Correct new datum condition + +The `correctNewDatum` condition verifies that the transaction produces a *continuing output* containing the correct datum (the new highest bid): + +<LiteralInclude file="AuctionValidator.hs" language="haskell" title="Correct new datum condition" start="-- BLOCK6" end="-- 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. + +### Compiling the validator + +Finally, we need to compile the validator written in Plutus Tx into Plutus Core, using the Plutus Tx compiler: + +<LiteralInclude file="AuctionValidator.hs" language="haskell" title="Compiling the validator" start="-- BLOCK8" end="-- 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. + +> :pushpin: **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`. + diff --git a/docusaurus/docs/simple-example/simple-example.md b/docusaurus/docs/simple-example/simple-example.md new file mode 100644 index 00000000000..f181751a844 --- /dev/null +++ b/docusaurus/docs/simple-example/simple-example.md @@ -0,0 +1,36 @@ +--- +sidebar_position: 5 +--- + +# Overview + +:::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. +::: + +## About this example + +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. + +<!-- talking about "what is Plutus Tx" --> + +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. + +<!-- talking about "the larger context of smart contract development and deployment" --> + +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. + +<!-- this entire next section could maybe be moved to the CORE CONCEPTS section --> +<!-- talking about "basic concepts" --> + +Before we get to the Plutus Tx code, let's briefly go over some basic concepts, including UTXO, EUTXO, datum, redeemer, and script context. + diff --git a/docusaurus/docs/troubleshooting.md b/docusaurus/docs/troubleshooting.md new file mode 100644 index 00000000000..4d88e74415f --- /dev/null +++ b/docusaurus/docs/troubleshooting.md @@ -0,0 +1,125 @@ +--- +sidebar_position: 80 +--- + +# Troubleshooting + +## Plugin errors + +Errors that start with `GHC Core to PLC plugin` are errors from `plutus-tx-plugin`. + +> :pushpin: **NOTE** +> +> Often, these errors arise due to GHC doing something to the code before the plugin gets to see it. +> The solution is often to prevent GHC from doing this. +> 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. Since you are only building documentation, runtime errors won't occur. + +To tell the plugin to defer any errors to runtime, 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 specialized version of your function, which prevents the plugin from accessing it. You can turn off specialization 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 #-}` + +More details are available 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. +To 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`, a wrapper that picks the right HLS version. Change this to: `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 is a list of error code definitions: + +### 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/docusaurus/docs/using-plutus-tx/_category_.json b/docusaurus/docs/using-plutus-tx/_category_.json new file mode 100644 index 00000000000..d147d61d936 --- /dev/null +++ b/docusaurus/docs/using-plutus-tx/_category_.json @@ -0,0 +1,8 @@ +{ + "label": "Using Plutus Tx", + "position": 40, + "link": { + "type": "generated-index", + "description": "This section guides you through a full spectrum of ideas, from foundational concepts to advanced techniques to help you learn how to use Plutus Tx effectively. " + } + } diff --git a/docusaurus/docs/using-plutus-tx/advanced-plutus-tx-concepts/_category_.json b/docusaurus/docs/using-plutus-tx/advanced-plutus-tx-concepts/_category_.json new file mode 100644 index 00000000000..6b2f0f995d6 --- /dev/null +++ b/docusaurus/docs/using-plutus-tx/advanced-plutus-tx-concepts/_category_.json @@ -0,0 +1,8 @@ +{ + "label": "Advanced Plutus Tx concepts", + "position": 30, + "link": { + "type": "generated-index", + "description": "This section covers enforcing contract conditions through validation failures, and optimizing script performance when encoding values stored in datums or redeemers into `Data` objects. The `PlutusTx.asData` module gives you more options for how you want to handle `Data`. " + } + } diff --git a/docusaurus/docs/using-plutus-tx/advanced-plutus-tx-concepts/optimizing-scripts-with-asData.md b/docusaurus/docs/using-plutus-tx/advanced-plutus-tx-concepts/optimizing-scripts-with-asData.md new file mode 100644 index 00000000000..e4898dacb1c --- /dev/null +++ b/docusaurus/docs/using-plutus-tx/advanced-plutus-tx-concepts/optimizing-scripts-with-asData.md @@ -0,0 +1,121 @@ +--- +sidebar_position: 20 +--- + +# Optimizing scripts with `asData` + +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 approaches + +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 [auction example](simple-example/simple-example.md), we would put the datatype declarations inside a Template Haskell quote and call `asData` on it. + +<LiteralInclude file="AuctionValidator.hs" language="haskell" title="" start="-- BLOCK9" end="-- 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: + +``` +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/docusaurus/docs/using-plutus-tx/advanced-plutus-tx-concepts/triggering-a-validation-failure.md b/docusaurus/docs/using-plutus-tx/advanced-plutus-tx-concepts/triggering-a-validation-failure.md new file mode 100644 index 00000000000..d6781818141 --- /dev/null +++ b/docusaurus/docs/using-plutus-tx/advanced-plutus-tx-concepts/triggering-a-validation-failure.md @@ -0,0 +1,9 @@ +--- +sidebar_position: 10 +--- + +# Triggering a validation failure + +The `PlutusTx.Builtins.error` built-in deserves a special mention. +`PlutusTx.Builtins.error` causes the transaction to abort when it is evaluated, which is one way to trigger a validation failure. + diff --git a/docusaurus/docs/using-plutus-tx/compiling-plutus-tx.md b/docusaurus/docs/using-plutus-tx/compiling-plutus-tx.md new file mode 100644 index 00000000000..ce569bc85db --- /dev/null +++ b/docusaurus/docs/using-plutus-tx/compiling-plutus-tx.md @@ -0,0 +1,96 @@ +--- +sidebar_position: 20 +--- + +# Compiling Plutus Tx + +:::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. +::: + +## 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. For example, `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 times, 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, for example: +``` + {-# OPTIONS_GHC -fno-ignore-interface-pragmas #-} +``` +or in a build file. +For example, if your project is built using Cabal, you can add the flags to the `.cabal` files, like so: + +> ghc-options: +> +> : -fno-ignore-interface-pragmas + +### Plutus Tx compiler options + +> :pushpin: **NOTE** +> +> This section only covers GHC flags, not Plutus Tx compiler flags. +> A number of options can be passed to the Plutus Tx compiler. +> See [Reference > Plutus Tx Compiler Options](../reference/plutus-tx-compiler-options.md) for details. + +### 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/docusaurus/docs/using-plutus-tx/getting-started-plutus-tx.md b/docusaurus/docs/using-plutus-tx/getting-started-plutus-tx.md new file mode 100644 index 00000000000..e5577f943bb --- /dev/null +++ b/docusaurus/docs/using-plutus-tx/getting-started-plutus-tx.md @@ -0,0 +1,31 @@ +--- +sidebar_position: 10 +--- + +# Getting started with Plutus Tx + +## Plutus-Tx-Template repository + +The easiest way to create a Cardano smart contract is to start with the template provided in the [Plutus-Tx-template repository](https://github.com/IntersectMBO/plutus-tx-template). Follow the instructions in the README file to setup your environment and run the example project. + +### Overview of creating a validator script using the template repo + +1. Clone the Plutus-Tx template repo. +2. Install Nix. See the [Nix setup guide](https://github.com/input-output-hk/iogx/blob/main/doc/nix-setup-guide.md) for installing and configuring nix to work with projects at IOG. Add the IOG binary cache to your nix configuration to speed up builds. +3. From the repo, run `nix develop` (select `y` for all question prompts). +4. Run `cabal update`. +5. Using `cardano-cli`, generate a pubKeyHash. +6. Set posix time and pubKeyHash in `Main.hs`. +7. Run `cabal build plutus-tx-template`. +8. Run `cabal exec plutus-tx-template`. + +#### Expected result +The expected result is that the above process will have created the `validator.uplc` script. + +#### Deploying and interacting with your script + +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. diff --git a/docusaurus/docs/using-plutus-tx/overview-plutus-tx.md b/docusaurus/docs/using-plutus-tx/overview-plutus-tx.md new file mode 100644 index 00000000000..000d0a8bc15 --- /dev/null +++ b/docusaurus/docs/using-plutus-tx/overview-plutus-tx.md @@ -0,0 +1,23 @@ +--- +sidebar_position: 5 +--- + +# High-level overview of how Plutus Tx works + +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 a Plutus script or a Plutus validator. + +To develop and deploy a smart contract, you 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. + +A Plutus application, or `Plutus Tx` program, where 'Tx' indicates that the component usually goes into a transaction, is written as a single Haskell program. +The Plutus Tx program describes both the code that runs off the chain (for example, on a user's computer, or in their wallet), and on the chain as part of transaction validation. +The parts of the program that describe the on-chain code are compiled into `Plutus Core`. + +## Staged metaprogramming + +The key technique used 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 used 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. + diff --git a/docusaurus/docs/using-plutus-tx/producing-a-blueprint.md b/docusaurus/docs/using-plutus-tx/producing-a-blueprint.md new file mode 100644 index 00000000000..264ae19cd7b --- /dev/null +++ b/docusaurus/docs/using-plutus-tx/producing-a-blueprint.md @@ -0,0 +1,273 @@ +--- +sidebar_position: 25 +--- + +# Producing a Plutus contract blueprint + +Plutus contract blueprints ([CIP-0057](https://cips.cardano.org/cip/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: + +``` haskell +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 () +``` + +## Demonstrating the usage of the `writeBlueprint` function + +In order to demonstrate the usage of the `writeBlueprint` function, let's consider the following example validator function and its interface: + +<LiteralInclude file="Cip57Blueprint.hs" language="haskell" title="interface types" start="-- BEGIN interface types" end="-- END interface types" /> + +<LiteralInclude file="Cip57Blueprint.hs" language="haskell" title="validator" start="-- BEGIN validator" end="-- END validator" /> + +## Importing required functionality + +First of all, we need to import required functionality: + +<LiteralInclude file="Cip57Blueprint.hs" language="haskell" title="imports" start="-- BEGIN imports" end="-- END imports" /> + +## Defining a contract blueprint value + +Next, we define a contract blueprint value of the following type: + +``` 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 +``` + +> :pushpin: **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: +> +> ``` 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 in the following way: + +<LiteralInclude file="Cip57Blueprint.hs" language="haskell" title="contract blueprint declaration" start="-- BEGIN contract blueprint declaration" end="-- 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` and contains a meta-information +about the contract: + +``` 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 + } +``` + +## Example construction + +Here is an example construction: + +<LiteralInclude file="Cip57Blueprint.hs" language="haskell" title="preamble declaration" start="-- BEGIN preamble declaration" end="-- 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 it is applied to including 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 the following instances: + +- An instance of the `GHC.Generics.Generic` type class: + +<LiteralInclude file="Cip57Blueprint.hs" language="haskell" title="generic instances" start="-- BEGIN generic instances" end="-- END generic instances" /> + +- An instance of the `AsDefinitionId` type class. Most of the time it could be derived generically with the `anyclass` strategy; for example: + +<LiteralInclude file="Cip57Blueprint.hs" language="haskell" title="AsDefinitionId instances" start="-- BEGIN AsDefinitionId instances" end="-- 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 file="Cip57Blueprint.hs" language="haskell" title="makeIsDataSchemaIndexed" start="-- BEGIN makeIsDataSchemaIndexed" end="-- END makeIsDataSchemaIndexed" /> + +## Defining a validator blueprint + +Finally, we need to define a validator blueprint for each validator used in the contract. + +Our contract can contain one or more validators. For each one we need to provide a description as a value of the following type: + +> ``` 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 file="Cip57Blueprint.hs" language="haskell" title="validator blueprint declaration" start="-- BEGIN validator blueprint declaration" end="-- 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. + +## Writing the blueprint to a file + +With all the pieces in place, we can now write the blueprint to a file: + +<LiteralInclude file="Cip57Blueprint.hs" language="haskell" title="write blueprint to file" start="-- BEGIN write blueprint to file" end="-- END write blueprint to file" /> + +## Annotations + +Any [CIP-0057](https://cips.cardano.org/cip/CIP-0057) blueprint type definition may include [optional keywords](https://cips.cardano.org/cip/CIP-0057#for-any-data-type) to provide additional information: + +- title +- description +- $comment + +It's possible to add these keywords to a Blueprint type definition by annotating the Haskell type from which it's 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 file="Cip57Blueprint.hs" language="haskell" title="MyParams annotations" start="-- BEGIN MyParams annotations" end="-- END MyParams annotations" /> + +These annotations result in the following JSON schema definition: + +``` 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, it's possible to annotate constructors: + +<LiteralInclude file="Cip57Blueprint.hs" language="haskell" title="MyRedeemer annotations" start="-- BEGIN MyRedeemer annotations" end="-- END MyRedeemer annotations" /> + +These annotations result in the following JSON schema definition: + +``` json +{ + "oneOf": [ + { + "$comment": "Left redeemer", + "dataType": "constructor", + "fields": [], + "index": 0 + }, + { + "$comment": "Right redeemer", + "dataType": "constructor", + "fields": [], + "index": 1 + } + ] +} +``` + +It is also possible to annotate a validator's parameter or argument **type** (as opposed to annotating *constructors*): + +``` haskell +{-# ANN type MyParams (SchemaTitle "Example parameter title") #-} +{-# ANN type MyRedeemer (SchemaTitle "Example redeemer title") #-} +``` + +Then, instead of providing them literally: + +``` 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: + +``` haskell +myValidator = + MkValidatorBlueprint + { ... elided + , validatorParameters = + [ $(deriveParameterBlueprint ''MyParams (Set.singleton Purpose.Spend)) ] + , validatorRedeemer = + $(deriveArgumentBlueprint ''MyRedeemer (Set.fromList [Purpose.Spend, Purpose.Mint])) + , ... elided + } +``` + +## Resulting full blueprint example + +Here is the full [CIP-0057](https://cips.cardano.org/cip/CIP-0057) blueprint produced by this example: + +<LiteralInclude file="plutus.json" language="json" title="Complete JSON Example" /> + +> :pushpin: **NOTE** +> +> You can find a more elaborate example of a contract blueprint in the `Blueprint.Tests` module of the Plutus repository. + diff --git a/docusaurus/docs/using-plutus-tx/writing-plutus-tx-programs.md b/docusaurus/docs/using-plutus-tx/writing-plutus-tx-programs.md new file mode 100644 index 00000000000..1ea554bb8b1 --- /dev/null +++ b/docusaurus/docs/using-plutus-tx/writing-plutus-tx-programs.md @@ -0,0 +1,175 @@ +--- +sidebar_position: 15 +--- + +# Writing Plutus Tx programs + +## 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. + +## Simple pattern + +Template Haskell is very versatile, but we only use a few features. +Essentially, we often use the same simple pattern: + +- make a quote, +- immediately call `PlutusTx.TH.compile`, and then +- splice the result back in. + +## Quotes + +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* of an expression of type `a`; in other words, 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. + +> :pushpin: **NOTE** +> +> There is also an abbreviation `TExpQ a` for `Q (TExp a)`, which avoids some parentheses. + +## Splicing quotes + +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 `PlutusTx.TH.compile` is `TExpQ a → TExpQ (CompiledCode a)`. +This is just what we already said: + +- `TExpQ a` is a quote representing a program of type `a`. +- `TExpQ (CompiledCode a)` is a quote representing a compiled Plutus Core program. + +> :pushpin: **NOTE** +> +> `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 `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. + +## Necessary language extensions for the Plutus Tx compiler to work + +<LiteralInclude file="BasicPlutusTx.hs" language="haskell" title="Language extensions" start="-- BLOCK1" end="-- BLOCK2" /> + +This simple program just evaluates to the integer `1`. + +> :pushpin: **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. + +<LiteralInclude file="BasicPlutusTx.hs" language="haskell" title="integerOne simple program" start="-- BLOCK2" end="-- 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). + +## Plutus Tx standard usage pattern (how all of our Plutus Tx programs are written) + +We also see the standard usage pattern: a TH quote, wrapped in a call to `PlutusTx.TH.compile`, wrapped in a `$$` splice. +This is how all our Plutus Tx programs are written. + +The following is a slightly more complex program. +It includes the identity function on integers. + +<LiteralInclude file="BasicPlutusTx.hs" language="haskell" title="Identity function on integers" start="-- BLOCK3" end="-- BLOCK4" /> + +## 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 file="BasicPlutusTx.hs" language="haskell" title="Functions and datatypes" start="-- BLOCK4" end="-- BLOCK5" /> + +## Normal Haskell datatypes and pattern matching + +We can use normal Haskell datatypes and pattern matching freely: + +<LiteralInclude file="BasicPlutusTx.hs" language="haskell" title="Normal Haskell datatypes and pattern matching" start="-- BLOCK5" end="-- 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. + +### Example + +Here's a small example with a datatype representing a potentially open-ended end date. + +<LiteralInclude file="BasicPlutusTx.hs" language="haskell" title="Datatype representing a potentially open-ended end date" start="-- BLOCK6" end="-- 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 + +So far we have used functions like `lessThanEqInteger` for comparing `Integer`s, which is much less convenient than `<` from the standard Haskell `Ord` typeclass. + +While Plutus Tx does support typeclasses, 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. + +## The Plutus Tx Prelude + +The `PlutusTx.Prelude` module is a drop-in replacement for the normal Haskell Prelude, with some redefined functions and typeclasses that make it easier for the Plutus Tx compiler to handle (such as `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 for normal Haskell code, the Haskell Prelude versions will probably perform better. + +To use the Plutus Tx Prelude, use the `NoImplicitPrelude` language pragma and import `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. + +### Plutus Tx Prelude has redefined versions of many standard typeclasses + +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, the following is a version of the `pastEnd` function using `<`. +This will be compiled to exactly the same code as the previous definition. + +<LiteralInclude file="BasicPlutusTx.hs" language="haskell" title="A version of the `pastEnd` function" start="-- BLOCK7" end="-- BLOCK8" /> + +## Lifting values for generating code dynamically + +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, and any additional data that may be required. + +We can do this in the same way that we parameterize code in functional programming: writing the static code as a *function* and providing 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. + +> :pushpin: **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 file="BasicPlutusTx.hs" language="haskell" title="Example of lifting" start="-- BLOCK8" end="-- 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 file="BasicPlutusTx.hs" language="haskell" title="Lift the argument (`4`) from Haskell to Plutus Core" start="-- BLOCK9" end="-- BLOCK10" /> + +We lifted the argument using the `PlutusTx.liftCode` function. +To use this, a type must have an instance of the `PlutusTx.Lift` class. +For your own datatypes, you should generate these with the `PlutusTx.makeLift` TH function from `PlutusTx.Lift`. + +> :pushpin: **NOTE** +> +> `PlutusTx.liftCode` is relatively unsafe because it ignores any errors that might occur from lifting something that might not be supported. +> There is a `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 file="BasicPlutusTx.hs" language="haskell" title="An example with our custom datatype" start="-- BLOCK10" end="-- BLOCK11" /> + diff --git a/docusaurus/docs/working-with-scripts/_category_.json b/docusaurus/docs/working-with-scripts/_category_.json new file mode 100644 index 00000000000..8b8d1f52881 --- /dev/null +++ b/docusaurus/docs/working-with-scripts/_category_.json @@ -0,0 +1,8 @@ +{ + "label": "Working with scripts", + "position": 50, + "link": { + "type": "generated-index", + "description": "Explore the essential steps of writing, exporting, and profiling Plutus scripts, starting with foundational validator and minting policies." + } + } diff --git a/docusaurus/docs/working-with-scripts/exporting-scripts-datums-redeemers.md b/docusaurus/docs/working-with-scripts/exporting-scripts-datums-redeemers.md new file mode 100644 index 00000000000..f852ad2838b --- /dev/null +++ b/docusaurus/docs/working-with-scripts/exporting-scripts-datums-redeemers.md @@ -0,0 +1,43 @@ +--- +sidebar_position: 15 +--- + +# Exporting scripts, datums and redeemers + +> :pushpin: **NOTE** +> +> This guide uses the scripts from the topic [Writing basic validator scripts](writing-basic-validator-scripts.md). + +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 file="BasicValidators.hs" language="haskell" title="Block Title" start="-- BLOCK5" end="-- 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: + +``` 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 file="BasicValidators.hs" language="haskell" title="Block Title" start="-- BLOCK6" end="-- BLOCK7" /> + diff --git a/docusaurus/docs/working-with-scripts/profiling-budget-usage.md b/docusaurus/docs/working-with-scripts/profiling-budget-usage.md new file mode 100644 index 00000000000..529b98a4ede --- /dev/null +++ b/docusaurus/docs/working-with-scripts/profiling-budget-usage.md @@ -0,0 +1,64 @@ +--- +sidebar_position: 20 +--- + +# Profiling 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. + +> :pushpin: **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. + +``` 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. + +> :pushpin: **NOTE** +> +> All the executables referred to here can be built from the `plutus` repository using `cabal build`. + +``` 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. + +## Analyzing 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 + +``` 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, such as 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/docusaurus/docs/working-with-scripts/writing-basic-minting-policies.md b/docusaurus/docs/working-with-scripts/writing-basic-minting-policies.md new file mode 100644 index 00000000000..fe74ede8090 --- /dev/null +++ b/docusaurus/docs/working-with-scripts/writing-basic-minting-policies.md @@ -0,0 +1,55 @@ +--- +sidebar_position: 10 +--- + +# Writing basic minting policies + +[Minting policy scripts](../reference/glossary.md#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 [validator scripts](../reference/glossary.md#validator-script), and they are written similarly, so please review [Writing basic validator scripts](writing-basic-validator-scripts.md) before reading this topic. + +## Minting policy arguments + +Minting policies, like validators, receive some information from the validating node: + +- The [redeemer](../reference/glossary.md#redeemer), which is some script-specific data specified by the party performing the minting. +- The [script context](../reference/glossary.md#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 `PlutusCore.Data.Data`. + +## Plutus script context versions + +Minting policies have access to the [script context](../reference/glossary.md#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 file="BasicPolicies.hs" language="haskell" title="Example simple minting policy" start="-- BLOCK1" end="-- 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 file="BasicPolicies.hs" language="haskell" title="Example of wrapping a typed version" start="-- BLOCK2" end="-- 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 file="BasicPolicies.hs" language="haskell" title="Policy example" start="-- BLOCK3" end="-- BLOCK4" /> + +> :pushpin: **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/docusaurus/docs/working-with-scripts/writing-basic-validator-scripts.md b/docusaurus/docs/working-with-scripts/writing-basic-validator-scripts.md new file mode 100644 index 00000000000..46e2b0f1b0d --- /dev/null +++ b/docusaurus/docs/working-with-scripts/writing-basic-validator-scripts.md @@ -0,0 +1,88 @@ +--- +sidebar_position: 5 +--- + +# Writing basic validator scripts + +[Validator scripts](../reference/glossary.md#validator-script) are the programs that can be used to lock transaction outputs on the chain. +Validator scripts are [Plutus Core](../reference/glossary.md#plutus-core) programs, but we can use [Plutus Tx](../reference/glossary.md#plutus-tx) to write them easily in Haskell. +Please review [Writing Plutus Tx programs](../using-plutus-tx/writing-plutus-tx-programs.md) before going through this topic. + +## Validator arguments + +Validators receive some information from the validating node: + +- The [redeemer](../reference/glossary.md#redeemer), which is some script-specific data specified by the party spending the output. +- The [datum](../reference/glossary.md#datum), which is some script-specific data specified by the party who created the output. +- The [script context](../reference/glossary.md#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 `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 `PlutusTx.IsData.Class.ToData`, `PlutusTx.IsData.Class.FromData`, and `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. + +> :pushpin: **NOTE** +> +> The `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 file="BasicValidators.hs" language="haskell" title="Code snippet from BasicValidators.hs" start="-- BLOCK1" end="-- 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 `PlutusTx.Builtins.error` builtin. +Some other builtins may also trigger failure if they are used incorrectly (for example, `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 file="BasicValidators.hs" language="haskell" title="Code snippet from BasicValidators.hs" start="-- BLOCK2" end="-- BLOCK3" /> + +If we want to write a validator that uses types other than `BuiltinData`, we'll need to use the functions from `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. + +> :red_circle: **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 file="BasicValidators.hs" language="haskell" title="Code snippet from BasicValidators.hs" start="-- BLOCK3" end="-- BLOCK4" /> + +## Plutus script context versions + +Validators have access to the [script context](../reference/glossary.md#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 file="BasicValidators.hs" language="haskell" title="Code snippet from BasicValidators.hs" start="-- BLOCK4" end="-- BLOCK5" /> + +This makes use of some useful functions for working with script contexts. diff --git a/docusaurus/docusaurus.config.ts b/docusaurus/docusaurus.config.ts new file mode 100644 index 00000000000..22cdcfb3410 --- /dev/null +++ b/docusaurus/docusaurus.config.ts @@ -0,0 +1,126 @@ +import { themes as prismThemes } from "prism-react-renderer"; +import type { Config } from "@docusaurus/types"; +import type * as Preset from "@docusaurus/preset-classic"; + +const config: Config = { + title: "Plutus Documentation", + tagline: "Plutus Core and Plutus Tx user guide", + favicon: "img/favicon.ico", + + // Set the production url of your site here + url: "https://plutus.readthedocs.io", + // Set the /<baseUrl>/ pathname under which your site is served + // For GitHub pages deployment, it is often '/<projectName>/' + baseUrl: "/plutus/master/docs/", + + // GitHub pages deployment config. + // If you aren't using GitHub pages, you don't need these. + organizationName: "facebook", // Usually your GitHub org/user name. + projectName: "docusaurus", // Usually your repo name. + + onBrokenLinks: "throw", + onBrokenMarkdownLinks: "warn", + + plugins: [ + [ + require.resolve("@cmfcmf/docusaurus-search-local"), + { + indexDocs: true, + }, + ], + [ + "@docusaurus/plugin-google-gtag", + { + trackingID: "G-X6364ZT8L2", + anonymizeIP: true, + }, + ], + ], + + // Even if you don't use internationalization, you can use this field to set + // useful metadata like html lang. For example, if your site is Chinese, you + // may want to replace "en" with "zh-Hans". + i18n: { + defaultLocale: "en", + locales: ["en"], + }, + markdown: { + mermaid: true, + }, + themes: ["@docusaurus/theme-mermaid"], + + presets: [ + [ + "classic", + { + docs: { + routeBasePath: "/", + sidebarPath: "./sidebars.ts", + // Please change this to your repo. + // Remove this to remove the "edit this page" links. + editUrl: + "https://github.com/IntersectMBO/plutus/edit/master/docusaurus", + }, + theme: { + customCss: "./src/css/custom.css", + }, + } satisfies Preset.Options, + ], + ], + + themeConfig: { + // Replace with your project's social card + image: "img/docusaurus-social-card.png", + navbar: { + title: "Plutus", + logo: { + alt: "Plutus Logo", + src: "img/logo.svg", + }, + items: [ + { + type: "docSidebar", + sidebarId: "tutorialSidebar", + position: "left", + label: "Documentation", + }, + { + href: "https://github.com/IntersectMBO/plutus", + label: "GitHub", + position: "right", + }, + ], + }, + footer: { + style: "dark", + links: [ + { + title: "Docs", + items: [ + { + label: "User Guide", + to: "/", + }, + ], + }, + { + title: "More", + items: [ + { + label: "GitHub", + href: "https://github.com/IntersectMBO/plutus", + }, + ], + }, + ], + copyright: `Copyright © ${new Date().getFullYear()} IOHK. Built with Docusaurus.`, + }, + prism: { + theme: prismThemes.github, + darkTheme: prismThemes.dracula, + additionalLanguages: ["haskell"], + }, + } satisfies Preset.ThemeConfig, +}; + +export default config; diff --git a/docusaurus/package.json b/docusaurus/package.json new file mode 100644 index 00000000000..474691bfbd8 --- /dev/null +++ b/docusaurus/package.json @@ -0,0 +1,50 @@ +{ + "name": "docusaurus", + "version": "0.0.0", + "private": true, + "scripts": { + "docusaurus": "docusaurus", + "start": "docusaurus start", + "build": "docusaurus build", + "swizzle": "docusaurus swizzle", + "deploy": "docusaurus deploy", + "clear": "docusaurus clear", + "serve": "docusaurus serve", + "write-translations": "docusaurus write-translations", + "write-heading-ids": "docusaurus write-heading-ids", + "typecheck": "tsc" + }, + "dependencies": { + "@cmfcmf/docusaurus-search-local": "^1.1.0", + "@docusaurus/core": "3.3.0", + "@docusaurus/plugin-google-gtag": "3.3.0", + "@docusaurus/preset-classic": "3.3.0", + "@docusaurus/theme-mermaid": "3.3.0", + "@mdx-js/react": "^3.0.0", + "clsx": "^2.0.0", + "prism-react-renderer": "^2.3.0", + "react": "^18.0.0", + "react-dom": "^18.0.0" + }, + "devDependencies": { + "@docusaurus/module-type-aliases": "3.2.1", + "@docusaurus/tsconfig": "3.2.1", + "@docusaurus/types": "3.2.1", + "typescript": "~5.2.2" + }, + "browserslist": { + "production": [ + ">0.5%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 3 chrome version", + "last 3 firefox version", + "last 5 safari version" + ] + }, + "engines": { + "node": ">=18.0" + } +} diff --git a/docusaurus/sidebars.ts b/docusaurus/sidebars.ts new file mode 100644 index 00000000000..acc7685acd5 --- /dev/null +++ b/docusaurus/sidebars.ts @@ -0,0 +1,31 @@ +import type {SidebarsConfig} from '@docusaurus/plugin-content-docs'; + +/** + * Creating a sidebar enables you to: + - create an ordered group of docs + - render a sidebar for each doc of that group + - provide next/previous navigation + + The sidebars can be generated from the filesystem, or explicitly defined here. + + Create as many sidebars as you want. + */ +const sidebars: SidebarsConfig = { + // By default, Docusaurus generates a sidebar from the docs folder structure + tutorialSidebar: [{type: 'autogenerated', dirName: '.'}], + + // But you can create a sidebar manually + /* + tutorialSidebar: [ + 'intro', + 'hello', + { + type: 'category', + label: 'Tutorial', + items: ['tutorial-basics/create-a-document'], + }, + ], + */ +}; + +export default sidebars; diff --git a/docusaurus/src/components/CsvTable.tsx b/docusaurus/src/components/CsvTable.tsx new file mode 100644 index 00000000000..99844a5c8f3 --- /dev/null +++ b/docusaurus/src/components/CsvTable.tsx @@ -0,0 +1,89 @@ +import useDocusaurusContext from "@docusaurus/useDocusaurusContext"; +import { useEffect, useState } from "react"; +const CsvTable = ({ + file, + widths, + minWidth, +}: { + file: string; + widths?: number[]; + minWidth?: number; +}) => { + const { siteConfig } = useDocusaurusContext(); + + const [loading, setLoading] = useState(true); + const [error, setError] = useState(""); + const [tableData, setTableData] = useState<string[][]>([]); + + useEffect(() => { + // Track if the component is still mounted + let isActive = true; + + async function loadCode() { + // Fetch the raw csv from the file + const res = await fetch(`/plutus/master/docs/csv/${file}`); + const rawData = await res.text(); + + // If the component is unmounted, don't set the state + if (!isActive) return; + setLoading(false); + + // If the code block is not found, set the error + if (!rawData) { + setError("Code block not found"); + } else { + const data = rawData + .split("\n") + .map((row) => row.split(",")) + .filter((row) => row.length > 1); + setTableData(data); + } + } + + loadCode(); + + // Cleanup function to avoid setting state on unmounted component + return () => { + isActive = false; + }; + }, []); + + if (loading) return "Loading"; + if (error) return "Error loading code block"; + + if (tableData.length === 0) return "No data found for table"; + + return ( + <div className="csv-table-overflow-marker"> + <div className="csv-table-overflow"> + <table className="csv-table" style={{ minWidth: minWidth || "auto" }}> + {widths ? ( + <colgroup> + {widths.map((width, i) => ( + <col key={`col-${i}`} style={{ width: `${width}%` }} /> + ))} + </colgroup> + ) : null} + <thead> + <tr> + {tableData[0].map((header, i) => ( + <th key={`th-${i}`}>{header}</th> + ))} + </tr> + </thead> + <tbody> + {tableData.slice(1).map((row, i) => ( + <tr key={`row-${i}`}> + {row.map((cell, j) => ( + <td key={`row-${i}-cell-${j}`}>{cell}</td> + ))} + </tr> + ))} + </tbody> + </table> + </div> + </div> + ); +}; + +export default CsvTable; diff --git a/docusaurus/src/components/LiteralInclude.tsx b/docusaurus/src/components/LiteralInclude.tsx new file mode 100644 index 00000000000..94f57fc4016 --- /dev/null +++ b/docusaurus/src/components/LiteralInclude.tsx @@ -0,0 +1,79 @@ +import useDocusaurusContext from "@docusaurus/useDocusaurusContext"; +import CodeBlock from "@theme/CodeBlock"; +import { useEffect, useState } from "react"; +const LiteralInclude = ({ + file, + title, + start, + end, + language, +}: { + file: string; + title?: string; + start: string; + end: string; + language: string; +}) => { + const { siteConfig } = useDocusaurusContext(); + + const [loading, setLoading] = useState(true); + const [error, setError] = useState(""); + const [codeString, setCodeString] = useState(""); + + useEffect(() => { + // Track if the component is still mounted + let isActive = true; + + async function loadCode() { + // Fetch the raw code from the file + const res = await fetch(`/plutus/master/docs/code/${file}`); + const rawCode = await res.text(); + + // If the component is unmounted, don't set the state + if (!isActive) return; + setLoading(false); + + // If the code block is not found, set the error + if (!rawCode) { + setError("Code block not found"); + } + + // Find the start and end lines in the raw code + // Returns error if no start or end line provided or if not found within file + if (start && end) { + const startLine = rawCode.indexOf(start); + const endLine = rawCode.indexOf(end); + if (startLine === -1 || endLine === -1) { + setError("Start and end lines not found in code block"); + } else { + // Set the code to be rendered + setCodeString( + rawCode.slice(startLine + start.length, endLine).trim() + ); + } + } else if (rawCode) { + setCodeString(rawCode); + } else { + setError("Start and end lines must be provided"); + } + } + + loadCode(); + + // Cleanup function to avoid setting state on unmounted component + return () => { + isActive = false; + }; + }, []); + + if (loading) return "Loading"; + if (error) return "Error loading code block"; + + return ( + <CodeBlock language={language} title={title || file} showLineNumbers> + {codeString} + </CodeBlock> + ); +}; + +export default LiteralInclude; diff --git a/docusaurus/src/css/custom.css b/docusaurus/src/css/custom.css new file mode 100644 index 00000000000..7aaf14d5e88 --- /dev/null +++ b/docusaurus/src/css/custom.css @@ -0,0 +1,309 @@ +/** + * Any CSS included here will be global. The classic template + * bundles Infima by default. Infima is a CSS framework designed to + * work well for content-centric websites. + */ + +/* cyrillic-ext */ +@font-face { + font-family: "Inter"; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url(https://fonts.gstatic.com/s/inter/v12/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuLyfAZJhiI2B.woff2) + format("woff2"); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, + U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: "Inter"; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url(https://fonts.gstatic.com/s/inter/v12/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuLyfAZthiI2B.woff2) + format("woff2"); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: "Inter"; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url(https://fonts.gstatic.com/s/inter/v12/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuLyfAZNhiI2B.woff2) + format("woff2"); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: "Inter"; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url(https://fonts.gstatic.com/s/inter/v12/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuLyfAZxhiI2B.woff2) + format("woff2"); + unicode-range: U+0370-03FF; +} +/* vietnamese */ +@font-face { + font-family: "Inter"; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url(https://fonts.gstatic.com/s/inter/v12/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuLyfAZBhiI2B.woff2) + format("woff2"); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, + U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, + U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: "Inter"; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url(https://fonts.gstatic.com/s/inter/v12/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuLyfAZFhiI2B.woff2) + format("woff2"); + unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, + U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: "Inter"; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url(https://fonts.gstatic.com/s/inter/v12/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuLyfAZ9hiA.woff2) + format("woff2"); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, + U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, + U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: "Source Code Pro"; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url(https://fonts.gstatic.com/s/sourcecodepro/v22/HI_diYsKILxRpg3hIP6sJ7fM7PqPMcMnZFqUwX28DMyQtMRrTEUc.woff2) + format("woff2"); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, + U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: "Source Code Pro"; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url(https://fonts.gstatic.com/s/sourcecodepro/v22/HI_diYsKILxRpg3hIP6sJ7fM7PqPMcMnZFqUwX28DMyQtM1rTEUc.woff2) + format("woff2"); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: "Source Code Pro"; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url(https://fonts.gstatic.com/s/sourcecodepro/v22/HI_diYsKILxRpg3hIP6sJ7fM7PqPMcMnZFqUwX28DMyQtMVrTEUc.woff2) + format("woff2"); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: "Source Code Pro"; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url(https://fonts.gstatic.com/s/sourcecodepro/v22/HI_diYsKILxRpg3hIP6sJ7fM7PqPMcMnZFqUwX28DMyQtMprTEUc.woff2) + format("woff2"); + unicode-range: U+0370-03FF; +} +/* vietnamese */ +@font-face { + font-family: "Source Code Pro"; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url(https://fonts.gstatic.com/s/sourcecodepro/v22/HI_diYsKILxRpg3hIP6sJ7fM7PqPMcMnZFqUwX28DMyQtMZrTEUc.woff2) + format("woff2"); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, + U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, + U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: "Source Code Pro"; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url(https://fonts.gstatic.com/s/sourcecodepro/v22/HI_diYsKILxRpg3hIP6sJ7fM7PqPMcMnZFqUwX28DMyQtMdrTEUc.woff2) + format("woff2"); + unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, + U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: "Source Code Pro"; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url(https://fonts.gstatic.com/s/sourcecodepro/v22/HI_diYsKILxRpg3hIP6sJ7fM7PqPMcMnZFqUwX28DMyQtMlrTA.woff2) + format("woff2"); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, + U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, + U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} + +/* You can override the default Infima variables here. */ +:root { + --color-plutus-white: #ffffff; + --color-plutus-black: #1c1c1c; + --color-plutus-green: #c2f71c; + --color-plutus-red: #f93a36; + --color-plutus-orange: #ff7347; + --color-plutus-yellow: #ffbe3c; + + --color-plutus-blue-bg: #eef9fd; + --color-plutus-blue: #4bb4d5; + --color-plutus-blue-2: #4b6fd5; + + --color-plutus-grey-0: #fafafa; + --color-plutus-grey-4: #f5f5f5; + --color-plutus-grey-8: #efefef; + --color-plutus-grey-12: #eaeaea; + --color-plutus-grey: #e5e5e5; + --color-plutus-grey-16: #acacac; + --color-plutus-grey-20: #737373; + --color-plutus-grey-24: #393939; + --color-plutus-grey-28: #1c1c1c; + + --ifm-font-family-base: "Inter"; + --ifm-font-family-monospace: "Source Code Pro"; + + --ifm-color-primary: var(--color-plutus-blue); + --ifm-color-primary-dark: var(--color-plutus-blue); + --ifm-color-primary-darker: var(--color-plutus-blue); + --ifm-color-primary-darkest: var(--color-plutus-blue); + + --ifm-link-color: var(--color-plutus-blue); + --ifm-link-hover-color: var(--color-plutus-blue-2); + --ifm-link-hover-decoration: var(--color-plutus-blue-2); + --ifm-menu-color-active: var(--color-plutus-grey-28); + --ifm-navbar-link-hover-color: var(--color-plutus-grey-28); + --ifm-breadcrumb-color-active: var(--color-plutus-grey-28); + + --ifm-navbar-search-input-placeholder-color: var(--color-plutus-grey-24); + + --ifm-color-secondary: var(--color-plutus-grey); + --ifm-color-secondary-light: var(--color-plutus-grey-12); + --ifm-color-secondary-dark: var(--color-plutus-grey-16); + --ifm-color-secondary-lighter: var(--color-plutus-grey-8); + --ifm-color-secondary-darker: var(--color-plutus-grey-20); + --ifm-color-secondary-lightest: var(--color-plutus-grey-4); + --ifm-color-secondary-darkest: var(--color-plutus-grey-24); +} + +:root:root { + --aa-primary-color-rgb: 75, 180, 213; +} + +html[data-theme="dark"] { + --ifm-color-primary: var(--color-plutus-blue); + --ifm-link-color: var(--color-plutus-blue); + --ifm-link-hover-color: var(--color-plutus-blue); + --ifm-link-hover-decoration: var(--color-plutus-blue); + --ifm-menu-color-active: var(--color-plutus-blue); + --ifm-navbar-link-hover-color: var(--color-plutus-blue); + --ifm-breadcrumb-color-active: var(--color-plutus-blue); + + --ifm-navbar-search-input-placeholder-color: var(--color-plutus-grey-8); + + --ifm-heading-color: var(--color-plutus-grey-8); + --ifm-pre-color: var(--color-plutus-grey-4); + --ifm-pre-background: var(--color-plutus-grey-20); + --ifm-code-background: var(--color-plutus-grey-20); +} + +html[data-theme="dark"] body { + --aa-primary-color-rgb: 75, 180, 213; + --aa-muted-color-rgb: 75, 180, 213; + --aa-background-color-rgb: 0, 0, 0; +} + +.markdown a { + font-weight: bold; +} + +.markdown a:hover { + text-decoration: underline; +} + +/* Header */ + +.navbar__logo { + height: 20px; + max-width: 35vw; +} + +.navbar__title { + display: none; +} + +/* Cards */ + +.padding--lg { + padding: 1rem !important; +} + +.card h2 { + margin-bottom: 0.25em; +} + +/* Tables */ + +.csv-table { + border-collapse: collapse; + border-spacing: 0; + font-size: 0.75em; +} + +.csv-table th { + font-weight: bold; +} + +.csv-table th, +.csv-table td { + padding: 2px 5px; +} + +.csv-table-overflow { + overflow-x: auto; + width: 100%; + padding-right: 25px; +} + +.csv-table-overflow-marker { + position: relative; +} + +.csv-table-overflow-marker::after { + content: ""; + display: block; + width: 25px; + position: absolute; + top: 0; + bottom: 0; + right: 0; + background: linear-gradient(to right, rgba(255, 255, 255, 0), #ffffff); +} + +html[data-theme="dark"] .csv-table-overflow-marker::after { + background: linear-gradient( + to right, + rgba(27, 27, 29, 0), + rgba(27, 27, 29, 255) + ); +} diff --git a/docusaurus/src/theme/MDXComponents.ts b/docusaurus/src/theme/MDXComponents.ts new file mode 100644 index 00000000000..f0f5ac2e17a --- /dev/null +++ b/docusaurus/src/theme/MDXComponents.ts @@ -0,0 +1,9 @@ +import MDXComponents from "@theme-original/MDXComponents"; +import LiteralInclude from "@site/src/components/LiteralInclude"; +import CsvTable from "@site/src/components/CsvTable"; + +export default { + ...MDXComponents, + LiteralInclude, + CsvTable, +}; diff --git a/docusaurus/static/.nojekyll b/docusaurus/static/.nojekyll new file mode 100644 index 00000000000..e69de29bb2d diff --git a/docusaurus/static/code/AuctionValidator.hs b/docusaurus/static/code/AuctionValidator.hs new file mode 100644 index 00000000000..31bd69e57c0 --- /dev/null +++ b/docusaurus/static/code/AuctionValidator.hs @@ -0,0 +1,232 @@ +{-# 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 -> () +auctionUntypedValidator params datum redeemer ctx = + PlutusTx.check + ( auctionTypedValidator + params + (PlutusTx.unsafeFromBuiltinData datum) + (PlutusTx.unsafeFromBuiltinData redeemer) + (PlutusTx.unsafeFromBuiltinData ctx) + ) + +auctionValidatorScript :: + AuctionParams -> + CompiledCode (BuiltinData -> BuiltinData -> BuiltinData -> ()) +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/docusaurus/static/code/BasicPlutusTx.hs b/docusaurus/static/code/BasicPlutusTx.hs new file mode 100644 index 00000000000..f7ce8375007 --- /dev/null +++ b/docusaurus/static/code/BasicPlutusTx.hs @@ -0,0 +1,188 @@ +-- 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/BasicPolicies.hs b/docusaurus/static/code/BasicPolicies.hs new file mode 100644 index 00000000000..4bf2565a008 --- /dev/null +++ b/docusaurus/static/code/BasicPolicies.hs @@ -0,0 +1,57 @@ +{-# 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 -> () +-- '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 -> ()) +oneAtATimeCompiled = $$(compile [|| oneAtATimePolicyUntyped ||]) +-- BLOCK3 +singleSignerPolicy :: () -> ScriptContext -> Bool +singleSignerPolicy _ ctx = txSignedBy (scriptContextTxInfo ctx) key +-- BLOCK4 diff --git a/docusaurus/static/code/BasicValidators.hs b/docusaurus/static/code/BasicValidators.hs new file mode 100644 index 00000000000..5dde554e8c2 --- /dev/null +++ b/docusaurus/static/code/BasicValidators.hs @@ -0,0 +1,98 @@ +{-# 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 -> () +-- 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 -> ()) +dateValidator = $$(compile [|| validateDate ||]) +-- BLOCK4 +validatePayment :: BuiltinData -> BuiltinData -> BuiltinData -> () +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/docusaurus/static/code/Cip57Blueprint.hs b/docusaurus/static/code/Cip57Blueprint.hs new file mode 100644 index 00000000000..838533658c7 --- /dev/null +++ b/docusaurus/static/code/Cip57Blueprint.hs @@ -0,0 +1,178 @@ +-- BLOCK1 +-- 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 + +-- BLOCK2 +-- 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 (check) + +-- END imports +-- BLOCK3 +-- BEGIN MyParams annotations + +{-# ANN MkMyParams (SchemaTitle "Title for the MyParams definition") #-} +{-# ANN MkMyParams (SchemaDescription "Description for the MyParams definition") #-} + +-- END MyParams annotations +-- BLOCK4 +-- BEGIN MyRedeemer annotations + +{-# ANN R1 (SchemaComment "Left redeemer") #-} +{-# ANN R2 (SchemaComment "Right redeemer") #-} + +-- END MyRedeemer annotations +-- BLOCK5 +-- BEGIN interface types + +type MyDatum = Integer + +data MyRedeemer = R1 | R2 + +data MyParams = MkMyParams + { myBool :: Bool + , myInteger :: Integer + } + +$(makeLift ''MyParams) + +-- END interface types +-- BLOCK6 +-- BEGIN makeIsDataSchemaIndexed MyParams + +$(makeIsDataSchemaIndexed ''MyParams [('MkMyParams, 0)]) +$(makeIsDataSchemaIndexed ''MyRedeemer [('R1, 0), ('R2, 1)]) + +-- END makeIsDataSchemaIndexed MyParams +-- BLOCK7 +-- BEGIN generic instances + +deriving stock instance (Generic MyParams) +deriving stock instance (Generic MyRedeemer) + +-- END generic instances +-- BLOCK8 +-- BEGIN AsDefinitionId instances + +deriving anyclass instance (AsDefinitionId MyParams) +deriving anyclass instance (AsDefinitionId MyRedeemer) + +-- END AsDefinitionId instances +-- BLOCK9 +-- 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 -> () +untypedValidator params datum redeemer scriptContext = + check $ typedValidator params datum' redeemer' scriptContext' + where + datum' = unsafeFromBuiltinData datum + redeemer' = unsafeFromBuiltinData redeemer + scriptContext' = unsafeFromBuiltinData scriptContext + +-- END validator +-- BLOCK10 +-- 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 +-- BLOCK11 +-- 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 +-- BLOCK12 +-- 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 +-- BLOCK13 +-- BEGIN write blueprint to file + +-- >>> writeBlueprintToFile "plutus.json" +writeBlueprintToFile :: FilePath -> IO () +writeBlueprintToFile path = writeBlueprint path myContractBlueprint + +-- END write blueprint to file + diff --git a/docusaurus/static/code/QuickStart.hs b/docusaurus/static/code/QuickStart.hs new file mode 100644 index 00000000000..a874fb3ba83 --- /dev/null +++ b/docusaurus/static/code/QuickStart.hs @@ -0,0 +1,26 @@ +-- 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 new file mode 100644 index 00000000000..542a1ed4301 --- /dev/null +++ b/docusaurus/static/code/plutus.json @@ -0,0 +1,92 @@ +{ + "$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 new file mode 100644 index 00000000000..649c735fe1d --- /dev/null +++ b/docusaurus/static/csv/builtin-parameters.csv @@ -0,0 +1,160 @@ +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 new file mode 100644 index 00000000000..ad191aa17e8 --- /dev/null +++ b/docusaurus/static/csv/machine-parameters.csv @@ -0,0 +1,17 @@ +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 new file mode 100644 index 00000000000..54d4a0befbb Binary files /dev/null and b/docusaurus/static/img/closing-tx-simple-auction-v3.png differ diff --git a/docusaurus/static/img/docusaurus-social-card.png b/docusaurus/static/img/docusaurus-social-card.png new file mode 100644 index 00000000000..2a841f055e0 Binary files /dev/null and b/docusaurus/static/img/docusaurus-social-card.png differ diff --git a/docusaurus/static/img/double-satisfaction.png b/docusaurus/static/img/double-satisfaction.png new file mode 100644 index 00000000000..a75a0ba20fa Binary files /dev/null and b/docusaurus/static/img/double-satisfaction.png differ diff --git a/docusaurus/static/img/favicon.ico b/docusaurus/static/img/favicon.ico new file mode 100644 index 00000000000..047d158df3f Binary files /dev/null and b/docusaurus/static/img/favicon.ico differ diff --git a/docusaurus/static/img/first-bid-simple-auction-v3.png b/docusaurus/static/img/first-bid-simple-auction-v3.png new file mode 100644 index 00000000000..090947d2917 Binary files /dev/null and b/docusaurus/static/img/first-bid-simple-auction-v3.png differ diff --git a/docusaurus/static/img/logo.svg b/docusaurus/static/img/logo.svg new file mode 100644 index 00000000000..4c5c522bc6d --- /dev/null +++ b/docusaurus/static/img/logo.svg @@ -0,0 +1,3 @@ +<svg width="96" height="20" viewBox="0 0 96 20" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M14.522 6.624C14.522 7.68133 14.2793 8.652 13.794 9.536C13.3087 10.4027 12.5633 11.1047 11.558 11.642C10.5527 12.1793 9.30467 12.448 7.814 12.448H5.058V19H0.612V0.747999H7.814C9.27 0.747999 10.5007 0.999333 11.506 1.502C12.5113 2.00467 13.2653 2.698 13.768 3.582C14.2707 4.466 14.522 5.48 14.522 6.624ZM7.476 8.912C8.32533 8.912 8.958 8.71267 9.374 8.314C9.79 7.91533 9.998 7.352 9.998 6.624C9.998 5.896 9.79 5.33267 9.374 4.934C8.958 4.53533 8.32533 4.336 7.476 4.336H5.058V8.912H7.476ZM21.5426 15.568H27.3666V19H17.0966V0.747999H21.5426V15.568ZM34.1152 0.747999V11.668C34.1152 12.76 34.3839 13.6007 34.9212 14.19C35.4586 14.7793 36.2472 15.074 37.2872 15.074C38.3272 15.074 39.1246 14.7793 39.6792 14.19C40.2339 13.6007 40.5112 12.76 40.5112 11.668V0.747999H44.9572V11.642C44.9572 13.2713 44.6106 14.6493 43.9172 15.776C43.2239 16.9027 42.2879 17.752 41.1092 18.324C39.9479 18.896 38.6479 19.182 37.2092 19.182C35.7706 19.182 34.4792 18.9047 33.3352 18.35C32.2086 17.778 31.3159 16.9287 30.6572 15.802C29.9986 14.658 29.6692 13.2713 29.6692 11.642V0.747999H34.1152ZM61.4693 0.747999V4.31H56.6333V19H52.1873V4.31H47.3513V0.747999H61.4693ZM68.3286 0.747999V11.668C68.3286 12.76 68.5973 13.6007 69.1346 14.19C69.6719 14.7793 70.4606 15.074 71.5006 15.074C72.5406 15.074 73.3379 14.7793 73.8926 14.19C74.4473 13.6007 74.7246 12.76 74.7246 11.668V0.747999H79.1706V11.642C79.1706 13.2713 78.8239 14.6493 78.1306 15.776C77.4373 16.9027 76.5013 17.752 75.3226 18.324C74.1613 18.896 72.8613 19.182 71.4226 19.182C69.9839 19.182 68.6926 18.9047 67.5486 18.35C66.4219 17.778 65.5293 16.9287 64.8706 15.802C64.2119 14.658 63.8826 13.2713 63.8826 11.642V0.747999H68.3286ZM89.1566 19.182C87.822 19.182 86.626 18.9653 85.5686 18.532C84.5113 18.0987 83.662 17.4573 83.0206 16.608C82.3966 15.7587 82.0673 14.736 82.0326 13.54H86.7646C86.834 14.216 87.068 14.736 87.4666 15.1C87.8653 15.4467 88.3853 15.62 89.0266 15.62C89.6853 15.62 90.2053 15.4727 90.5866 15.178C90.968 14.866 91.1586 14.4413 91.1586 13.904C91.1586 13.4533 91.0026 13.0807 90.6906 12.786C90.396 12.4913 90.0233 12.2487 89.5726 12.058C89.1393 11.8673 88.5153 11.6507 87.7006 11.408C86.522 11.044 85.56 10.68 84.8146 10.316C84.0693 9.952 83.428 9.41467 82.8906 8.704C82.3533 7.99333 82.0846 7.066 82.0846 5.922C82.0846 4.22333 82.7 2.89733 83.9306 1.944C85.1613 0.973333 86.7646 0.488 88.7406 0.488C90.7513 0.488 92.372 0.973333 93.6026 1.944C94.8333 2.89733 95.492 4.232 95.5786 5.948H90.7686C90.734 5.35867 90.5173 4.89933 90.1186 4.57C89.72 4.22333 89.2086 4.05 88.5846 4.05C88.0473 4.05 87.614 4.19733 87.2846 4.492C86.9553 4.76933 86.7906 5.17667 86.7906 5.714C86.7906 6.30333 87.068 6.76267 87.6226 7.092C88.1773 7.42133 89.044 7.77667 90.2226 8.158C91.4013 8.55667 92.3546 8.938 93.0826 9.302C93.828 9.666 94.4693 10.1947 95.0066 10.888C95.544 11.5813 95.8126 12.474 95.8126 13.566C95.8126 14.606 95.544 15.5507 95.0066 16.4C94.4866 17.2493 93.724 17.9253 92.7186 18.428C91.7133 18.9307 90.526 19.182 89.1566 19.182Z" fill="#4BB4D5"/> +</svg> diff --git a/docusaurus/static/img/platform-architecture.png b/docusaurus/static/img/platform-architecture.png new file mode 100644 index 00000000000..4da5fbf4457 Binary files /dev/null and b/docusaurus/static/img/platform-architecture.png differ diff --git a/docusaurus/static/img/second-bid-simple-auction-v3.png b/docusaurus/static/img/second-bid-simple-auction-v3.png new file mode 100644 index 00000000000..8d5969dd57c Binary files /dev/null and b/docusaurus/static/img/second-bid-simple-auction-v3.png differ diff --git a/docusaurus/tsconfig.json b/docusaurus/tsconfig.json new file mode 100644 index 00000000000..7ccc3545bbf --- /dev/null +++ b/docusaurus/tsconfig.json @@ -0,0 +1,10 @@ +{ + // This file is not used in compilation. It is here just for a nice editor experience. + "extends": "@docusaurus/tsconfig", + "compilerOptions": { + "baseUrl": ".", + "paths": { + "@code/*": ["code/*"] + } + } +} diff --git a/docusaurus/yarn.lock b/docusaurus/yarn.lock new file mode 100644 index 00000000000..950ce65d327 --- /dev/null +++ b/docusaurus/yarn.lock @@ -0,0 +1,12845 @@ +# This file is generated by running "yarn install" inside your project. +# Manual changes might be lost - proceed with caution! + +__metadata: + version: 6 + cacheKey: 8 + +"@algolia/autocomplete-core@npm:1.17.1": + version: 1.17.1 + resolution: "@algolia/autocomplete-core@npm:1.17.1" + dependencies: + "@algolia/autocomplete-plugin-algolia-insights": 1.17.1 + "@algolia/autocomplete-shared": 1.17.1 + checksum: 766eb481642511bada4b4d0c4ce9d06884b136f3083ac85b6a020523f05b68e60129898473b4f396ce3b9fbba925cfe8f09993c6a3c60bd3b057d4df79fa7579 + languageName: node + linkType: hard + +"@algolia/autocomplete-core@npm:1.9.3": + version: 1.9.3 + resolution: "@algolia/autocomplete-core@npm:1.9.3" + dependencies: + "@algolia/autocomplete-plugin-algolia-insights": 1.9.3 + "@algolia/autocomplete-shared": 1.9.3 + checksum: ce78048568660184a4fa3c6548f344a7f5ce0ba45d4cfc233f9756b6d4f360afd5ae3a18efefcd27a626d3a0d6cf22d9cba3e21b217afae62b8e9d11bc4960da + languageName: node + linkType: hard + +"@algolia/autocomplete-js@npm:^1.8.2": + version: 1.17.1 + resolution: "@algolia/autocomplete-js@npm:1.17.1" + dependencies: + "@algolia/autocomplete-core": 1.17.1 + "@algolia/autocomplete-preset-algolia": 1.17.1 + "@algolia/autocomplete-shared": 1.17.1 + htm: ^3.1.1 + preact: ^10.13.2 + peerDependencies: + "@algolia/client-search": ">= 4.5.1 < 6" + algoliasearch: ">= 4.9.1 < 6" + checksum: c0a013df9f64ca5c9b4cc0a410a5bb64103233de76ba92b8272c1a2c7d05d0f23aaf5b4343b76dd1fd321d764e227be89058db3bea05a88c9c2b647a9bebd8d2 + languageName: node + linkType: hard + +"@algolia/autocomplete-plugin-algolia-insights@npm:1.17.1": + version: 1.17.1 + resolution: "@algolia/autocomplete-plugin-algolia-insights@npm:1.17.1" + dependencies: + "@algolia/autocomplete-shared": 1.17.1 + peerDependencies: + search-insights: ">= 1 < 3" + checksum: d27647cb0916d6c81571d17c3f0fac59a470fdda226ed4d3596821fc93da726b3ca6f1d129e019810129d3f47270a96bbb9f71fac4a3628b537a017ee1563fda + languageName: node + linkType: hard + +"@algolia/autocomplete-plugin-algolia-insights@npm:1.9.3": + version: 1.9.3 + resolution: "@algolia/autocomplete-plugin-algolia-insights@npm:1.9.3" + dependencies: + "@algolia/autocomplete-shared": 1.9.3 + peerDependencies: + search-insights: ">= 1 < 3" + checksum: 030695bf692021c27f52a3d4931efed23032796e326d4ae7957ae91b51c36a10dc2d885fb043909e853f961c994b8e9ff087f50bb918cfa075370562251a199f + languageName: node + linkType: hard + +"@algolia/autocomplete-preset-algolia@npm:1.17.1": + version: 1.17.1 + resolution: "@algolia/autocomplete-preset-algolia@npm:1.17.1" + dependencies: + "@algolia/autocomplete-shared": 1.17.1 + peerDependencies: + "@algolia/client-search": ">= 4.9.1 < 6" + algoliasearch: ">= 4.9.1 < 6" + checksum: c697e5dbd4c64db2e8dc430d18f223e048f0986e2d6d3fe0652892ce5538d0f1b927c4e8e3f7d9ff3280ab85a3198ec1639b32b3591708b279b076486fcae419 + languageName: node + linkType: hard + +"@algolia/autocomplete-preset-algolia@npm:1.9.3": + version: 1.9.3 + resolution: "@algolia/autocomplete-preset-algolia@npm:1.9.3" + dependencies: + "@algolia/autocomplete-shared": 1.9.3 + peerDependencies: + "@algolia/client-search": ">= 4.9.1 < 6" + algoliasearch: ">= 4.9.1 < 6" + checksum: 1ab3273d3054b348eed286ad1a54b21807846326485507b872477b827dc688006d4f14233cebd0bf49b2932ec8e29eca6d76e48a3c9e9e963b25153b987549c0 + languageName: node + linkType: hard + +"@algolia/autocomplete-shared@npm:1.17.1": + version: 1.17.1 + resolution: "@algolia/autocomplete-shared@npm:1.17.1" + peerDependencies: + "@algolia/client-search": ">= 4.9.1 < 6" + algoliasearch: ">= 4.9.1 < 6" + checksum: 455359db6123e7ff0684c800b85ecbcbc014fef45b84c4e766744e03a77eaaf5607f924a0d08ee9b24f826863086d2dc423fce4bca7ad2f3f8c87efa090fa9cc + languageName: node + linkType: hard + +"@algolia/autocomplete-shared@npm:1.9.3": + version: 1.9.3 + resolution: "@algolia/autocomplete-shared@npm:1.9.3" + peerDependencies: + "@algolia/client-search": ">= 4.9.1 < 6" + algoliasearch: ">= 4.9.1 < 6" + checksum: 06014c8b08d30c452de079f48c0235d8fa09904bf511da8dc1b7e491819940fd4ff36b9bf65340242b2e157a26799a3b9aea01feee9c5bf67be3c48d7dff43d7 + languageName: node + linkType: hard + +"@algolia/autocomplete-theme-classic@npm:^1.8.2": + version: 1.17.1 + resolution: "@algolia/autocomplete-theme-classic@npm:1.17.1" + checksum: fb5d82472524b3b75edabd674a1afce28bd22c5925314ff8bd5584283c49fb1375391e74cc9dcdc8c9752a8860eb929743e1b124e0a098f3d875972f89c79e43 + languageName: node + linkType: hard + +"@algolia/cache-browser-local-storage@npm:4.23.3": + version: 4.23.3 + resolution: "@algolia/cache-browser-local-storage@npm:4.23.3" + dependencies: + "@algolia/cache-common": 4.23.3 + checksum: bbce762cc69952d8e02a228bbc1b9795bd076e637fd374a6e52c4f117f44de465231731f00562dbdda72aca9c150d53a0efb22d5d9e5b0d57674c8f853bc5a85 + languageName: node + linkType: hard + +"@algolia/cache-common@npm:4.23.3": + version: 4.23.3 + resolution: "@algolia/cache-common@npm:4.23.3" + checksum: c4502b9f188c451905d47c50e4706df3c188854615119b470a4d993d8c66d41ae1d9aec2464bc8a174c6ba2bfc939835b98cb7d4afddaa6c3ccb766231e1dbbc + languageName: node + linkType: hard + +"@algolia/cache-in-memory@npm:4.23.3": + version: 4.23.3 + resolution: "@algolia/cache-in-memory@npm:4.23.3" + dependencies: + "@algolia/cache-common": 4.23.3 + checksum: 9a26f6213873ec99ab3fb1bc4ba3bb7c64fc433f46ac9365689921e7c1ddaae437ee78c42d85d4426fc18ef0410d8fc9b78824759000b16fc2da60aba490cb87 + languageName: node + linkType: hard + +"@algolia/client-account@npm:4.23.3": + version: 4.23.3 + resolution: "@algolia/client-account@npm:4.23.3" + dependencies: + "@algolia/client-common": 4.23.3 + "@algolia/client-search": 4.23.3 + "@algolia/transporter": 4.23.3 + checksum: 56404a43dfe53eb0168e9be568482fb4b8b00adb73b978f7f5c02627d179f51eb273ea4880428d26aa692253f11cdd1d6b62796571f6e3ada1397c64f28fc591 + languageName: node + linkType: hard + +"@algolia/client-analytics@npm:4.23.3": + version: 4.23.3 + resolution: "@algolia/client-analytics@npm:4.23.3" + dependencies: + "@algolia/client-common": 4.23.3 + "@algolia/client-search": 4.23.3 + "@algolia/requester-common": 4.23.3 + "@algolia/transporter": 4.23.3 + checksum: a108bdbad64eed6166bbce16ab4f9f10c46ad8d689142e7c48bc7743b34e5d0770b21745a87fab3d04131420b57a73baf0a2cd1a2c8baa547c899ff33a4051bd + languageName: node + linkType: hard + +"@algolia/client-common@npm:4.23.3": + version: 4.23.3 + resolution: "@algolia/client-common@npm:4.23.3" + dependencies: + "@algolia/requester-common": 4.23.3 + "@algolia/transporter": 4.23.3 + checksum: 0767cd7a4f38abc0290a9c055d39730c5f507a0e9cd6657fbad749c15a9ba9cceb788c18fec0b5a25f49e6184fb40e8dd26c3e8b29824aa3df82822618399f08 + languageName: node + linkType: hard + +"@algolia/client-personalization@npm:4.23.3": + version: 4.23.3 + resolution: "@algolia/client-personalization@npm:4.23.3" + dependencies: + "@algolia/client-common": 4.23.3 + "@algolia/requester-common": 4.23.3 + "@algolia/transporter": 4.23.3 + checksum: 393a6a2c53185090c141c50dfc4896baa7b93af836479e9e43ad29e71de1bcce00e1273bb51ba512376a996f75f10146ba6443c3d53d2e4acc50eef43b65582e + languageName: node + linkType: hard + +"@algolia/client-search@npm:4.23.3, @algolia/client-search@npm:^4.12.0": + version: 4.23.3 + resolution: "@algolia/client-search@npm:4.23.3" + dependencies: + "@algolia/client-common": 4.23.3 + "@algolia/requester-common": 4.23.3 + "@algolia/transporter": 4.23.3 + checksum: 0249aeeaffa94608948f047dabd25a1c452c52cfbf5ce3abaad4f41134e87344d55733f03b512f64ffd23d43ff78d4339a8abfb83887ea23ede1d2d6567bf421 + languageName: node + linkType: hard + +"@algolia/events@npm:^4.0.1": + version: 4.0.1 + resolution: "@algolia/events@npm:4.0.1" + checksum: 4f63943f4554cfcfed91d8b8c009a49dca192b81056d8c75e532796f64828cd69899852013e81ff3fff07030df8782b9b95c19a3da0845786bdfe22af42442c2 + languageName: node + linkType: hard + +"@algolia/logger-common@npm:4.23.3": + version: 4.23.3 + resolution: "@algolia/logger-common@npm:4.23.3" + checksum: a6710ac3e790dc896d7f32eefc9e2967c765f0955fabd33291c14d61ad12d34259709370a18eb299518e36cc3b538c385ab1cc85b021b1acbf463315a61df67c + languageName: node + linkType: hard + +"@algolia/logger-console@npm:4.23.3": + version: 4.23.3 + resolution: "@algolia/logger-console@npm:4.23.3" + dependencies: + "@algolia/logger-common": 4.23.3 + checksum: 881eab328986626deaa20f6b7e51b1a86b47678681869f20e89ec47cfdf4a0547081fa4315149ac8c5e2ed3cb16a9547e1265a48c14ed6b7d549ba7abc5a71e9 + languageName: node + linkType: hard + +"@algolia/recommend@npm:4.23.3": + version: 4.23.3 + resolution: "@algolia/recommend@npm:4.23.3" + dependencies: + "@algolia/cache-browser-local-storage": 4.23.3 + "@algolia/cache-common": 4.23.3 + "@algolia/cache-in-memory": 4.23.3 + "@algolia/client-common": 4.23.3 + "@algolia/client-search": 4.23.3 + "@algolia/logger-common": 4.23.3 + "@algolia/logger-console": 4.23.3 + "@algolia/requester-browser-xhr": 4.23.3 + "@algolia/requester-common": 4.23.3 + "@algolia/requester-node-http": 4.23.3 + "@algolia/transporter": 4.23.3 + checksum: b8030c85cd9b62aed42ae73931b0586f460d61f68265e292dd6ecad3a473d84abcaf56d9a5e444f9c6c196b1635d41825850cc330ccc78d436f679127039845c + languageName: node + linkType: hard + +"@algolia/requester-browser-xhr@npm:4.23.3": + version: 4.23.3 + resolution: "@algolia/requester-browser-xhr@npm:4.23.3" + dependencies: + "@algolia/requester-common": 4.23.3 + checksum: afe1f81915d2386aa25c91c6d41d00a3958516a3567f1ec95a7d95eb976f87676cfb0dcc39e3fe7646e150c6cb5a8e3526c23be706cb09e56e0928a96da8eb6b + languageName: node + linkType: hard + +"@algolia/requester-common@npm:4.23.3": + version: 4.23.3 + resolution: "@algolia/requester-common@npm:4.23.3" + checksum: b7b308e46dc6158fd8adad82c301f60e1dd759e585cb90514b9a0be6b67cfba3d9ff6ad87f6299657a5ab4b5e94a2d330fc14de6c447012f32f846219c9e6971 + languageName: node + linkType: hard + +"@algolia/requester-node-http@npm:4.23.3": + version: 4.23.3 + resolution: "@algolia/requester-node-http@npm:4.23.3" + dependencies: + "@algolia/requester-common": 4.23.3 + checksum: 3d751c063e0f96e41a61d87a3428b2cb13b30aaa9e0ba3e70a3b92ad642afbb26c5095405dd1ed6dd16755d47faece0f42c5677f30673898658461ad51ec2235 + languageName: node + linkType: hard + +"@algolia/transporter@npm:4.23.3": + version: 4.23.3 + resolution: "@algolia/transporter@npm:4.23.3" + dependencies: + "@algolia/cache-common": 4.23.3 + "@algolia/logger-common": 4.23.3 + "@algolia/requester-common": 4.23.3 + checksum: e2573d308d7f41aa74b47c4dc052186fc9eab350ca5fec7c830ff5ca34337eeef01a7168bdd10f2e13c0cb1283385be211e7dd0a896be0aabfd900c056aa3606 + languageName: node + linkType: hard + +"@ampproject/remapping@npm:^2.2.0": + version: 2.3.0 + resolution: "@ampproject/remapping@npm:2.3.0" + dependencies: + "@jridgewell/gen-mapping": ^0.3.5 + "@jridgewell/trace-mapping": ^0.3.24 + checksum: d3ad7b89d973df059c4e8e6d7c972cbeb1bb2f18f002a3bd04ae0707da214cb06cc06929b65aa2313b9347463df2914772298bae8b1d7973f246bb3f2ab3e8f0 + languageName: node + linkType: hard + +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.16.0, @babel/code-frame@npm:^7.23.5, @babel/code-frame@npm:^7.24.2, @babel/code-frame@npm:^7.8.3": + version: 7.24.2 + resolution: "@babel/code-frame@npm:7.24.2" + dependencies: + "@babel/highlight": ^7.24.2 + picocolors: ^1.0.0 + checksum: 70e867340cfe09ca5488b2f36372c45cabf43c79a5b6426e6df5ef0611ff5dfa75a57dda841895693de6008f32c21a7c97027a8c7bcabd63a7d17416cbead6f8 + languageName: node + linkType: hard + +"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.23.5, @babel/compat-data@npm:^7.24.4": + version: 7.24.4 + resolution: "@babel/compat-data@npm:7.24.4" + checksum: 52ce371658dc7796c9447c9cb3b9c0659370d141b76997f21c5e0028cca4d026ca546b84bc8d157ce7ca30bd353d89f9238504eb8b7aefa9b1f178b4c100c2d4 + languageName: node + linkType: hard + +"@babel/core@npm:^7.21.3, @babel/core@npm:^7.23.3": + version: 7.24.5 + resolution: "@babel/core@npm:7.24.5" + dependencies: + "@ampproject/remapping": ^2.2.0 + "@babel/code-frame": ^7.24.2 + "@babel/generator": ^7.24.5 + "@babel/helper-compilation-targets": ^7.23.6 + "@babel/helper-module-transforms": ^7.24.5 + "@babel/helpers": ^7.24.5 + "@babel/parser": ^7.24.5 + "@babel/template": ^7.24.0 + "@babel/traverse": ^7.24.5 + "@babel/types": ^7.24.5 + convert-source-map: ^2.0.0 + debug: ^4.1.0 + gensync: ^1.0.0-beta.2 + json5: ^2.2.3 + semver: ^6.3.1 + checksum: f4f0eafde12b145f2cb9cc893085e5f1436e1ef265bb3b7d8aa6282515c9b4e740bbd5e2cbc32114adb9afed2dd62c2336758b9fabb7e46e8ba542f76d4f3f80 + languageName: node + linkType: hard + +"@babel/generator@npm:^7.23.3, @babel/generator@npm:^7.24.5": + version: 7.24.5 + resolution: "@babel/generator@npm:7.24.5" + dependencies: + "@babel/types": ^7.24.5 + "@jridgewell/gen-mapping": ^0.3.5 + "@jridgewell/trace-mapping": ^0.3.25 + jsesc: ^2.5.1 + checksum: a08c0ab900b36e1a17863e18e3216153322ea993246fd7a358ba38a31cfb15bab2af1dc178b2adafe4cb8a9f3ab0e0ceafd3fe6e8ca870dffb435b53b2b2a803 + languageName: node + linkType: hard + +"@babel/helper-annotate-as-pure@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-annotate-as-pure@npm:7.22.5" + dependencies: + "@babel/types": ^7.22.5 + checksum: 53da330f1835c46f26b7bf4da31f7a496dee9fd8696cca12366b94ba19d97421ce519a74a837f687749318f94d1a37f8d1abcbf35e8ed22c32d16373b2f6198d + languageName: node + linkType: hard + +"@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.22.15": + version: 7.22.15 + resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.22.15" + dependencies: + "@babel/types": ^7.22.15 + checksum: 639c697a1c729f9fafa2dd4c9af2e18568190299b5907bd4c2d0bc818fcbd1e83ffeecc2af24327a7faa7ac4c34edd9d7940510a5e66296c19bad17001cf5c7a + languageName: node + linkType: hard + +"@babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.23.6": + version: 7.23.6 + resolution: "@babel/helper-compilation-targets@npm:7.23.6" + dependencies: + "@babel/compat-data": ^7.23.5 + "@babel/helper-validator-option": ^7.23.5 + browserslist: ^4.22.2 + lru-cache: ^5.1.1 + semver: ^6.3.1 + checksum: c630b98d4527ac8fe2c58d9a06e785dfb2b73ec71b7c4f2ddf90f814b5f75b547f3c015f110a010fd31f76e3864daaf09f3adcd2f6acdbfb18a8de3a48717590 + languageName: node + linkType: hard + +"@babel/helper-create-class-features-plugin@npm:^7.24.1, @babel/helper-create-class-features-plugin@npm:^7.24.4, @babel/helper-create-class-features-plugin@npm:^7.24.5": + version: 7.24.5 + resolution: "@babel/helper-create-class-features-plugin@npm:7.24.5" + dependencies: + "@babel/helper-annotate-as-pure": ^7.22.5 + "@babel/helper-environment-visitor": ^7.22.20 + "@babel/helper-function-name": ^7.23.0 + "@babel/helper-member-expression-to-functions": ^7.24.5 + "@babel/helper-optimise-call-expression": ^7.22.5 + "@babel/helper-replace-supers": ^7.24.1 + "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 + "@babel/helper-split-export-declaration": ^7.24.5 + semver: ^6.3.1 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: ea761c1155442620ee02920ec7c3190f869ff4d4fcab48a021a11fd8a46c046ed1facb070e5c76539c2b7efc2c8338f50f08a5e49d0ebf12e48743570e92247b + languageName: node + linkType: hard + +"@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.22.15, @babel/helper-create-regexp-features-plugin@npm:^7.22.5": + version: 7.22.15 + resolution: "@babel/helper-create-regexp-features-plugin@npm:7.22.15" + dependencies: + "@babel/helper-annotate-as-pure": ^7.22.5 + regexpu-core: ^5.3.1 + semver: ^6.3.1 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 0243b8d4854f1dc8861b1029a46d3f6393ad72f366a5a08e36a4648aa682044f06da4c6e87a456260e1e1b33c999f898ba591a0760842c1387bcc93fbf2151a6 + languageName: node + linkType: hard + +"@babel/helper-define-polyfill-provider@npm:^0.6.1, @babel/helper-define-polyfill-provider@npm:^0.6.2": + version: 0.6.2 + resolution: "@babel/helper-define-polyfill-provider@npm:0.6.2" + dependencies: + "@babel/helper-compilation-targets": ^7.22.6 + "@babel/helper-plugin-utils": ^7.22.5 + debug: ^4.1.1 + lodash.debounce: ^4.0.8 + resolve: ^1.14.2 + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: 2bba965ea9a4887ddf9c11d51d740ab473bd7597b787d042c325f6a45912dfe908c2d6bb1d837bf82f7e9fa51e6ad5150563c58131d2bb85515e63d971414a9c + languageName: node + linkType: hard + +"@babel/helper-environment-visitor@npm:^7.22.20": + version: 7.22.20 + resolution: "@babel/helper-environment-visitor@npm:7.22.20" + checksum: d80ee98ff66f41e233f36ca1921774c37e88a803b2f7dca3db7c057a5fea0473804db9fb6729e5dbfd07f4bed722d60f7852035c2c739382e84c335661590b69 + languageName: node + linkType: hard + +"@babel/helper-function-name@npm:^7.23.0": + version: 7.23.0 + resolution: "@babel/helper-function-name@npm:7.23.0" + dependencies: + "@babel/template": ^7.22.15 + "@babel/types": ^7.23.0 + checksum: e44542257b2d4634a1f979244eb2a4ad8e6d75eb6761b4cfceb56b562f7db150d134bc538c8e6adca3783e3bc31be949071527aa8e3aab7867d1ad2d84a26e10 + languageName: node + linkType: hard + +"@babel/helper-hoist-variables@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-hoist-variables@npm:7.22.5" + dependencies: + "@babel/types": ^7.22.5 + checksum: 394ca191b4ac908a76e7c50ab52102669efe3a1c277033e49467913c7ed6f7c64d7eacbeabf3bed39ea1f41731e22993f763b1edce0f74ff8563fd1f380d92cc + languageName: node + linkType: hard + +"@babel/helper-member-expression-to-functions@npm:^7.23.0, @babel/helper-member-expression-to-functions@npm:^7.24.5": + version: 7.24.5 + resolution: "@babel/helper-member-expression-to-functions@npm:7.24.5" + dependencies: + "@babel/types": ^7.24.5 + checksum: d3ad681655128463aa5c2a239345687345f044542563506ee53c9636d147e97f93a470be320950a8ba5f497ade6b27a8136a3a681794867ff94b90060a6e427c + languageName: node + linkType: hard + +"@babel/helper-module-imports@npm:^7.22.15, @babel/helper-module-imports@npm:^7.24.1, @babel/helper-module-imports@npm:^7.24.3": + version: 7.24.3 + resolution: "@babel/helper-module-imports@npm:7.24.3" + dependencies: + "@babel/types": ^7.24.0 + checksum: c23492189ba97a1ec7d37012336a5661174e8b88194836b6bbf90d13c3b72c1db4626263c654454986f924c6da8be7ba7f9447876d709cd00bd6ffde6ec00796 + languageName: node + linkType: hard + +"@babel/helper-module-transforms@npm:^7.23.3, @babel/helper-module-transforms@npm:^7.24.5": + version: 7.24.5 + resolution: "@babel/helper-module-transforms@npm:7.24.5" + dependencies: + "@babel/helper-environment-visitor": ^7.22.20 + "@babel/helper-module-imports": ^7.24.3 + "@babel/helper-simple-access": ^7.24.5 + "@babel/helper-split-export-declaration": ^7.24.5 + "@babel/helper-validator-identifier": ^7.24.5 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 208c2e3877536c367ae3f39345bb5c5954ad481fdb2204d4d1906063e53ae564e5b7b846951b1aa96ee716ec24ec3b6db01b41d128884c27315b415f62db9fd2 + languageName: node + linkType: hard + +"@babel/helper-optimise-call-expression@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-optimise-call-expression@npm:7.22.5" + dependencies: + "@babel/types": ^7.22.5 + checksum: c70ef6cc6b6ed32eeeec4482127e8be5451d0e5282d5495d5d569d39eb04d7f1d66ec99b327f45d1d5842a9ad8c22d48567e93fc502003a47de78d122e355f7c + languageName: node + linkType: hard + +"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.24.0, @babel/helper-plugin-utils@npm:^7.24.5, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3": + version: 7.24.5 + resolution: "@babel/helper-plugin-utils@npm:7.24.5" + checksum: fa1450c92541b32fe18a6ae85e5c989296a284838fa0a282a2138732cae6f173f36d39dc724890c1740ae72d6d6fbca0b009916b168d4bc874bacc7e5c2fdce0 + languageName: node + linkType: hard + +"@babel/helper-remap-async-to-generator@npm:^7.22.20": + version: 7.22.20 + resolution: "@babel/helper-remap-async-to-generator@npm:7.22.20" + dependencies: + "@babel/helper-annotate-as-pure": ^7.22.5 + "@babel/helper-environment-visitor": ^7.22.20 + "@babel/helper-wrap-function": ^7.22.20 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 2fe6300a6f1b58211dffa0aed1b45d4958506d096543663dba83bd9251fe8d670fa909143a65b45e72acb49e7e20fbdb73eae315d9ddaced467948c3329986e7 + languageName: node + linkType: hard + +"@babel/helper-replace-supers@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/helper-replace-supers@npm:7.24.1" + dependencies: + "@babel/helper-environment-visitor": ^7.22.20 + "@babel/helper-member-expression-to-functions": ^7.23.0 + "@babel/helper-optimise-call-expression": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: c04182c34a3195c6396de2f2945f86cb60daa94ca7392db09bd8b0d4e7a15b02fbe1947c70f6062c87eadaea6d7135207129efa35cf458ea0987bab8c0f02d5a + languageName: node + linkType: hard + +"@babel/helper-simple-access@npm:^7.22.5, @babel/helper-simple-access@npm:^7.24.5": + version: 7.24.5 + resolution: "@babel/helper-simple-access@npm:7.24.5" + dependencies: + "@babel/types": ^7.24.5 + checksum: 5616044603c98434342f09b056c869394acdeba7cd9ec29e6a9abb0dae1922f779d364aaba74dc2ae4facf85945c6156295adbe0511a8aaecaa8a1559d14757a + languageName: node + linkType: hard + +"@babel/helper-skip-transparent-expression-wrappers@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.22.5" + dependencies: + "@babel/types": ^7.22.5 + checksum: 1012ef2295eb12dc073f2b9edf3425661e9b8432a3387e62a8bc27c42963f1f216ab3124228015c748770b2257b4f1fda882ca8fa34c0bf485e929ae5bc45244 + languageName: node + linkType: hard + +"@babel/helper-split-export-declaration@npm:^7.24.5": + version: 7.24.5 + resolution: "@babel/helper-split-export-declaration@npm:7.24.5" + dependencies: + "@babel/types": ^7.24.5 + checksum: f23ab6942568084a57789462ce55dc9631aef1d2142ffa2ee28fc411ab55ed3ca65adf109e48655aa349bf8df7ca6dd81fd91c8c229fee1dc77e283189dc83c2 + languageName: node + linkType: hard + +"@babel/helper-string-parser@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/helper-string-parser@npm:7.24.1" + checksum: 8404e865b06013979a12406aab4c0e8d2e377199deec09dfe9f57b833b0c9ce7b6e8c1c553f2da8d0bcd240c5005bd7a269f4fef0d628aeb7d5fe035c436fb67 + languageName: node + linkType: hard + +"@babel/helper-validator-identifier@npm:^7.22.20, @babel/helper-validator-identifier@npm:^7.24.5": + version: 7.24.5 + resolution: "@babel/helper-validator-identifier@npm:7.24.5" + checksum: 75d6f9f475c08f3be87bae4953e9b8d8c72983e16ed2860870b328d048cb20dccb4fcbf85eacbdd817ea1efbb38552a6db9046e2e37bfe13bdec44ac8939024c + languageName: node + linkType: hard + +"@babel/helper-validator-option@npm:^7.23.5": + version: 7.23.5 + resolution: "@babel/helper-validator-option@npm:7.23.5" + checksum: 537cde2330a8aede223552510e8a13e9c1c8798afee3757995a7d4acae564124fe2bf7e7c3d90d62d3657434a74340a274b3b3b1c6f17e9a2be1f48af29cb09e + languageName: node + linkType: hard + +"@babel/helper-wrap-function@npm:^7.22.20": + version: 7.24.5 + resolution: "@babel/helper-wrap-function@npm:7.24.5" + dependencies: + "@babel/helper-function-name": ^7.23.0 + "@babel/template": ^7.24.0 + "@babel/types": ^7.24.5 + checksum: c895b95f0fd5e070ced93f315f85e3b63a7236dc9c302bbdce87c699e599d3fd6ad6e44cc820ec7df2d60fadbc922b3b59a0318b708fe69e3d01e5ed15687876 + languageName: node + linkType: hard + +"@babel/helpers@npm:^7.24.5": + version: 7.24.5 + resolution: "@babel/helpers@npm:7.24.5" + dependencies: + "@babel/template": ^7.24.0 + "@babel/traverse": ^7.24.5 + "@babel/types": ^7.24.5 + checksum: 941937456ca50ef44dbc5cdcb9a74c6ce18ce38971663acd80b622e7ecf1cc4fa034597de3ccccc37939d324139f159709f493fd8e7c385adbc162cb0888cfee + languageName: node + linkType: hard + +"@babel/highlight@npm:^7.24.2": + version: 7.24.5 + resolution: "@babel/highlight@npm:7.24.5" + dependencies: + "@babel/helper-validator-identifier": ^7.24.5 + chalk: ^2.4.2 + js-tokens: ^4.0.0 + picocolors: ^1.0.0 + checksum: eece0e63e9210e902f1ee88f15cabfa31d2693bd2e56806eb849478b859d274c24477081c649cee6a241c4aed7da6f3e05c7afa5c3cd70094006ed095292b0d0 + languageName: node + linkType: hard + +"@babel/parser@npm:^7.24.0, @babel/parser@npm:^7.24.5": + version: 7.24.5 + resolution: "@babel/parser@npm:7.24.5" + bin: + parser: ./bin/babel-parser.js + checksum: a251ea41bf8b5f61048beb320d43017aff68af5a3506bd2ef392180f5fa32c1061513171d582bb3d46ea48e3659dece8b3ba52511a2566066e58abee300ce2a0 + languageName: node + linkType: hard + +"@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.24.5": + version: 7.24.5 + resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.24.5" + dependencies: + "@babel/helper-environment-visitor": ^7.22.20 + "@babel/helper-plugin-utils": ^7.24.5 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: d9921b3561762b8c7227cfbf1591436d2a12b99472993a7ce382123e88d98cb359952fbc64d66b1a492187d283d02f51e707f524b708c91b9ab82fb2659eae13 + languageName: node + linkType: hard + +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.24.1" + dependencies: + "@babel/helper-plugin-utils": ^7.24.0 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: ec5fddc8db6de0e0082a883f21141d6f4f9f9f0bc190d662a732b5e9a506aae5d7d2337049a1bf055d7cb7add6f128036db6d4f47de5e9ac1be29e043c8b7ca8 + languageName: node + linkType: hard + +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.24.1" + dependencies: + "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 + "@babel/plugin-transform-optional-chaining": ^7.24.1 + peerDependencies: + "@babel/core": ^7.13.0 + checksum: e18235463e716ac2443938aaec3c18b40c417a1746fba0fa4c26cf4d71326b76ef26c002081ab1b445abfae98e063d561519aa55672dddc1ef80b3940211ffbb + languageName: node + linkType: hard + +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.24.1" + dependencies: + "@babel/helper-environment-visitor": ^7.22.20 + "@babel/helper-plugin-utils": ^7.24.0 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: b5e5889ce5ef51e813e3063cd548f55eb3c88e925c3c08913f334e15d62496861e538ae52a3974e0c56a3044ed8fd5033faea67a64814324af56edc9865b7359 + languageName: node + linkType: hard + +"@babel/plugin-proposal-private-property-in-object@npm:7.21.0-placeholder-for-preset-env.2": + version: 7.21.0-placeholder-for-preset-env.2 + resolution: "@babel/plugin-proposal-private-property-in-object@npm:7.21.0-placeholder-for-preset-env.2" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: d97745d098b835d55033ff3a7fb2b895b9c5295b08a5759e4f20df325aa385a3e0bc9bd5ad8f2ec554a44d4e6525acfc257b8c5848a1345cb40f26a30e277e91 + languageName: node + linkType: hard + +"@babel/plugin-syntax-async-generators@npm:^7.8.4": + version: 7.8.4 + resolution: "@babel/plugin-syntax-async-generators@npm:7.8.4" + dependencies: + "@babel/helper-plugin-utils": ^7.8.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 7ed1c1d9b9e5b64ef028ea5e755c0be2d4e5e4e3d6cf7df757b9a8c4cfa4193d268176d0f1f7fbecdda6fe722885c7fda681f480f3741d8a2d26854736f05367 + languageName: node + linkType: hard + +"@babel/plugin-syntax-class-properties@npm:^7.12.13": + version: 7.12.13 + resolution: "@babel/plugin-syntax-class-properties@npm:7.12.13" + dependencies: + "@babel/helper-plugin-utils": ^7.12.13 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 24f34b196d6342f28d4bad303612d7ff566ab0a013ce89e775d98d6f832969462e7235f3e7eaf17678a533d4be0ba45d3ae34ab4e5a9dcbda5d98d49e5efa2fc + languageName: node + linkType: hard + +"@babel/plugin-syntax-class-static-block@npm:^7.14.5": + version: 7.14.5 + resolution: "@babel/plugin-syntax-class-static-block@npm:7.14.5" + dependencies: + "@babel/helper-plugin-utils": ^7.14.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 3e80814b5b6d4fe17826093918680a351c2d34398a914ce6e55d8083d72a9bdde4fbaf6a2dcea0e23a03de26dc2917ae3efd603d27099e2b98380345703bf948 + languageName: node + linkType: hard + +"@babel/plugin-syntax-dynamic-import@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-dynamic-import@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": ^7.8.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: ce307af83cf433d4ec42932329fad25fa73138ab39c7436882ea28742e1c0066626d224e0ad2988724c82644e41601cef607b36194f695cb78a1fcdc959637bd + languageName: node + linkType: hard + +"@babel/plugin-syntax-export-namespace-from@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-export-namespace-from@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": ^7.8.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 85740478be5b0de185228e7814451d74ab8ce0a26fcca7613955262a26e99e8e15e9da58f60c754b84515d4c679b590dbd3f2148f0f58025f4ae706f1c5a5d4a + languageName: node + linkType: hard + +"@babel/plugin-syntax-import-assertions@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-syntax-import-assertions@npm:7.24.1" + dependencies: + "@babel/helper-plugin-utils": ^7.24.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 2a463928a63b62052e9fb8f8b0018aa11a926e94f32c168260ae012afe864875c6176c6eb361e13f300542c31316dad791b08a5b8ed92436a3095c7a0e4fce65 + languageName: node + linkType: hard + +"@babel/plugin-syntax-import-attributes@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-syntax-import-attributes@npm:7.24.1" + dependencies: + "@babel/helper-plugin-utils": ^7.24.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 87c8aa4a5ef931313f956871b27f2c051556f627b97ed21e9a5890ca4906b222d89062a956cde459816f5e0dec185ff128d7243d3fdc389504522acb88f0464e + languageName: node + linkType: hard + +"@babel/plugin-syntax-import-meta@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/plugin-syntax-import-meta@npm:7.10.4" + dependencies: + "@babel/helper-plugin-utils": ^7.10.4 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 166ac1125d10b9c0c430e4156249a13858c0366d38844883d75d27389621ebe651115cb2ceb6dc011534d5055719fa1727b59f39e1ab3ca97820eef3dcab5b9b + languageName: node + linkType: hard + +"@babel/plugin-syntax-json-strings@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-json-strings@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": ^7.8.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: bf5aea1f3188c9a507e16efe030efb996853ca3cadd6512c51db7233cc58f3ac89ff8c6bdfb01d30843b161cfe7d321e1bf28da82f7ab8d7e6bc5464666f354a + languageName: node + linkType: hard + +"@babel/plugin-syntax-jsx@npm:^7.23.3, @babel/plugin-syntax-jsx@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-syntax-jsx@npm:7.24.1" + dependencies: + "@babel/helper-plugin-utils": ^7.24.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 712f7e7918cb679f106769f57cfab0bc99b311032665c428b98f4c3e2e6d567601d45386a4f246df6a80d741e1f94192b3f008800d66c4f1daae3ad825c243f0 + languageName: node + linkType: hard + +"@babel/plugin-syntax-logical-assignment-operators@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/plugin-syntax-logical-assignment-operators@npm:7.10.4" + dependencies: + "@babel/helper-plugin-utils": ^7.10.4 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: aff33577037e34e515911255cdbb1fd39efee33658aa00b8a5fd3a4b903585112d037cce1cc9e4632f0487dc554486106b79ccd5ea63a2e00df4363f6d4ff886 + languageName: node + linkType: hard + +"@babel/plugin-syntax-nullish-coalescing-operator@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-nullish-coalescing-operator@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": ^7.8.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 87aca4918916020d1fedba54c0e232de408df2644a425d153be368313fdde40d96088feed6c4e5ab72aac89be5d07fef2ddf329a15109c5eb65df006bf2580d1 + languageName: node + linkType: hard + +"@babel/plugin-syntax-numeric-separator@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/plugin-syntax-numeric-separator@npm:7.10.4" + dependencies: + "@babel/helper-plugin-utils": ^7.10.4 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 01ec5547bd0497f76cc903ff4d6b02abc8c05f301c88d2622b6d834e33a5651aa7c7a3d80d8d57656a4588f7276eba357f6b7e006482f5b564b7a6488de493a1 + languageName: node + linkType: hard + +"@babel/plugin-syntax-object-rest-spread@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-object-rest-spread@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": ^7.8.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: fddcf581a57f77e80eb6b981b10658421bc321ba5f0a5b754118c6a92a5448f12a0c336f77b8abf734841e102e5126d69110a306eadb03ca3e1547cab31f5cbf + languageName: node + linkType: hard + +"@babel/plugin-syntax-optional-catch-binding@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-optional-catch-binding@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": ^7.8.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 910d90e72bc90ea1ce698e89c1027fed8845212d5ab588e35ef91f13b93143845f94e2539d831dc8d8ededc14ec02f04f7bd6a8179edd43a326c784e7ed7f0b9 + languageName: node + linkType: hard + +"@babel/plugin-syntax-optional-chaining@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-optional-chaining@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": ^7.8.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: eef94d53a1453361553c1f98b68d17782861a04a392840341bc91780838dd4e695209c783631cf0de14c635758beafb6a3a65399846ffa4386bff90639347f30 + languageName: node + linkType: hard + +"@babel/plugin-syntax-private-property-in-object@npm:^7.14.5": + version: 7.14.5 + resolution: "@babel/plugin-syntax-private-property-in-object@npm:7.14.5" + dependencies: + "@babel/helper-plugin-utils": ^7.14.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: b317174783e6e96029b743ccff2a67d63d38756876e7e5d0ba53a322e38d9ca452c13354a57de1ad476b4c066dbae699e0ca157441da611117a47af88985ecda + languageName: node + linkType: hard + +"@babel/plugin-syntax-top-level-await@npm:^7.14.5": + version: 7.14.5 + resolution: "@babel/plugin-syntax-top-level-await@npm:7.14.5" + dependencies: + "@babel/helper-plugin-utils": ^7.14.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: bbd1a56b095be7820029b209677b194db9b1d26691fe999856462e66b25b281f031f3dfd91b1619e9dcf95bebe336211833b854d0fb8780d618e35667c2d0d7e + languageName: node + linkType: hard + +"@babel/plugin-syntax-typescript@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-syntax-typescript@npm:7.24.1" + dependencies: + "@babel/helper-plugin-utils": ^7.24.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: bf4bd70788d5456b5f75572e47a2e31435c7c4e43609bd4dffd2cc0c7a6cf90aabcf6cd389e351854de9a64412a07d30effef5373251fe8f6a4c9db0c0163bda + languageName: node + linkType: hard + +"@babel/plugin-syntax-unicode-sets-regex@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-syntax-unicode-sets-regex@npm:7.18.6" + dependencies: + "@babel/helper-create-regexp-features-plugin": ^7.18.6 + "@babel/helper-plugin-utils": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: a651d700fe63ff0ddfd7186f4ebc24447ca734f114433139e3c027bc94a900d013cf1ef2e2db8430425ba542e39ae160c3b05f06b59fd4656273a3df97679e9c + languageName: node + linkType: hard + +"@babel/plugin-transform-arrow-functions@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-arrow-functions@npm:7.24.1" + dependencies: + "@babel/helper-plugin-utils": ^7.24.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 58f9aa9b0de8382f8cfa3f1f1d40b69d98cd2f52340e2391733d0af745fdddda650ba392e509bc056157c880a2f52834a38ab2c5aa5569af8c61bb6ecbf45f34 + languageName: node + linkType: hard + +"@babel/plugin-transform-async-generator-functions@npm:^7.24.3": + version: 7.24.3 + resolution: "@babel/plugin-transform-async-generator-functions@npm:7.24.3" + dependencies: + "@babel/helper-environment-visitor": ^7.22.20 + "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-remap-async-to-generator": ^7.22.20 + "@babel/plugin-syntax-async-generators": ^7.8.4 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 309af02610be65d937664435adb432a32d9b6eb42bb3d3232c377d27fbc57014774d931665a5bfdaff3d1841b72659e0ad7adcef84b709f251cb0b8444f19214 + languageName: node + linkType: hard + +"@babel/plugin-transform-async-to-generator@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-async-to-generator@npm:7.24.1" + dependencies: + "@babel/helper-module-imports": ^7.24.1 + "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-remap-async-to-generator": ^7.22.20 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 429004a6596aa5c9e707b604156f49a146f8d029e31a3152b1649c0b56425264fda5fd38e5db1ddaeb33c3fe45c97dc8078d7abfafe3542a979b49f229801135 + languageName: node + linkType: hard + +"@babel/plugin-transform-block-scoped-functions@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.24.1" + dependencies: + "@babel/helper-plugin-utils": ^7.24.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: d8e18bd57b156da1cd4d3c1780ab9ea03afed56c6824ca8e6e74f67959d7989a0e953ec370fe9b417759314f2eef30c8c437395ce63ada2e26c2f469e4704f82 + languageName: node + linkType: hard + +"@babel/plugin-transform-block-scoping@npm:^7.24.5": + version: 7.24.5 + resolution: "@babel/plugin-transform-block-scoping@npm:7.24.5" + dependencies: + "@babel/helper-plugin-utils": ^7.24.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 898c91efc0f8ac8e2a8d3ece36edf0001963bcf5bbeefe9bf798ac36318a33f366e88a24a90bf7c39a7aeb1593846b720ed9a9ba56709d27279f7ba61c5e43c4 + languageName: node + linkType: hard + +"@babel/plugin-transform-class-properties@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-class-properties@npm:7.24.1" + dependencies: + "@babel/helper-create-class-features-plugin": ^7.24.1 + "@babel/helper-plugin-utils": ^7.24.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 95779e9eef0c0638b9631c297d48aee53ffdbb2b1b5221bf40d7eccd566a8e34f859ff3571f8f20b9159b67f1bff7d7dc81da191c15d69fbae5a645197eae7e0 + languageName: node + linkType: hard + +"@babel/plugin-transform-class-static-block@npm:^7.24.4": + version: 7.24.4 + resolution: "@babel/plugin-transform-class-static-block@npm:7.24.4" + dependencies: + "@babel/helper-create-class-features-plugin": ^7.24.4 + "@babel/helper-plugin-utils": ^7.24.0 + "@babel/plugin-syntax-class-static-block": ^7.14.5 + peerDependencies: + "@babel/core": ^7.12.0 + checksum: 3b1db3308b57ba21d47772a9f183804234c23fd64c9ca40915d2d65c5dc7a48b49a6de16b8b90b7a354eacbb51232a862f0fca3dbd23e27d34641f511decddab + languageName: node + linkType: hard + +"@babel/plugin-transform-classes@npm:^7.24.5": + version: 7.24.5 + resolution: "@babel/plugin-transform-classes@npm:7.24.5" + dependencies: + "@babel/helper-annotate-as-pure": ^7.22.5 + "@babel/helper-compilation-targets": ^7.23.6 + "@babel/helper-environment-visitor": ^7.22.20 + "@babel/helper-function-name": ^7.23.0 + "@babel/helper-plugin-utils": ^7.24.5 + "@babel/helper-replace-supers": ^7.24.1 + "@babel/helper-split-export-declaration": ^7.24.5 + globals: ^11.1.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 797bf2bda770148d3ee43e305e1aea26fa16ca78eb81eaaeb95b441428f52e0d12dd98e93f00bda3b65bbfde3001006995725ce911587efdef0465c41bd0a3f3 + languageName: node + linkType: hard + +"@babel/plugin-transform-computed-properties@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-computed-properties@npm:7.24.1" + dependencies: + "@babel/helper-plugin-utils": ^7.24.0 + "@babel/template": ^7.24.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: f2832bcf100a70f348facbb395873318ef5b9ee4b0fb4104a420d9daaeb6003cc2ecc12fd8083dd2e4a7c2da873272ad73ff94de4497125a0cf473294ef9664e + languageName: node + linkType: hard + +"@babel/plugin-transform-destructuring@npm:^7.24.5": + version: 7.24.5 + resolution: "@babel/plugin-transform-destructuring@npm:7.24.5" + dependencies: + "@babel/helper-plugin-utils": ^7.24.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: c5def67de09315cd38895c021ee7d02fd53fed596924512c33196ceed143b88f1ea76e4ac777a55bbb9db49be8b63aafb22b12e7d5c7f3051f14caa07e8d4023 + languageName: node + linkType: hard + +"@babel/plugin-transform-dotall-regex@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-dotall-regex@npm:7.24.1" + dependencies: + "@babel/helper-create-regexp-features-plugin": ^7.22.15 + "@babel/helper-plugin-utils": ^7.24.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 7f623d25b6f213b94ebc1754e9e31c1077c8e288626d8b7bfa76a97b067ce80ddcd0ede402a546706c65002c0ccf45cd5ec621511c2668eed31ebcabe8391d35 + languageName: node + linkType: hard + +"@babel/plugin-transform-duplicate-keys@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-duplicate-keys@npm:7.24.1" + dependencies: + "@babel/helper-plugin-utils": ^7.24.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: a3b07c07cee441e185858a9bb9739bb72643173c18bf5f9f949dd2d4784ca124e56b01d0a270790fb1ff0cf75d436075db0a2b643fb4285ff9a21df9e8dc6284 + languageName: node + linkType: hard + +"@babel/plugin-transform-dynamic-import@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-dynamic-import@npm:7.24.1" + dependencies: + "@babel/helper-plugin-utils": ^7.24.0 + "@babel/plugin-syntax-dynamic-import": ^7.8.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 59fc561ee40b1a69f969c12c6c5fac206226d6642213985a569dd0f99f8e41c0f4eaedebd36936c255444a8335079842274c42a975a433beadb436d4c5abb79b + languageName: node + linkType: hard + +"@babel/plugin-transform-exponentiation-operator@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.24.1" + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor": ^7.22.15 + "@babel/helper-plugin-utils": ^7.24.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: f90841fe1a1e9f680b4209121d3e2992f923e85efcd322b26e5901c180ef44ff727fb89790803a23fac49af34c1ce2e480018027c22b4573b615512ac5b6fc50 + languageName: node + linkType: hard + +"@babel/plugin-transform-export-namespace-from@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-export-namespace-from@npm:7.24.1" + dependencies: + "@babel/helper-plugin-utils": ^7.24.0 + "@babel/plugin-syntax-export-namespace-from": ^7.8.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: bc710ac231919df9555331885748385c11c5e695d7271824fe56fba51dd637d48d3e5cd52e1c69f2b1a384fbbb41552572bc1ca3a2285ee29571f002e9bb2421 + languageName: node + linkType: hard + +"@babel/plugin-transform-for-of@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-for-of@npm:7.24.1" + dependencies: + "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 990adde96ea1766ed6008c006c7040127bef59066533bb2977b246ea4a596fe450a528d1881a0db5f894deaf1b81654dfb494b19ad405b369be942738aa9c364 + languageName: node + linkType: hard + +"@babel/plugin-transform-function-name@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-function-name@npm:7.24.1" + dependencies: + "@babel/helper-compilation-targets": ^7.23.6 + "@babel/helper-function-name": ^7.23.0 + "@babel/helper-plugin-utils": ^7.24.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 31eb3c75297dda7265f78eba627c446f2324e30ec0124a645ccc3e9f341254aaa40d6787bd62b2280d77c0a5c9fbfce1da2c200ef7c7f8e0a1b16a8eb3644c6f + languageName: node + linkType: hard + +"@babel/plugin-transform-json-strings@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-json-strings@npm:7.24.1" + dependencies: + "@babel/helper-plugin-utils": ^7.24.0 + "@babel/plugin-syntax-json-strings": ^7.8.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: f42302d42fc81ac00d14e9e5d80405eb80477d7f9039d7208e712d6bcd486a4e3b32fdfa07b5f027d6c773723d8168193ee880f93b0e430c828e45f104fb82a4 + languageName: node + linkType: hard + +"@babel/plugin-transform-literals@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-literals@npm:7.24.1" + dependencies: + "@babel/helper-plugin-utils": ^7.24.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 2df94e9478571852483aca7588419e574d76bde97583e78551c286f498e01321e7dbb1d0ef67bee16e8f950688f79688809cfde370c5c4b84c14d841a3ef217a + languageName: node + linkType: hard + +"@babel/plugin-transform-logical-assignment-operators@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.24.1" + dependencies: + "@babel/helper-plugin-utils": ^7.24.0 + "@babel/plugin-syntax-logical-assignment-operators": ^7.10.4 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 895f2290adf457cbf327428bdb4fb90882a38a22f729bcf0629e8ad66b9b616d2721fbef488ac00411b647489d1dda1d20171bb3772d0796bb7ef5ecf057808a + languageName: node + linkType: hard + +"@babel/plugin-transform-member-expression-literals@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-member-expression-literals@npm:7.24.1" + dependencies: + "@babel/helper-plugin-utils": ^7.24.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 4ea641cc14a615f9084e45ad2319f95e2fee01c77ec9789685e7e11a6c286238a426a98f9c1ed91568a047d8ac834393e06e8c82d1ff01764b7aa61bee8e9023 + languageName: node + linkType: hard + +"@babel/plugin-transform-modules-amd@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-modules-amd@npm:7.24.1" + dependencies: + "@babel/helper-module-transforms": ^7.23.3 + "@babel/helper-plugin-utils": ^7.24.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 3d777c262f257e93f0405b13e178f9c4a0f31855b409f0191a76bb562a28c541326a027bfe6467fcb74752f3488c0333b5ff2de64feec1b3c4c6ace1747afa03 + languageName: node + linkType: hard + +"@babel/plugin-transform-modules-commonjs@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-modules-commonjs@npm:7.24.1" + dependencies: + "@babel/helper-module-transforms": ^7.23.3 + "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-simple-access": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 11402b34c49f76aa921b43c2d76f3f129a32544a1dc4f0d1e48b310f9036ab75269a6d8684ed0198b7a0b07bd7898b12f0cacceb26fbb167999fd2a819aa0802 + languageName: node + linkType: hard + +"@babel/plugin-transform-modules-systemjs@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-modules-systemjs@npm:7.24.1" + dependencies: + "@babel/helper-hoist-variables": ^7.22.5 + "@babel/helper-module-transforms": ^7.23.3 + "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-validator-identifier": ^7.22.20 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 903766f6808f04278e887e4adec9b1efa741726279652dad255eaad0f5701df8f8ff0af25eb8541a00eb3c9eae2dccf337b085cfa011426ca33ed1f95d70bf75 + languageName: node + linkType: hard + +"@babel/plugin-transform-modules-umd@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-modules-umd@npm:7.24.1" + dependencies: + "@babel/helper-module-transforms": ^7.23.3 + "@babel/helper-plugin-utils": ^7.24.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 4922f5056d34de6fd59a1ab1c85bc3472afa706c776aceeb886289c9ac9117e6eb8e22d06c537eb5bc0ede6c30f6bd85210bdcc150dc0ae2d2373f8252df9364 + languageName: node + linkType: hard + +"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.22.5" + dependencies: + "@babel/helper-create-regexp-features-plugin": ^7.22.5 + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 3ee564ddee620c035b928fdc942c5d17e9c4b98329b76f9cefac65c111135d925eb94ed324064cd7556d4f5123beec79abea1d4b97d1c8a2a5c748887a2eb623 + languageName: node + linkType: hard + +"@babel/plugin-transform-new-target@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-new-target@npm:7.24.1" + dependencies: + "@babel/helper-plugin-utils": ^7.24.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: f56159ba56e8824840b8073f65073434e4bc4ef20e366bc03aa6cae9a4389365574fa72390e48aed76049edbc6eba1181eb810e58fae22c25946c62f9da13db4 + languageName: node + linkType: hard + +"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.24.1" + dependencies: + "@babel/helper-plugin-utils": ^7.24.0 + "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 74025e191ceb7cefc619c15d33753aab81300a03d81b96ae249d9b599bc65878f962d608f452462d3aad5d6e334b7ab2b09a6bdcfe8d101fe77ac7aacca4261e + languageName: node + linkType: hard + +"@babel/plugin-transform-numeric-separator@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-numeric-separator@npm:7.24.1" + dependencies: + "@babel/helper-plugin-utils": ^7.24.0 + "@babel/plugin-syntax-numeric-separator": ^7.10.4 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 3247bd7d409574fc06c59e0eb573ae7470d6d61ecf780df40b550102bb4406747d8f39dcbec57eb59406df6c565a86edd3b429e396ad02e4ce201ad92050832e + languageName: node + linkType: hard + +"@babel/plugin-transform-object-rest-spread@npm:^7.24.5": + version: 7.24.5 + resolution: "@babel/plugin-transform-object-rest-spread@npm:7.24.5" + dependencies: + "@babel/helper-compilation-targets": ^7.23.6 + "@babel/helper-plugin-utils": ^7.24.5 + "@babel/plugin-syntax-object-rest-spread": ^7.8.3 + "@babel/plugin-transform-parameters": ^7.24.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 427705fe1358ca4862e6cfbfc174dc0fbfdd640b786cfe759dd4881cfb2fd51723e8432ecd89f07a60444e555a9c19e0e7bf4c657b91844994b39a53a602eb16 + languageName: node + linkType: hard + +"@babel/plugin-transform-object-super@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-object-super@npm:7.24.1" + dependencies: + "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-replace-supers": ^7.24.1 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: d34d437456a54e2a5dcb26e9cf09ed4c55528f2a327c5edca92c93e9483c37176e228d00d6e0cf767f3d6fdbef45ae3a5d034a7c59337a009e20ae541c8220fa + languageName: node + linkType: hard + +"@babel/plugin-transform-optional-catch-binding@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.24.1" + dependencies: + "@babel/helper-plugin-utils": ^7.24.0 + "@babel/plugin-syntax-optional-catch-binding": ^7.8.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: ff7c02449d32a6de41e003abb38537b4a1ad90b1eaa4c0b578cb1b55548201a677588a8c47f3e161c72738400ae811a6673ea7b8a734344755016ca0ac445dac + languageName: node + linkType: hard + +"@babel/plugin-transform-optional-chaining@npm:^7.24.1, @babel/plugin-transform-optional-chaining@npm:^7.24.5": + version: 7.24.5 + resolution: "@babel/plugin-transform-optional-chaining@npm:7.24.5" + dependencies: + "@babel/helper-plugin-utils": ^7.24.5 + "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 + "@babel/plugin-syntax-optional-chaining": ^7.8.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 233934463ef1f9a02a9fda96c722e9c162477fd94816a58413f0d4165cc536c7af0482b46fe066e754748a20bbabec255b4bbde194a7fd20b32280e526e1bfec + languageName: node + linkType: hard + +"@babel/plugin-transform-parameters@npm:^7.24.5": + version: 7.24.5 + resolution: "@babel/plugin-transform-parameters@npm:7.24.5" + dependencies: + "@babel/helper-plugin-utils": ^7.24.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: b052e1cf43b1ea571fc0867baa01041ce32f46576b711c6331f03263ae479a582f81a6039287535cd90ee46d2977e2f3c66f5bdbf454a9f8cdc7c5c6c67b50be + languageName: node + linkType: hard + +"@babel/plugin-transform-private-methods@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-private-methods@npm:7.24.1" + dependencies: + "@babel/helper-create-class-features-plugin": ^7.24.1 + "@babel/helper-plugin-utils": ^7.24.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 7208c30bb3f3fbc73fb3a88bdcb78cd5cddaf6d523eb9d67c0c04e78f6fc6319ece89f4a5abc41777ceab16df55b3a13a4120e0efc9275ca6d2d89beaba80aa0 + languageName: node + linkType: hard + +"@babel/plugin-transform-private-property-in-object@npm:^7.24.5": + version: 7.24.5 + resolution: "@babel/plugin-transform-private-property-in-object@npm:7.24.5" + dependencies: + "@babel/helper-annotate-as-pure": ^7.22.5 + "@babel/helper-create-class-features-plugin": ^7.24.5 + "@babel/helper-plugin-utils": ^7.24.5 + "@babel/plugin-syntax-private-property-in-object": ^7.14.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 59f9007671f50ef8f9eff33bb2dc3de22a2849612d4b64fc9e4ba502466ddbaf3f94774011695dde5128c4ca2009e241babe928ac63f71a29f27c1cc7ce01e5f + languageName: node + linkType: hard + +"@babel/plugin-transform-property-literals@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-property-literals@npm:7.24.1" + dependencies: + "@babel/helper-plugin-utils": ^7.24.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: a73646d7ecd95b3931a3ead82c7d5efeb46e68ba362de63eb437d33531f294ec18bd31b6d24238cd3b6a3b919a6310c4a0ba4a2629927721d4d10b0518eb7715 + languageName: node + linkType: hard + +"@babel/plugin-transform-react-constant-elements@npm:^7.21.3": + version: 7.24.1 + resolution: "@babel/plugin-transform-react-constant-elements@npm:7.24.1" + dependencies: + "@babel/helper-plugin-utils": ^7.24.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 37fd10113b786a2462cf15366aa3a11a2a5bdba9bf8881b2544941f5ad6175ebc31116be5a53549c9fce56a08ded6e0b57adb45d6e42efb55d3bc0ff7afdd433 + languageName: node + linkType: hard + +"@babel/plugin-transform-react-display-name@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-react-display-name@npm:7.24.1" + dependencies: + "@babel/helper-plugin-utils": ^7.24.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: d87ac36073f923a25de0ed3cffac067ec5abc4cde63f7f4366881388fbea6dcbced0e4fefd3b7e99edfe58a4ce32ea4d4c523a577d2b9f0515b872ed02b3d8c3 + languageName: node + linkType: hard + +"@babel/plugin-transform-react-jsx-development@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-react-jsx-development@npm:7.22.5" + dependencies: + "@babel/plugin-transform-react-jsx": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 36bc3ff0b96bb0ef4723070a50cfdf2e72cfd903a59eba448f9fe92fea47574d6f22efd99364413719e1f3fb3c51b6c9b2990b87af088f8486a84b2a5f9e4560 + languageName: node + linkType: hard + +"@babel/plugin-transform-react-jsx@npm:^7.22.5, @babel/plugin-transform-react-jsx@npm:^7.23.4": + version: 7.23.4 + resolution: "@babel/plugin-transform-react-jsx@npm:7.23.4" + dependencies: + "@babel/helper-annotate-as-pure": ^7.22.5 + "@babel/helper-module-imports": ^7.22.15 + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/plugin-syntax-jsx": ^7.23.3 + "@babel/types": ^7.23.4 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: d8b8c52e8e22e833bf77c8d1a53b0a57d1fd52ba9596a319d572de79446a8ed9d95521035bc1175c1589d1a6a34600d2e678fa81d81bac8fac121137097f1f0a + languageName: node + linkType: hard + +"@babel/plugin-transform-react-pure-annotations@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-react-pure-annotations@npm:7.24.1" + dependencies: + "@babel/helper-annotate-as-pure": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 06a6bfe80f1f36408d07dd80c48cf9f61177c8e5d814e80ddbe88cfad81a8b86b3110e1fe9d1ac943db77e74497daa7f874b5490c788707106ad26ecfbe44813 + languageName: node + linkType: hard + +"@babel/plugin-transform-regenerator@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-regenerator@npm:7.24.1" + dependencies: + "@babel/helper-plugin-utils": ^7.24.0 + regenerator-transform: ^0.15.2 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: a04319388a0a7931c3f8e15715d01444c32519692178b70deccc86d53304e74c0f589a4268f6c68578d86f75e934dd1fe6e6ed9071f54ee8379f356f88ef6e42 + languageName: node + linkType: hard + +"@babel/plugin-transform-reserved-words@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-reserved-words@npm:7.24.1" + dependencies: + "@babel/helper-plugin-utils": ^7.24.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 132c6040c65aabae2d98a39289efb5c51a8632546dc50d2ad032c8660aec307fbed74ef499856ea4f881fc8505905f49b48e0270585da2ea3d50b75e962afd89 + languageName: node + linkType: hard + +"@babel/plugin-transform-runtime@npm:^7.22.9": + version: 7.24.3 + resolution: "@babel/plugin-transform-runtime@npm:7.24.3" + dependencies: + "@babel/helper-module-imports": ^7.24.3 + "@babel/helper-plugin-utils": ^7.24.0 + babel-plugin-polyfill-corejs2: ^0.4.10 + babel-plugin-polyfill-corejs3: ^0.10.1 + babel-plugin-polyfill-regenerator: ^0.6.1 + semver: ^6.3.1 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 719112524e6fe3e665385ad4425530dadb2ddee839023381ed9d77edf5ce2748f32cc0e38dacda1990c56a7ae0af4de6cdca2413ffaf307e9f75f8d2200d09a2 + languageName: node + linkType: hard + +"@babel/plugin-transform-shorthand-properties@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-shorthand-properties@npm:7.24.1" + dependencies: + "@babel/helper-plugin-utils": ^7.24.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 006a2032d1c57dca76579ce6598c679c2f20525afef0a36e9d42affe3c8cf33c1427581ad696b519cc75dfee46c5e8ecdf0c6a29ffb14250caa3e16dd68cb424 + languageName: node + linkType: hard + +"@babel/plugin-transform-spread@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-spread@npm:7.24.1" + dependencies: + "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 622ef507e2b5120a9010b25d3df5186c06102ecad8751724a38ec924df8d3527688198fa490c47064eabba14ef2f961b3069855bd22a8c0a1e51a23eed348d02 + languageName: node + linkType: hard + +"@babel/plugin-transform-sticky-regex@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-sticky-regex@npm:7.24.1" + dependencies: + "@babel/helper-plugin-utils": ^7.24.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: e326e96a9eeb6bb01dbc4d3362f989411490671b97f62edf378b8fb102c463a018b777f28da65344d41b22aa6efcdfa01ed43d2b11fdcf202046d3174be137c5 + languageName: node + linkType: hard + +"@babel/plugin-transform-template-literals@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-template-literals@npm:7.24.1" + dependencies: + "@babel/helper-plugin-utils": ^7.24.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 4c9009c72321caf20e3b6328bbe9d7057006c5ae57b794cf247a37ca34d87dfec5e27284169a16df5a6235a083bf0f3ab9e1bfcb005d1c8b75b04aed75652621 + languageName: node + linkType: hard + +"@babel/plugin-transform-typeof-symbol@npm:^7.24.5": + version: 7.24.5 + resolution: "@babel/plugin-transform-typeof-symbol@npm:7.24.5" + dependencies: + "@babel/helper-plugin-utils": ^7.24.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 35504219e4e8b361dbd285400c846f154754e591e931cd30dbe1426a619e41ed0c410b26dd173824ed3a2ff0371d64213ae2304b6f169b32e78b004114f5acd5 + languageName: node + linkType: hard + +"@babel/plugin-transform-typescript@npm:^7.24.1": + version: 7.24.5 + resolution: "@babel/plugin-transform-typescript@npm:7.24.5" + dependencies: + "@babel/helper-annotate-as-pure": ^7.22.5 + "@babel/helper-create-class-features-plugin": ^7.24.5 + "@babel/helper-plugin-utils": ^7.24.5 + "@babel/plugin-syntax-typescript": ^7.24.1 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: a18b16c73ac0bb2d57aee95dd1619735bae1cee5c289aa60bafe4f72ddce920b743224f5a618157173fbb4fda63d4a5649ba52485fe72f7515d7257d115df057 + languageName: node + linkType: hard + +"@babel/plugin-transform-unicode-escapes@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-unicode-escapes@npm:7.24.1" + dependencies: + "@babel/helper-plugin-utils": ^7.24.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: d4d7cfea91af7be2768fb6bed902e00d6e3190bda738b5149c3a788d570e6cf48b974ec9548442850308ecd8fc9a67681f4ea8403129e7867bcb85adaf6ec238 + languageName: node + linkType: hard + +"@babel/plugin-transform-unicode-property-regex@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.24.1" + dependencies: + "@babel/helper-create-regexp-features-plugin": ^7.22.15 + "@babel/helper-plugin-utils": ^7.24.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 276099b4483e707f80b054e2d29bc519158bfe52461ef5ff76f70727d592df17e30b1597ef4d8a0f04d810f6cb5a8dd887bdc1d0540af3744751710ef280090f + languageName: node + linkType: hard + +"@babel/plugin-transform-unicode-regex@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-unicode-regex@npm:7.24.1" + dependencies: + "@babel/helper-create-regexp-features-plugin": ^7.22.15 + "@babel/helper-plugin-utils": ^7.24.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 400a0927bdb1425b4c0dc68a61b5b2d7d17c7d9f0e07317a1a6a373c080ef94be1dd65fdc4ac9a78fcdb58f89fd128450c7bc0d5b8ca0ae7eca3fbd98e50acba + languageName: node + linkType: hard + +"@babel/plugin-transform-unicode-sets-regex@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.24.1" + dependencies: + "@babel/helper-create-regexp-features-plugin": ^7.22.15 + "@babel/helper-plugin-utils": ^7.24.0 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 364342fb8e382dfaa23628b88e6484dc1097e53fb7199f4d338f1e2cd71d839bb0a35a9b1380074f6a10adb2e98b79d53ca3ec78c0b8c557ca895ffff42180df + languageName: node + linkType: hard + +"@babel/preset-env@npm:^7.20.2, @babel/preset-env@npm:^7.22.9": + version: 7.24.5 + resolution: "@babel/preset-env@npm:7.24.5" + dependencies: + "@babel/compat-data": ^7.24.4 + "@babel/helper-compilation-targets": ^7.23.6 + "@babel/helper-plugin-utils": ^7.24.5 + "@babel/helper-validator-option": ^7.23.5 + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": ^7.24.5 + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": ^7.24.1 + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": ^7.24.1 + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": ^7.24.1 + "@babel/plugin-proposal-private-property-in-object": 7.21.0-placeholder-for-preset-env.2 + "@babel/plugin-syntax-async-generators": ^7.8.4 + "@babel/plugin-syntax-class-properties": ^7.12.13 + "@babel/plugin-syntax-class-static-block": ^7.14.5 + "@babel/plugin-syntax-dynamic-import": ^7.8.3 + "@babel/plugin-syntax-export-namespace-from": ^7.8.3 + "@babel/plugin-syntax-import-assertions": ^7.24.1 + "@babel/plugin-syntax-import-attributes": ^7.24.1 + "@babel/plugin-syntax-import-meta": ^7.10.4 + "@babel/plugin-syntax-json-strings": ^7.8.3 + "@babel/plugin-syntax-logical-assignment-operators": ^7.10.4 + "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3 + "@babel/plugin-syntax-numeric-separator": ^7.10.4 + "@babel/plugin-syntax-object-rest-spread": ^7.8.3 + "@babel/plugin-syntax-optional-catch-binding": ^7.8.3 + "@babel/plugin-syntax-optional-chaining": ^7.8.3 + "@babel/plugin-syntax-private-property-in-object": ^7.14.5 + "@babel/plugin-syntax-top-level-await": ^7.14.5 + "@babel/plugin-syntax-unicode-sets-regex": ^7.18.6 + "@babel/plugin-transform-arrow-functions": ^7.24.1 + "@babel/plugin-transform-async-generator-functions": ^7.24.3 + "@babel/plugin-transform-async-to-generator": ^7.24.1 + "@babel/plugin-transform-block-scoped-functions": ^7.24.1 + "@babel/plugin-transform-block-scoping": ^7.24.5 + "@babel/plugin-transform-class-properties": ^7.24.1 + "@babel/plugin-transform-class-static-block": ^7.24.4 + "@babel/plugin-transform-classes": ^7.24.5 + "@babel/plugin-transform-computed-properties": ^7.24.1 + "@babel/plugin-transform-destructuring": ^7.24.5 + "@babel/plugin-transform-dotall-regex": ^7.24.1 + "@babel/plugin-transform-duplicate-keys": ^7.24.1 + "@babel/plugin-transform-dynamic-import": ^7.24.1 + "@babel/plugin-transform-exponentiation-operator": ^7.24.1 + "@babel/plugin-transform-export-namespace-from": ^7.24.1 + "@babel/plugin-transform-for-of": ^7.24.1 + "@babel/plugin-transform-function-name": ^7.24.1 + "@babel/plugin-transform-json-strings": ^7.24.1 + "@babel/plugin-transform-literals": ^7.24.1 + "@babel/plugin-transform-logical-assignment-operators": ^7.24.1 + "@babel/plugin-transform-member-expression-literals": ^7.24.1 + "@babel/plugin-transform-modules-amd": ^7.24.1 + "@babel/plugin-transform-modules-commonjs": ^7.24.1 + "@babel/plugin-transform-modules-systemjs": ^7.24.1 + "@babel/plugin-transform-modules-umd": ^7.24.1 + "@babel/plugin-transform-named-capturing-groups-regex": ^7.22.5 + "@babel/plugin-transform-new-target": ^7.24.1 + "@babel/plugin-transform-nullish-coalescing-operator": ^7.24.1 + "@babel/plugin-transform-numeric-separator": ^7.24.1 + "@babel/plugin-transform-object-rest-spread": ^7.24.5 + "@babel/plugin-transform-object-super": ^7.24.1 + "@babel/plugin-transform-optional-catch-binding": ^7.24.1 + "@babel/plugin-transform-optional-chaining": ^7.24.5 + "@babel/plugin-transform-parameters": ^7.24.5 + "@babel/plugin-transform-private-methods": ^7.24.1 + "@babel/plugin-transform-private-property-in-object": ^7.24.5 + "@babel/plugin-transform-property-literals": ^7.24.1 + "@babel/plugin-transform-regenerator": ^7.24.1 + "@babel/plugin-transform-reserved-words": ^7.24.1 + "@babel/plugin-transform-shorthand-properties": ^7.24.1 + "@babel/plugin-transform-spread": ^7.24.1 + "@babel/plugin-transform-sticky-regex": ^7.24.1 + "@babel/plugin-transform-template-literals": ^7.24.1 + "@babel/plugin-transform-typeof-symbol": ^7.24.5 + "@babel/plugin-transform-unicode-escapes": ^7.24.1 + "@babel/plugin-transform-unicode-property-regex": ^7.24.1 + "@babel/plugin-transform-unicode-regex": ^7.24.1 + "@babel/plugin-transform-unicode-sets-regex": ^7.24.1 + "@babel/preset-modules": 0.1.6-no-external-plugins + babel-plugin-polyfill-corejs2: ^0.4.10 + babel-plugin-polyfill-corejs3: ^0.10.4 + babel-plugin-polyfill-regenerator: ^0.6.1 + core-js-compat: ^3.31.0 + semver: ^6.3.1 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: cced4e5331231158e02ba5903c4de12ef0aa2d2266ebb07fa80a85045b1fe2c63410d7558b702f1916d9d038531f3d79ab31007762188de5f712b16f7a66bb74 + languageName: node + linkType: hard + +"@babel/preset-modules@npm:0.1.6-no-external-plugins": + version: 0.1.6-no-external-plugins + resolution: "@babel/preset-modules@npm:0.1.6-no-external-plugins" + dependencies: + "@babel/helper-plugin-utils": ^7.0.0 + "@babel/types": ^7.4.4 + esutils: ^2.0.2 + peerDependencies: + "@babel/core": ^7.0.0-0 || ^8.0.0-0 <8.0.0 + checksum: 4855e799bc50f2449fb5210f78ea9e8fd46cf4f242243f1e2ed838e2bd702e25e73e822e7f8447722a5f4baa5e67a8f7a0e403f3e7ce04540ff743a9c411c375 + languageName: node + linkType: hard + +"@babel/preset-react@npm:^7.18.6, @babel/preset-react@npm:^7.22.5": + version: 7.24.1 + resolution: "@babel/preset-react@npm:7.24.1" + dependencies: + "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-validator-option": ^7.23.5 + "@babel/plugin-transform-react-display-name": ^7.24.1 + "@babel/plugin-transform-react-jsx": ^7.23.4 + "@babel/plugin-transform-react-jsx-development": ^7.22.5 + "@babel/plugin-transform-react-pure-annotations": ^7.24.1 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 70e146a6de480cb4b6c5eb197003960a2d148d513e1f5b5d04ee954f255d68c935c2800da13e550267f47b894bd0214b2548181467b52a4bdc0a85020061b68c + languageName: node + linkType: hard + +"@babel/preset-typescript@npm:^7.21.0, @babel/preset-typescript@npm:^7.22.5": + version: 7.24.1 + resolution: "@babel/preset-typescript@npm:7.24.1" + dependencies: + "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-validator-option": ^7.23.5 + "@babel/plugin-syntax-jsx": ^7.24.1 + "@babel/plugin-transform-modules-commonjs": ^7.24.1 + "@babel/plugin-transform-typescript": ^7.24.1 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: f3e0ff8c20dd5abc82614df2d7953f1549a98282b60809478f7dfb41c29be63720f2d1d7a51ef1f0d939b65e8666cb7d36e32bc4f8ac2b74c20664efd41e8bdd + languageName: node + linkType: hard + +"@babel/regjsgen@npm:^0.8.0": + version: 0.8.0 + resolution: "@babel/regjsgen@npm:0.8.0" + checksum: 89c338fee774770e5a487382170711014d49a68eb281e74f2b5eac88f38300a4ad545516a7786a8dd5702e9cf009c94c2f582d200f077ac5decd74c56b973730 + languageName: node + linkType: hard + +"@babel/runtime-corejs3@npm:^7.22.6": + version: 7.24.5 + resolution: "@babel/runtime-corejs3@npm:7.24.5" + dependencies: + core-js-pure: ^3.30.2 + regenerator-runtime: ^0.14.0 + checksum: 59bee09c7a1d5a71f44f547402dbfe33e459579f828c41d837e6da3fc74d775436c862e1ef5417d56cb304574ec3a395104c72b672b3a35163f80b8ef237f4b6 + languageName: node + linkType: hard + +"@babel/runtime@npm:^7.1.2, @babel/runtime@npm:^7.10.3, @babel/runtime@npm:^7.12.13, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.22.6, @babel/runtime@npm:^7.8.4": + version: 7.24.5 + resolution: "@babel/runtime@npm:7.24.5" + dependencies: + regenerator-runtime: ^0.14.0 + checksum: 755383192f3ac32ba4c62bd4f1ae92aed5b82d2c6665f39eb28fa94546777cf5c63493ea92dd03f1c2e621b17e860f190c056684b7f234270fdc91e29beda063 + languageName: node + linkType: hard + +"@babel/template@npm:^7.22.15, @babel/template@npm:^7.24.0": + version: 7.24.0 + resolution: "@babel/template@npm:7.24.0" + dependencies: + "@babel/code-frame": ^7.23.5 + "@babel/parser": ^7.24.0 + "@babel/types": ^7.24.0 + checksum: f257b003c071a0cecdbfceca74185f18fe62c055469ab5c1d481aab12abeebed328e67e0a19fd978a2a8de97b28953fa4bc3da6d038a7345fdf37923b9fcdec8 + languageName: node + linkType: hard + +"@babel/traverse@npm:^7.22.8, @babel/traverse@npm:^7.24.5": + version: 7.24.5 + resolution: "@babel/traverse@npm:7.24.5" + dependencies: + "@babel/code-frame": ^7.24.2 + "@babel/generator": ^7.24.5 + "@babel/helper-environment-visitor": ^7.22.20 + "@babel/helper-function-name": ^7.23.0 + "@babel/helper-hoist-variables": ^7.22.5 + "@babel/helper-split-export-declaration": ^7.24.5 + "@babel/parser": ^7.24.5 + "@babel/types": ^7.24.5 + debug: ^4.3.1 + globals: ^11.1.0 + checksum: a313fbf4a06946cc4b74b06e9846d7393a9ca1e8b6df6da60c669cff0a9426d6198c21a478041c60807b62b48f980473d4afbd3768764b0d9741ac80f5dfa04f + languageName: node + linkType: hard + +"@babel/types@npm:^7.21.3, @babel/types@npm:^7.22.15, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.0, @babel/types@npm:^7.23.4, @babel/types@npm:^7.24.0, @babel/types@npm:^7.24.5, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3": + version: 7.24.5 + resolution: "@babel/types@npm:7.24.5" + dependencies: + "@babel/helper-string-parser": ^7.24.1 + "@babel/helper-validator-identifier": ^7.24.5 + to-fast-properties: ^2.0.0 + checksum: 8eeeacd996593b176e649ee49d8dc3f26f9bb6aa1e3b592030e61a0e58ea010fb018dccc51e5314c8139409ea6cbab02e29b33e674e1f6962d8e24c52da6375b + languageName: node + linkType: hard + +"@braintree/sanitize-url@npm:^6.0.1": + version: 6.0.4 + resolution: "@braintree/sanitize-url@npm:6.0.4" + checksum: f5ec6048973722ea1c46ae555d2e9eb848d7fa258994f8ea7d6db9514ee754ea3ef344ef71b3696d486776bcb839f3124e79f67c6b5b2814ed2da220b340627c + languageName: node + linkType: hard + +"@cmfcmf/docusaurus-search-local@npm:^1.1.0": + version: 1.1.0 + resolution: "@cmfcmf/docusaurus-search-local@npm:1.1.0" + dependencies: + "@algolia/autocomplete-js": ^1.8.2 + "@algolia/autocomplete-theme-classic": ^1.8.2 + "@algolia/client-search": ^4.12.0 + algoliasearch: ^4.12.0 + cheerio: ^1.0.0-rc.9 + clsx: ^1.1.1 + lunr-languages: ^1.4.0 + mark.js: ^8.11.1 + peerDependencies: + "@docusaurus/core": ^2.0.0 + nodejieba: ^2.5.0 + peerDependenciesMeta: + nodejieba: + optional: true + checksum: da719d70db835a61d0e99a2aaf64ef5a758e92c5f67698bfee3d196666cd6ecadec6eb495eaa44ca80b8682b2846bf698f9c0008535874eeed2968f5188c9ba8 + languageName: node + linkType: hard + +"@colors/colors@npm:1.5.0": + version: 1.5.0 + resolution: "@colors/colors@npm:1.5.0" + checksum: d64d5260bed1d5012ae3fc617d38d1afc0329fec05342f4e6b838f46998855ba56e0a73833f4a80fa8378c84810da254f76a8a19c39d038260dc06dc4e007425 + languageName: node + linkType: hard + +"@discoveryjs/json-ext@npm:0.5.7": + version: 0.5.7 + resolution: "@discoveryjs/json-ext@npm:0.5.7" + checksum: 2176d301cc258ea5c2324402997cf8134ebb212469c0d397591636cea8d3c02f2b3cf9fd58dcb748c7a0dade77ebdc1b10284fa63e608c033a1db52fddc69918 + languageName: node + linkType: hard + +"@docsearch/css@npm:3.6.0": + version: 3.6.0 + resolution: "@docsearch/css@npm:3.6.0" + checksum: 6fa5d7a386f56dc90a2e060e3e368e075356709dd412df2a03bb7b4041c5c6dcf379078163c16d022c2a27fdd4c75596c33485d1bd6b37ad6fbac80f51704af1 + languageName: node + linkType: hard + +"@docsearch/react@npm:^3.5.2": + version: 3.6.0 + resolution: "@docsearch/react@npm:3.6.0" + dependencies: + "@algolia/autocomplete-core": 1.9.3 + "@algolia/autocomplete-preset-algolia": 1.9.3 + "@docsearch/css": 3.6.0 + algoliasearch: ^4.19.1 + peerDependencies: + "@types/react": ">= 16.8.0 < 19.0.0" + react: ">= 16.8.0 < 19.0.0" + react-dom: ">= 16.8.0 < 19.0.0" + search-insights: ">= 1 < 3" + peerDependenciesMeta: + "@types/react": + optional: true + react: + optional: true + react-dom: + optional: true + search-insights: + optional: true + checksum: 1025c6072661eb4427ffe561d9f6f4a8ca08b509a8e1bb64ff92eccad544d0dc1705c9cddbea74f9672e1d960dc3c94b76cfa8a8665346128aea2e19a3745a55 + languageName: node + linkType: hard + +"@docusaurus/core@npm:3.3.0": + version: 3.3.0 + resolution: "@docusaurus/core@npm:3.3.0" + dependencies: + "@babel/core": ^7.23.3 + "@babel/generator": ^7.23.3 + "@babel/plugin-syntax-dynamic-import": ^7.8.3 + "@babel/plugin-transform-runtime": ^7.22.9 + "@babel/preset-env": ^7.22.9 + "@babel/preset-react": ^7.22.5 + "@babel/preset-typescript": ^7.22.5 + "@babel/runtime": ^7.22.6 + "@babel/runtime-corejs3": ^7.22.6 + "@babel/traverse": ^7.22.8 + "@docusaurus/cssnano-preset": 3.3.0 + "@docusaurus/logger": 3.3.0 + "@docusaurus/mdx-loader": 3.3.0 + "@docusaurus/utils": 3.3.0 + "@docusaurus/utils-common": 3.3.0 + "@docusaurus/utils-validation": 3.3.0 + autoprefixer: ^10.4.14 + babel-loader: ^9.1.3 + babel-plugin-dynamic-import-node: ^2.3.3 + boxen: ^6.2.1 + chalk: ^4.1.2 + chokidar: ^3.5.3 + clean-css: ^5.3.2 + cli-table3: ^0.6.3 + combine-promises: ^1.1.0 + commander: ^5.1.0 + copy-webpack-plugin: ^11.0.0 + core-js: ^3.31.1 + css-loader: ^6.8.1 + css-minimizer-webpack-plugin: ^5.0.1 + cssnano: ^6.1.2 + del: ^6.1.1 + detect-port: ^1.5.1 + escape-html: ^1.0.3 + eta: ^2.2.0 + eval: ^0.1.8 + file-loader: ^6.2.0 + fs-extra: ^11.1.1 + html-minifier-terser: ^7.2.0 + html-tags: ^3.3.1 + html-webpack-plugin: ^5.5.3 + leven: ^3.1.0 + lodash: ^4.17.21 + mini-css-extract-plugin: ^2.7.6 + p-map: ^4.0.0 + postcss: ^8.4.26 + postcss-loader: ^7.3.3 + prompts: ^2.4.2 + react-dev-utils: ^12.0.1 + react-helmet-async: ^1.3.0 + react-loadable: "npm:@docusaurus/react-loadable@6.0.0" + react-loadable-ssr-addon-v5-slorber: ^1.0.1 + react-router: ^5.3.4 + react-router-config: ^5.1.1 + react-router-dom: ^5.3.4 + rtl-detect: ^1.0.4 + semver: ^7.5.4 + serve-handler: ^6.1.5 + shelljs: ^0.8.5 + terser-webpack-plugin: ^5.3.9 + tslib: ^2.6.0 + update-notifier: ^6.0.2 + url-loader: ^4.1.1 + webpack: ^5.88.1 + webpack-bundle-analyzer: ^4.9.0 + webpack-dev-server: ^4.15.1 + webpack-merge: ^5.9.0 + webpackbar: ^5.0.2 + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + bin: + docusaurus: bin/docusaurus.mjs + checksum: 0a1bed2a130ae6c7030762e73e8b09b930bbcc5e4317748587c3a6b41acce783931635a7a2d9b31091b979bd3f2790b713d6ef386cc485e53852b4d80cd0afb0 + languageName: node + linkType: hard + +"@docusaurus/cssnano-preset@npm:3.3.0": + version: 3.3.0 + resolution: "@docusaurus/cssnano-preset@npm:3.3.0" + dependencies: + cssnano-preset-advanced: ^6.1.2 + postcss: ^8.4.38 + postcss-sort-media-queries: ^5.2.0 + tslib: ^2.6.0 + checksum: 0d6f53e29dd341bab9fafdacf9854786a4859454f112e940944ef5a22a6def506b1cefd7234e1af32e8c6518ecf6c5642008a5deb85fab8ab20ebe2618092d57 + languageName: node + linkType: hard + +"@docusaurus/logger@npm:3.3.0": + version: 3.3.0 + resolution: "@docusaurus/logger@npm:3.3.0" + dependencies: + chalk: ^4.1.2 + tslib: ^2.6.0 + checksum: dd0cdaa657e4820415e93d062e23aa909fcbcd88c5234681431e85b4c3efbfc065a526fda3516f2b4789d4acc701c2f22478d1914cf4244007003bee2f0d58e3 + languageName: node + linkType: hard + +"@docusaurus/mdx-loader@npm:3.3.0": + version: 3.3.0 + resolution: "@docusaurus/mdx-loader@npm:3.3.0" + dependencies: + "@docusaurus/logger": 3.3.0 + "@docusaurus/utils": 3.3.0 + "@docusaurus/utils-validation": 3.3.0 + "@mdx-js/mdx": ^3.0.0 + "@slorber/remark-comment": ^1.0.0 + escape-html: ^1.0.3 + estree-util-value-to-estree: ^3.0.1 + file-loader: ^6.2.0 + fs-extra: ^11.1.1 + image-size: ^1.0.2 + mdast-util-mdx: ^3.0.0 + mdast-util-to-string: ^4.0.0 + rehype-raw: ^7.0.0 + remark-directive: ^3.0.0 + remark-emoji: ^4.0.0 + remark-frontmatter: ^5.0.0 + remark-gfm: ^4.0.0 + stringify-object: ^3.3.0 + tslib: ^2.6.0 + unified: ^11.0.3 + unist-util-visit: ^5.0.0 + url-loader: ^4.1.1 + vfile: ^6.0.1 + webpack: ^5.88.1 + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + checksum: 2d506b4f3e7f0caee9405c0303bec0ddb1515dc3ea51e7786e8ca717d5241462732d8ae9013342d2ac22ceda2f2fd9a3a2b8d74ead334bf675387cda7294e851 + languageName: node + linkType: hard + +"@docusaurus/module-type-aliases@npm:3.2.1": + version: 3.2.1 + resolution: "@docusaurus/module-type-aliases@npm:3.2.1" + dependencies: + "@docusaurus/react-loadable": 5.5.2 + "@docusaurus/types": 3.2.1 + "@types/history": ^4.7.11 + "@types/react": "*" + "@types/react-router-config": "*" + "@types/react-router-dom": "*" + react-helmet-async: "*" + react-loadable: "npm:@docusaurus/react-loadable@5.5.2" + peerDependencies: + react: "*" + react-dom: "*" + checksum: 37b4a40f9afebbe76e350c10c857737b544c141a988462436904ae16993a52e4429018d406e2f55ad57a533e5a108dd7cdb903434abb84721deeec0d5f195d80 + languageName: node + linkType: hard + +"@docusaurus/module-type-aliases@npm:3.3.0": + version: 3.3.0 + resolution: "@docusaurus/module-type-aliases@npm:3.3.0" + dependencies: + "@docusaurus/types": 3.3.0 + "@types/history": ^4.7.11 + "@types/react": "*" + "@types/react-router-config": "*" + "@types/react-router-dom": "*" + react-helmet-async: "*" + react-loadable: "npm:@docusaurus/react-loadable@6.0.0" + peerDependencies: + react: "*" + react-dom: "*" + checksum: eeb8631d78af625553d17f9093688f81247365009a80c025e7445342594b9add6ede788c7b3d4e23bcb2ddbaf61fbd01b15da43e91606a9c322104d4c2070cd8 + languageName: node + linkType: hard + +"@docusaurus/plugin-content-blog@npm:3.3.0": + version: 3.3.0 + resolution: "@docusaurus/plugin-content-blog@npm:3.3.0" + dependencies: + "@docusaurus/core": 3.3.0 + "@docusaurus/logger": 3.3.0 + "@docusaurus/mdx-loader": 3.3.0 + "@docusaurus/types": 3.3.0 + "@docusaurus/utils": 3.3.0 + "@docusaurus/utils-common": 3.3.0 + "@docusaurus/utils-validation": 3.3.0 + cheerio: ^1.0.0-rc.12 + feed: ^4.2.2 + fs-extra: ^11.1.1 + lodash: ^4.17.21 + reading-time: ^1.5.0 + srcset: ^4.0.0 + tslib: ^2.6.0 + unist-util-visit: ^5.0.0 + utility-types: ^3.10.0 + webpack: ^5.88.1 + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + checksum: 5b5ca9b597ffc811268702c5993eaa1941f3019bbbc20cf3cd970866d8f118dafd0c2c0692ebbf6660e574ced56af17b8690bf8205a6b44ac63cef913fea73a9 + languageName: node + linkType: hard + +"@docusaurus/plugin-content-docs@npm:3.3.0": + version: 3.3.0 + resolution: "@docusaurus/plugin-content-docs@npm:3.3.0" + dependencies: + "@docusaurus/core": 3.3.0 + "@docusaurus/logger": 3.3.0 + "@docusaurus/mdx-loader": 3.3.0 + "@docusaurus/module-type-aliases": 3.3.0 + "@docusaurus/types": 3.3.0 + "@docusaurus/utils": 3.3.0 + "@docusaurus/utils-common": 3.3.0 + "@docusaurus/utils-validation": 3.3.0 + "@types/react-router-config": ^5.0.7 + combine-promises: ^1.1.0 + fs-extra: ^11.1.1 + js-yaml: ^4.1.0 + lodash: ^4.17.21 + tslib: ^2.6.0 + utility-types: ^3.10.0 + webpack: ^5.88.1 + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + checksum: f5e2a4a3636e10247331b4aca7e736491aea263358748d5dc3c5d66b5b9a9833af2f3ce88ea52d3fc4bd3b331954c29510eb5a72f49d1c531b7d97930cc99981 + languageName: node + linkType: hard + +"@docusaurus/plugin-content-pages@npm:3.3.0": + version: 3.3.0 + resolution: "@docusaurus/plugin-content-pages@npm:3.3.0" + dependencies: + "@docusaurus/core": 3.3.0 + "@docusaurus/mdx-loader": 3.3.0 + "@docusaurus/types": 3.3.0 + "@docusaurus/utils": 3.3.0 + "@docusaurus/utils-validation": 3.3.0 + fs-extra: ^11.1.1 + tslib: ^2.6.0 + webpack: ^5.88.1 + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + checksum: 124a2125efdbec1fdb158d3120fb8f4c71d59454d1adfeea6a9898c5f22ab8ece761c51f436f414588273bfbe634c00a2bffbc616bffef2803300e2806da879a + languageName: node + linkType: hard + +"@docusaurus/plugin-debug@npm:3.3.0": + version: 3.3.0 + resolution: "@docusaurus/plugin-debug@npm:3.3.0" + dependencies: + "@docusaurus/core": 3.3.0 + "@docusaurus/types": 3.3.0 + "@docusaurus/utils": 3.3.0 + fs-extra: ^11.1.1 + react-json-view-lite: ^1.2.0 + tslib: ^2.6.0 + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + checksum: a71c83c54764e57eb7327a8a41683c574b4359072965889e98a969ed612fa1555cf9c921ae60df3385fe4668faba250e8029b6f03ec6aad202818e6ea25ca9d8 + languageName: node + linkType: hard + +"@docusaurus/plugin-google-analytics@npm:3.3.0": + version: 3.3.0 + resolution: "@docusaurus/plugin-google-analytics@npm:3.3.0" + dependencies: + "@docusaurus/core": 3.3.0 + "@docusaurus/types": 3.3.0 + "@docusaurus/utils-validation": 3.3.0 + tslib: ^2.6.0 + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + checksum: b7016b39e69cee175a46c4af1d3acb0278e50c2f55c8b57eaea543d177ca1b33b9d27308fe734ca785937c6d777eddb887510d39683075ff7de059bba5bb7884 + languageName: node + linkType: hard + +"@docusaurus/plugin-google-gtag@npm:3.3.0": + version: 3.3.0 + resolution: "@docusaurus/plugin-google-gtag@npm:3.3.0" + dependencies: + "@docusaurus/core": 3.3.0 + "@docusaurus/types": 3.3.0 + "@docusaurus/utils-validation": 3.3.0 + "@types/gtag.js": ^0.0.12 + tslib: ^2.6.0 + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + checksum: 5b82aa09702d9ceaeb2ca8da291a69e963d8a4dd1ea15062dbd25b0e50f5e2699689404d5a7b11f57372f962fdbd3108197513faed794f67f2e68b8787019e3b + languageName: node + linkType: hard + +"@docusaurus/plugin-google-tag-manager@npm:3.3.0": + version: 3.3.0 + resolution: "@docusaurus/plugin-google-tag-manager@npm:3.3.0" + dependencies: + "@docusaurus/core": 3.3.0 + "@docusaurus/types": 3.3.0 + "@docusaurus/utils-validation": 3.3.0 + tslib: ^2.6.0 + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + checksum: ebf61608b1e7f3be6ad528b0bd66e0dfb578cd674cbf5321bd73c881afe2165f3cedbf8637b4d98e2ce2d2a9cb3a8ec4705ca4618ae3a0c718c17f40234b70b8 + languageName: node + linkType: hard + +"@docusaurus/plugin-sitemap@npm:3.3.0": + version: 3.3.0 + resolution: "@docusaurus/plugin-sitemap@npm:3.3.0" + dependencies: + "@docusaurus/core": 3.3.0 + "@docusaurus/logger": 3.3.0 + "@docusaurus/types": 3.3.0 + "@docusaurus/utils": 3.3.0 + "@docusaurus/utils-common": 3.3.0 + "@docusaurus/utils-validation": 3.3.0 + fs-extra: ^11.1.1 + sitemap: ^7.1.1 + tslib: ^2.6.0 + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + checksum: 3e6867d8f65d38bfe22feb28ac4719412664f2c72ca2d606def88392cdfa630b0ca75cff4640616f65b03015caea5651c20061cf446b25efafdb88b64fa98dbf + languageName: node + linkType: hard + +"@docusaurus/preset-classic@npm:3.3.0": + version: 3.3.0 + resolution: "@docusaurus/preset-classic@npm:3.3.0" + dependencies: + "@docusaurus/core": 3.3.0 + "@docusaurus/plugin-content-blog": 3.3.0 + "@docusaurus/plugin-content-docs": 3.3.0 + "@docusaurus/plugin-content-pages": 3.3.0 + "@docusaurus/plugin-debug": 3.3.0 + "@docusaurus/plugin-google-analytics": 3.3.0 + "@docusaurus/plugin-google-gtag": 3.3.0 + "@docusaurus/plugin-google-tag-manager": 3.3.0 + "@docusaurus/plugin-sitemap": 3.3.0 + "@docusaurus/theme-classic": 3.3.0 + "@docusaurus/theme-common": 3.3.0 + "@docusaurus/theme-search-algolia": 3.3.0 + "@docusaurus/types": 3.3.0 + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + checksum: 3d67c96d95e817c6cdb23e8af78fafd10ef0e433ac0bcd78fa6b5acc3d0961380d869da2494cac2d485ca3b5bbc728fae0d4e225b2d950e63ef751ce87b28566 + languageName: node + linkType: hard + +"@docusaurus/react-loadable@npm:5.5.2, react-loadable@npm:@docusaurus/react-loadable@5.5.2": + version: 5.5.2 + resolution: "@docusaurus/react-loadable@npm:5.5.2" + dependencies: + "@types/react": "*" + prop-types: ^15.6.2 + peerDependencies: + react: "*" + checksum: 930fb9e2936412a12461f210acdc154a433283921ca43ac3fc3b84cb6c12eb738b3a3719373022bf68004efeb1a928dbe36c467d7a1f86454ed6241576d936e7 + languageName: node + linkType: hard + +"@docusaurus/theme-classic@npm:3.3.0": + version: 3.3.0 + resolution: "@docusaurus/theme-classic@npm:3.3.0" + dependencies: + "@docusaurus/core": 3.3.0 + "@docusaurus/mdx-loader": 3.3.0 + "@docusaurus/module-type-aliases": 3.3.0 + "@docusaurus/plugin-content-blog": 3.3.0 + "@docusaurus/plugin-content-docs": 3.3.0 + "@docusaurus/plugin-content-pages": 3.3.0 + "@docusaurus/theme-common": 3.3.0 + "@docusaurus/theme-translations": 3.3.0 + "@docusaurus/types": 3.3.0 + "@docusaurus/utils": 3.3.0 + "@docusaurus/utils-common": 3.3.0 + "@docusaurus/utils-validation": 3.3.0 + "@mdx-js/react": ^3.0.0 + clsx: ^2.0.0 + copy-text-to-clipboard: ^3.2.0 + infima: 0.2.0-alpha.43 + lodash: ^4.17.21 + nprogress: ^0.2.0 + postcss: ^8.4.26 + prism-react-renderer: ^2.3.0 + prismjs: ^1.29.0 + react-router-dom: ^5.3.4 + rtlcss: ^4.1.0 + tslib: ^2.6.0 + utility-types: ^3.10.0 + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + checksum: ad93b279c48a5e2f61cbe6b27be44f16b657d8b056d9493da9b0ed5303500bcfc9d99b8512eaa3abc17f6317702a367fe77140bc63b7a4ad70201695115d8c32 + languageName: node + linkType: hard + +"@docusaurus/theme-common@npm:3.3.0": + version: 3.3.0 + resolution: "@docusaurus/theme-common@npm:3.3.0" + dependencies: + "@docusaurus/mdx-loader": 3.3.0 + "@docusaurus/module-type-aliases": 3.3.0 + "@docusaurus/plugin-content-blog": 3.3.0 + "@docusaurus/plugin-content-docs": 3.3.0 + "@docusaurus/plugin-content-pages": 3.3.0 + "@docusaurus/utils": 3.3.0 + "@docusaurus/utils-common": 3.3.0 + "@types/history": ^4.7.11 + "@types/react": "*" + "@types/react-router-config": "*" + clsx: ^2.0.0 + parse-numeric-range: ^1.3.0 + prism-react-renderer: ^2.3.0 + tslib: ^2.6.0 + utility-types: ^3.10.0 + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + checksum: 29876fc532a05e4a17e390f4dcb81f04cd6759fd481603478f909c280436a82c4ec3979ce36afd0b2cbd94a546ef1f5d4a264c2ebaf59d61cb248aa48422f440 + languageName: node + linkType: hard + +"@docusaurus/theme-mermaid@npm:3.3.0": + version: 3.3.0 + resolution: "@docusaurus/theme-mermaid@npm:3.3.0" + dependencies: + "@docusaurus/core": 3.3.0 + "@docusaurus/module-type-aliases": 3.3.0 + "@docusaurus/theme-common": 3.3.0 + "@docusaurus/types": 3.3.0 + "@docusaurus/utils-validation": 3.3.0 + mermaid: ^10.4.0 + tslib: ^2.6.0 + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + checksum: 437db8840d07a5d980865c5bf9fe1b79380ec5ae39211462796724fd9c4ae8343b02f0b7b9f384ddca88bc13e351d634814b9ad56260ede9a528b71540970572 + languageName: node + linkType: hard + +"@docusaurus/theme-search-algolia@npm:3.3.0": + version: 3.3.0 + resolution: "@docusaurus/theme-search-algolia@npm:3.3.0" + dependencies: + "@docsearch/react": ^3.5.2 + "@docusaurus/core": 3.3.0 + "@docusaurus/logger": 3.3.0 + "@docusaurus/plugin-content-docs": 3.3.0 + "@docusaurus/theme-common": 3.3.0 + "@docusaurus/theme-translations": 3.3.0 + "@docusaurus/utils": 3.3.0 + "@docusaurus/utils-validation": 3.3.0 + algoliasearch: ^4.18.0 + algoliasearch-helper: ^3.13.3 + clsx: ^2.0.0 + eta: ^2.2.0 + fs-extra: ^11.1.1 + lodash: ^4.17.21 + tslib: ^2.6.0 + utility-types: ^3.10.0 + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + checksum: 93f0bd3c628c33e1586b6906c56264d122beaacd0b0058083510cda8fe680698a9907fda55b69bfed1ec5b0f5812802ecce5f8de0743b6c00e2abc27456994b4 + languageName: node + linkType: hard + +"@docusaurus/theme-translations@npm:3.3.0": + version: 3.3.0 + resolution: "@docusaurus/theme-translations@npm:3.3.0" + dependencies: + fs-extra: ^11.1.1 + tslib: ^2.6.0 + checksum: 77d1272fa21277d11b3679e4e00290f7b011d415c4d7662f590e95f89115a1f5d5bec8fa72897cb3adb971784a239a7241949afb4a7b0c8fefdd597975fe6449 + languageName: node + linkType: hard + +"@docusaurus/tsconfig@npm:3.2.1": + version: 3.2.1 + resolution: "@docusaurus/tsconfig@npm:3.2.1" + checksum: ea3c28b79b0de069c50f7b3a67d3ff682b6ded2ef02d2c7a4c2eaeddc8fcf79c9d9f5e60fbd2966cf3d247fbb8f63897b80a61fdd8b485c745a12eb684ae241a + languageName: node + linkType: hard + +"@docusaurus/types@npm:3.2.1": + version: 3.2.1 + resolution: "@docusaurus/types@npm:3.2.1" + dependencies: + "@mdx-js/mdx": ^3.0.0 + "@types/history": ^4.7.11 + "@types/react": "*" + commander: ^5.1.0 + joi: ^17.9.2 + react-helmet-async: ^1.3.0 + utility-types: ^3.10.0 + webpack: ^5.88.1 + webpack-merge: ^5.9.0 + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + checksum: 4f19e162bff627675df160ae5c33c6063646050c4de5c9698018fbd9d198300b9ce7a7333e4d1b369b42cfa42296dc9fb36547e4e37664d594deb08639e6b620 + languageName: node + linkType: hard + +"@docusaurus/types@npm:3.3.0": + version: 3.3.0 + resolution: "@docusaurus/types@npm:3.3.0" + dependencies: + "@mdx-js/mdx": ^3.0.0 + "@types/history": ^4.7.11 + "@types/react": "*" + commander: ^5.1.0 + joi: ^17.9.2 + react-helmet-async: ^1.3.0 + utility-types: ^3.10.0 + webpack: ^5.88.1 + webpack-merge: ^5.9.0 + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + checksum: 61b125e2e18f366f614463cd80cdc0d58d6dc61f3f59c2b4771d0459b30820e23ac5261c275027ec4d6576abd8d9efc5c817d94723c0fd77ddef21723e8a7813 + languageName: node + linkType: hard + +"@docusaurus/utils-common@npm:3.3.0": + version: 3.3.0 + resolution: "@docusaurus/utils-common@npm:3.3.0" + dependencies: + tslib: ^2.6.0 + peerDependencies: + "@docusaurus/types": "*" + peerDependenciesMeta: + "@docusaurus/types": + optional: true + checksum: d734a57726ac554eb1d44fb8cfa2d76c779ce53c7834d01ae014266fb824fba204b715fe4209b0008f6716f68370955ee05c78710a877abb209ee0d2d6316c1f + languageName: node + linkType: hard + +"@docusaurus/utils-validation@npm:3.3.0": + version: 3.3.0 + resolution: "@docusaurus/utils-validation@npm:3.3.0" + dependencies: + "@docusaurus/logger": 3.3.0 + "@docusaurus/utils": 3.3.0 + "@docusaurus/utils-common": 3.3.0 + joi: ^17.9.2 + js-yaml: ^4.1.0 + tslib: ^2.6.0 + checksum: 58079963b60d8461da82fd1a81eb442c6712c452373dba49254df40b0987e3761ffe93a0e701fdb3c2e3f88cdc5b85de5fdc07dd539a65b6018a9064a546f319 + languageName: node + linkType: hard + +"@docusaurus/utils@npm:3.3.0": + version: 3.3.0 + resolution: "@docusaurus/utils@npm:3.3.0" + dependencies: + "@docusaurus/logger": 3.3.0 + "@docusaurus/utils-common": 3.3.0 + "@svgr/webpack": ^8.1.0 + escape-string-regexp: ^4.0.0 + file-loader: ^6.2.0 + fs-extra: ^11.1.1 + github-slugger: ^1.5.0 + globby: ^11.1.0 + gray-matter: ^4.0.3 + jiti: ^1.20.0 + js-yaml: ^4.1.0 + lodash: ^4.17.21 + micromatch: ^4.0.5 + prompts: ^2.4.2 + resolve-pathname: ^3.0.0 + shelljs: ^0.8.5 + tslib: ^2.6.0 + url-loader: ^4.1.1 + webpack: ^5.88.1 + peerDependencies: + "@docusaurus/types": "*" + peerDependenciesMeta: + "@docusaurus/types": + optional: true + checksum: f0e199f4e06b8c211bc6445d0bc405b98bbdc6bd65681744bf542c6ccf7ee8137d5a8bd51108c0552e2d0b355c5f3e68b2000761a86ec401413a9830a120fe75 + languageName: node + linkType: hard + +"@hapi/hoek@npm:^9.0.0, @hapi/hoek@npm:^9.3.0": + version: 9.3.0 + resolution: "@hapi/hoek@npm:9.3.0" + checksum: 4771c7a776242c3c022b168046af4e324d116a9d2e1d60631ee64f474c6e38d1bb07092d898bf95c7bc5d334c5582798a1456321b2e53ca817d4e7c88bc25b43 + languageName: node + linkType: hard + +"@hapi/topo@npm:^5.1.0": + version: 5.1.0 + resolution: "@hapi/topo@npm:5.1.0" + dependencies: + "@hapi/hoek": ^9.0.0 + checksum: 604dfd5dde76d5c334bd03f9001fce69c7ce529883acf92da96f4fe7e51221bf5e5110e964caca287a6a616ba027c071748ab636ff178ad750547fba611d6014 + languageName: node + linkType: hard + +"@isaacs/cliui@npm:^8.0.2": + version: 8.0.2 + resolution: "@isaacs/cliui@npm:8.0.2" + dependencies: + string-width: ^5.1.2 + string-width-cjs: "npm:string-width@^4.2.0" + strip-ansi: ^7.0.1 + strip-ansi-cjs: "npm:strip-ansi@^6.0.1" + wrap-ansi: ^8.1.0 + wrap-ansi-cjs: "npm:wrap-ansi@^7.0.0" + checksum: 4a473b9b32a7d4d3cfb7a614226e555091ff0c5a29a1734c28c72a182c2f6699b26fc6b5c2131dfd841e86b185aea714c72201d7c98c2fba5f17709333a67aeb + languageName: node + linkType: hard + +"@jest/schemas@npm:^29.6.3": + version: 29.6.3 + resolution: "@jest/schemas@npm:29.6.3" + dependencies: + "@sinclair/typebox": ^0.27.8 + checksum: 910040425f0fc93cd13e68c750b7885590b8839066dfa0cd78e7def07bbb708ad869381f725945d66f2284de5663bbecf63e8fdd856e2ae6e261ba30b1687e93 + languageName: node + linkType: hard + +"@jest/types@npm:^29.6.3": + version: 29.6.3 + resolution: "@jest/types@npm:29.6.3" + dependencies: + "@jest/schemas": ^29.6.3 + "@types/istanbul-lib-coverage": ^2.0.0 + "@types/istanbul-reports": ^3.0.0 + "@types/node": "*" + "@types/yargs": ^17.0.8 + chalk: ^4.0.0 + checksum: a0bcf15dbb0eca6bdd8ce61a3fb055349d40268622a7670a3b2eb3c3dbafe9eb26af59938366d520b86907b9505b0f9b29b85cec11579a9e580694b87cd90fcc + languageName: node + linkType: hard + +"@jridgewell/gen-mapping@npm:^0.3.5": + version: 0.3.5 + resolution: "@jridgewell/gen-mapping@npm:0.3.5" + dependencies: + "@jridgewell/set-array": ^1.2.1 + "@jridgewell/sourcemap-codec": ^1.4.10 + "@jridgewell/trace-mapping": ^0.3.24 + checksum: ff7a1764ebd76a5e129c8890aa3e2f46045109dabde62b0b6c6a250152227647178ff2069ea234753a690d8f3c4ac8b5e7b267bbee272bffb7f3b0a370ab6e52 + languageName: node + linkType: hard + +"@jridgewell/resolve-uri@npm:^3.1.0": + version: 3.1.2 + resolution: "@jridgewell/resolve-uri@npm:3.1.2" + checksum: 83b85f72c59d1c080b4cbec0fef84528963a1b5db34e4370fa4bd1e3ff64a0d80e0cee7369d11d73c704e0286fb2865b530acac7a871088fbe92b5edf1000870 + languageName: node + linkType: hard + +"@jridgewell/set-array@npm:^1.2.1": + version: 1.2.1 + resolution: "@jridgewell/set-array@npm:1.2.1" + checksum: 832e513a85a588f8ed4f27d1279420d8547743cc37fcad5a5a76fc74bb895b013dfe614d0eed9cb860048e6546b798f8f2652020b4b2ba0561b05caa8c654b10 + languageName: node + linkType: hard + +"@jridgewell/source-map@npm:^0.3.3": + version: 0.3.6 + resolution: "@jridgewell/source-map@npm:0.3.6" + dependencies: + "@jridgewell/gen-mapping": ^0.3.5 + "@jridgewell/trace-mapping": ^0.3.25 + checksum: c9dc7d899397df95e3c9ec287b93c0b56f8e4453cd20743e2b9c8e779b1949bc3cccf6c01bb302779e46560eb45f62ea38d19fedd25370d814734268450a9f30 + languageName: node + linkType: hard + +"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.14": + version: 1.4.15 + resolution: "@jridgewell/sourcemap-codec@npm:1.4.15" + checksum: b881c7e503db3fc7f3c1f35a1dd2655a188cc51a3612d76efc8a6eb74728bef5606e6758ee77423e564092b4a518aba569bbb21c9bac5ab7a35b0c6ae7e344c8 + languageName: node + linkType: hard + +"@jridgewell/trace-mapping@npm:^0.3.18, @jridgewell/trace-mapping@npm:^0.3.20, @jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25": + version: 0.3.25 + resolution: "@jridgewell/trace-mapping@npm:0.3.25" + dependencies: + "@jridgewell/resolve-uri": ^3.1.0 + "@jridgewell/sourcemap-codec": ^1.4.14 + checksum: 9d3c40d225e139987b50c48988f8717a54a8c994d8a948ee42e1412e08988761d0754d7d10b803061cc3aebf35f92a5dbbab493bd0e1a9ef9e89a2130e83ba34 + languageName: node + linkType: hard + +"@leichtgewicht/ip-codec@npm:^2.0.1": + version: 2.0.5 + resolution: "@leichtgewicht/ip-codec@npm:2.0.5" + checksum: 4fcd025d0a923cb6b87b631a83436a693b255779c583158bbeacde6b4dd75b94cc1eba1c9c188de5fc36c218d160524ea08bfe4ef03a056b00ff14126d66f881 + languageName: node + linkType: hard + +"@mdx-js/mdx@npm:^3.0.0": + version: 3.0.1 + resolution: "@mdx-js/mdx@npm:3.0.1" + dependencies: + "@types/estree": ^1.0.0 + "@types/estree-jsx": ^1.0.0 + "@types/hast": ^3.0.0 + "@types/mdx": ^2.0.0 + collapse-white-space: ^2.0.0 + devlop: ^1.0.0 + estree-util-build-jsx: ^3.0.0 + estree-util-is-identifier-name: ^3.0.0 + estree-util-to-js: ^2.0.0 + estree-walker: ^3.0.0 + hast-util-to-estree: ^3.0.0 + hast-util-to-jsx-runtime: ^2.0.0 + markdown-extensions: ^2.0.0 + periscopic: ^3.0.0 + remark-mdx: ^3.0.0 + remark-parse: ^11.0.0 + remark-rehype: ^11.0.0 + source-map: ^0.7.0 + unified: ^11.0.0 + unist-util-position-from-estree: ^2.0.0 + unist-util-stringify-position: ^4.0.0 + unist-util-visit: ^5.0.0 + vfile: ^6.0.0 + checksum: 82221662279c39a755b88f63b031a30b9bc04365e5bfc3e45590f4fa7bf6bff12364f4caee31c768ae588145eed74fda10c327d53f9272b1a2cffbc8bd537ce6 + languageName: node + linkType: hard + +"@mdx-js/react@npm:^3.0.0": + version: 3.0.1 + resolution: "@mdx-js/react@npm:3.0.1" + dependencies: + "@types/mdx": ^2.0.0 + peerDependencies: + "@types/react": ">=16" + react: ">=16" + checksum: 1063a597264f6a8840aa13274a99beef8983a88dd45b0c5b8e48e6216bc23d33e247da8e2d95d6e1874483f8b4e0903b166ce5046874aa7ffa2b1333057dcddf + languageName: node + linkType: hard + +"@nodelib/fs.scandir@npm:2.1.5": + version: 2.1.5 + resolution: "@nodelib/fs.scandir@npm:2.1.5" + dependencies: + "@nodelib/fs.stat": 2.0.5 + run-parallel: ^1.1.9 + checksum: a970d595bd23c66c880e0ef1817791432dbb7acbb8d44b7e7d0e7a22f4521260d4a83f7f9fd61d44fda4610105577f8f58a60718105fb38352baed612fd79e59 + languageName: node + linkType: hard + +"@nodelib/fs.stat@npm:2.0.5, @nodelib/fs.stat@npm:^2.0.2": + version: 2.0.5 + resolution: "@nodelib/fs.stat@npm:2.0.5" + checksum: 012480b5ca9d97bff9261571dbbec7bbc6033f69cc92908bc1ecfad0792361a5a1994bc48674b9ef76419d056a03efadfce5a6cf6dbc0a36559571a7a483f6f0 + languageName: node + linkType: hard + +"@nodelib/fs.walk@npm:^1.2.3": + version: 1.2.8 + resolution: "@nodelib/fs.walk@npm:1.2.8" + dependencies: + "@nodelib/fs.scandir": 2.1.5 + fastq: ^1.6.0 + checksum: 190c643f156d8f8f277bf2a6078af1ffde1fd43f498f187c2db24d35b4b4b5785c02c7dc52e356497b9a1b65b13edc996de08de0b961c32844364da02986dc53 + languageName: node + linkType: hard + +"@npmcli/agent@npm:^2.0.0": + version: 2.2.2 + resolution: "@npmcli/agent@npm:2.2.2" + dependencies: + agent-base: ^7.1.0 + http-proxy-agent: ^7.0.0 + https-proxy-agent: ^7.0.1 + lru-cache: ^10.0.1 + socks-proxy-agent: ^8.0.3 + checksum: 67de7b88cc627a79743c88bab35e023e23daf13831a8aa4e15f998b92f5507b644d8ffc3788afc8e64423c612e0785a6a92b74782ce368f49a6746084b50d874 + languageName: node + linkType: hard + +"@npmcli/fs@npm:^3.1.0": + version: 3.1.1 + resolution: "@npmcli/fs@npm:3.1.1" + dependencies: + semver: ^7.3.5 + checksum: d960cab4b93adcb31ce223bfb75c5714edbd55747342efb67dcc2f25e023d930a7af6ece3e75f2f459b6f38fc14d031c766f116cd124fdc937fd33112579e820 + languageName: node + linkType: hard + +"@pkgjs/parseargs@npm:^0.11.0": + version: 0.11.0 + resolution: "@pkgjs/parseargs@npm:0.11.0" + checksum: 6ad6a00fc4f2f2cfc6bff76fb1d88b8ee20bc0601e18ebb01b6d4be583733a860239a521a7fbca73b612e66705078809483549d2b18f370eb346c5155c8e4a0f + languageName: node + linkType: hard + +"@pnpm/config.env-replace@npm:^1.1.0": + version: 1.1.0 + resolution: "@pnpm/config.env-replace@npm:1.1.0" + checksum: a3d2b57e35eec9543d9eb085854f6e33e8102dac99fdef2fad2eebdbbfc345e93299f0c20e8eb61c1b4c7aa123bfd47c175678626f161cda65dd147c2b6e1fa0 + languageName: node + linkType: hard + +"@pnpm/network.ca-file@npm:^1.0.1": + version: 1.0.2 + resolution: "@pnpm/network.ca-file@npm:1.0.2" + dependencies: + graceful-fs: 4.2.10 + checksum: d8d0884646500576bd5390464d13db1bb9a62e32a1069293e5bddb2ad8354b354b7e2d2a35e12850025651e795e6a80ce9e601c66312504667b7e3ee7b52becc + languageName: node + linkType: hard + +"@pnpm/npm-conf@npm:^2.1.0": + version: 2.2.2 + resolution: "@pnpm/npm-conf@npm:2.2.2" + dependencies: + "@pnpm/config.env-replace": ^1.1.0 + "@pnpm/network.ca-file": ^1.0.1 + config-chain: ^1.1.11 + checksum: d64aa4464be584caa855eafa8f109509390489997e36d602d6215784e2973b896bef3968426bb00896cf4ae7d440fed2cee7bb4e0dbc90362f024ea3f9e27ab1 + languageName: node + linkType: hard + +"@polka/url@npm:^1.0.0-next.24": + version: 1.0.0-next.25 + resolution: "@polka/url@npm:1.0.0-next.25" + checksum: 4ab1d7a37163139c0e7bfc9d1e3f6a2a0db91a78b9f0a21f571d6aec2cdaeaacced744d47886c117aa7579aa5694b303fe3e0bd1922bb9cb3ce6bf7c2dc09801 + languageName: node + linkType: hard + +"@sideway/address@npm:^4.1.5": + version: 4.1.5 + resolution: "@sideway/address@npm:4.1.5" + dependencies: + "@hapi/hoek": ^9.0.0 + checksum: 3e3ea0f00b4765d86509282290368a4a5fd39a7995fdc6de42116ca19a96120858e56c2c995081def06e1c53e1f8bccc7d013f6326602bec9d56b72ee2772b9d + languageName: node + linkType: hard + +"@sideway/formula@npm:^3.0.1": + version: 3.0.1 + resolution: "@sideway/formula@npm:3.0.1" + checksum: e4beeebc9dbe2ff4ef0def15cec0165e00d1612e3d7cea0bc9ce5175c3263fc2c818b679bd558957f49400ee7be9d4e5ac90487e1625b4932e15c4aa7919c57a + languageName: node + linkType: hard + +"@sideway/pinpoint@npm:^2.0.0": + version: 2.0.0 + resolution: "@sideway/pinpoint@npm:2.0.0" + checksum: 0f4491e5897fcf5bf02c46f5c359c56a314e90ba243f42f0c100437935daa2488f20482f0f77186bd6bf43345095a95d8143ecf8b1f4d876a7bc0806aba9c3d2 + languageName: node + linkType: hard + +"@sinclair/typebox@npm:^0.27.8": + version: 0.27.8 + resolution: "@sinclair/typebox@npm:0.27.8" + checksum: 00bd7362a3439021aa1ea51b0e0d0a0e8ca1351a3d54c606b115fdcc49b51b16db6e5f43b4fe7a28c38688523e22a94d49dd31168868b655f0d4d50f032d07a1 + languageName: node + linkType: hard + +"@sindresorhus/is@npm:^4.6.0": + version: 4.6.0 + resolution: "@sindresorhus/is@npm:4.6.0" + checksum: 83839f13da2c29d55c97abc3bc2c55b250d33a0447554997a85c539e058e57b8da092da396e252b11ec24a0279a0bed1f537fa26302209327060643e327f81d2 + languageName: node + linkType: hard + +"@sindresorhus/is@npm:^5.2.0": + version: 5.6.0 + resolution: "@sindresorhus/is@npm:5.6.0" + checksum: 2e6e0c3acf188dcd9aea0f324ac1b6ad04c9fc672392a7b5a1218512fcde066965797eba8b9fe2108657a504388bd4a6664e6e6602555168e828a6df08b9f10e + languageName: node + linkType: hard + +"@slorber/remark-comment@npm:^1.0.0": + version: 1.0.0 + resolution: "@slorber/remark-comment@npm:1.0.0" + dependencies: + micromark-factory-space: ^1.0.0 + micromark-util-character: ^1.1.0 + micromark-util-symbol: ^1.0.1 + checksum: c96f1533d09913c57381859966f10a706afd8eb680923924af1c451f3b72f22c31e394028d7535131c10f8682d3c60206da95c50fb4f016fbbd04218c853cc88 + languageName: node + linkType: hard + +"@svgr/babel-plugin-add-jsx-attribute@npm:8.0.0": + version: 8.0.0 + resolution: "@svgr/babel-plugin-add-jsx-attribute@npm:8.0.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 3fc8e35d16f5abe0af5efe5851f27581225ac405d6a1ca44cda0df064cddfcc29a428c48c2e4bef6cebf627c9ac2f652a096030edb02cf5a120ce28d3c234710 + languageName: node + linkType: hard + +"@svgr/babel-plugin-remove-jsx-attribute@npm:8.0.0": + version: 8.0.0 + resolution: "@svgr/babel-plugin-remove-jsx-attribute@npm:8.0.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: ff992893c6c4ac802713ba3a97c13be34e62e6d981c813af40daabcd676df68a72a61bd1e692bb1eda3587f1b1d700ea462222ae2153bb0f46886632d4f88d08 + languageName: node + linkType: hard + +"@svgr/babel-plugin-remove-jsx-empty-expression@npm:8.0.0": + version: 8.0.0 + resolution: "@svgr/babel-plugin-remove-jsx-empty-expression@npm:8.0.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 0fb691b63a21bac00da3aa2dccec50d0d5a5b347ff408d60803b84410d8af168f2656e4ba1ee1f24dab0ae4e4af77901f2928752bb0434c1f6788133ec599ec8 + languageName: node + linkType: hard + +"@svgr/babel-plugin-replace-jsx-attribute-value@npm:8.0.0": + version: 8.0.0 + resolution: "@svgr/babel-plugin-replace-jsx-attribute-value@npm:8.0.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 1edda65ef4f4dd8f021143c8ec276a08f6baa6f733b8e8ee2e7775597bf6b97afb47fdeefd579d6ae6c959fe2e634f55cd61d99377631212228c8cfb351b8921 + languageName: node + linkType: hard + +"@svgr/babel-plugin-svg-dynamic-title@npm:8.0.0": + version: 8.0.0 + resolution: "@svgr/babel-plugin-svg-dynamic-title@npm:8.0.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 876cec891488992e6a9aebb8155e2bea4ec461b4718c51de36e988e00e271c6d9d01ef6be17b9effd44b2b3d7db0b41c161a5904a46ae6f38b26b387ad7f3709 + languageName: node + linkType: hard + +"@svgr/babel-plugin-svg-em-dimensions@npm:8.0.0": + version: 8.0.0 + resolution: "@svgr/babel-plugin-svg-em-dimensions@npm:8.0.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: be0e2d391164428327d9ec469a52cea7d93189c6b0e2c290999e048f597d777852f701c64dca44cd45b31ed14a7f859520326e2e4ad7c3a4545d0aa235bc7e9a + languageName: node + linkType: hard + +"@svgr/babel-plugin-transform-react-native-svg@npm:8.1.0": + version: 8.1.0 + resolution: "@svgr/babel-plugin-transform-react-native-svg@npm:8.1.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 85b434a57572f53bd2b9f0606f253e1fcf57b4a8c554ec3f2d43ed17f50d8cae200cb3aaf1ec9d626e1456e8b135dce530ae047eb0bed6d4bf98a752d6640459 + languageName: node + linkType: hard + +"@svgr/babel-plugin-transform-svg-component@npm:8.0.0": + version: 8.0.0 + resolution: "@svgr/babel-plugin-transform-svg-component@npm:8.0.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 04e2023d75693eeb0890341c40e449881184663056c249be7e5c80168e4aabb0fadd255e8d5d2dbf54b8c2a6e700efba994377135bfa4060dc4a2e860116ef8c + languageName: node + linkType: hard + +"@svgr/babel-preset@npm:8.1.0": + version: 8.1.0 + resolution: "@svgr/babel-preset@npm:8.1.0" + dependencies: + "@svgr/babel-plugin-add-jsx-attribute": 8.0.0 + "@svgr/babel-plugin-remove-jsx-attribute": 8.0.0 + "@svgr/babel-plugin-remove-jsx-empty-expression": 8.0.0 + "@svgr/babel-plugin-replace-jsx-attribute-value": 8.0.0 + "@svgr/babel-plugin-svg-dynamic-title": 8.0.0 + "@svgr/babel-plugin-svg-em-dimensions": 8.0.0 + "@svgr/babel-plugin-transform-react-native-svg": 8.1.0 + "@svgr/babel-plugin-transform-svg-component": 8.0.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 3a67930f080b8891e1e8e2595716b879c944d253112bae763dce59807ba23454d162216c8d66a0a0e3d4f38a649ecd6c387e545d1e1261dd69a68e9a3392ee08 + languageName: node + linkType: hard + +"@svgr/core@npm:8.1.0": + version: 8.1.0 + resolution: "@svgr/core@npm:8.1.0" + dependencies: + "@babel/core": ^7.21.3 + "@svgr/babel-preset": 8.1.0 + camelcase: ^6.2.0 + cosmiconfig: ^8.1.3 + snake-case: ^3.0.4 + checksum: da4a12865c7dc59829d58df8bd232d6c85b7115fda40da0d2f844a1a51886e2e945560596ecfc0345d37837ac457de86a931e8b8d8550e729e0c688c02250d8a + languageName: node + linkType: hard + +"@svgr/hast-util-to-babel-ast@npm:8.0.0": + version: 8.0.0 + resolution: "@svgr/hast-util-to-babel-ast@npm:8.0.0" + dependencies: + "@babel/types": ^7.21.3 + entities: ^4.4.0 + checksum: 88401281a38bbc7527e65ff5437970414391a86158ef4b4046c89764c156d2d39ecd7cce77be8a51994c9fb3249170cb1eb8b9128b62faaa81743ef6ed3534ab + languageName: node + linkType: hard + +"@svgr/plugin-jsx@npm:8.1.0": + version: 8.1.0 + resolution: "@svgr/plugin-jsx@npm:8.1.0" + dependencies: + "@babel/core": ^7.21.3 + "@svgr/babel-preset": 8.1.0 + "@svgr/hast-util-to-babel-ast": 8.0.0 + svg-parser: ^2.0.4 + peerDependencies: + "@svgr/core": "*" + checksum: 0418a9780753d3544912ee2dad5d2cf8d12e1ba74df8053651b3886aeda54d5f0f7d2dece0af5e0d838332c4f139a57f0dabaa3ca1afa4d1a765efce6a7656f2 + languageName: node + linkType: hard + +"@svgr/plugin-svgo@npm:8.1.0": + version: 8.1.0 + resolution: "@svgr/plugin-svgo@npm:8.1.0" + dependencies: + cosmiconfig: ^8.1.3 + deepmerge: ^4.3.1 + svgo: ^3.0.2 + peerDependencies: + "@svgr/core": "*" + checksum: 59d9d214cebaacca9ca71a561f463d8b7e5a68ca9443e4792a42d903acd52259b1790c0680bc6afecc3f00a255a6cbd7ea278a9f625bac443620ea58a590c2d0 + languageName: node + linkType: hard + +"@svgr/webpack@npm:^8.1.0": + version: 8.1.0 + resolution: "@svgr/webpack@npm:8.1.0" + dependencies: + "@babel/core": ^7.21.3 + "@babel/plugin-transform-react-constant-elements": ^7.21.3 + "@babel/preset-env": ^7.20.2 + "@babel/preset-react": ^7.18.6 + "@babel/preset-typescript": ^7.21.0 + "@svgr/core": 8.1.0 + "@svgr/plugin-jsx": 8.1.0 + "@svgr/plugin-svgo": 8.1.0 + checksum: c6eec5b0cf2fb2ecd3a7a362d272eda35330b17c76802a3481f499b5d07ff8f87b31d2571043bff399b051a1767b1e2e499dbf186104d1c06d76f9f1535fac01 + languageName: node + linkType: hard + +"@szmarczak/http-timer@npm:^5.0.1": + version: 5.0.1 + resolution: "@szmarczak/http-timer@npm:5.0.1" + dependencies: + defer-to-connect: ^2.0.1 + checksum: fc9cb993e808806692e4a3337c90ece0ec00c89f4b67e3652a356b89730da98bc824273a6d67ca84d5f33cd85f317dcd5ce39d8cc0a2f060145a608a7cb8ce92 + languageName: node + linkType: hard + +"@trysound/sax@npm:0.2.0": + version: 0.2.0 + resolution: "@trysound/sax@npm:0.2.0" + checksum: 11226c39b52b391719a2a92e10183e4260d9651f86edced166da1d95f39a0a1eaa470e44d14ac685ccd6d3df7e2002433782872c0feeb260d61e80f21250e65c + languageName: node + linkType: hard + +"@types/acorn@npm:^4.0.0": + version: 4.0.6 + resolution: "@types/acorn@npm:4.0.6" + dependencies: + "@types/estree": "*" + checksum: 60e1fd28af18d6cb54a93a7231c7c18774a9a8739c9b179e9e8750dca631e10cbef2d82b02830ea3f557b1d121e6406441e9e1250bd492dc81d4b3456e76e4d4 + languageName: node + linkType: hard + +"@types/body-parser@npm:*": + version: 1.19.5 + resolution: "@types/body-parser@npm:1.19.5" + dependencies: + "@types/connect": "*" + "@types/node": "*" + checksum: 1e251118c4b2f61029cc43b0dc028495f2d1957fe8ee49a707fb940f86a9bd2f9754230805598278fe99958b49e9b7e66eec8ef6a50ab5c1f6b93e1ba2aaba82 + languageName: node + linkType: hard + +"@types/bonjour@npm:^3.5.9": + version: 3.5.13 + resolution: "@types/bonjour@npm:3.5.13" + dependencies: + "@types/node": "*" + checksum: e827570e097bd7d625a673c9c208af2d1a22fa3885c0a1646533cf24394c839c3e5f60ac1bc60c0ddcc69c0615078c9fb2c01b42596c7c582d895d974f2409ee + languageName: node + linkType: hard + +"@types/connect-history-api-fallback@npm:^1.3.5": + version: 1.5.4 + resolution: "@types/connect-history-api-fallback@npm:1.5.4" + dependencies: + "@types/express-serve-static-core": "*" + "@types/node": "*" + checksum: e1dee43b8570ffac02d2d47a2b4ba80d3ca0dd1840632dafb221da199e59dbe3778d3d7303c9e23c6b401f37c076935a5bc2aeae1c4e5feaefe1c371fe2073fd + languageName: node + linkType: hard + +"@types/connect@npm:*": + version: 3.4.38 + resolution: "@types/connect@npm:3.4.38" + dependencies: + "@types/node": "*" + checksum: 7eb1bc5342a9604facd57598a6c62621e244822442976c443efb84ff745246b10d06e8b309b6e80130026a396f19bf6793b7cecd7380169f369dac3bfc46fb99 + languageName: node + linkType: hard + +"@types/d3-scale-chromatic@npm:^3.0.0": + version: 3.0.3 + resolution: "@types/d3-scale-chromatic@npm:3.0.3" + checksum: a465d126a00a71d3824957283580b4b404fe6f6bb52eb2b7303047fffed2bec6e31aeb34bfb30313e72ee1d75243c50ec5a45824eaf547f9c0849a1379527662 + languageName: node + linkType: hard + +"@types/d3-scale@npm:^4.0.3": + version: 4.0.8 + resolution: "@types/d3-scale@npm:4.0.8" + dependencies: + "@types/d3-time": "*" + checksum: 3b1906da895564f73bb3d0415033d9a8aefe7c4f516f970176d5b2ff7a417bd27ae98486e9a9aa0472001dc9885a9204279a1973a985553bdb3ee9bbc1b94018 + languageName: node + linkType: hard + +"@types/d3-time@npm:*": + version: 3.0.3 + resolution: "@types/d3-time@npm:3.0.3" + checksum: a071826c80efdb1999e6406fef2db516d45f3906da3a9a4da8517fa863bae53c4c1056ca5347a20921660607d21ec874fd2febe0e961adb7be6954255587d08f + languageName: node + linkType: hard + +"@types/debug@npm:^4.0.0": + version: 4.1.12 + resolution: "@types/debug@npm:4.1.12" + dependencies: + "@types/ms": "*" + checksum: 47876a852de8240bfdaf7481357af2b88cb660d30c72e73789abf00c499d6bc7cd5e52f41c915d1b9cd8ec9fef5b05688d7b7aef17f7f272c2d04679508d1053 + languageName: node + linkType: hard + +"@types/eslint-scope@npm:^3.7.3": + version: 3.7.7 + resolution: "@types/eslint-scope@npm:3.7.7" + dependencies: + "@types/eslint": "*" + "@types/estree": "*" + checksum: e2889a124aaab0b89af1bab5959847c5bec09809209255de0e63b9f54c629a94781daa04adb66bffcdd742f5e25a17614fb933965093c0eea64aacda4309380e + languageName: node + linkType: hard + +"@types/eslint@npm:*": + version: 8.56.10 + resolution: "@types/eslint@npm:8.56.10" + dependencies: + "@types/estree": "*" + "@types/json-schema": "*" + checksum: fb7137dd263ce1130b42d14452bdd0266ef81f52cb55ba1a5e9750e65da1f0596dc598c88bffc7e415458b6cb611a876dcc132bcf40ea48701c6d05b40c57be5 + languageName: node + linkType: hard + +"@types/estree-jsx@npm:^1.0.0": + version: 1.0.5 + resolution: "@types/estree-jsx@npm:1.0.5" + dependencies: + "@types/estree": "*" + checksum: a028ab0cd7b2950168a05c6a86026eb3a36a54a4adfae57f13911d7b49dffe573d9c2b28421b2d029b49b3d02fcd686611be2622dc3dad6d9791166c083f6008 + languageName: node + linkType: hard + +"@types/estree@npm:*, @types/estree@npm:^1.0.0, @types/estree@npm:^1.0.5": + version: 1.0.5 + resolution: "@types/estree@npm:1.0.5" + checksum: dd8b5bed28e6213b7acd0fb665a84e693554d850b0df423ac8076cc3ad5823a6bc26b0251d080bdc545af83179ede51dd3f6fa78cad2c46ed1f29624ddf3e41a + languageName: node + linkType: hard + +"@types/express-serve-static-core@npm:*, @types/express-serve-static-core@npm:^4.17.33": + version: 4.19.0 + resolution: "@types/express-serve-static-core@npm:4.19.0" + dependencies: + "@types/node": "*" + "@types/qs": "*" + "@types/range-parser": "*" + "@types/send": "*" + checksum: 39c09fcb3f61de96ed56d97273874cafe50e6675ac254af4d77014e569e4fdc29d1d0d1dd12e11f008cb9a52785b07c2801c6ba91397965392b20c75ee01fb4e + languageName: node + linkType: hard + +"@types/express@npm:*, @types/express@npm:^4.17.13": + version: 4.17.21 + resolution: "@types/express@npm:4.17.21" + dependencies: + "@types/body-parser": "*" + "@types/express-serve-static-core": ^4.17.33 + "@types/qs": "*" + "@types/serve-static": "*" + checksum: fb238298630370a7392c7abdc80f495ae6c716723e114705d7e3fb67e3850b3859bbfd29391463a3fb8c0b32051847935933d99e719c0478710f8098ee7091c5 + languageName: node + linkType: hard + +"@types/gtag.js@npm:^0.0.12": + version: 0.0.12 + resolution: "@types/gtag.js@npm:0.0.12" + checksum: 34efc27fbfd0013255b8bfd4af38ded9d5a6ba761130c76f17fd3a9585d83acc88d8005aab667cfec4bdec0e7c7217f689739799a8f61aed0edb929be58b162e + languageName: node + linkType: hard + +"@types/hast@npm:^3.0.0": + version: 3.0.4 + resolution: "@types/hast@npm:3.0.4" + dependencies: + "@types/unist": "*" + checksum: 7a973e8d16fcdf3936090fa2280f408fb2b6a4f13b42edeb5fbd614efe042b82eac68e298e556d50f6b4ad585a3a93c353e9c826feccdc77af59de8dd400d044 + languageName: node + linkType: hard + +"@types/history@npm:^4.7.11": + version: 4.7.11 + resolution: "@types/history@npm:4.7.11" + checksum: c92e2ba407dcab0581a9afdf98f533aa41b61a71133420a6d92b1ca9839f741ab1f9395b17454ba5b88cb86020b70b22d74a1950ccfbdfd9beeaa5459fdc3464 + languageName: node + linkType: hard + +"@types/html-minifier-terser@npm:^6.0.0": + version: 6.1.0 + resolution: "@types/html-minifier-terser@npm:6.1.0" + checksum: eb843f6a8d662d44fb18ec61041117734c6aae77aa38df1be3b4712e8e50ffaa35f1e1c92fdd0fde14a5675fecf457abcd0d15a01fae7506c91926176967f452 + languageName: node + linkType: hard + +"@types/http-cache-semantics@npm:^4.0.2": + version: 4.0.4 + resolution: "@types/http-cache-semantics@npm:4.0.4" + checksum: 7f4dd832e618bc1e271be49717d7b4066d77c2d4eed5b81198eb987e532bb3e1c7e02f45d77918185bad936f884b700c10cebe06305f50400f382ab75055f9e8 + languageName: node + linkType: hard + +"@types/http-errors@npm:*": + version: 2.0.4 + resolution: "@types/http-errors@npm:2.0.4" + checksum: 1f3d7c3b32c7524811a45690881736b3ef741bf9849ae03d32ad1ab7062608454b150a4e7f1351f83d26a418b2d65af9bdc06198f1c079d75578282884c4e8e3 + languageName: node + linkType: hard + +"@types/http-proxy@npm:^1.17.8": + version: 1.17.14 + resolution: "@types/http-proxy@npm:1.17.14" + dependencies: + "@types/node": "*" + checksum: 491320bce3565bbb6c7d39d25b54bce626237cfb6b09e60ee7f77b56ae7c6cbad76f08d47fe01eaa706781124ee3dfad9bb737049254491efd98ed1f014c4e83 + languageName: node + linkType: hard + +"@types/istanbul-lib-coverage@npm:*, @types/istanbul-lib-coverage@npm:^2.0.0": + version: 2.0.6 + resolution: "@types/istanbul-lib-coverage@npm:2.0.6" + checksum: 3feac423fd3e5449485afac999dcfcb3d44a37c830af898b689fadc65d26526460bedb889db278e0d4d815a670331796494d073a10ee6e3a6526301fe7415778 + languageName: node + linkType: hard + +"@types/istanbul-lib-report@npm:*": + version: 3.0.3 + resolution: "@types/istanbul-lib-report@npm:3.0.3" + dependencies: + "@types/istanbul-lib-coverage": "*" + checksum: b91e9b60f865ff08cb35667a427b70f6c2c63e88105eadd29a112582942af47ed99c60610180aa8dcc22382fa405033f141c119c69b95db78c4c709fbadfeeb4 + languageName: node + linkType: hard + +"@types/istanbul-reports@npm:^3.0.0": + version: 3.0.4 + resolution: "@types/istanbul-reports@npm:3.0.4" + dependencies: + "@types/istanbul-lib-report": "*" + checksum: 93eb18835770b3431f68ae9ac1ca91741ab85f7606f310a34b3586b5a34450ec038c3eed7ab19266635499594de52ff73723a54a72a75b9f7d6a956f01edee95 + languageName: node + linkType: hard + +"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.4, @types/json-schema@npm:^7.0.5, @types/json-schema@npm:^7.0.8, @types/json-schema@npm:^7.0.9": + version: 7.0.15 + resolution: "@types/json-schema@npm:7.0.15" + checksum: 97ed0cb44d4070aecea772b7b2e2ed971e10c81ec87dd4ecc160322ffa55ff330dace1793489540e3e318d90942064bb697cc0f8989391797792d919737b3b98 + languageName: node + linkType: hard + +"@types/mdast@npm:^3.0.0": + version: 3.0.15 + resolution: "@types/mdast@npm:3.0.15" + dependencies: + "@types/unist": ^2 + checksum: af85042a4e3af3f879bde4059fa9e76c71cb552dffc896cdcc6cf9dc1fd38e37035c2dbd6245cfa6535b433f1f0478f5549696234ccace47a64055a10c656530 + languageName: node + linkType: hard + +"@types/mdast@npm:^4.0.0, @types/mdast@npm:^4.0.2": + version: 4.0.4 + resolution: "@types/mdast@npm:4.0.4" + dependencies: + "@types/unist": "*" + checksum: 20c4e9574cc409db662a35cba52b068b91eb696b3049e94321219d47d34c8ccc99a142be5c76c80a538b612457b03586bc2f6b727a3e9e7530f4c8568f6282ee + languageName: node + linkType: hard + +"@types/mdx@npm:^2.0.0": + version: 2.0.13 + resolution: "@types/mdx@npm:2.0.13" + checksum: 195137b548e75a85f0558bb1ca5088aff1c01ae0fc64454da06085b7513a043356d0bb51ed559d3cbc7ad724ccd8cef2a7d07d014b89a47a74dff8875ceb3b15 + languageName: node + linkType: hard + +"@types/mime@npm:^1": + version: 1.3.5 + resolution: "@types/mime@npm:1.3.5" + checksum: e29a5f9c4776f5229d84e525b7cd7dd960b51c30a0fb9a028c0821790b82fca9f672dab56561e2acd9e8eed51d431bde52eafdfef30f643586c4162f1aecfc78 + languageName: node + linkType: hard + +"@types/ms@npm:*": + version: 0.7.34 + resolution: "@types/ms@npm:0.7.34" + checksum: f38d36e7b6edecd9badc9cf50474159e9da5fa6965a75186cceaf883278611b9df6669dc3a3cc122b7938d317b68a9e3d573d316fcb35d1be47ec9e468c6bd8a + languageName: node + linkType: hard + +"@types/node-forge@npm:^1.3.0": + version: 1.3.11 + resolution: "@types/node-forge@npm:1.3.11" + dependencies: + "@types/node": "*" + checksum: 1e86bd55b92a492eaafd75f6d01f31e7d86a5cdadd0c6bcdc0b1df4103b7f99bb75b832efd5217c7ddda5c781095dc086a868e20b9de00f5a427ddad4c296cd5 + languageName: node + linkType: hard + +"@types/node@npm:*": + version: 20.12.12 + resolution: "@types/node@npm:20.12.12" + dependencies: + undici-types: ~5.26.4 + checksum: 5373983874b9af7c216e7ca5d26b32a8d9829c703a69f1e66f2113598b5be8582c0e009ca97369f1ec9a6282b3f92812208d06eb1e9fc3bd9b939b022303d042 + languageName: node + linkType: hard + +"@types/node@npm:^17.0.5": + version: 17.0.45 + resolution: "@types/node@npm:17.0.45" + checksum: aa04366b9103b7d6cfd6b2ef64182e0eaa7d4462c3f817618486ea0422984c51fc69fd0d436eae6c9e696ddfdbec9ccaa27a917f7c2e8c75c5d57827fe3d95e8 + languageName: node + linkType: hard + +"@types/parse-json@npm:^4.0.0": + version: 4.0.2 + resolution: "@types/parse-json@npm:4.0.2" + checksum: 5bf62eec37c332ad10059252fc0dab7e7da730764869c980b0714777ad3d065e490627be9f40fc52f238ffa3ac4199b19de4127196910576c2fe34dd47c7a470 + languageName: node + linkType: hard + +"@types/prismjs@npm:^1.26.0": + version: 1.26.4 + resolution: "@types/prismjs@npm:1.26.4" + checksum: ae33fa6be38b15b11d211806c2ad034bb2d794ca4897bed4eff574114d9d0ae99c89a7489fc04b2655472413ba430e30deb5c26b190261218928cf2ee9f414d1 + languageName: node + linkType: hard + +"@types/prop-types@npm:*": + version: 15.7.12 + resolution: "@types/prop-types@npm:15.7.12" + checksum: ac16cc3d0a84431ffa5cfdf89579ad1e2269549f32ce0c769321fdd078f84db4fbe1b461ed5a1a496caf09e637c0e367d600c541435716a55b1d9713f5035dfe + languageName: node + linkType: hard + +"@types/qs@npm:*": + version: 6.9.15 + resolution: "@types/qs@npm:6.9.15" + checksum: 97d8208c2b82013b618e7a9fc14df6bd40a73e1385ac479b6896bafc7949a46201c15f42afd06e86a05e914f146f495f606b6fb65610cc60cf2e0ff743ec38a2 + languageName: node + linkType: hard + +"@types/range-parser@npm:*": + version: 1.2.7 + resolution: "@types/range-parser@npm:1.2.7" + checksum: 95640233b689dfbd85b8c6ee268812a732cf36d5affead89e806fe30da9a430767af8ef2cd661024fd97e19d61f3dec75af2df5e80ec3bea000019ab7028629a + languageName: node + linkType: hard + +"@types/react-router-config@npm:*, @types/react-router-config@npm:^5.0.7": + version: 5.0.11 + resolution: "@types/react-router-config@npm:5.0.11" + dependencies: + "@types/history": ^4.7.11 + "@types/react": "*" + "@types/react-router": ^5.1.0 + checksum: 4b72d9b71e0576e193c11e5085bbdac43f31debfa3b6ebc24666f3d646ef25c1f57f16c29b1ddd3051c881e85f8e0d4ab5a7bbd5fc215b9377f57675b210be7c + languageName: node + linkType: hard + +"@types/react-router-dom@npm:*": + version: 5.3.3 + resolution: "@types/react-router-dom@npm:5.3.3" + dependencies: + "@types/history": ^4.7.11 + "@types/react": "*" + "@types/react-router": "*" + checksum: 28c4ea48909803c414bf5a08502acbb8ba414669b4b43bb51297c05fe5addc4df0b8fd00e0a9d1e3535ec4073ef38aaafac2c4a2b95b787167d113bc059beff3 + languageName: node + linkType: hard + +"@types/react-router@npm:*, @types/react-router@npm:^5.1.0": + version: 5.1.20 + resolution: "@types/react-router@npm:5.1.20" + dependencies: + "@types/history": ^4.7.11 + "@types/react": "*" + checksum: 128764143473a5e9457ddc715436b5d49814b1c214dde48939b9bef23f0e77f52ffcdfa97eb8d3cc27e2c229869c0cdd90f637d887b62f2c9f065a87d6425419 + languageName: node + linkType: hard + +"@types/react@npm:*": + version: 18.3.2 + resolution: "@types/react@npm:18.3.2" + dependencies: + "@types/prop-types": "*" + csstype: ^3.0.2 + checksum: d0b8b9d0ede6cd28dbbe34106d914b5e3652d9d7aa9d0f32fe6171506b6fc7c826d9d6571642976a5422bd29c5022fd893a710ed59a1177a0c1df8e02cf17ffe + languageName: node + linkType: hard + +"@types/retry@npm:0.12.0": + version: 0.12.0 + resolution: "@types/retry@npm:0.12.0" + checksum: 61a072c7639f6e8126588bf1eb1ce8835f2cb9c2aba795c4491cf6310e013267b0c8488039857c261c387e9728c1b43205099223f160bb6a76b4374f741b5603 + languageName: node + linkType: hard + +"@types/sax@npm:^1.2.1": + version: 1.2.7 + resolution: "@types/sax@npm:1.2.7" + dependencies: + "@types/node": "*" + checksum: 7ece5fbb5d9c8fc76ab0de2f99d705edf92f18e701d4f9d9b0647275e32eb65e656c1badf9dfaa12f4e1ff3e250561c8c9cfe79e8b5f33dd1417ac0f1804f6cc + languageName: node + linkType: hard + +"@types/send@npm:*": + version: 0.17.4 + resolution: "@types/send@npm:0.17.4" + dependencies: + "@types/mime": ^1 + "@types/node": "*" + checksum: cf4db48251bbb03cd6452b4de6e8e09e2d75390a92fd798eca4a803df06444adc94ed050246c94c7ed46fb97be1f63607f0e1f13c3ce83d71788b3e08640e5e0 + languageName: node + linkType: hard + +"@types/serve-index@npm:^1.9.1": + version: 1.9.4 + resolution: "@types/serve-index@npm:1.9.4" + dependencies: + "@types/express": "*" + checksum: 72727c88d54da5b13275ebfb75dcdc4aa12417bbe9da1939e017c4c5f0c906fae843aa4e0fbfe360e7ee9df2f3d388c21abfc488f77ce58693fb57809f8ded92 + languageName: node + linkType: hard + +"@types/serve-static@npm:*, @types/serve-static@npm:^1.13.10": + version: 1.15.7 + resolution: "@types/serve-static@npm:1.15.7" + dependencies: + "@types/http-errors": "*" + "@types/node": "*" + "@types/send": "*" + checksum: bbbf00dbd84719da2250a462270dc68964006e8d62f41fe3741abd94504ba3688f420a49afb2b7478921a1544d3793183ffa097c5724167da777f4e0c7f1a7d6 + languageName: node + linkType: hard + +"@types/sockjs@npm:^0.3.33": + version: 0.3.36 + resolution: "@types/sockjs@npm:0.3.36" + dependencies: + "@types/node": "*" + checksum: b4b5381122465d80ea8b158537c00bc82317222d3fb31fd7229ff25b31fa89134abfbab969118da55622236bf3d8fee75759f3959908b5688991f492008f29bc + languageName: node + linkType: hard + +"@types/unist@npm:*, @types/unist@npm:^3.0.0": + version: 3.0.2 + resolution: "@types/unist@npm:3.0.2" + checksum: 3d04d0be69316e5f14599a0d993a208606c12818cf631fd399243d1dc7a9bd8a3917d6066baa6abc290814afbd744621484756803c80cba892c39cd4b4a85616 + languageName: node + linkType: hard + +"@types/unist@npm:^2, @types/unist@npm:^2.0.0": + version: 2.0.10 + resolution: "@types/unist@npm:2.0.10" + checksum: e2924e18dedf45f68a5c6ccd6015cd62f1643b1b43baac1854efa21ae9e70505db94290434a23da1137d9e31eb58e54ca175982005698ac37300a1c889f6c4aa + languageName: node + linkType: hard + +"@types/ws@npm:^8.5.5": + version: 8.5.10 + resolution: "@types/ws@npm:8.5.10" + dependencies: + "@types/node": "*" + checksum: 3ec416ea2be24042ebd677932a462cf16d2080393d8d7d0b1b3f5d6eaa4a7387aaf0eefb99193c0bfd29444857cf2e0c3ac89899e130550dc6c14ada8a46d25e + languageName: node + linkType: hard + +"@types/yargs-parser@npm:*": + version: 21.0.3 + resolution: "@types/yargs-parser@npm:21.0.3" + checksum: ef236c27f9432983e91432d974243e6c4cdae227cb673740320eff32d04d853eed59c92ca6f1142a335cfdc0e17cccafa62e95886a8154ca8891cc2dec4ee6fc + languageName: node + linkType: hard + +"@types/yargs@npm:^17.0.8": + version: 17.0.32 + resolution: "@types/yargs@npm:17.0.32" + dependencies: + "@types/yargs-parser": "*" + checksum: 4505bdebe8716ff383640c6e928f855b5d337cb3c68c81f7249fc6b983d0aa48de3eee26062b84f37e0d75a5797bc745e0c6e76f42f81771252a758c638f36ba + languageName: node + linkType: hard + +"@ungap/structured-clone@npm:^1.0.0": + version: 1.2.0 + resolution: "@ungap/structured-clone@npm:1.2.0" + checksum: 4f656b7b4672f2ce6e272f2427d8b0824ed11546a601d8d5412b9d7704e83db38a8d9f402ecdf2b9063fc164af842ad0ec4a55819f621ed7e7ea4d1efcc74524 + languageName: node + linkType: hard + +"@webassemblyjs/ast@npm:1.12.1, @webassemblyjs/ast@npm:^1.12.1": + version: 1.12.1 + resolution: "@webassemblyjs/ast@npm:1.12.1" + dependencies: + "@webassemblyjs/helper-numbers": 1.11.6 + "@webassemblyjs/helper-wasm-bytecode": 1.11.6 + checksum: 31bcc64147236bd7b1b6d29d1f419c1f5845c785e1e42dc9e3f8ca2e05a029e9393a271b84f3a5bff2a32d35f51ff59e2181a6e5f953fe88576acd6750506202 + languageName: node + linkType: hard + +"@webassemblyjs/floating-point-hex-parser@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/floating-point-hex-parser@npm:1.11.6" + checksum: 29b08758841fd8b299c7152eda36b9eb4921e9c584eb4594437b5cd90ed6b920523606eae7316175f89c20628da14326801090167cc7fbffc77af448ac84b7e2 + languageName: node + linkType: hard + +"@webassemblyjs/helper-api-error@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/helper-api-error@npm:1.11.6" + checksum: e8563df85161096343008f9161adb138a6e8f3c2cc338d6a36011aa55eabb32f2fd138ffe63bc278d009ada001cc41d263dadd1c0be01be6c2ed99076103689f + languageName: node + linkType: hard + +"@webassemblyjs/helper-buffer@npm:1.12.1": + version: 1.12.1 + resolution: "@webassemblyjs/helper-buffer@npm:1.12.1" + checksum: c3ffb723024130308db608e86e2bdccd4868bbb62dffb0a9a1530606496f79c87f8565bd8e02805ce64912b71f1a70ee5fb00307258b0c082c3abf961d097eca + languageName: node + linkType: hard + +"@webassemblyjs/helper-numbers@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/helper-numbers@npm:1.11.6" + dependencies: + "@webassemblyjs/floating-point-hex-parser": 1.11.6 + "@webassemblyjs/helper-api-error": 1.11.6 + "@xtuc/long": 4.2.2 + checksum: f4b562fa219f84368528339e0f8d273ad44e047a07641ffcaaec6f93e5b76fd86490a009aa91a294584e1436d74b0a01fa9fde45e333a4c657b58168b04da424 + languageName: node + linkType: hard + +"@webassemblyjs/helper-wasm-bytecode@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/helper-wasm-bytecode@npm:1.11.6" + checksum: 3535ef4f1fba38de3475e383b3980f4bbf3de72bbb631c2b6584c7df45be4eccd62c6ff48b5edd3f1bcff275cfd605a37679ec199fc91fd0a7705d7f1e3972dc + languageName: node + linkType: hard + +"@webassemblyjs/helper-wasm-section@npm:1.12.1": + version: 1.12.1 + resolution: "@webassemblyjs/helper-wasm-section@npm:1.12.1" + dependencies: + "@webassemblyjs/ast": 1.12.1 + "@webassemblyjs/helper-buffer": 1.12.1 + "@webassemblyjs/helper-wasm-bytecode": 1.11.6 + "@webassemblyjs/wasm-gen": 1.12.1 + checksum: c19810cdd2c90ff574139b6d8c0dda254d42d168a9e5b3d353d1bc085f1d7164ccd1b3c05592a45a939c47f7e403dc8d03572bb686642f06a3d02932f6f0bc8f + languageName: node + linkType: hard + +"@webassemblyjs/ieee754@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/ieee754@npm:1.11.6" + dependencies: + "@xtuc/ieee754": ^1.2.0 + checksum: 13574b8e41f6ca39b700e292d7edf102577db5650fe8add7066a320aa4b7a7c09a5056feccac7a74eb68c10dea9546d4461412af351f13f6b24b5f32379b49de + languageName: node + linkType: hard + +"@webassemblyjs/leb128@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/leb128@npm:1.11.6" + dependencies: + "@xtuc/long": 4.2.2 + checksum: 7ea942dc9777d4b18a5ebfa3a937b30ae9e1d2ce1fee637583ed7f376334dd1d4274f813d2e250056cca803e0952def4b954913f1a3c9068bcd4ab4ee5143bf0 + languageName: node + linkType: hard + +"@webassemblyjs/utf8@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/utf8@npm:1.11.6" + checksum: 807fe5b5ce10c390cfdd93e0fb92abda8aebabb5199980681e7c3743ee3306a75729bcd1e56a3903980e96c885ee53ef901fcbaac8efdfa480f9c0dae1d08713 + languageName: node + linkType: hard + +"@webassemblyjs/wasm-edit@npm:^1.12.1": + version: 1.12.1 + resolution: "@webassemblyjs/wasm-edit@npm:1.12.1" + dependencies: + "@webassemblyjs/ast": 1.12.1 + "@webassemblyjs/helper-buffer": 1.12.1 + "@webassemblyjs/helper-wasm-bytecode": 1.11.6 + "@webassemblyjs/helper-wasm-section": 1.12.1 + "@webassemblyjs/wasm-gen": 1.12.1 + "@webassemblyjs/wasm-opt": 1.12.1 + "@webassemblyjs/wasm-parser": 1.12.1 + "@webassemblyjs/wast-printer": 1.12.1 + checksum: ae23642303f030af888d30c4ef37b08dfec7eab6851a9575a616e65d1219f880d9223913a39056dd654e49049d76e97555b285d1f7e56935047abf578cce0692 + languageName: node + linkType: hard + +"@webassemblyjs/wasm-gen@npm:1.12.1": + version: 1.12.1 + resolution: "@webassemblyjs/wasm-gen@npm:1.12.1" + dependencies: + "@webassemblyjs/ast": 1.12.1 + "@webassemblyjs/helper-wasm-bytecode": 1.11.6 + "@webassemblyjs/ieee754": 1.11.6 + "@webassemblyjs/leb128": 1.11.6 + "@webassemblyjs/utf8": 1.11.6 + checksum: 5787626bb7f0b033044471ddd00ce0c9fe1ee4584e8b73e232051e3a4c99ba1a102700d75337151c8b6055bae77eefa4548960c610a5e4a504e356bd872138ff + languageName: node + linkType: hard + +"@webassemblyjs/wasm-opt@npm:1.12.1": + version: 1.12.1 + resolution: "@webassemblyjs/wasm-opt@npm:1.12.1" + dependencies: + "@webassemblyjs/ast": 1.12.1 + "@webassemblyjs/helper-buffer": 1.12.1 + "@webassemblyjs/wasm-gen": 1.12.1 + "@webassemblyjs/wasm-parser": 1.12.1 + checksum: 0e8fa8a0645304a1e18ff40d3db5a2e9233ebaa169b19fcc651d6fc9fe2cac0ce092ddee927318015ae735d9cd9c5d97c0cafb6a51dcd2932ac73587b62df991 + languageName: node + linkType: hard + +"@webassemblyjs/wasm-parser@npm:1.12.1, @webassemblyjs/wasm-parser@npm:^1.12.1": + version: 1.12.1 + resolution: "@webassemblyjs/wasm-parser@npm:1.12.1" + dependencies: + "@webassemblyjs/ast": 1.12.1 + "@webassemblyjs/helper-api-error": 1.11.6 + "@webassemblyjs/helper-wasm-bytecode": 1.11.6 + "@webassemblyjs/ieee754": 1.11.6 + "@webassemblyjs/leb128": 1.11.6 + "@webassemblyjs/utf8": 1.11.6 + checksum: 176015de3551ac068cd4505d837414f258d9ade7442bd71efb1232fa26c9f6d7d4e11a5c816caeed389943f409af7ebff6899289a992d7a70343cb47009d21a8 + languageName: node + linkType: hard + +"@webassemblyjs/wast-printer@npm:1.12.1": + version: 1.12.1 + resolution: "@webassemblyjs/wast-printer@npm:1.12.1" + dependencies: + "@webassemblyjs/ast": 1.12.1 + "@xtuc/long": 4.2.2 + checksum: 2974b5dda8d769145ba0efd886ea94a601e61fb37114c14f9a9a7606afc23456799af652ac3052f284909bd42edc3665a76bc9b50f95f0794c053a8a1757b713 + languageName: node + linkType: hard + +"@xtuc/ieee754@npm:^1.2.0": + version: 1.2.0 + resolution: "@xtuc/ieee754@npm:1.2.0" + checksum: ac56d4ca6e17790f1b1677f978c0c6808b1900a5b138885d3da21732f62e30e8f0d9120fcf8f6edfff5100ca902b46f8dd7c1e3f903728634523981e80e2885a + languageName: node + linkType: hard + +"@xtuc/long@npm:4.2.2": + version: 4.2.2 + resolution: "@xtuc/long@npm:4.2.2" + checksum: 8ed0d477ce3bc9c6fe2bf6a6a2cc316bb9c4127c5a7827bae947fa8ec34c7092395c5a283cc300c05b5fa01cbbfa1f938f410a7bf75db7c7846fea41949989ec + languageName: node + linkType: hard + +"abbrev@npm:^2.0.0": + version: 2.0.0 + resolution: "abbrev@npm:2.0.0" + checksum: 0e994ad2aa6575f94670d8a2149afe94465de9cedaaaac364e7fb43a40c3691c980ff74899f682f4ca58fa96b4cbd7421a015d3a6defe43a442117d7821a2f36 + languageName: node + linkType: hard + +"accepts@npm:~1.3.4, accepts@npm:~1.3.5, accepts@npm:~1.3.8": + version: 1.3.8 + resolution: "accepts@npm:1.3.8" + dependencies: + mime-types: ~2.1.34 + negotiator: 0.6.3 + checksum: 50c43d32e7b50285ebe84b613ee4a3aa426715a7d131b65b786e2ead0fd76b6b60091b9916d3478a75f11f162628a2139991b6c03ab3f1d9ab7c86075dc8eab4 + languageName: node + linkType: hard + +"acorn-import-assertions@npm:^1.9.0": + version: 1.9.0 + resolution: "acorn-import-assertions@npm:1.9.0" + peerDependencies: + acorn: ^8 + checksum: 944fb2659d0845c467066bdcda2e20c05abe3aaf11972116df457ce2627628a81764d800dd55031ba19de513ee0d43bb771bc679cc0eda66dc8b4fade143bc0c + languageName: node + linkType: hard + +"acorn-jsx@npm:^5.0.0": + version: 5.3.2 + resolution: "acorn-jsx@npm:5.3.2" + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + checksum: c3d3b2a89c9a056b205b69530a37b972b404ee46ec8e5b341666f9513d3163e2a4f214a71f4dfc7370f5a9c07472d2fd1c11c91c3f03d093e37637d95da98950 + languageName: node + linkType: hard + +"acorn-walk@npm:^8.0.0": + version: 8.3.2 + resolution: "acorn-walk@npm:8.3.2" + checksum: 3626b9d26a37b1b427796feaa5261faf712307a8920392c8dce9a5739fb31077667f4ad2ec71c7ac6aaf9f61f04a9d3d67ff56f459587206fc04aa31c27ef392 + languageName: node + linkType: hard + +"acorn@npm:^8.0.0, acorn@npm:^8.0.4, acorn@npm:^8.7.1, acorn@npm:^8.8.2": + version: 8.11.3 + resolution: "acorn@npm:8.11.3" + bin: + acorn: bin/acorn + checksum: 76d8e7d559512566b43ab4aadc374f11f563f0a9e21626dd59cb2888444e9445923ae9f3699972767f18af61df89cd89f5eaaf772d1327b055b45cb829b4a88c + languageName: node + linkType: hard + +"address@npm:^1.0.1, address@npm:^1.1.2": + version: 1.2.2 + resolution: "address@npm:1.2.2" + checksum: ace439960c1e3564d8f523aff23a841904bf33a2a7c2e064f7f60a064194075758b9690e65bd9785692a4ef698a998c57eb74d145881a1cecab8ba658ddb1607 + languageName: node + linkType: hard + +"agent-base@npm:^7.0.2, agent-base@npm:^7.1.0, agent-base@npm:^7.1.1": + version: 7.1.1 + resolution: "agent-base@npm:7.1.1" + dependencies: + debug: ^4.3.4 + checksum: 51c158769c5c051482f9ca2e6e1ec085ac72b5a418a9b31b4e82fe6c0a6699adb94c1c42d246699a587b3335215037091c79e0de512c516f73b6ea844202f037 + languageName: node + linkType: hard + +"aggregate-error@npm:^3.0.0": + version: 3.1.0 + resolution: "aggregate-error@npm:3.1.0" + dependencies: + clean-stack: ^2.0.0 + indent-string: ^4.0.0 + checksum: 1101a33f21baa27a2fa8e04b698271e64616b886795fd43c31068c07533c7b3facfcaf4e9e0cab3624bd88f729a592f1c901a1a229c9e490eafce411a8644b79 + languageName: node + linkType: hard + +"ajv-formats@npm:^2.1.1": + version: 2.1.1 + resolution: "ajv-formats@npm:2.1.1" + dependencies: + ajv: ^8.0.0 + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true + checksum: 4a287d937f1ebaad4683249a4c40c0fa3beed30d9ddc0adba04859026a622da0d317851316ea64b3680dc60f5c3c708105ddd5d5db8fe595d9d0207fd19f90b7 + languageName: node + linkType: hard + +"ajv-keywords@npm:^3.4.1, ajv-keywords@npm:^3.5.2": + version: 3.5.2 + resolution: "ajv-keywords@npm:3.5.2" + peerDependencies: + ajv: ^6.9.1 + checksum: 7dc5e5931677a680589050f79dcbe1fefbb8fea38a955af03724229139175b433c63c68f7ae5f86cf8f65d55eb7c25f75a046723e2e58296707617ca690feae9 + languageName: node + linkType: hard + +"ajv-keywords@npm:^5.1.0": + version: 5.1.0 + resolution: "ajv-keywords@npm:5.1.0" + dependencies: + fast-deep-equal: ^3.1.3 + peerDependencies: + ajv: ^8.8.2 + checksum: c35193940b853119242c6757787f09ecf89a2c19bcd36d03ed1a615e710d19d450cb448bfda407b939aba54b002368c8bff30529cc50a0536a8e10bcce300421 + languageName: node + linkType: hard + +"ajv@npm:^6.12.2, ajv@npm:^6.12.5": + version: 6.12.6 + resolution: "ajv@npm:6.12.6" + dependencies: + fast-deep-equal: ^3.1.1 + fast-json-stable-stringify: ^2.0.0 + json-schema-traverse: ^0.4.1 + uri-js: ^4.2.2 + checksum: 874972efe5c4202ab0a68379481fbd3d1b5d0a7bd6d3cc21d40d3536ebff3352a2a1fabb632d4fd2cc7fe4cbdcd5ed6782084c9bbf7f32a1536d18f9da5007d4 + languageName: node + linkType: hard + +"ajv@npm:^8.0.0, ajv@npm:^8.9.0": + version: 8.13.0 + resolution: "ajv@npm:8.13.0" + dependencies: + fast-deep-equal: ^3.1.3 + json-schema-traverse: ^1.0.0 + require-from-string: ^2.0.2 + uri-js: ^4.4.1 + checksum: 6de82d0b2073e645ca3300561356ddda0234f39b35d2125a8700b650509b296f41c00ab69f53178bbe25ad688bd6ac3747ab44101f2f4bd245952e8fd6ccc3c1 + languageName: node + linkType: hard + +"algoliasearch-helper@npm:^3.13.3": + version: 3.19.0 + resolution: "algoliasearch-helper@npm:3.19.0" + dependencies: + "@algolia/events": ^4.0.1 + peerDependencies: + algoliasearch: ">= 3.1 < 6" + checksum: 32d602a0226356a47c99050334bdafe13a0077953827b572a063396213c4e09de88ff317820b56788c6a1c25b5ced68019a8494ee234f71476c6fdbf5a275d99 + languageName: node + linkType: hard + +"algoliasearch@npm:^4.12.0, algoliasearch@npm:^4.18.0, algoliasearch@npm:^4.19.1": + version: 4.23.3 + resolution: "algoliasearch@npm:4.23.3" + dependencies: + "@algolia/cache-browser-local-storage": 4.23.3 + "@algolia/cache-common": 4.23.3 + "@algolia/cache-in-memory": 4.23.3 + "@algolia/client-account": 4.23.3 + "@algolia/client-analytics": 4.23.3 + "@algolia/client-common": 4.23.3 + "@algolia/client-personalization": 4.23.3 + "@algolia/client-search": 4.23.3 + "@algolia/logger-common": 4.23.3 + "@algolia/logger-console": 4.23.3 + "@algolia/recommend": 4.23.3 + "@algolia/requester-browser-xhr": 4.23.3 + "@algolia/requester-common": 4.23.3 + "@algolia/requester-node-http": 4.23.3 + "@algolia/transporter": 4.23.3 + checksum: e5035b1234941b48821727feef38cb8438a0aab6343f23138392180f3de13769e0b3bc42f9fa34a7573c16c988a4e7897a5335be6e729803d749147dc04bf807 + languageName: node + linkType: hard + +"ansi-align@npm:^3.0.1": + version: 3.0.1 + resolution: "ansi-align@npm:3.0.1" + dependencies: + string-width: ^4.1.0 + checksum: 6abfa08f2141d231c257162b15292467081fa49a208593e055c866aa0455b57f3a86b5a678c190c618faa79b4c59e254493099cb700dd9cf2293c6be2c8f5d8d + languageName: node + linkType: hard + +"ansi-html-community@npm:^0.0.8": + version: 0.0.8 + resolution: "ansi-html-community@npm:0.0.8" + bin: + ansi-html: bin/ansi-html + checksum: 04c568e8348a636963f915e48eaa3e01218322e1169acafdd79c384f22e5558c003f79bbc480c1563865497482817c7eed025f0653ebc17642fededa5cb42089 + languageName: node + linkType: hard + +"ansi-regex@npm:^5.0.1": + version: 5.0.1 + resolution: "ansi-regex@npm:5.0.1" + checksum: 2aa4bb54caf2d622f1afdad09441695af2a83aa3fe8b8afa581d205e57ed4261c183c4d3877cee25794443fde5876417d859c108078ab788d6af7e4fe52eb66b + languageName: node + linkType: hard + +"ansi-regex@npm:^6.0.1": + version: 6.0.1 + resolution: "ansi-regex@npm:6.0.1" + checksum: 1ff8b7667cded1de4fa2c9ae283e979fc87036864317da86a2e546725f96406746411d0d85e87a2d12fa5abd715d90006de7fa4fa0477c92321ad3b4c7d4e169 + languageName: node + linkType: hard + +"ansi-styles@npm:^3.2.1": + version: 3.2.1 + resolution: "ansi-styles@npm:3.2.1" + dependencies: + color-convert: ^1.9.0 + checksum: d85ade01c10e5dd77b6c89f34ed7531da5830d2cb5882c645f330079975b716438cd7ebb81d0d6e6b4f9c577f19ae41ab55f07f19786b02f9dfd9e0377395665 + languageName: node + linkType: hard + +"ansi-styles@npm:^4.0.0, ansi-styles@npm:^4.1.0": + version: 4.3.0 + resolution: "ansi-styles@npm:4.3.0" + dependencies: + color-convert: ^2.0.1 + checksum: 513b44c3b2105dd14cc42a19271e80f386466c4be574bccf60b627432f9198571ebf4ab1e4c3ba17347658f4ee1711c163d574248c0c1cdc2d5917a0ad582ec4 + languageName: node + linkType: hard + +"ansi-styles@npm:^6.1.0": + version: 6.2.1 + resolution: "ansi-styles@npm:6.2.1" + checksum: ef940f2f0ced1a6347398da88a91da7930c33ecac3c77b72c5905f8b8fe402c52e6fde304ff5347f616e27a742da3f1dc76de98f6866c69251ad0b07a66776d9 + languageName: node + linkType: hard + +"anymatch@npm:~3.1.2": + version: 3.1.3 + resolution: "anymatch@npm:3.1.3" + dependencies: + normalize-path: ^3.0.0 + picomatch: ^2.0.4 + checksum: 3e044fd6d1d26545f235a9fe4d7a534e2029d8e59fa7fd9f2a6eb21230f6b5380ea1eaf55136e60cbf8e613544b3b766e7a6fa2102e2a3a117505466e3025dc2 + languageName: node + linkType: hard + +"arg@npm:^5.0.0": + version: 5.0.2 + resolution: "arg@npm:5.0.2" + checksum: 6c69ada1a9943d332d9e5382393e897c500908d91d5cb735a01120d5f71daf1b339b7b8980cbeaba8fd1afc68e658a739746179e4315a26e8a28951ff9930078 + languageName: node + linkType: hard + +"argparse@npm:^1.0.7": + version: 1.0.10 + resolution: "argparse@npm:1.0.10" + dependencies: + sprintf-js: ~1.0.2 + checksum: 7ca6e45583a28de7258e39e13d81e925cfa25d7d4aacbf806a382d3c02fcb13403a07fb8aeef949f10a7cfe4a62da0e2e807b348a5980554cc28ee573ef95945 + languageName: node + linkType: hard + +"argparse@npm:^2.0.1": + version: 2.0.1 + resolution: "argparse@npm:2.0.1" + checksum: 83644b56493e89a254bae05702abf3a1101b4fa4d0ca31df1c9985275a5a5bd47b3c27b7fa0b71098d41114d8ca000e6ed90cad764b306f8a503665e4d517ced + languageName: node + linkType: hard + +"array-flatten@npm:1.1.1": + version: 1.1.1 + resolution: "array-flatten@npm:1.1.1" + checksum: a9925bf3512d9dce202112965de90c222cd59a4fbfce68a0951d25d965cf44642931f40aac72309c41f12df19afa010ecadceb07cfff9ccc1621e99d89ab5f3b + languageName: node + linkType: hard + +"array-union@npm:^2.1.0": + version: 2.1.0 + resolution: "array-union@npm:2.1.0" + checksum: 5bee12395cba82da674931df6d0fea23c4aa4660cb3b338ced9f828782a65caa232573e6bf3968f23e0c5eb301764a382cef2f128b170a9dc59de0e36c39f98d + languageName: node + linkType: hard + +"astring@npm:^1.8.0": + version: 1.8.6 + resolution: "astring@npm:1.8.6" + bin: + astring: bin/astring + checksum: 6f034d2acef1dac8bb231e7cc26c573d3c14e1975ea6e04f20312b43d4f462f963209bc64187d25d477a182dc3c33277959a0156ab7a3617aa79b1eac4d88e1f + languageName: node + linkType: hard + +"at-least-node@npm:^1.0.0": + version: 1.0.0 + resolution: "at-least-node@npm:1.0.0" + checksum: 463e2f8e43384f1afb54bc68485c436d7622acec08b6fad269b421cb1d29cebb5af751426793d0961ed243146fe4dc983402f6d5a51b720b277818dbf6f2e49e + languageName: node + linkType: hard + +"autoprefixer@npm:^10.4.14, autoprefixer@npm:^10.4.19": + version: 10.4.19 + resolution: "autoprefixer@npm:10.4.19" + dependencies: + browserslist: ^4.23.0 + caniuse-lite: ^1.0.30001599 + fraction.js: ^4.3.7 + normalize-range: ^0.1.2 + picocolors: ^1.0.0 + postcss-value-parser: ^4.2.0 + peerDependencies: + postcss: ^8.1.0 + bin: + autoprefixer: bin/autoprefixer + checksum: 3a4bc5bace05e057396dca2b306503efc175e90e8f2abf5472d3130b72da1d54d97c0ee05df21bf04fe66a7df93fd8c8ec0f1aca72a165f4701a02531abcbf11 + languageName: node + linkType: hard + +"babel-loader@npm:^9.1.3": + version: 9.1.3 + resolution: "babel-loader@npm:9.1.3" + dependencies: + find-cache-dir: ^4.0.0 + schema-utils: ^4.0.0 + peerDependencies: + "@babel/core": ^7.12.0 + webpack: ">=5" + checksum: b168dde5b8cf11206513371a79f86bb3faa7c714e6ec9fffd420876b61f3d7f5f4b976431095ef6a14bc4d324505126deb91045fd41e312ba49f4deaa166fe28 + languageName: node + linkType: hard + +"babel-plugin-dynamic-import-node@npm:^2.3.3": + version: 2.3.3 + resolution: "babel-plugin-dynamic-import-node@npm:2.3.3" + dependencies: + object.assign: ^4.1.0 + checksum: c9d24415bcc608d0db7d4c8540d8002ac2f94e2573d2eadced137a29d9eab7e25d2cbb4bc6b9db65cf6ee7430f7dd011d19c911a9a778f0533b4a05ce8292c9b + languageName: node + linkType: hard + +"babel-plugin-polyfill-corejs2@npm:^0.4.10": + version: 0.4.11 + resolution: "babel-plugin-polyfill-corejs2@npm:0.4.11" + dependencies: + "@babel/compat-data": ^7.22.6 + "@babel/helper-define-polyfill-provider": ^0.6.2 + semver: ^6.3.1 + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: f098353ce7c7dde1a1d2710858e01b471e85689110c9e37813e009072347eb8c55d5f84d20d3bf1cab31755f20078ba90f8855fdc4686a9daa826a95ff280bd7 + languageName: node + linkType: hard + +"babel-plugin-polyfill-corejs3@npm:^0.10.1, babel-plugin-polyfill-corejs3@npm:^0.10.4": + version: 0.10.4 + resolution: "babel-plugin-polyfill-corejs3@npm:0.10.4" + dependencies: + "@babel/helper-define-polyfill-provider": ^0.6.1 + core-js-compat: ^3.36.1 + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: b96a54495f7cc8b3797251c8c15f5ed015edddc3110fc122f6b32c94bec33af1e8bc56fa99091808f500bde0cccaaa266889cdc5935d9e6e9cf09898214f02dd + languageName: node + linkType: hard + +"babel-plugin-polyfill-regenerator@npm:^0.6.1": + version: 0.6.2 + resolution: "babel-plugin-polyfill-regenerator@npm:0.6.2" + dependencies: + "@babel/helper-define-polyfill-provider": ^0.6.2 + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: 150233571072b6b3dfe946242da39cba8587b7f908d1c006f7545fc88b0e3c3018d445739beb61e7a75835f0c2751dbe884a94ff9b245ec42369d9267e0e1b3f + languageName: node + linkType: hard + +"bail@npm:^2.0.0": + version: 2.0.2 + resolution: "bail@npm:2.0.2" + checksum: aab4e8ccdc8d762bf3fdfce8e706601695620c0c2eda256dd85088dc0be3cfd7ff126f6e99c2bee1f24f5d418414aacf09d7f9702f16d6963df2fa488cda8824 + languageName: node + linkType: hard + +"balanced-match@npm:^1.0.0": + version: 1.0.2 + resolution: "balanced-match@npm:1.0.2" + checksum: 9706c088a283058a8a99e0bf91b0a2f75497f185980d9ffa8b304de1d9e58ebda7c72c07ebf01dadedaac5b2907b2c6f566f660d62bd336c3468e960403b9d65 + languageName: node + linkType: hard + +"batch@npm:0.6.1": + version: 0.6.1 + resolution: "batch@npm:0.6.1" + checksum: 61f9934c7378a51dce61b915586191078ef7f1c3eca707fdd58b96ff2ff56d9e0af2bdab66b1462301a73c73374239e6542d9821c0af787f3209a23365d07e7f + languageName: node + linkType: hard + +"big.js@npm:^5.2.2": + version: 5.2.2 + resolution: "big.js@npm:5.2.2" + checksum: b89b6e8419b097a8fb4ed2399a1931a68c612bce3cfd5ca8c214b2d017531191070f990598de2fc6f3f993d91c0f08aa82697717f6b3b8732c9731866d233c9e + languageName: node + linkType: hard + +"binary-extensions@npm:^2.0.0": + version: 2.3.0 + resolution: "binary-extensions@npm:2.3.0" + checksum: bcad01494e8a9283abf18c1b967af65ee79b0c6a9e6fcfafebfe91dbe6e0fc7272bafb73389e198b310516ae04f7ad17d79aacf6cb4c0d5d5202a7e2e52c7d98 + languageName: node + linkType: hard + +"body-parser@npm:1.20.2": + version: 1.20.2 + resolution: "body-parser@npm:1.20.2" + dependencies: + bytes: 3.1.2 + content-type: ~1.0.5 + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + on-finished: 2.4.1 + qs: 6.11.0 + raw-body: 2.5.2 + type-is: ~1.6.18 + unpipe: 1.0.0 + checksum: 14d37ec638ab5c93f6099ecaed7f28f890d222c650c69306872e00b9efa081ff6c596cd9afb9930656aae4d6c4e1c17537bea12bb73c87a217cb3cfea8896737 + languageName: node + linkType: hard + +"bonjour-service@npm:^1.0.11": + version: 1.2.1 + resolution: "bonjour-service@npm:1.2.1" + dependencies: + fast-deep-equal: ^3.1.3 + multicast-dns: ^7.2.5 + checksum: b65b3e6e3a07e97f2da5806afb76f3946d5a6426b72e849a0236dc3c9d3612fb8c5359ebade4be7eb63f74a37670c53a53be2ff17f4f709811fda77f600eb25b + languageName: node + linkType: hard + +"boolbase@npm:^1.0.0": + version: 1.0.0 + resolution: "boolbase@npm:1.0.0" + checksum: 3e25c80ef626c3a3487c73dbfc70ac322ec830666c9ad915d11b701142fab25ec1e63eff2c450c74347acfd2de854ccde865cd79ef4db1683f7c7b046ea43bb0 + languageName: node + linkType: hard + +"boxen@npm:^6.2.1": + version: 6.2.1 + resolution: "boxen@npm:6.2.1" + dependencies: + ansi-align: ^3.0.1 + camelcase: ^6.2.0 + chalk: ^4.1.2 + cli-boxes: ^3.0.0 + string-width: ^5.0.1 + type-fest: ^2.5.0 + widest-line: ^4.0.1 + wrap-ansi: ^8.0.1 + checksum: 2b3226092f1ff8e149c02979098c976552afa15f9e0231c9ed2dfcaaf84604494d16a6f13b647f718439f64d3140a088e822d47c7db00d2266e9ffc8d7321774 + languageName: node + linkType: hard + +"boxen@npm:^7.0.0": + version: 7.1.1 + resolution: "boxen@npm:7.1.1" + dependencies: + ansi-align: ^3.0.1 + camelcase: ^7.0.1 + chalk: ^5.2.0 + cli-boxes: ^3.0.0 + string-width: ^5.1.2 + type-fest: ^2.13.0 + widest-line: ^4.0.1 + wrap-ansi: ^8.1.0 + checksum: ad8833d5f2845b0a728fdf8a0bc1505dff0c518edcb0fd56979a08774b1f26cf48b71e66532179ccdfb9ed95b64aa008689cca26f7776f93f002b8000a683d76 + languageName: node + linkType: hard + +"brace-expansion@npm:^1.1.7": + version: 1.1.11 + resolution: "brace-expansion@npm:1.1.11" + dependencies: + balanced-match: ^1.0.0 + concat-map: 0.0.1 + checksum: faf34a7bb0c3fcf4b59c7808bc5d2a96a40988addf2e7e09dfbb67a2251800e0d14cd2bfc1aa79174f2f5095c54ff27f46fb1289fe2d77dac755b5eb3434cc07 + languageName: node + linkType: hard + +"brace-expansion@npm:^2.0.1": + version: 2.0.1 + resolution: "brace-expansion@npm:2.0.1" + dependencies: + balanced-match: ^1.0.0 + checksum: a61e7cd2e8a8505e9f0036b3b6108ba5e926b4b55089eeb5550cd04a471fe216c96d4fe7e4c7f995c728c554ae20ddfc4244cad10aef255e72b62930afd233d1 + languageName: node + linkType: hard + +"braces@npm:^3.0.2, braces@npm:~3.0.2": + version: 3.0.2 + resolution: "braces@npm:3.0.2" + dependencies: + fill-range: ^7.0.1 + checksum: e2a8e769a863f3d4ee887b5fe21f63193a891c68b612ddb4b68d82d1b5f3ff9073af066c343e9867a393fe4c2555dcb33e89b937195feb9c1613d259edfcd459 + languageName: node + linkType: hard + +"browserslist@npm:^4.0.0, browserslist@npm:^4.18.1, browserslist@npm:^4.21.10, browserslist@npm:^4.22.2, browserslist@npm:^4.23.0": + version: 4.23.0 + resolution: "browserslist@npm:4.23.0" + dependencies: + caniuse-lite: ^1.0.30001587 + electron-to-chromium: ^1.4.668 + node-releases: ^2.0.14 + update-browserslist-db: ^1.0.13 + bin: + browserslist: cli.js + checksum: 436f49e796782ca751ebab7edc010cfc9c29f68536f387666cd70ea22f7105563f04dd62c6ff89cb24cc3254d17cba385f979eeeb3484d43e012412ff7e75def + languageName: node + linkType: hard + +"buffer-from@npm:^1.0.0": + version: 1.1.2 + resolution: "buffer-from@npm:1.1.2" + checksum: 0448524a562b37d4d7ed9efd91685a5b77a50672c556ea254ac9a6d30e3403a517d8981f10e565db24e8339413b43c97ca2951f10e399c6125a0d8911f5679bb + languageName: node + linkType: hard + +"bytes@npm:3.0.0": + version: 3.0.0 + resolution: "bytes@npm:3.0.0" + checksum: a2b386dd8188849a5325f58eef69c3b73c51801c08ffc6963eddc9be244089ba32d19347caf6d145c86f315ae1b1fc7061a32b0c1aa6379e6a719090287ed101 + languageName: node + linkType: hard + +"bytes@npm:3.1.2": + version: 3.1.2 + resolution: "bytes@npm:3.1.2" + checksum: e4bcd3948d289c5127591fbedf10c0b639ccbf00243504e4e127374a15c3bc8eed0d28d4aaab08ff6f1cf2abc0cce6ba3085ed32f4f90e82a5683ce0014e1b6e + languageName: node + linkType: hard + +"cacache@npm:^18.0.0": + version: 18.0.3 + resolution: "cacache@npm:18.0.3" + dependencies: + "@npmcli/fs": ^3.1.0 + fs-minipass: ^3.0.0 + glob: ^10.2.2 + lru-cache: ^10.0.1 + minipass: ^7.0.3 + minipass-collect: ^2.0.1 + minipass-flush: ^1.0.5 + minipass-pipeline: ^1.2.4 + p-map: ^4.0.0 + ssri: ^10.0.0 + tar: ^6.1.11 + unique-filename: ^3.0.0 + checksum: b717fd9b36e9c3279bfde4545c3a8f6d5a539b084ee26a9504d48f83694beb724057d26e090b97540f9cc62bea18b9f6cf671c50e18fb7dac60eda9db691714f + languageName: node + linkType: hard + +"cacheable-lookup@npm:^7.0.0": + version: 7.0.0 + resolution: "cacheable-lookup@npm:7.0.0" + checksum: 9e2856763fc0a7347ab34d704c010440b819d4bb5e3593b664381b7433e942dd22e67ee5581f12256f908e79b82d30b86ebbacf40a081bfe10ee93fbfbc2d6a9 + languageName: node + linkType: hard + +"cacheable-request@npm:^10.2.8": + version: 10.2.14 + resolution: "cacheable-request@npm:10.2.14" + dependencies: + "@types/http-cache-semantics": ^4.0.2 + get-stream: ^6.0.1 + http-cache-semantics: ^4.1.1 + keyv: ^4.5.3 + mimic-response: ^4.0.0 + normalize-url: ^8.0.0 + responselike: ^3.0.0 + checksum: 56f2b8e1c497c91f8391f0b099d19907a7dde25e71087e622b23e45fc8061736c2a6964ef121b16f377c3c61079cf8dc17320ab54004209d1343e4d26aba7015 + languageName: node + linkType: hard + +"call-bind@npm:^1.0.5, call-bind@npm:^1.0.7": + version: 1.0.7 + resolution: "call-bind@npm:1.0.7" + dependencies: + es-define-property: ^1.0.0 + es-errors: ^1.3.0 + function-bind: ^1.1.2 + get-intrinsic: ^1.2.4 + set-function-length: ^1.2.1 + checksum: 295c0c62b90dd6522e6db3b0ab1ce26bdf9e7404215bda13cfee25b626b5ff1a7761324d58d38b1ef1607fc65aca2d06e44d2e18d0dfc6c14b465b00d8660029 + languageName: node + linkType: hard + +"callsites@npm:^3.0.0": + version: 3.1.0 + resolution: "callsites@npm:3.1.0" + checksum: 072d17b6abb459c2ba96598918b55868af677154bec7e73d222ef95a8fdb9bbf7dae96a8421085cdad8cd190d86653b5b6dc55a4484f2e5b2e27d5e0c3fc15b3 + languageName: node + linkType: hard + +"camel-case@npm:^4.1.2": + version: 4.1.2 + resolution: "camel-case@npm:4.1.2" + dependencies: + pascal-case: ^3.1.2 + tslib: ^2.0.3 + checksum: bcbd25cd253b3cbc69be3f535750137dbf2beb70f093bdc575f73f800acc8443d34fd52ab8f0a2413c34f1e8203139ffc88428d8863e4dfe530cfb257a379ad6 + languageName: node + linkType: hard + +"camelcase@npm:^6.2.0": + version: 6.3.0 + resolution: "camelcase@npm:6.3.0" + checksum: 8c96818a9076434998511251dcb2761a94817ea17dbdc37f47ac080bd088fc62c7369429a19e2178b993497132c8cbcf5cc1f44ba963e76782ba469c0474938d + languageName: node + linkType: hard + +"camelcase@npm:^7.0.1": + version: 7.0.1 + resolution: "camelcase@npm:7.0.1" + checksum: 86ab8f3ebf08bcdbe605a211a242f00ed30d8bfb77dab4ebb744dd36efbc84432d1c4adb28975ba87a1b8be40a80fbd1e60e2f06565315918fa7350011a26d3d + languageName: node + linkType: hard + +"caniuse-api@npm:^3.0.0": + version: 3.0.0 + resolution: "caniuse-api@npm:3.0.0" + dependencies: + browserslist: ^4.0.0 + caniuse-lite: ^1.0.0 + lodash.memoize: ^4.1.2 + lodash.uniq: ^4.5.0 + checksum: db2a229383b20d0529b6b589dde99d7b6cb56ba371366f58cbbfa2929c9f42c01f873e2b6ef641d4eda9f0b4118de77dbb2805814670bdad4234bf08e720b0b4 + languageName: node + linkType: hard + +"caniuse-lite@npm:^1.0.0, caniuse-lite@npm:^1.0.30001587, caniuse-lite@npm:^1.0.30001599": + version: 1.0.30001620 + resolution: "caniuse-lite@npm:1.0.30001620" + checksum: 1831e519c29ce6971bc50d56bab196a307fcb4181e7deaa80df314b035b87b3912b8626b4e87adc301d0bfe6a90b99814101b1cb28114b96e720f996f19bdc0d + languageName: node + linkType: hard + +"ccount@npm:^2.0.0": + version: 2.0.1 + resolution: "ccount@npm:2.0.1" + checksum: 48193dada54c9e260e0acf57fc16171a225305548f9ad20d5471e0f7a8c026aedd8747091dccb0d900cde7df4e4ddbd235df0d8de4a64c71b12f0d3303eeafd4 + languageName: node + linkType: hard + +"chalk@npm:^2.4.2": + version: 2.4.2 + resolution: "chalk@npm:2.4.2" + dependencies: + ansi-styles: ^3.2.1 + escape-string-regexp: ^1.0.5 + supports-color: ^5.3.0 + checksum: ec3661d38fe77f681200f878edbd9448821924e0f93a9cefc0e26a33b145f1027a2084bf19967160d11e1f03bfe4eaffcabf5493b89098b2782c3fe0b03d80c2 + languageName: node + linkType: hard + +"chalk@npm:^4.0.0, chalk@npm:^4.1.0, chalk@npm:^4.1.2": + version: 4.1.2 + resolution: "chalk@npm:4.1.2" + dependencies: + ansi-styles: ^4.1.0 + supports-color: ^7.1.0 + checksum: fe75c9d5c76a7a98d45495b91b2172fa3b7a09e0cc9370e5c8feb1c567b85c4288e2b3fded7cfdd7359ac28d6b3844feb8b82b8686842e93d23c827c417e83fc + languageName: node + linkType: hard + +"chalk@npm:^5.0.1, chalk@npm:^5.2.0": + version: 5.3.0 + resolution: "chalk@npm:5.3.0" + checksum: 623922e077b7d1e9dedaea6f8b9e9352921f8ae3afe739132e0e00c275971bdd331268183b2628cf4ab1727c45ea1f28d7e24ac23ce1db1eb653c414ca8a5a80 + languageName: node + linkType: hard + +"char-regex@npm:^1.0.2": + version: 1.0.2 + resolution: "char-regex@npm:1.0.2" + checksum: b563e4b6039b15213114626621e7a3d12f31008bdce20f9c741d69987f62aeaace7ec30f6018890ad77b2e9b4d95324c9f5acfca58a9441e3b1dcdd1e2525d17 + languageName: node + linkType: hard + +"character-entities-html4@npm:^2.0.0": + version: 2.1.0 + resolution: "character-entities-html4@npm:2.1.0" + checksum: 7034aa7c7fa90309667f6dd50499c8a760c3d3a6fb159adb4e0bada0107d194551cdbad0714302f62d06ce4ed68565c8c2e15fdef2e8f8764eb63fa92b34b11d + languageName: node + linkType: hard + +"character-entities-legacy@npm:^3.0.0": + version: 3.0.0 + resolution: "character-entities-legacy@npm:3.0.0" + checksum: 7582af055cb488b626d364b7d7a4e46b06abd526fb63c0e4eb35bcb9c9799cc4f76b39f34fdccef2d1174ac95e53e9ab355aae83227c1a2505877893fce77731 + languageName: node + linkType: hard + +"character-entities@npm:^2.0.0": + version: 2.0.2 + resolution: "character-entities@npm:2.0.2" + checksum: cf1643814023697f725e47328fcec17923b8f1799102a8a79c1514e894815651794a2bffd84bb1b3a4b124b050154e4529ed6e81f7c8068a734aecf07a6d3def + languageName: node + linkType: hard + +"character-reference-invalid@npm:^2.0.0": + version: 2.0.1 + resolution: "character-reference-invalid@npm:2.0.1" + checksum: 98d3b1a52ae510b7329e6ee7f6210df14f1e318c5415975d4c9e7ee0ef4c07875d47c6e74230c64551f12f556b4a8ccc24d9f3691a2aa197019e72a95e9297ee + languageName: node + linkType: hard + +"cheerio-select@npm:^2.1.0": + version: 2.1.0 + resolution: "cheerio-select@npm:2.1.0" + dependencies: + boolbase: ^1.0.0 + css-select: ^5.1.0 + css-what: ^6.1.0 + domelementtype: ^2.3.0 + domhandler: ^5.0.3 + domutils: ^3.0.1 + checksum: 843d6d479922f28a6c5342c935aff1347491156814de63c585a6eb73baf7bb4185c1b4383a1195dca0f12e3946d737c7763bcef0b9544c515d905c5c44c5308b + languageName: node + linkType: hard + +"cheerio@npm:^1.0.0-rc.12, cheerio@npm:^1.0.0-rc.9": + version: 1.0.0-rc.12 + resolution: "cheerio@npm:1.0.0-rc.12" + dependencies: + cheerio-select: ^2.1.0 + dom-serializer: ^2.0.0 + domhandler: ^5.0.3 + domutils: ^3.0.1 + htmlparser2: ^8.0.1 + parse5: ^7.0.0 + parse5-htmlparser2-tree-adapter: ^7.0.0 + checksum: 5d4c1b7a53cf22d3a2eddc0aff70cf23cbb30d01a4c79013e703a012475c02461aa1fcd99127e8d83a02216386ed6942b2c8103845fd0812300dd199e6e7e054 + languageName: node + linkType: hard + +"chokidar@npm:^3.4.2, chokidar@npm:^3.5.3": + version: 3.6.0 + resolution: "chokidar@npm:3.6.0" + dependencies: + anymatch: ~3.1.2 + braces: ~3.0.2 + fsevents: ~2.3.2 + glob-parent: ~5.1.2 + is-binary-path: ~2.1.0 + is-glob: ~4.0.1 + normalize-path: ~3.0.0 + readdirp: ~3.6.0 + dependenciesMeta: + fsevents: + optional: true + checksum: d2f29f499705dcd4f6f3bbed79a9ce2388cf530460122eed3b9c48efeab7a4e28739c6551fd15bec9245c6b9eeca7a32baa64694d64d9b6faeb74ddb8c4a413d + languageName: node + linkType: hard + +"chownr@npm:^2.0.0": + version: 2.0.0 + resolution: "chownr@npm:2.0.0" + checksum: c57cf9dd0791e2f18a5ee9c1a299ae6e801ff58fee96dc8bfd0dcb4738a6ce58dd252a3605b1c93c6418fe4f9d5093b28ffbf4d66648cb2a9c67eaef9679be2f + languageName: node + linkType: hard + +"chrome-trace-event@npm:^1.0.2": + version: 1.0.3 + resolution: "chrome-trace-event@npm:1.0.3" + checksum: cb8b1fc7e881aaef973bd0c4a43cd353c2ad8323fb471a041e64f7c2dd849cde4aad15f8b753331a32dda45c973f032c8a03b8177fc85d60eaa75e91e08bfb97 + languageName: node + linkType: hard + +"ci-info@npm:^3.2.0": + version: 3.9.0 + resolution: "ci-info@npm:3.9.0" + checksum: 6b19dc9b2966d1f8c2041a838217299718f15d6c4b63ae36e4674edd2bee48f780e94761286a56aa59eb305a85fbea4ddffb7630ec063e7ec7e7e5ad42549a87 + languageName: node + linkType: hard + +"clean-css@npm:^5.2.2, clean-css@npm:^5.3.2, clean-css@npm:~5.3.2": + version: 5.3.3 + resolution: "clean-css@npm:5.3.3" + dependencies: + source-map: ~0.6.0 + checksum: 941987c14860dd7d346d5cf121a82fd2caf8344160b1565c5387f7ccca4bbcaf885bace961be37c4f4713ce2d8c488dd89483c1add47bb779790edbfdcc79cbc + languageName: node + linkType: hard + +"clean-stack@npm:^2.0.0": + version: 2.2.0 + resolution: "clean-stack@npm:2.2.0" + checksum: 2ac8cd2b2f5ec986a3c743935ec85b07bc174d5421a5efc8017e1f146a1cf5f781ae962618f416352103b32c9cd7e203276e8c28241bbe946160cab16149fb68 + languageName: node + linkType: hard + +"cli-boxes@npm:^3.0.0": + version: 3.0.0 + resolution: "cli-boxes@npm:3.0.0" + checksum: 637d84419d293a9eac40a1c8c96a2859e7d98b24a1a317788e13c8f441be052fc899480c6acab3acc82eaf1bccda6b7542d7cdcf5c9c3cc39227175dc098d5b2 + languageName: node + linkType: hard + +"cli-table3@npm:^0.6.3": + version: 0.6.5 + resolution: "cli-table3@npm:0.6.5" + dependencies: + "@colors/colors": 1.5.0 + string-width: ^4.2.0 + dependenciesMeta: + "@colors/colors": + optional: true + checksum: ab7afbf4f8597f1c631f3ee6bb3481d0bfeac8a3b81cffb5a578f145df5c88003b6cfff46046a7acae86596fdd03db382bfa67f20973b6b57425505abc47e42c + languageName: node + linkType: hard + +"clone-deep@npm:^4.0.1": + version: 4.0.1 + resolution: "clone-deep@npm:4.0.1" + dependencies: + is-plain-object: ^2.0.4 + kind-of: ^6.0.2 + shallow-clone: ^3.0.0 + checksum: 770f912fe4e6f21873c8e8fbb1e99134db3b93da32df271d00589ea4a29dbe83a9808a322c93f3bcaf8584b8b4fa6fc269fc8032efbaa6728e0c9886c74467d2 + languageName: node + linkType: hard + +"clsx@npm:^1.1.1": + version: 1.2.1 + resolution: "clsx@npm:1.2.1" + checksum: 30befca8019b2eb7dbad38cff6266cf543091dae2825c856a62a8ccf2c3ab9c2907c4d12b288b73101196767f66812365400a227581484a05f968b0307cfaf12 + languageName: node + linkType: hard + +"clsx@npm:^2.0.0": + version: 2.1.1 + resolution: "clsx@npm:2.1.1" + checksum: acd3e1ab9d8a433ecb3cc2f6a05ab95fe50b4a3cfc5ba47abb6cbf3754585fcb87b84e90c822a1f256c4198e3b41c7f6c391577ffc8678ad587fc0976b24fd57 + languageName: node + linkType: hard + +"collapse-white-space@npm:^2.0.0": + version: 2.1.0 + resolution: "collapse-white-space@npm:2.1.0" + checksum: c8978b1f4e7d68bf846cfdba6c6689ce8910511df7d331eb6e6757e51ceffb52768d59a28db26186c91dcf9594955b59be9f8ccd473c485790f5d8b90dc6726f + languageName: node + linkType: hard + +"color-convert@npm:^1.9.0": + version: 1.9.3 + resolution: "color-convert@npm:1.9.3" + dependencies: + color-name: 1.1.3 + checksum: fd7a64a17cde98fb923b1dd05c5f2e6f7aefda1b60d67e8d449f9328b4e53b228a428fd38bfeaeb2db2ff6b6503a776a996150b80cdf224062af08a5c8a3a203 + languageName: node + linkType: hard + +"color-convert@npm:^2.0.1": + version: 2.0.1 + resolution: "color-convert@npm:2.0.1" + dependencies: + color-name: ~1.1.4 + checksum: 79e6bdb9fd479a205c71d89574fccfb22bd9053bd98c6c4d870d65c132e5e904e6034978e55b43d69fcaa7433af2016ee203ce76eeba9cfa554b373e7f7db336 + languageName: node + linkType: hard + +"color-name@npm:1.1.3": + version: 1.1.3 + resolution: "color-name@npm:1.1.3" + checksum: 09c5d3e33d2105850153b14466501f2bfb30324a2f76568a408763a3b7433b0e50e5b4ab1947868e65cb101bb7cb75029553f2c333b6d4b8138a73fcc133d69d + languageName: node + linkType: hard + +"color-name@npm:~1.1.4": + version: 1.1.4 + resolution: "color-name@npm:1.1.4" + checksum: b0445859521eb4021cd0fb0cc1a75cecf67fceecae89b63f62b201cca8d345baf8b952c966862a9d9a2632987d4f6581f0ec8d957dfacece86f0a7919316f610 + languageName: node + linkType: hard + +"colord@npm:^2.9.3": + version: 2.9.3 + resolution: "colord@npm:2.9.3" + checksum: 95d909bfbcfd8d5605cbb5af56f2d1ce2b323990258fd7c0d2eb0e6d3bb177254d7fb8213758db56bb4ede708964f78c6b992b326615f81a18a6aaf11d64c650 + languageName: node + linkType: hard + +"colorette@npm:^2.0.10": + version: 2.0.20 + resolution: "colorette@npm:2.0.20" + checksum: 0c016fea2b91b733eb9f4bcdb580018f52c0bc0979443dad930e5037a968237ac53d9beb98e218d2e9235834f8eebce7f8e080422d6194e957454255bde71d3d + languageName: node + linkType: hard + +"combine-promises@npm:^1.1.0": + version: 1.2.0 + resolution: "combine-promises@npm:1.2.0" + checksum: ddce91436e24da03d5dc360c59cd55abfc9da5e949a26255aa42761925c574797c43138f0aabfc364e184e738e5e218a94ac6e88ebc459045bcf048ac7fe5f07 + languageName: node + linkType: hard + +"comma-separated-tokens@npm:^2.0.0": + version: 2.0.3 + resolution: "comma-separated-tokens@npm:2.0.3" + checksum: e3bf9e0332a5c45f49b90e79bcdb4a7a85f28d6a6f0876a94f1bb9b2bfbdbbb9292aac50e1e742d8c0db1e62a0229a106f57917e2d067fca951d81737651700d + languageName: node + linkType: hard + +"commander@npm:7, commander@npm:^7.2.0": + version: 7.2.0 + resolution: "commander@npm:7.2.0" + checksum: 53501cbeee61d5157546c0bef0fedb6cdfc763a882136284bed9a07225f09a14b82d2a84e7637edfd1a679fb35ed9502fd58ef1d091e6287f60d790147f68ddc + languageName: node + linkType: hard + +"commander@npm:^10.0.0": + version: 10.0.1 + resolution: "commander@npm:10.0.1" + checksum: 436901d64a818295803c1996cd856621a74f30b9f9e28a588e726b2b1670665bccd7c1a77007ebf328729f0139838a88a19265858a0fa7a8728c4656796db948 + languageName: node + linkType: hard + +"commander@npm:^2.20.0": + version: 2.20.3 + resolution: "commander@npm:2.20.3" + checksum: ab8c07884e42c3a8dbc5dd9592c606176c7eb5c1ca5ff274bcf907039b2c41de3626f684ea75ccf4d361ba004bbaff1f577d5384c155f3871e456bdf27becf9e + languageName: node + linkType: hard + +"commander@npm:^5.1.0": + version: 5.1.0 + resolution: "commander@npm:5.1.0" + checksum: 0b7fec1712fbcc6230fcb161d8d73b4730fa91a21dc089515489402ad78810547683f058e2a9835929c212fead1d6a6ade70db28bbb03edbc2829a9ab7d69447 + languageName: node + linkType: hard + +"commander@npm:^8.3.0": + version: 8.3.0 + resolution: "commander@npm:8.3.0" + checksum: 0f82321821fc27b83bd409510bb9deeebcfa799ff0bf5d102128b500b7af22872c0c92cb6a0ebc5a4cf19c6b550fba9cedfa7329d18c6442a625f851377bacf0 + languageName: node + linkType: hard + +"common-path-prefix@npm:^3.0.0": + version: 3.0.0 + resolution: "common-path-prefix@npm:3.0.0" + checksum: fdb3c4f54e51e70d417ccd950c07f757582de800c0678ca388aedefefc84982039f346f9fd9a1252d08d2da9e9ef4019f580a1d1d3a10da031e4bb3c924c5818 + languageName: node + linkType: hard + +"compressible@npm:~2.0.16": + version: 2.0.18 + resolution: "compressible@npm:2.0.18" + dependencies: + mime-db: ">= 1.43.0 < 2" + checksum: 58321a85b375d39230405654721353f709d0c1442129e9a17081771b816302a012471a9b8f4864c7dbe02eef7f2aaac3c614795197092262e94b409c9be108f0 + languageName: node + linkType: hard + +"compression@npm:^1.7.4": + version: 1.7.4 + resolution: "compression@npm:1.7.4" + dependencies: + accepts: ~1.3.5 + bytes: 3.0.0 + compressible: ~2.0.16 + debug: 2.6.9 + on-headers: ~1.0.2 + safe-buffer: 5.1.2 + vary: ~1.1.2 + checksum: 35c0f2eb1f28418978615dc1bc02075b34b1568f7f56c62d60f4214d4b7cc00d0f6d282b5f8a954f59872396bd770b6b15ffd8aa94c67d4bce9b8887b906999b + languageName: node + linkType: hard + +"concat-map@npm:0.0.1": + version: 0.0.1 + resolution: "concat-map@npm:0.0.1" + checksum: 902a9f5d8967a3e2faf138d5cb784b9979bad2e6db5357c5b21c568df4ebe62bcb15108af1b2253744844eb964fc023fbd9afbbbb6ddd0bcc204c6fb5b7bf3af + languageName: node + linkType: hard + +"config-chain@npm:^1.1.11": + version: 1.1.13 + resolution: "config-chain@npm:1.1.13" + dependencies: + ini: ^1.3.4 + proto-list: ~1.2.1 + checksum: 828137a28e7c2fc4b7fb229bd0cd6c1397bcf83434de54347e608154008f411749041ee392cbe42fab6307e02de4c12480260bf769b7d44b778fdea3839eafab + languageName: node + linkType: hard + +"configstore@npm:^6.0.0": + version: 6.0.0 + resolution: "configstore@npm:6.0.0" + dependencies: + dot-prop: ^6.0.1 + graceful-fs: ^4.2.6 + unique-string: ^3.0.0 + write-file-atomic: ^3.0.3 + xdg-basedir: ^5.0.1 + checksum: 81995351c10bc04c58507f17748477aeac6f47465109d20e3534cebc881d22e927cfd29e73dd852c46c55f62c2b7be4cd1fe6eb3a93ba51f7f9813c218f9bae0 + languageName: node + linkType: hard + +"connect-history-api-fallback@npm:^2.0.0": + version: 2.0.0 + resolution: "connect-history-api-fallback@npm:2.0.0" + checksum: dc5368690f4a5c413889792f8df70d5941ca9da44523cde3f87af0745faee5ee16afb8195434550f0504726642734f2683d6c07f8b460f828a12c45fbd4c9a68 + languageName: node + linkType: hard + +"consola@npm:^2.15.3": + version: 2.15.3 + resolution: "consola@npm:2.15.3" + checksum: 8ef7a09b703ec67ac5c389a372a33b6dc97eda6c9876443a60d76a3076eea0259e7f67a4e54fd5a52f97df73690822d090cf8b7e102b5761348afef7c6d03e28 + languageName: node + linkType: hard + +"content-disposition@npm:0.5.2": + version: 0.5.2 + resolution: "content-disposition@npm:0.5.2" + checksum: 298d7da63255a38f7858ee19c7b6aae32b167e911293174b4c1349955e97e78e1d0b0d06c10e229405987275b417cf36ff65cbd4821a98bc9df4e41e9372cde7 + languageName: node + linkType: hard + +"content-disposition@npm:0.5.4": + version: 0.5.4 + resolution: "content-disposition@npm:0.5.4" + dependencies: + safe-buffer: 5.2.1 + checksum: afb9d545e296a5171d7574fcad634b2fdf698875f4006a9dd04a3e1333880c5c0c98d47b560d01216fb6505a54a2ba6a843ee3a02ec86d7e911e8315255f56c3 + languageName: node + linkType: hard + +"content-type@npm:~1.0.4, content-type@npm:~1.0.5": + version: 1.0.5 + resolution: "content-type@npm:1.0.5" + checksum: 566271e0a251642254cde0f845f9dd4f9856e52d988f4eb0d0dcffbb7a1f8ec98de7a5215fc628f3bce30fe2fb6fd2bc064b562d721658c59b544e2d34ea2766 + languageName: node + linkType: hard + +"convert-source-map@npm:^2.0.0": + version: 2.0.0 + resolution: "convert-source-map@npm:2.0.0" + checksum: 63ae9933be5a2b8d4509daca5124e20c14d023c820258e484e32dc324d34c2754e71297c94a05784064ad27615037ef677e3f0c00469fb55f409d2bb21261035 + languageName: node + linkType: hard + +"cookie-signature@npm:1.0.6": + version: 1.0.6 + resolution: "cookie-signature@npm:1.0.6" + checksum: f4e1b0a98a27a0e6e66fd7ea4e4e9d8e038f624058371bf4499cfcd8f3980be9a121486995202ba3fca74fbed93a407d6d54d43a43f96fd28d0bd7a06761591a + languageName: node + linkType: hard + +"cookie@npm:0.6.0": + version: 0.6.0 + resolution: "cookie@npm:0.6.0" + checksum: f56a7d32a07db5458e79c726b77e3c2eff655c36792f2b6c58d351fb5f61531e5b1ab7f46987150136e366c65213cbe31729e02a3eaed630c3bf7334635fb410 + languageName: node + linkType: hard + +"copy-text-to-clipboard@npm:^3.2.0": + version: 3.2.0 + resolution: "copy-text-to-clipboard@npm:3.2.0" + checksum: df7115c197a166d51f59e4e20ab2a68a855ae8746d25ff149b5465c694d9a405c7e6684b73a9f87ba8d653070164e229c15dfdb9fd77c30be1ff0da569661060 + languageName: node + linkType: hard + +"copy-webpack-plugin@npm:^11.0.0": + version: 11.0.0 + resolution: "copy-webpack-plugin@npm:11.0.0" + dependencies: + fast-glob: ^3.2.11 + glob-parent: ^6.0.1 + globby: ^13.1.1 + normalize-path: ^3.0.0 + schema-utils: ^4.0.0 + serialize-javascript: ^6.0.0 + peerDependencies: + webpack: ^5.1.0 + checksum: df4f8743f003a29ee7dd3d9b1789998a3a99051c92afb2ba2203d3dacfa696f4e757b275560fafb8f206e520a0aa78af34b990324a0e36c2326cefdeef3ca82e + languageName: node + linkType: hard + +"core-js-compat@npm:^3.31.0, core-js-compat@npm:^3.36.1": + version: 3.37.1 + resolution: "core-js-compat@npm:3.37.1" + dependencies: + browserslist: ^4.23.0 + checksum: 5e7430329358bced08c30950512d2081aea0a5652b4c5892cbb3c4a6db05b0d3893a191a955162a07fdb5f4fe74e61b6429fdb503f54e062336d76e43c9555d9 + languageName: node + linkType: hard + +"core-js-pure@npm:^3.30.2": + version: 3.37.1 + resolution: "core-js-pure@npm:3.37.1" + checksum: a13a40e3951975cffef12a0933d3dbf1ecedbf9821e1ec8024884b587744951ad30e3762a86bcb8e2a18fdd4b8d7c8971b2391605329799fc04e1fc1e1397dc1 + languageName: node + linkType: hard + +"core-js@npm:^3.31.1": + version: 3.37.1 + resolution: "core-js@npm:3.37.1" + checksum: 2d58a5c599f05c3e04abc8bc5e64b88eb17d914c0f552f670fb800afa74ec54b4fcc7f231ad6bd45badaf62c0fb0ce30e6fe89cedb6bb6d54e6f19115c3c17ff + languageName: node + linkType: hard + +"core-util-is@npm:~1.0.0": + version: 1.0.3 + resolution: "core-util-is@npm:1.0.3" + checksum: 9de8597363a8e9b9952491ebe18167e3b36e7707569eed0ebf14f8bba773611376466ae34575bca8cfe3c767890c859c74056084738f09d4e4a6f902b2ad7d99 + languageName: node + linkType: hard + +"cose-base@npm:^1.0.0": + version: 1.0.3 + resolution: "cose-base@npm:1.0.3" + dependencies: + layout-base: ^1.0.0 + checksum: 3f3d592316df74adb215ca91e430f1c22b6e890bc0025b32ae1f6464c73fdb9614816cb40a8d38b40c6a3e9e7b8c64eda90d53fb9a4a6948abec17dad496f30b + languageName: node + linkType: hard + +"cosmiconfig@npm:^6.0.0": + version: 6.0.0 + resolution: "cosmiconfig@npm:6.0.0" + dependencies: + "@types/parse-json": ^4.0.0 + import-fresh: ^3.1.0 + parse-json: ^5.0.0 + path-type: ^4.0.0 + yaml: ^1.7.2 + checksum: 8eed7c854b91643ecb820767d0deb038b50780ecc3d53b0b19e03ed8aabed4ae77271198d1ae3d49c3b110867edf679f5faad924820a8d1774144a87cb6f98fc + languageName: node + linkType: hard + +"cosmiconfig@npm:^8.1.3, cosmiconfig@npm:^8.3.5": + version: 8.3.6 + resolution: "cosmiconfig@npm:8.3.6" + dependencies: + import-fresh: ^3.3.0 + js-yaml: ^4.1.0 + parse-json: ^5.2.0 + path-type: ^4.0.0 + peerDependencies: + typescript: ">=4.9.5" + peerDependenciesMeta: + typescript: + optional: true + checksum: dc339ebea427898c9e03bf01b56ba7afbac07fc7d2a2d5a15d6e9c14de98275a9565da949375aee1809591c152c0a3877bb86dbeaf74d5bd5aaa79955ad9e7a0 + languageName: node + linkType: hard + +"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.3": + version: 7.0.3 + resolution: "cross-spawn@npm:7.0.3" + dependencies: + path-key: ^3.1.0 + shebang-command: ^2.0.0 + which: ^2.0.1 + checksum: 671cc7c7288c3a8406f3c69a3ae2fc85555c04169e9d611def9a675635472614f1c0ed0ef80955d5b6d4e724f6ced67f0ad1bb006c2ea643488fcfef994d7f52 + languageName: node + linkType: hard + +"crypto-random-string@npm:^4.0.0": + version: 4.0.0 + resolution: "crypto-random-string@npm:4.0.0" + dependencies: + type-fest: ^1.0.1 + checksum: 91f148f27bcc8582798f0fb3e75a09d9174557f39c3c40a89dd1bd70fb5a14a02548245aa26fa7d663c426ac5026f4729841231c84f9e30e8c8ece5e38656741 + languageName: node + linkType: hard + +"css-declaration-sorter@npm:^7.2.0": + version: 7.2.0 + resolution: "css-declaration-sorter@npm:7.2.0" + peerDependencies: + postcss: ^8.0.9 + checksum: 69b2f63a1c7c593123fabcbb353618ed01eb75f6404da9321328fbb30d603d89c47195129fadf1dc316e1406a0881400b324c2bded9438c47196e1c96ec726dd + languageName: node + linkType: hard + +"css-loader@npm:^6.8.1": + version: 6.11.0 + resolution: "css-loader@npm:6.11.0" + dependencies: + icss-utils: ^5.1.0 + postcss: ^8.4.33 + postcss-modules-extract-imports: ^3.1.0 + postcss-modules-local-by-default: ^4.0.5 + postcss-modules-scope: ^3.2.0 + postcss-modules-values: ^4.0.0 + postcss-value-parser: ^4.2.0 + semver: ^7.5.4 + peerDependencies: + "@rspack/core": 0.x || 1.x + webpack: ^5.0.0 + peerDependenciesMeta: + "@rspack/core": + optional: true + webpack: + optional: true + checksum: 5c8d35975a7121334905394e88e28f05df72f037dbed2fb8fec4be5f0b313ae73a13894ba791867d4a4190c35896da84a7fd0c54fb426db55d85ba5e714edbe3 + languageName: node + linkType: hard + +"css-minimizer-webpack-plugin@npm:^5.0.1": + version: 5.0.1 + resolution: "css-minimizer-webpack-plugin@npm:5.0.1" + dependencies: + "@jridgewell/trace-mapping": ^0.3.18 + cssnano: ^6.0.1 + jest-worker: ^29.4.3 + postcss: ^8.4.24 + schema-utils: ^4.0.1 + serialize-javascript: ^6.0.1 + peerDependencies: + webpack: ^5.0.0 + peerDependenciesMeta: + "@parcel/css": + optional: true + "@swc/css": + optional: true + clean-css: + optional: true + csso: + optional: true + esbuild: + optional: true + lightningcss: + optional: true + checksum: 10055802c61d1ae72584eac03b6bd221ecbefde11d337be44a5459d8de075b38f91b80949f95cd0c3a10295615ee013f82130bfac5fe9b5b3e8e75531f232680 + languageName: node + linkType: hard + +"css-select@npm:^4.1.3": + version: 4.3.0 + resolution: "css-select@npm:4.3.0" + dependencies: + boolbase: ^1.0.0 + css-what: ^6.0.1 + domhandler: ^4.3.1 + domutils: ^2.8.0 + nth-check: ^2.0.1 + checksum: d6202736839194dd7f910320032e7cfc40372f025e4bf21ca5bf6eb0a33264f322f50ba9c0adc35dadd342d3d6fae5ca244779a4873afbfa76561e343f2058e0 + languageName: node + linkType: hard + +"css-select@npm:^5.1.0": + version: 5.1.0 + resolution: "css-select@npm:5.1.0" + dependencies: + boolbase: ^1.0.0 + css-what: ^6.1.0 + domhandler: ^5.0.2 + domutils: ^3.0.1 + nth-check: ^2.0.1 + checksum: 2772c049b188d3b8a8159907192e926e11824aea525b8282981f72ba3f349cf9ecd523fdf7734875ee2cb772246c22117fc062da105b6d59afe8dcd5c99c9bda + languageName: node + linkType: hard + +"css-tree@npm:^2.3.1": + version: 2.3.1 + resolution: "css-tree@npm:2.3.1" + dependencies: + mdn-data: 2.0.30 + source-map-js: ^1.0.1 + checksum: 493cc24b5c22b05ee5314b8a0d72d8a5869491c1458017ae5ed75aeb6c3596637dbe1b11dac2548974624adec9f7a1f3a6cf40593dc1f9185eb0e8279543fbc0 + languageName: node + linkType: hard + +"css-tree@npm:~2.2.0": + version: 2.2.1 + resolution: "css-tree@npm:2.2.1" + dependencies: + mdn-data: 2.0.28 + source-map-js: ^1.0.1 + checksum: b94aa8cc2f09e6f66c91548411fcf74badcbad3e150345074715012d16333ce573596ff5dfca03c2a87edf1924716db765120f94247e919d72753628ba3aba27 + languageName: node + linkType: hard + +"css-what@npm:^6.0.1, css-what@npm:^6.1.0": + version: 6.1.0 + resolution: "css-what@npm:6.1.0" + checksum: b975e547e1e90b79625918f84e67db5d33d896e6de846c9b584094e529f0c63e2ab85ee33b9daffd05bff3a146a1916bec664e18bb76dd5f66cbff9fc13b2bbe + languageName: node + linkType: hard + +"cssesc@npm:^3.0.0": + version: 3.0.0 + resolution: "cssesc@npm:3.0.0" + bin: + cssesc: bin/cssesc + checksum: f8c4ababffbc5e2ddf2fa9957dda1ee4af6048e22aeda1869d0d00843223c1b13ad3f5d88b51caa46c994225eacb636b764eb807a8883e2fb6f99b4f4e8c48b2 + languageName: node + linkType: hard + +"cssnano-preset-advanced@npm:^6.1.2": + version: 6.1.2 + resolution: "cssnano-preset-advanced@npm:6.1.2" + dependencies: + autoprefixer: ^10.4.19 + browserslist: ^4.23.0 + cssnano-preset-default: ^6.1.2 + postcss-discard-unused: ^6.0.5 + postcss-merge-idents: ^6.0.3 + postcss-reduce-idents: ^6.0.3 + postcss-zindex: ^6.0.2 + peerDependencies: + postcss: ^8.4.31 + checksum: cf70e27915947412730abb3075587efb66bcea58d7f1b906a7225bb4a40c9ca40150251a2ac33363d4f55bbdeb9ba000c242fa6244ee36cba2477ac07fbbe791 + languageName: node + linkType: hard + +"cssnano-preset-default@npm:^6.1.2": + version: 6.1.2 + resolution: "cssnano-preset-default@npm:6.1.2" + dependencies: + browserslist: ^4.23.0 + css-declaration-sorter: ^7.2.0 + cssnano-utils: ^4.0.2 + postcss-calc: ^9.0.1 + postcss-colormin: ^6.1.0 + postcss-convert-values: ^6.1.0 + postcss-discard-comments: ^6.0.2 + postcss-discard-duplicates: ^6.0.3 + postcss-discard-empty: ^6.0.3 + postcss-discard-overridden: ^6.0.2 + postcss-merge-longhand: ^6.0.5 + postcss-merge-rules: ^6.1.1 + postcss-minify-font-values: ^6.1.0 + postcss-minify-gradients: ^6.0.3 + postcss-minify-params: ^6.1.0 + postcss-minify-selectors: ^6.0.4 + postcss-normalize-charset: ^6.0.2 + postcss-normalize-display-values: ^6.0.2 + postcss-normalize-positions: ^6.0.2 + postcss-normalize-repeat-style: ^6.0.2 + postcss-normalize-string: ^6.0.2 + postcss-normalize-timing-functions: ^6.0.2 + postcss-normalize-unicode: ^6.1.0 + postcss-normalize-url: ^6.0.2 + postcss-normalize-whitespace: ^6.0.2 + postcss-ordered-values: ^6.0.2 + postcss-reduce-initial: ^6.1.0 + postcss-reduce-transforms: ^6.0.2 + postcss-svgo: ^6.0.3 + postcss-unique-selectors: ^6.0.4 + peerDependencies: + postcss: ^8.4.31 + checksum: 51d93e52df7141143947dc4695b5087c04b41ea153e4f4c0282ac012b62c7457c6aca244f604ae94fa3b4840903a30a1e7df38f8610e0b304d05e3065375ee56 + languageName: node + linkType: hard + +"cssnano-utils@npm:^4.0.2": + version: 4.0.2 + resolution: "cssnano-utils@npm:4.0.2" + peerDependencies: + postcss: ^8.4.31 + checksum: f04c6854e75d847c7a43aff835e003d5bc7387ddfc476f0ad3a2d63663d0cec41047d46604c1717bf6b5a8e24e54bb519e465ff78d62c7e073c7cbe2279bebaf + languageName: node + linkType: hard + +"cssnano@npm:^6.0.1, cssnano@npm:^6.1.2": + version: 6.1.2 + resolution: "cssnano@npm:6.1.2" + dependencies: + cssnano-preset-default: ^6.1.2 + lilconfig: ^3.1.1 + peerDependencies: + postcss: ^8.4.31 + checksum: 65aad92c5ee0089ffd4cd933c18c65edbf7634f7c3cd833a499dc948aa7e4168be22130dfe83bde07fcdc87f7c45a02d09040b7f439498208bc90b8d5a9abcc8 + languageName: node + linkType: hard + +"csso@npm:^5.0.5": + version: 5.0.5 + resolution: "csso@npm:5.0.5" + dependencies: + css-tree: ~2.2.0 + checksum: 0ad858d36bf5012ed243e9ec69962a867509061986d2ee07cc040a4b26e4d062c00d4c07e5ba8d430706ceb02dd87edd30a52b5937fd45b1b6f2119c4993d59a + languageName: node + linkType: hard + +"csstype@npm:^3.0.2": + version: 3.1.3 + resolution: "csstype@npm:3.1.3" + checksum: 8db785cc92d259102725b3c694ec0c823f5619a84741b5c7991b8ad135dfaa66093038a1cc63e03361a6cd28d122be48f2106ae72334e067dd619a51f49eddf7 + languageName: node + linkType: hard + +"cytoscape-cose-bilkent@npm:^4.1.0": + version: 4.1.0 + resolution: "cytoscape-cose-bilkent@npm:4.1.0" + dependencies: + cose-base: ^1.0.0 + peerDependencies: + cytoscape: ^3.2.0 + checksum: bea6aa139e21bf4135b01b99f8778eed061e074d1a1689771597e8164a999d66f4075d46be584b0a88a5447f9321f38c90c8821df6a9322faaf5afebf4848d97 + languageName: node + linkType: hard + +"cytoscape@npm:^3.28.1": + version: 3.29.2 + resolution: "cytoscape@npm:3.29.2" + checksum: f42d9dc4e0791b1909d617c0f62fc9a982967362af8d585d4a42b9933887bea697be73d5d94d7bbaae5edccad2ac665dc46a2489271408d64b4fb2dc4ece3c15 + languageName: node + linkType: hard + +"d3-array@npm:1 - 2": + version: 2.12.1 + resolution: "d3-array@npm:2.12.1" + dependencies: + internmap: ^1.0.0 + checksum: 97853b7b523aded17078f37c67742f45d81e88dda2107ae9994c31b9e36c5fa5556c4c4cf39650436f247813602dfe31bf7ad067ff80f127a16903827f10c6eb + languageName: node + linkType: hard + +"d3-array@npm:2 - 3, d3-array@npm:2.10.0 - 3, d3-array@npm:2.5.0 - 3, d3-array@npm:3, d3-array@npm:^3.2.0": + version: 3.2.4 + resolution: "d3-array@npm:3.2.4" + dependencies: + internmap: 1 - 2 + checksum: a5976a6d6205f69208478bb44920dd7ce3e788c9dceb86b304dbe401a4bfb42ecc8b04c20facde486e9adcb488b5d1800d49393a3f81a23902b68158e12cddd0 + languageName: node + linkType: hard + +"d3-axis@npm:3": + version: 3.0.0 + resolution: "d3-axis@npm:3.0.0" + checksum: 227ddaa6d4bad083539c1ec245e2228b4620cca941997a8a650cb0af239375dc20271993127eedac66f0543f331027aca09385e1e16eed023f93eac937cddf0b + languageName: node + linkType: hard + +"d3-brush@npm:3": + version: 3.0.0 + resolution: "d3-brush@npm:3.0.0" + dependencies: + d3-dispatch: 1 - 3 + d3-drag: 2 - 3 + d3-interpolate: 1 - 3 + d3-selection: 3 + d3-transition: 3 + checksum: 1d042167769a02ac76271c71e90376d7184206e489552b7022a8ec2860209fe269db55e0a3430f3dcbe13b6fec2ff65b1adeaccba3218991b38e022390df72e3 + languageName: node + linkType: hard + +"d3-chord@npm:3": + version: 3.0.1 + resolution: "d3-chord@npm:3.0.1" + dependencies: + d3-path: 1 - 3 + checksum: ddf35d41675e0f8738600a8a2f05bf0858def413438c12cba357c5802ecc1014c80a658acbbee63cbad2a8c747912efb2358455d93e59906fe37469f1dc6b78b + languageName: node + linkType: hard + +"d3-color@npm:1 - 3, d3-color@npm:3": + version: 3.1.0 + resolution: "d3-color@npm:3.1.0" + checksum: 4931fbfda5d7c4b5cfa283a13c91a954f86e3b69d75ce588d06cde6c3628cebfc3af2069ccf225e982e8987c612aa7948b3932163ce15eb3c11cd7c003f3ee3b + languageName: node + linkType: hard + +"d3-contour@npm:4": + version: 4.0.2 + resolution: "d3-contour@npm:4.0.2" + dependencies: + d3-array: ^3.2.0 + checksum: 56aa082c1acf62a45b61c8d29fdd307041785aa17d9a07de7d1d848633769887a33fb6823888afa383f31c460d0f21d24756593e84e334ddb92d774214d32f1b + languageName: node + linkType: hard + +"d3-delaunay@npm:6": + version: 6.0.4 + resolution: "d3-delaunay@npm:6.0.4" + dependencies: + delaunator: 5 + checksum: ce6d267d5ef21a8aeadfe4606329fc80a22ab6e7748d47bc220bcc396ee8be84b77a5473033954c5ac4aa522d265ddc45d4165d30fe4787dd60a15ea66b9bbb4 + languageName: node + linkType: hard + +"d3-dispatch@npm:1 - 3, d3-dispatch@npm:3": + version: 3.0.1 + resolution: "d3-dispatch@npm:3.0.1" + checksum: fdfd4a230f46463e28e5b22a45dd76d03be9345b605e1b5dc7d18bd7ebf504e6c00ae123fd6d03e23d9e2711e01f0e14ea89cd0632545b9f0c00b924ba4be223 + languageName: node + linkType: hard + +"d3-drag@npm:2 - 3, d3-drag@npm:3": + version: 3.0.0 + resolution: "d3-drag@npm:3.0.0" + dependencies: + d3-dispatch: 1 - 3 + d3-selection: 3 + checksum: d297231e60ecd633b0d076a63b4052b436ddeb48b5a3a11ff68c7e41a6774565473a6b064c5e9256e88eca6439a917ab9cea76032c52d944ddbf4fd289e31111 + languageName: node + linkType: hard + +"d3-dsv@npm:1 - 3, d3-dsv@npm:3": + version: 3.0.1 + resolution: "d3-dsv@npm:3.0.1" + dependencies: + commander: 7 + iconv-lite: 0.6 + rw: 1 + bin: + csv2json: bin/dsv2json.js + csv2tsv: bin/dsv2dsv.js + dsv2dsv: bin/dsv2dsv.js + dsv2json: bin/dsv2json.js + json2csv: bin/json2dsv.js + json2dsv: bin/json2dsv.js + json2tsv: bin/json2dsv.js + tsv2csv: bin/dsv2dsv.js + tsv2json: bin/dsv2json.js + checksum: 5fc0723647269d5dccd181d74f2265920ab368a2868b0b4f55ffa2fecdfb7814390ea28622cd61ee5d9594ab262879509059544e9f815c54fe76fbfb4ffa4c8a + languageName: node + linkType: hard + +"d3-ease@npm:1 - 3, d3-ease@npm:3": + version: 3.0.1 + resolution: "d3-ease@npm:3.0.1" + checksum: 06e2ee5326d1e3545eab4e2c0f84046a123dcd3b612e68858219aa034da1160333d9ce3da20a1d3486d98cb5c2a06f7d233eee1bc19ce42d1533458bd85dedcd + languageName: node + linkType: hard + +"d3-fetch@npm:3": + version: 3.0.1 + resolution: "d3-fetch@npm:3.0.1" + dependencies: + d3-dsv: 1 - 3 + checksum: 382dcea06549ef82c8d0b719e5dc1d96286352579e3b51b20f71437f5800323315b09cf7dcfd4e1f60a41e1204deb01758470cea257d2285a7abd9dcec806984 + languageName: node + linkType: hard + +"d3-force@npm:3": + version: 3.0.0 + resolution: "d3-force@npm:3.0.0" + dependencies: + d3-dispatch: 1 - 3 + d3-quadtree: 1 - 3 + d3-timer: 1 - 3 + checksum: 6c7e96438cab62fa32aeadb0ade3297b62b51f81b1b38b0a60a5ec9fd627d74090c1189654d92df2250775f31b06812342f089f1d5947de9960a635ee3581def + languageName: node + linkType: hard + +"d3-format@npm:1 - 3, d3-format@npm:3": + version: 3.1.0 + resolution: "d3-format@npm:3.1.0" + checksum: f345ec3b8ad3cab19bff5dead395bd9f5590628eb97a389b1dd89f0b204c7c4fc1d9520f13231c2c7cf14b7c9a8cf10f8ef15bde2befbab41454a569bd706ca2 + languageName: node + linkType: hard + +"d3-geo@npm:3": + version: 3.1.1 + resolution: "d3-geo@npm:3.1.1" + dependencies: + d3-array: 2.5.0 - 3 + checksum: 3cc4bb50af5d2d4858d2df1729a1777b7fd361854079d9faab1166186c988d2cba0d11911da0c4598d5e22fae91d79113ed262a9f98cabdbc6dbf7c30e5c0363 + languageName: node + linkType: hard + +"d3-hierarchy@npm:3": + version: 3.1.2 + resolution: "d3-hierarchy@npm:3.1.2" + checksum: 0fd946a8c5fd4686d43d3e11bbfc2037a145fda29d2261ccd0e36f70b66af6d7638e2c0c7112124d63fc3d3127197a00a6aecf676bd5bd392a94d7235a214263 + languageName: node + linkType: hard + +"d3-interpolate@npm:1 - 3, d3-interpolate@npm:1.2.0 - 3, d3-interpolate@npm:3": + version: 3.0.1 + resolution: "d3-interpolate@npm:3.0.1" + dependencies: + d3-color: 1 - 3 + checksum: a42ba314e295e95e5365eff0f604834e67e4a3b3c7102458781c477bd67e9b24b6bb9d8e41ff5521050a3f2c7c0c4bbbb6e187fd586daa3980943095b267e78b + languageName: node + linkType: hard + +"d3-path@npm:1": + version: 1.0.9 + resolution: "d3-path@npm:1.0.9" + checksum: d4382573baf9509a143f40944baeff9fead136926aed6872f7ead5b3555d68925f8a37935841dd51f1d70b65a294fe35c065b0906fb6e42109295f6598fc16d0 + languageName: node + linkType: hard + +"d3-path@npm:1 - 3, d3-path@npm:3, d3-path@npm:^3.1.0": + version: 3.1.0 + resolution: "d3-path@npm:3.1.0" + checksum: 2306f1bd9191e1eac895ec13e3064f732a85f243d6e627d242a313f9777756838a2215ea11562f0c7630c7c3b16a19ec1fe0948b1c82f3317fac55882f6ee5d8 + languageName: node + linkType: hard + +"d3-polygon@npm:3": + version: 3.0.1 + resolution: "d3-polygon@npm:3.0.1" + checksum: 0b85c532517895544683849768a2c377cee3801ef8ccf3fa9693c8871dd21a0c1a2a0fc75ff54192f0ba2c562b0da2bc27f5bf959dfafc7fa23573b574865d2c + languageName: node + linkType: hard + +"d3-quadtree@npm:1 - 3, d3-quadtree@npm:3": + version: 3.0.1 + resolution: "d3-quadtree@npm:3.0.1" + checksum: 5469d462763811475f34a7294d984f3eb100515b0585ca5b249656f6b1a6e99b20056a2d2e463cc9944b888896d2b1d07859c50f9c0cf23438df9cd2e3146066 + languageName: node + linkType: hard + +"d3-random@npm:3": + version: 3.0.1 + resolution: "d3-random@npm:3.0.1" + checksum: a70ad8d1cabe399ebeb2e482703121ac8946a3b336830b518da6848b9fdd48a111990fc041dc716f16885a72176ffa2898f2a250ca3d363ecdba5ef92b18e131 + languageName: node + linkType: hard + +"d3-sankey@npm:^0.12.3": + version: 0.12.3 + resolution: "d3-sankey@npm:0.12.3" + dependencies: + d3-array: 1 - 2 + d3-shape: ^1.2.0 + checksum: df1cb9c9d02dd8fd14040e89f112f0da58c03bd7529fa001572a6925a51496d1d82ff25d9fedb6c429a91645fbd2476c19891e535ac90c8bc28337c33ee21c87 + languageName: node + linkType: hard + +"d3-scale-chromatic@npm:3": + version: 3.1.0 + resolution: "d3-scale-chromatic@npm:3.1.0" + dependencies: + d3-color: 1 - 3 + d3-interpolate: 1 - 3 + checksum: ab6324bd8e1f708e731e02ab44e09741efda2b174cea1d8ca21e4a87546295e99856bc44e2fd3890f228849c96bccfbcf922328f95be6a7df117453eb5cf22c9 + languageName: node + linkType: hard + +"d3-scale@npm:4": + version: 4.0.2 + resolution: "d3-scale@npm:4.0.2" + dependencies: + d3-array: 2.10.0 - 3 + d3-format: 1 - 3 + d3-interpolate: 1.2.0 - 3 + d3-time: 2.1.1 - 3 + d3-time-format: 2 - 4 + checksum: a9c770d283162c3bd11477c3d9d485d07f8db2071665f1a4ad23eec3e515e2cefbd369059ec677c9ac849877d1a765494e90e92051d4f21111aa56791c98729e + languageName: node + linkType: hard + +"d3-selection@npm:2 - 3, d3-selection@npm:3": + version: 3.0.0 + resolution: "d3-selection@npm:3.0.0" + checksum: f4e60e133309115b99f5b36a79ae0a19d71ee6e2d5e3c7216ef3e75ebd2cb1e778c2ed2fa4c01bef35e0dcbd96c5428f5bd6ca2184fe2957ed582fde6841cbc5 + languageName: node + linkType: hard + +"d3-shape@npm:3": + version: 3.2.0 + resolution: "d3-shape@npm:3.2.0" + dependencies: + d3-path: ^3.1.0 + checksum: de2af5fc9a93036a7b68581ca0bfc4aca2d5a328aa7ba7064c11aedd44d24f310c20c40157cb654359d4c15c3ef369f95ee53d71221017276e34172c7b719cfa + languageName: node + linkType: hard + +"d3-shape@npm:^1.2.0": + version: 1.3.7 + resolution: "d3-shape@npm:1.3.7" + dependencies: + d3-path: 1 + checksum: 46566a3ab64a25023653bf59d64e81e9e6c987e95be985d81c5cedabae5838bd55f4a201a6b69069ca862eb63594cd263cac9034afc2b0e5664dfe286c866129 + languageName: node + linkType: hard + +"d3-time-format@npm:2 - 4, d3-time-format@npm:4": + version: 4.1.0 + resolution: "d3-time-format@npm:4.1.0" + dependencies: + d3-time: 1 - 3 + checksum: 7342bce28355378152bbd4db4e275405439cabba082d9cd01946d40581140481c8328456d91740b0fe513c51ec4a467f4471ffa390c7e0e30ea30e9ec98fcdf4 + languageName: node + linkType: hard + +"d3-time@npm:1 - 3, d3-time@npm:2.1.1 - 3, d3-time@npm:3": + version: 3.1.0 + resolution: "d3-time@npm:3.1.0" + dependencies: + d3-array: 2 - 3 + checksum: 613b435352a78d9f31b7f68540788186d8c331b63feca60ad21c88e9db1989fe888f97f242322ebd6365e45ec3fb206a4324cd4ca0dfffa1d9b5feb856ba00a7 + languageName: node + linkType: hard + +"d3-timer@npm:1 - 3, d3-timer@npm:3": + version: 3.0.1 + resolution: "d3-timer@npm:3.0.1" + checksum: 1cfddf86d7bca22f73f2c427f52dfa35c49f50d64e187eb788dcad6e927625c636aa18ae4edd44d084eb9d1f81d8ca4ec305dae7f733c15846a824575b789d73 + languageName: node + linkType: hard + +"d3-transition@npm:2 - 3, d3-transition@npm:3": + version: 3.0.1 + resolution: "d3-transition@npm:3.0.1" + dependencies: + d3-color: 1 - 3 + d3-dispatch: 1 - 3 + d3-ease: 1 - 3 + d3-interpolate: 1 - 3 + d3-timer: 1 - 3 + peerDependencies: + d3-selection: 2 - 3 + checksum: cb1e6e018c3abf0502fe9ff7b631ad058efb197b5e14b973a410d3935aead6e3c07c67d726cfab258e4936ef2667c2c3d1cd2037feb0765f0b4e1d3b8788c0ea + languageName: node + linkType: hard + +"d3-zoom@npm:3": + version: 3.0.0 + resolution: "d3-zoom@npm:3.0.0" + dependencies: + d3-dispatch: 1 - 3 + d3-drag: 2 - 3 + d3-interpolate: 1 - 3 + d3-selection: 2 - 3 + d3-transition: 2 - 3 + checksum: 8056e3527281cfd1ccbcbc458408f86973b0583e9dac00e51204026d1d36803ca437f970b5736f02fafed9f2b78f145f72a5dbc66397e02d4d95d4c594b8ff54 + languageName: node + linkType: hard + +"d3@npm:^7.4.0, d3@npm:^7.8.2": + version: 7.9.0 + resolution: "d3@npm:7.9.0" + dependencies: + d3-array: 3 + d3-axis: 3 + d3-brush: 3 + d3-chord: 3 + d3-color: 3 + d3-contour: 4 + d3-delaunay: 6 + d3-dispatch: 3 + d3-drag: 3 + d3-dsv: 3 + d3-ease: 3 + d3-fetch: 3 + d3-force: 3 + d3-format: 3 + d3-geo: 3 + d3-hierarchy: 3 + d3-interpolate: 3 + d3-path: 3 + d3-polygon: 3 + d3-quadtree: 3 + d3-random: 3 + d3-scale: 4 + d3-scale-chromatic: 3 + d3-selection: 3 + d3-shape: 3 + d3-time: 3 + d3-time-format: 4 + d3-timer: 3 + d3-transition: 3 + d3-zoom: 3 + checksum: 1c0e9135f1fb78aa32b187fafc8b56ae6346102bd0e4e5e5a5339611a51e6038adbaa293fae373994228100eddd87320e930b1be922baeadc07c9fd43d26d99b + languageName: node + linkType: hard + +"dagre-d3-es@npm:7.0.10": + version: 7.0.10 + resolution: "dagre-d3-es@npm:7.0.10" + dependencies: + d3: ^7.8.2 + lodash-es: ^4.17.21 + checksum: 25194e80dfad48db0dc2e0a273a7c9fcbfdc4cf993b219eaa1e0e0ce0cbb8c63be42fa2aa0c5f9bf9b324c34b8b2e300bb2a1606d5ae35c2de00f9c4ac317d8e + languageName: node + linkType: hard + +"dayjs@npm:^1.11.7": + version: 1.11.11 + resolution: "dayjs@npm:1.11.11" + checksum: 84788275aad8a87fee4f1ce4be08861df29687aae6b7b43dd65350118a37dda56772a3902f802cb2dc651dfed447a5a8df62d88f0fb900dba8333e411190a5d5 + languageName: node + linkType: hard + +"debounce@npm:^1.2.1": + version: 1.2.1 + resolution: "debounce@npm:1.2.1" + checksum: 682a89506d9e54fb109526f4da255c5546102fbb8e3ae75eef3b04effaf5d4853756aee97475cd4650641869794e44f410eeb20ace2b18ea592287ab2038519e + languageName: node + linkType: hard + +"debug@npm:2.6.9, debug@npm:^2.6.0": + version: 2.6.9 + resolution: "debug@npm:2.6.9" + dependencies: + ms: 2.0.0 + checksum: d2f51589ca66df60bf36e1fa6e4386b318c3f1e06772280eea5b1ae9fd3d05e9c2b7fd8a7d862457d00853c75b00451aa2d7459b924629ee385287a650f58fe6 + languageName: node + linkType: hard + +"debug@npm:4, debug@npm:^4.0.0, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.4": + version: 4.3.4 + resolution: "debug@npm:4.3.4" + dependencies: + ms: 2.1.2 + peerDependenciesMeta: + supports-color: + optional: true + checksum: 3dbad3f94ea64f34431a9cbf0bafb61853eda57bff2880036153438f50fb5a84f27683ba0d8e5426bf41a8c6ff03879488120cf5b3a761e77953169c0600a708 + languageName: node + linkType: hard + +"decode-named-character-reference@npm:^1.0.0": + version: 1.0.2 + resolution: "decode-named-character-reference@npm:1.0.2" + dependencies: + character-entities: ^2.0.0 + checksum: f4c71d3b93105f20076052f9cb1523a22a9c796b8296cd35eef1ca54239c78d182c136a848b83ff8da2071e3ae2b1d300bf29d00650a6d6e675438cc31b11d78 + languageName: node + linkType: hard + +"decompress-response@npm:^6.0.0": + version: 6.0.0 + resolution: "decompress-response@npm:6.0.0" + dependencies: + mimic-response: ^3.1.0 + checksum: d377cf47e02d805e283866c3f50d3d21578b779731e8c5072d6ce8c13cc31493db1c2f6784da9d1d5250822120cefa44f1deab112d5981015f2e17444b763812 + languageName: node + linkType: hard + +"deep-extend@npm:^0.6.0": + version: 0.6.0 + resolution: "deep-extend@npm:0.6.0" + checksum: 7be7e5a8d468d6b10e6a67c3de828f55001b6eb515d014f7aeb9066ce36bd5717161eb47d6a0f7bed8a9083935b465bc163ee2581c8b128d29bf61092fdf57a7 + languageName: node + linkType: hard + +"deepmerge@npm:^4.2.2, deepmerge@npm:^4.3.1": + version: 4.3.1 + resolution: "deepmerge@npm:4.3.1" + checksum: 2024c6a980a1b7128084170c4cf56b0fd58a63f2da1660dcfe977415f27b17dbe5888668b59d0b063753f3220719d5e400b7f113609489c90160bb9a5518d052 + languageName: node + linkType: hard + +"default-gateway@npm:^6.0.3": + version: 6.0.3 + resolution: "default-gateway@npm:6.0.3" + dependencies: + execa: ^5.0.0 + checksum: 126f8273ecac8ee9ff91ea778e8784f6cd732d77c3157e8c5bdd6ed03651b5291f71446d05bc02d04073b1e67583604db5394ea3cf992ede0088c70ea15b7378 + languageName: node + linkType: hard + +"defer-to-connect@npm:^2.0.1": + version: 2.0.1 + resolution: "defer-to-connect@npm:2.0.1" + checksum: 8a9b50d2f25446c0bfefb55a48e90afd58f85b21bcf78e9207cd7b804354f6409032a1705c2491686e202e64fc05f147aa5aa45f9aa82627563f045937f5791b + languageName: node + linkType: hard + +"define-data-property@npm:^1.0.1, define-data-property@npm:^1.1.4": + version: 1.1.4 + resolution: "define-data-property@npm:1.1.4" + dependencies: + es-define-property: ^1.0.0 + es-errors: ^1.3.0 + gopd: ^1.0.1 + checksum: 8068ee6cab694d409ac25936eb861eea704b7763f7f342adbdfe337fc27c78d7ae0eff2364b2917b58c508d723c7a074326d068eef2e45c4edcd85cf94d0313b + languageName: node + linkType: hard + +"define-lazy-prop@npm:^2.0.0": + version: 2.0.0 + resolution: "define-lazy-prop@npm:2.0.0" + checksum: 0115fdb065e0490918ba271d7339c42453d209d4cb619dfe635870d906731eff3e1ade8028bb461ea27ce8264ec5e22c6980612d332895977e89c1bbc80fcee2 + languageName: node + linkType: hard + +"define-properties@npm:^1.2.1": + version: 1.2.1 + resolution: "define-properties@npm:1.2.1" + dependencies: + define-data-property: ^1.0.1 + has-property-descriptors: ^1.0.0 + object-keys: ^1.1.1 + checksum: b4ccd00597dd46cb2d4a379398f5b19fca84a16f3374e2249201992f36b30f6835949a9429669ee6b41b6e837205a163eadd745e472069e70dfc10f03e5fcc12 + languageName: node + linkType: hard + +"del@npm:^6.1.1": + version: 6.1.1 + resolution: "del@npm:6.1.1" + dependencies: + globby: ^11.0.1 + graceful-fs: ^4.2.4 + is-glob: ^4.0.1 + is-path-cwd: ^2.2.0 + is-path-inside: ^3.0.2 + p-map: ^4.0.0 + rimraf: ^3.0.2 + slash: ^3.0.0 + checksum: 563288b73b8b19a7261c47fd21a330eeab6e2acd7c6208c49790dfd369127120dd7836cdf0c1eca216b77c94782a81507eac6b4734252d3bef2795cb366996b6 + languageName: node + linkType: hard + +"delaunator@npm:5": + version: 5.0.1 + resolution: "delaunator@npm:5.0.1" + dependencies: + robust-predicates: ^3.0.2 + checksum: 69ee43ec649b4a13b7f33c8a027fb3e8dfcb09266af324286118da757e04d3d39df619b905dca41421405c311317ccf632ecfa93db44519bacec3303c57c5a0b + languageName: node + linkType: hard + +"depd@npm:2.0.0": + version: 2.0.0 + resolution: "depd@npm:2.0.0" + checksum: abbe19c768c97ee2eed6282d8ce3031126662252c58d711f646921c9623f9052e3e1906443066beec1095832f534e57c523b7333f8e7e0d93051ab6baef5ab3a + languageName: node + linkType: hard + +"depd@npm:~1.1.2": + version: 1.1.2 + resolution: "depd@npm:1.1.2" + checksum: 6b406620d269619852885ce15965272b829df6f409724415e0002c8632ab6a8c0a08ec1f0bd2add05dc7bd7507606f7e2cc034fa24224ab829580040b835ecd9 + languageName: node + linkType: hard + +"dequal@npm:^2.0.0": + version: 2.0.3 + resolution: "dequal@npm:2.0.3" + checksum: 8679b850e1a3d0ebbc46ee780d5df7b478c23f335887464023a631d1b9af051ad4a6595a44220f9ff8ff95a8ddccf019b5ad778a976fd7bbf77383d36f412f90 + languageName: node + linkType: hard + +"destroy@npm:1.2.0": + version: 1.2.0 + resolution: "destroy@npm:1.2.0" + checksum: 0acb300b7478a08b92d810ab229d5afe0d2f4399272045ab22affa0d99dbaf12637659411530a6fcd597a9bdac718fc94373a61a95b4651bbc7b83684a565e38 + languageName: node + linkType: hard + +"detect-node@npm:^2.0.4": + version: 2.1.0 + resolution: "detect-node@npm:2.1.0" + checksum: 832184ec458353e41533ac9c622f16c19f7c02d8b10c303dfd3a756f56be93e903616c0bb2d4226183c9351c15fc0b3dba41a17a2308262afabcfa3776e6ae6e + languageName: node + linkType: hard + +"detect-port-alt@npm:^1.1.6": + version: 1.1.6 + resolution: "detect-port-alt@npm:1.1.6" + dependencies: + address: ^1.0.1 + debug: ^2.6.0 + bin: + detect: ./bin/detect-port + detect-port: ./bin/detect-port + checksum: 9dc37b1fa4a9dd6d4889e1045849b8d841232b598d1ca888bf712f4035b07a17cf6d537465a0d7323250048d3a5a0540e3b7cf89457efc222f96f77e2c40d16a + languageName: node + linkType: hard + +"detect-port@npm:^1.5.1": + version: 1.6.1 + resolution: "detect-port@npm:1.6.1" + dependencies: + address: ^1.0.1 + debug: 4 + bin: + detect: bin/detect-port.js + detect-port: bin/detect-port.js + checksum: 0429fa423abb15fc453face64e6ffa406e375f51f5b4421a7886962e680dc05824eae9b6ee4594ba273685c3add415ad00982b5da54802ac3de6f846173284c3 + languageName: node + linkType: hard + +"devlop@npm:^1.0.0, devlop@npm:^1.1.0": + version: 1.1.0 + resolution: "devlop@npm:1.1.0" + dependencies: + dequal: ^2.0.0 + checksum: d2ff650bac0bb6ef08c48f3ba98640bb5fec5cce81e9957eb620408d1bab1204d382a45b785c6b3314dc867bb0684936b84c6867820da6db97cbb5d3c15dd185 + languageName: node + linkType: hard + +"diff@npm:^5.0.0": + version: 5.2.0 + resolution: "diff@npm:5.2.0" + checksum: 12b63ca9c36c72bafa3effa77121f0581b4015df18bc16bac1f8e263597735649f1a173c26f7eba17fb4162b073fee61788abe49610e6c70a2641fe1895443fd + languageName: node + linkType: hard + +"dir-glob@npm:^3.0.1": + version: 3.0.1 + resolution: "dir-glob@npm:3.0.1" + dependencies: + path-type: ^4.0.0 + checksum: fa05e18324510d7283f55862f3161c6759a3f2f8dbce491a2fc14c8324c498286c54282c1f0e933cb930da8419b30679389499b919122952a4f8592362ef4615 + languageName: node + linkType: hard + +"dns-packet@npm:^5.2.2": + version: 5.6.1 + resolution: "dns-packet@npm:5.6.1" + dependencies: + "@leichtgewicht/ip-codec": ^2.0.1 + checksum: 64c06457f0c6e143f7a0946e0aeb8de1c5f752217cfa143ef527467c00a6d78db1835cfdb6bb68333d9f9a4963cf23f410439b5262a8935cce1236f45e344b81 + languageName: node + linkType: hard + +"docusaurus@workspace:.": + version: 0.0.0-use.local + resolution: "docusaurus@workspace:." + dependencies: + "@cmfcmf/docusaurus-search-local": ^1.1.0 + "@docusaurus/core": 3.3.0 + "@docusaurus/module-type-aliases": 3.2.1 + "@docusaurus/plugin-google-gtag": 3.3.0 + "@docusaurus/preset-classic": 3.3.0 + "@docusaurus/theme-mermaid": 3.3.0 + "@docusaurus/tsconfig": 3.2.1 + "@docusaurus/types": 3.2.1 + "@mdx-js/react": ^3.0.0 + clsx: ^2.0.0 + prism-react-renderer: ^2.3.0 + react: ^18.0.0 + react-dom: ^18.0.0 + typescript: ~5.2.2 + languageName: unknown + linkType: soft + +"dom-converter@npm:^0.2.0": + version: 0.2.0 + resolution: "dom-converter@npm:0.2.0" + dependencies: + utila: ~0.4 + checksum: ea52fe303f5392e48dea563abef0e6fb3a478b8dbe3c599e99bb5d53981c6c38fc4944e56bb92a8ead6bb989d10b7914722ae11febbd2fd0910e33b9fc4aaa77 + languageName: node + linkType: hard + +"dom-serializer@npm:^1.0.1": + version: 1.4.1 + resolution: "dom-serializer@npm:1.4.1" + dependencies: + domelementtype: ^2.0.1 + domhandler: ^4.2.0 + entities: ^2.0.0 + checksum: fbb0b01f87a8a2d18e6e5a388ad0f7ec4a5c05c06d219377da1abc7bb0f674d804f4a8a94e3f71ff15f6cb7dcfc75704a54b261db672b9b3ab03da6b758b0b22 + languageName: node + linkType: hard + +"dom-serializer@npm:^2.0.0": + version: 2.0.0 + resolution: "dom-serializer@npm:2.0.0" + dependencies: + domelementtype: ^2.3.0 + domhandler: ^5.0.2 + entities: ^4.2.0 + checksum: cd1810544fd8cdfbd51fa2c0c1128ec3a13ba92f14e61b7650b5de421b88205fd2e3f0cc6ace82f13334114addb90ed1c2f23074a51770a8e9c1273acbc7f3e6 + languageName: node + linkType: hard + +"domelementtype@npm:^2.0.1, domelementtype@npm:^2.2.0, domelementtype@npm:^2.3.0": + version: 2.3.0 + resolution: "domelementtype@npm:2.3.0" + checksum: ee837a318ff702622f383409d1f5b25dd1024b692ef64d3096ff702e26339f8e345820f29a68bcdcea8cfee3531776b3382651232fbeae95612d6f0a75efb4f6 + languageName: node + linkType: hard + +"domhandler@npm:^4.0.0, domhandler@npm:^4.2.0, domhandler@npm:^4.3.1": + version: 4.3.1 + resolution: "domhandler@npm:4.3.1" + dependencies: + domelementtype: ^2.2.0 + checksum: 4c665ceed016e1911bf7d1dadc09dc888090b64dee7851cccd2fcf5442747ec39c647bb1cb8c8919f8bbdd0f0c625a6bafeeed4b2d656bbecdbae893f43ffaaa + languageName: node + linkType: hard + +"domhandler@npm:^5.0.2, domhandler@npm:^5.0.3": + version: 5.0.3 + resolution: "domhandler@npm:5.0.3" + dependencies: + domelementtype: ^2.3.0 + checksum: 0f58f4a6af63e6f3a4320aa446d28b5790a009018707bce2859dcb1d21144c7876482b5188395a188dfa974238c019e0a1e610d2fc269a12b2c192ea2b0b131c + languageName: node + linkType: hard + +"dompurify@npm:^3.0.5": + version: 3.1.4 + resolution: "dompurify@npm:3.1.4" + checksum: 7b8d55d6e091c69cccfef73d066bd1bc82de32c81bc050b2c396b502afda0c853152760553aeb4d7ef86e7cf46bf49720fcb0c42a49ce939125cf40d7720ebb8 + languageName: node + linkType: hard + +"domutils@npm:^2.5.2, domutils@npm:^2.8.0": + version: 2.8.0 + resolution: "domutils@npm:2.8.0" + dependencies: + dom-serializer: ^1.0.1 + domelementtype: ^2.2.0 + domhandler: ^4.2.0 + checksum: abf7434315283e9aadc2a24bac0e00eab07ae4313b40cc239f89d84d7315ebdfd2fb1b5bf750a96bc1b4403d7237c7b2ebf60459be394d625ead4ca89b934391 + languageName: node + linkType: hard + +"domutils@npm:^3.0.1": + version: 3.1.0 + resolution: "domutils@npm:3.1.0" + dependencies: + dom-serializer: ^2.0.0 + domelementtype: ^2.3.0 + domhandler: ^5.0.3 + checksum: e5757456ddd173caa411cfc02c2bb64133c65546d2c4081381a3bafc8a57411a41eed70494551aa58030be9e58574fcc489828bebd673863d39924fb4878f416 + languageName: node + linkType: hard + +"dot-case@npm:^3.0.4": + version: 3.0.4 + resolution: "dot-case@npm:3.0.4" + dependencies: + no-case: ^3.0.4 + tslib: ^2.0.3 + checksum: a65e3519414856df0228b9f645332f974f2bf5433370f544a681122eab59e66038fc3349b4be1cdc47152779dac71a5864f1ccda2f745e767c46e9c6543b1169 + languageName: node + linkType: hard + +"dot-prop@npm:^6.0.1": + version: 6.0.1 + resolution: "dot-prop@npm:6.0.1" + dependencies: + is-obj: ^2.0.0 + checksum: 0f47600a4b93e1dc37261da4e6909652c008832a5d3684b5bf9a9a0d3f4c67ea949a86dceed9b72f5733ed8e8e6383cc5958df3bbd0799ee317fd181f2ece700 + languageName: node + linkType: hard + +"duplexer@npm:^0.1.2": + version: 0.1.2 + resolution: "duplexer@npm:0.1.2" + checksum: 62ba61a830c56801db28ff6305c7d289b6dc9f859054e8c982abd8ee0b0a14d2e9a8e7d086ffee12e868d43e2bbe8a964be55ddbd8c8957714c87373c7a4f9b0 + languageName: node + linkType: hard + +"eastasianwidth@npm:^0.2.0": + version: 0.2.0 + resolution: "eastasianwidth@npm:0.2.0" + checksum: 7d00d7cd8e49b9afa762a813faac332dee781932d6f2c848dc348939c4253f1d4564341b7af1d041853bc3f32c2ef141b58e0a4d9862c17a7f08f68df1e0f1ed + languageName: node + linkType: hard + +"ee-first@npm:1.1.1": + version: 1.1.1 + resolution: "ee-first@npm:1.1.1" + checksum: 1b4cac778d64ce3b582a7e26b218afe07e207a0f9bfe13cc7395a6d307849cfe361e65033c3251e00c27dd060cab43014c2d6b2647676135e18b77d2d05b3f4f + languageName: node + linkType: hard + +"electron-to-chromium@npm:^1.4.668": + version: 1.4.774 + resolution: "electron-to-chromium@npm:1.4.774" + checksum: 5b68ea2583b406e43dc6cea7511a070adddb1da27c29a50ae721851b4b1f4a54412933a9f1d2d62c35f0bfa5bb56735a1793f4387ea4d3470d59502f5084bff1 + languageName: node + linkType: hard + +"elkjs@npm:^0.9.0": + version: 0.9.3 + resolution: "elkjs@npm:0.9.3" + checksum: 1293e42e0ea034b39d3719f3816b7b3cbaceb52a3114f2c1bd5ddd969bb1e36ae0afef58e77864fff7a1018dc5e96c177e9b0a40c16e4aaac26eb87f5785be4b + languageName: node + linkType: hard + +"emoji-regex@npm:^8.0.0": + version: 8.0.0 + resolution: "emoji-regex@npm:8.0.0" + checksum: d4c5c39d5a9868b5fa152f00cada8a936868fd3367f33f71be515ecee4c803132d11b31a6222b2571b1e5f7e13890156a94880345594d0ce7e3c9895f560f192 + languageName: node + linkType: hard + +"emoji-regex@npm:^9.2.2": + version: 9.2.2 + resolution: "emoji-regex@npm:9.2.2" + checksum: 8487182da74aabd810ac6d6f1994111dfc0e331b01271ae01ec1eb0ad7b5ecc2bbbbd2f053c05cb55a1ac30449527d819bbfbf0e3de1023db308cbcb47f86601 + languageName: node + linkType: hard + +"emojilib@npm:^2.4.0": + version: 2.4.0 + resolution: "emojilib@npm:2.4.0" + checksum: ea241c342abda5a86ffd3a15d8f4871a616d485f700e03daea38c6ce38205847cea9f6ff8d5e962c00516b004949cc96c6e37b05559ea71a0a496faba53b56da + languageName: node + linkType: hard + +"emojis-list@npm:^3.0.0": + version: 3.0.0 + resolution: "emojis-list@npm:3.0.0" + checksum: ddaaa02542e1e9436c03970eeed445f4ed29a5337dfba0fe0c38dfdd2af5da2429c2a0821304e8a8d1cadf27fdd5b22ff793571fa803ae16852a6975c65e8e70 + languageName: node + linkType: hard + +"emoticon@npm:^4.0.1": + version: 4.0.1 + resolution: "emoticon@npm:4.0.1" + checksum: 991ab6421927601af4eb44036b60e3125759a4d81f32d2ad96b66e3491e2fdb6a026eeb6bffbfa66724592dca95235570785963607d16961ea73a62ecce715e2 + languageName: node + linkType: hard + +"encodeurl@npm:~1.0.2": + version: 1.0.2 + resolution: "encodeurl@npm:1.0.2" + checksum: e50e3d508cdd9c4565ba72d2012e65038e5d71bdc9198cb125beb6237b5b1ade6c0d343998da9e170fb2eae52c1bed37d4d6d98a46ea423a0cddbed5ac3f780c + languageName: node + linkType: hard + +"encoding@npm:^0.1.13": + version: 0.1.13 + resolution: "encoding@npm:0.1.13" + dependencies: + iconv-lite: ^0.6.2 + checksum: bb98632f8ffa823996e508ce6a58ffcf5856330fde839ae42c9e1f436cc3b5cc651d4aeae72222916545428e54fd0f6aa8862fd8d25bdbcc4589f1e3f3715e7f + languageName: node + linkType: hard + +"enhanced-resolve@npm:^5.16.0": + version: 5.16.1 + resolution: "enhanced-resolve@npm:5.16.1" + dependencies: + graceful-fs: ^4.2.4 + tapable: ^2.2.0 + checksum: 6e4c166fef72ef231455f9119686d93ecccb11874f8256d73a42de5b293cb2536050849382468864b25973514ca4fa4cb13c37be2ff857a211e2aca3ff05bb6c + languageName: node + linkType: hard + +"entities@npm:^2.0.0": + version: 2.2.0 + resolution: "entities@npm:2.2.0" + checksum: 19010dacaf0912c895ea262b4f6128574f9ccf8d4b3b65c7e8334ad0079b3706376360e28d8843ff50a78aabcb8f08f0a32dbfacdc77e47ed77ca08b713669b3 + languageName: node + linkType: hard + +"entities@npm:^4.2.0, entities@npm:^4.4.0": + version: 4.5.0 + resolution: "entities@npm:4.5.0" + checksum: 853f8ebd5b425d350bffa97dd6958143179a5938352ccae092c62d1267c4e392a039be1bae7d51b6e4ffad25f51f9617531fedf5237f15df302ccfb452cbf2d7 + languageName: node + linkType: hard + +"env-paths@npm:^2.2.0": + version: 2.2.1 + resolution: "env-paths@npm:2.2.1" + checksum: 65b5df55a8bab92229ab2b40dad3b387fad24613263d103a97f91c9fe43ceb21965cd3392b1ccb5d77088021e525c4e0481adb309625d0cb94ade1d1fb8dc17e + languageName: node + linkType: hard + +"err-code@npm:^2.0.2": + version: 2.0.3 + resolution: "err-code@npm:2.0.3" + checksum: 8b7b1be20d2de12d2255c0bc2ca638b7af5171142693299416e6a9339bd7d88fc8d7707d913d78e0993176005405a236b066b45666b27b797252c771156ace54 + languageName: node + linkType: hard + +"error-ex@npm:^1.3.1": + version: 1.3.2 + resolution: "error-ex@npm:1.3.2" + dependencies: + is-arrayish: ^0.2.1 + checksum: c1c2b8b65f9c91b0f9d75f0debaa7ec5b35c266c2cac5de412c1a6de86d4cbae04ae44e510378cb14d032d0645a36925d0186f8bb7367bcc629db256b743a001 + languageName: node + linkType: hard + +"es-define-property@npm:^1.0.0": + version: 1.0.0 + resolution: "es-define-property@npm:1.0.0" + dependencies: + get-intrinsic: ^1.2.4 + checksum: f66ece0a887b6dca71848fa71f70461357c0e4e7249696f81bad0a1f347eed7b31262af4a29f5d726dc026426f085483b6b90301855e647aa8e21936f07293c6 + languageName: node + linkType: hard + +"es-errors@npm:^1.3.0": + version: 1.3.0 + resolution: "es-errors@npm:1.3.0" + checksum: ec1414527a0ccacd7f15f4a3bc66e215f04f595ba23ca75cdae0927af099b5ec865f9f4d33e9d7e86f512f252876ac77d4281a7871531a50678132429b1271b5 + languageName: node + linkType: hard + +"es-module-lexer@npm:^1.2.1": + version: 1.5.3 + resolution: "es-module-lexer@npm:1.5.3" + checksum: 2e0a0936fb49ca072d438128f588d5b46974035f7a1362bdb26447868016243cfd1c5ec8f12e80d273749e8c603f5aba5a828d5c2d95c07f61fbe77ab4fce4af + languageName: node + linkType: hard + +"escalade@npm:^3.1.1, escalade@npm:^3.1.2": + version: 3.1.2 + resolution: "escalade@npm:3.1.2" + checksum: 1ec0977aa2772075493002bdbd549d595ff6e9393b1cb0d7d6fcaf78c750da0c158f180938365486f75cb69fba20294351caddfce1b46552a7b6c3cde52eaa02 + languageName: node + linkType: hard + +"escape-goat@npm:^4.0.0": + version: 4.0.0 + resolution: "escape-goat@npm:4.0.0" + checksum: 7034e0025eec7b751074b837f10312c5b768493265bdad046347c0aadbc1e652776f7e5df94766473fecb5d3681169cc188fe9ccc1e22be53318c18be1671cc0 + languageName: node + linkType: hard + +"escape-html@npm:^1.0.3, escape-html@npm:~1.0.3": + version: 1.0.3 + resolution: "escape-html@npm:1.0.3" + checksum: 6213ca9ae00d0ab8bccb6d8d4e0a98e76237b2410302cf7df70aaa6591d509a2a37ce8998008cbecae8fc8ffaadf3fb0229535e6a145f3ce0b211d060decbb24 + languageName: node + linkType: hard + +"escape-string-regexp@npm:^1.0.5": + version: 1.0.5 + resolution: "escape-string-regexp@npm:1.0.5" + checksum: 6092fda75c63b110c706b6a9bfde8a612ad595b628f0bd2147eea1d3406723020810e591effc7db1da91d80a71a737a313567c5abb3813e8d9c71f4aa595b410 + languageName: node + linkType: hard + +"escape-string-regexp@npm:^4.0.0": + version: 4.0.0 + resolution: "escape-string-regexp@npm:4.0.0" + checksum: 98b48897d93060f2322108bf29db0feba7dd774be96cd069458d1453347b25ce8682ecc39859d4bca2203cc0ab19c237bcc71755eff49a0f8d90beadeeba5cc5 + languageName: node + linkType: hard + +"escape-string-regexp@npm:^5.0.0": + version: 5.0.0 + resolution: "escape-string-regexp@npm:5.0.0" + checksum: 20daabe197f3cb198ec28546deebcf24b3dbb1a5a269184381b3116d12f0532e06007f4bc8da25669d6a7f8efb68db0758df4cd981f57bc5b57f521a3e12c59e + languageName: node + linkType: hard + +"eslint-scope@npm:5.1.1": + version: 5.1.1 + resolution: "eslint-scope@npm:5.1.1" + dependencies: + esrecurse: ^4.3.0 + estraverse: ^4.1.1 + checksum: 47e4b6a3f0cc29c7feedee6c67b225a2da7e155802c6ea13bbef4ac6b9e10c66cd2dcb987867ef176292bf4e64eccc680a49e35e9e9c669f4a02bac17e86abdb + languageName: node + linkType: hard + +"esprima@npm:^4.0.0": + version: 4.0.1 + resolution: "esprima@npm:4.0.1" + bin: + esparse: ./bin/esparse.js + esvalidate: ./bin/esvalidate.js + checksum: b45bc805a613dbea2835278c306b91aff6173c8d034223fa81498c77dcbce3b2931bf6006db816f62eacd9fd4ea975dfd85a5b7f3c6402cfd050d4ca3c13a628 + languageName: node + linkType: hard + +"esrecurse@npm:^4.3.0": + version: 4.3.0 + resolution: "esrecurse@npm:4.3.0" + dependencies: + estraverse: ^5.2.0 + checksum: ebc17b1a33c51cef46fdc28b958994b1dc43cd2e86237515cbc3b4e5d2be6a811b2315d0a1a4d9d340b6d2308b15322f5c8291059521cc5f4802f65e7ec32837 + languageName: node + linkType: hard + +"estraverse@npm:^4.1.1": + version: 4.3.0 + resolution: "estraverse@npm:4.3.0" + checksum: a6299491f9940bb246124a8d44b7b7a413a8336f5436f9837aaa9330209bd9ee8af7e91a654a3545aee9c54b3308e78ee360cef1d777d37cfef77d2fa33b5827 + languageName: node + linkType: hard + +"estraverse@npm:^5.2.0": + version: 5.3.0 + resolution: "estraverse@npm:5.3.0" + checksum: 072780882dc8416ad144f8fe199628d2b3e7bbc9989d9ed43795d2c90309a2047e6bc5979d7e2322a341163d22cfad9e21f4110597fe487519697389497e4e2b + languageName: node + linkType: hard + +"estree-util-attach-comments@npm:^3.0.0": + version: 3.0.0 + resolution: "estree-util-attach-comments@npm:3.0.0" + dependencies: + "@types/estree": ^1.0.0 + checksum: 56254eaef39659e6351919ebc2ae53a37a09290a14571c19e373e9d5fad343a3403d9ad0c23ae465d6e7d08c3e572fd56fb8c793efe6434a261bf1489932dbd5 + languageName: node + linkType: hard + +"estree-util-build-jsx@npm:^3.0.0": + version: 3.0.1 + resolution: "estree-util-build-jsx@npm:3.0.1" + dependencies: + "@types/estree-jsx": ^1.0.0 + devlop: ^1.0.0 + estree-util-is-identifier-name: ^3.0.0 + estree-walker: ^3.0.0 + checksum: 185eff060eda2ba32cecd15904db4f5ba0681159fbdf54f0f6586cd9411e77e733861a833d0aee3415e1d1fd4b17edf08bc9e9872cee98e6ec7b0800e1a85064 + languageName: node + linkType: hard + +"estree-util-is-identifier-name@npm:^3.0.0": + version: 3.0.0 + resolution: "estree-util-is-identifier-name@npm:3.0.0" + checksum: ea3909f0188ea164af0aadeca87c087e3e5da78d76da5ae9c7954ff1340ea3e4679c4653bbf4299ffb70caa9b322218cc1128db2541f3d2976eb9704f9857787 + languageName: node + linkType: hard + +"estree-util-to-js@npm:^2.0.0": + version: 2.0.0 + resolution: "estree-util-to-js@npm:2.0.0" + dependencies: + "@types/estree-jsx": ^1.0.0 + astring: ^1.8.0 + source-map: ^0.7.0 + checksum: 833edc94ab9978e0918f90261e0a3361bf4564fec4901f326d2237a9235d3f5fc6482da3be5acc545e702c8c7cb8bc5de5c7c71ba3b080eb1975bcfdf3923d79 + languageName: node + linkType: hard + +"estree-util-value-to-estree@npm:^3.0.1": + version: 3.1.1 + resolution: "estree-util-value-to-estree@npm:3.1.1" + dependencies: + "@types/estree": ^1.0.0 + is-plain-obj: ^4.0.0 + checksum: 80e1d227ac80fab0b148c40427af31ad4dd37a3a4a0e0894d7975370284ea39566fe7df132f3454cf0e47adcc79b47ae0737464a85a413bce6f8d159336f8a37 + languageName: node + linkType: hard + +"estree-util-visit@npm:^2.0.0": + version: 2.0.0 + resolution: "estree-util-visit@npm:2.0.0" + dependencies: + "@types/estree-jsx": ^1.0.0 + "@types/unist": ^3.0.0 + checksum: 6444b38f224322945a6d19ea81a8828a0eec64aefb2bf1ea791fe20df496f7b7c543408d637df899e6a8e318b638f66226f16378a33c4c2b192ba5c3f891121f + languageName: node + linkType: hard + +"estree-walker@npm:^3.0.0": + version: 3.0.3 + resolution: "estree-walker@npm:3.0.3" + dependencies: + "@types/estree": ^1.0.0 + checksum: a65728d5727b71de172c5df323385755a16c0fdab8234dc756c3854cfee343261ddfbb72a809a5660fac8c75d960bb3e21aa898c2d7e9b19bb298482ca58a3af + languageName: node + linkType: hard + +"esutils@npm:^2.0.2": + version: 2.0.3 + resolution: "esutils@npm:2.0.3" + checksum: 22b5b08f74737379a840b8ed2036a5fb35826c709ab000683b092d9054e5c2a82c27818f12604bfc2a9a76b90b6834ef081edbc1c7ae30d1627012e067c6ec87 + languageName: node + linkType: hard + +"eta@npm:^2.2.0": + version: 2.2.0 + resolution: "eta@npm:2.2.0" + checksum: 6a09631481d4f26a9662a1eb736a65cc1cbc48e24935e6ff5d83a83b0cb509ea56d588d66d7c087d590601dc59bdabdac2356936b1b789d020eb0cf2d8304d54 + languageName: node + linkType: hard + +"etag@npm:~1.8.1": + version: 1.8.1 + resolution: "etag@npm:1.8.1" + checksum: 571aeb3dbe0f2bbd4e4fadbdb44f325fc75335cd5f6f6b6a091e6a06a9f25ed5392f0863c5442acb0646787446e816f13cbfc6edce5b07658541dff573cab1ff + languageName: node + linkType: hard + +"eval@npm:^0.1.8": + version: 0.1.8 + resolution: "eval@npm:0.1.8" + dependencies: + "@types/node": "*" + require-like: ">= 0.1.1" + checksum: d005567f394cfbe60948e34982e4637d2665030f9aa7dcac581ea6f9ec6eceb87133ed3dc0ae21764aa362485c242a731dbb6371f1f1a86807c58676431e9d1a + languageName: node + linkType: hard + +"eventemitter3@npm:^4.0.0": + version: 4.0.7 + resolution: "eventemitter3@npm:4.0.7" + checksum: 1875311c42fcfe9c707b2712c32664a245629b42bb0a5a84439762dd0fd637fc54d078155ea83c2af9e0323c9ac13687e03cfba79b03af9f40c89b4960099374 + languageName: node + linkType: hard + +"events@npm:^3.2.0": + version: 3.3.0 + resolution: "events@npm:3.3.0" + checksum: f6f487ad2198aa41d878fa31452f1a3c00958f46e9019286ff4787c84aac329332ab45c9cdc8c445928fc6d7ded294b9e005a7fce9426488518017831b272780 + languageName: node + linkType: hard + +"execa@npm:^5.0.0": + version: 5.1.1 + resolution: "execa@npm:5.1.1" + dependencies: + cross-spawn: ^7.0.3 + get-stream: ^6.0.0 + human-signals: ^2.1.0 + is-stream: ^2.0.0 + merge-stream: ^2.0.0 + npm-run-path: ^4.0.1 + onetime: ^5.1.2 + signal-exit: ^3.0.3 + strip-final-newline: ^2.0.0 + checksum: fba9022c8c8c15ed862847e94c252b3d946036d7547af310e344a527e59021fd8b6bb0723883ea87044dc4f0201f949046993124a42ccb0855cae5bf8c786343 + languageName: node + linkType: hard + +"exponential-backoff@npm:^3.1.1": + version: 3.1.1 + resolution: "exponential-backoff@npm:3.1.1" + checksum: 3d21519a4f8207c99f7457287291316306255a328770d320b401114ec8481986e4e467e854cb9914dd965e0a1ca810a23ccb559c642c88f4c7f55c55778a9b48 + languageName: node + linkType: hard + +"express@npm:^4.17.3": + version: 4.19.2 + resolution: "express@npm:4.19.2" + dependencies: + accepts: ~1.3.8 + array-flatten: 1.1.1 + body-parser: 1.20.2 + content-disposition: 0.5.4 + content-type: ~1.0.4 + cookie: 0.6.0 + cookie-signature: 1.0.6 + debug: 2.6.9 + depd: 2.0.0 + encodeurl: ~1.0.2 + escape-html: ~1.0.3 + etag: ~1.8.1 + finalhandler: 1.2.0 + fresh: 0.5.2 + http-errors: 2.0.0 + merge-descriptors: 1.0.1 + methods: ~1.1.2 + on-finished: 2.4.1 + parseurl: ~1.3.3 + path-to-regexp: 0.1.7 + proxy-addr: ~2.0.7 + qs: 6.11.0 + range-parser: ~1.2.1 + safe-buffer: 5.2.1 + send: 0.18.0 + serve-static: 1.15.0 + setprototypeof: 1.2.0 + statuses: 2.0.1 + type-is: ~1.6.18 + utils-merge: 1.0.1 + vary: ~1.1.2 + checksum: 212dbd6c2c222a96a61bc927639c95970a53b06257080bb9e2838adb3bffdb966856551fdad1ab5dd654a217c35db94f987d0aa88d48fb04d306340f5f34dca5 + languageName: node + linkType: hard + +"extend-shallow@npm:^2.0.1": + version: 2.0.1 + resolution: "extend-shallow@npm:2.0.1" + dependencies: + is-extendable: ^0.1.0 + checksum: 8fb58d9d7a511f4baf78d383e637bd7d2e80843bd9cd0853649108ea835208fb614da502a553acc30208e1325240bb7cc4a68473021612496bb89725483656d8 + languageName: node + linkType: hard + +"extend@npm:^3.0.0": + version: 3.0.2 + resolution: "extend@npm:3.0.2" + checksum: a50a8309ca65ea5d426382ff09f33586527882cf532931cb08ca786ea3146c0553310bda688710ff61d7668eba9f96b923fe1420cdf56a2c3eaf30fcab87b515 + languageName: node + linkType: hard + +"fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3": + version: 3.1.3 + resolution: "fast-deep-equal@npm:3.1.3" + checksum: e21a9d8d84f53493b6aa15efc9cfd53dd5b714a1f23f67fb5dc8f574af80df889b3bce25dc081887c6d25457cce704e636395333abad896ccdec03abaf1f3f9d + languageName: node + linkType: hard + +"fast-glob@npm:^3.2.11, fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.0": + version: 3.3.2 + resolution: "fast-glob@npm:3.3.2" + dependencies: + "@nodelib/fs.stat": ^2.0.2 + "@nodelib/fs.walk": ^1.2.3 + glob-parent: ^5.1.2 + merge2: ^1.3.0 + micromatch: ^4.0.4 + checksum: 900e4979f4dbc3313840078419245621259f349950411ca2fa445a2f9a1a6d98c3b5e7e0660c5ccd563aa61abe133a21765c6c0dec8e57da1ba71d8000b05ec1 + languageName: node + linkType: hard + +"fast-json-stable-stringify@npm:^2.0.0": + version: 2.1.0 + resolution: "fast-json-stable-stringify@npm:2.1.0" + checksum: b191531e36c607977e5b1c47811158733c34ccb3bfde92c44798929e9b4154884378536d26ad90dfecd32e1ffc09c545d23535ad91b3161a27ddbb8ebe0cbecb + languageName: node + linkType: hard + +"fast-url-parser@npm:1.1.3": + version: 1.1.3 + resolution: "fast-url-parser@npm:1.1.3" + dependencies: + punycode: ^1.3.2 + checksum: 5043d0c4a8d775ff58504d56c096563c11b113e4cb8a2668c6f824a1cd4fb3812e2fdf76537eb24a7ce4ae7def6bd9747da630c617cf2a4b6ce0c42514e4f21c + languageName: node + linkType: hard + +"fastq@npm:^1.6.0": + version: 1.17.1 + resolution: "fastq@npm:1.17.1" + dependencies: + reusify: ^1.0.4 + checksum: a8c5b26788d5a1763f88bae56a8ddeee579f935a831c5fe7a8268cea5b0a91fbfe705f612209e02d639b881d7b48e461a50da4a10cfaa40da5ca7cc9da098d88 + languageName: node + linkType: hard + +"fault@npm:^2.0.0": + version: 2.0.1 + resolution: "fault@npm:2.0.1" + dependencies: + format: ^0.2.0 + checksum: c9b30f47d95769177130a9409976a899ed31eb598450fbad5b0d39f2f5f56d5f4a9ff9257e0bee8407cb0fc3ce37165657888c6aa6d78472e403893104329b72 + languageName: node + linkType: hard + +"faye-websocket@npm:^0.11.3": + version: 0.11.4 + resolution: "faye-websocket@npm:0.11.4" + dependencies: + websocket-driver: ">=0.5.1" + checksum: d49a62caf027f871149fc2b3f3c7104dc6d62744277eb6f9f36e2d5714e847d846b9f7f0d0b7169b25a012e24a594cde11a93034b30732e4c683f20b8a5019fa + languageName: node + linkType: hard + +"feed@npm:^4.2.2": + version: 4.2.2 + resolution: "feed@npm:4.2.2" + dependencies: + xml-js: ^1.6.11 + checksum: 2e6992a675a049511eef7bda8ca6c08cb9540cd10e8b275ec4c95d166228ec445a335fa8de990358759f248a92861e51decdcd32bf1c54737d5b7aed7c7ffe97 + languageName: node + linkType: hard + +"file-loader@npm:^6.2.0": + version: 6.2.0 + resolution: "file-loader@npm:6.2.0" + dependencies: + loader-utils: ^2.0.0 + schema-utils: ^3.0.0 + peerDependencies: + webpack: ^4.0.0 || ^5.0.0 + checksum: faf43eecf233f4897b0150aaa874eeeac214e4f9de49738a9e0ef734a30b5260059e85b7edadf852b98e415f875bd5f12587768a93fd52aaf2e479ecf95fab20 + languageName: node + linkType: hard + +"filesize@npm:^8.0.6": + version: 8.0.7 + resolution: "filesize@npm:8.0.7" + checksum: 8603d27c5287b984cb100733640645e078f5f5ad65c6d913173e01fb99e09b0747828498fd86647685ccecb69be31f3587b9739ab1e50732116b2374aff4cbf9 + languageName: node + linkType: hard + +"fill-range@npm:^7.0.1": + version: 7.0.1 + resolution: "fill-range@npm:7.0.1" + dependencies: + to-regex-range: ^5.0.1 + checksum: cc283f4e65b504259e64fd969bcf4def4eb08d85565e906b7d36516e87819db52029a76b6363d0f02d0d532f0033c9603b9e2d943d56ee3b0d4f7ad3328ff917 + languageName: node + linkType: hard + +"finalhandler@npm:1.2.0": + version: 1.2.0 + resolution: "finalhandler@npm:1.2.0" + dependencies: + debug: 2.6.9 + encodeurl: ~1.0.2 + escape-html: ~1.0.3 + on-finished: 2.4.1 + parseurl: ~1.3.3 + statuses: 2.0.1 + unpipe: ~1.0.0 + checksum: 92effbfd32e22a7dff2994acedbd9bcc3aa646a3e919ea6a53238090e87097f8ef07cced90aa2cc421abdf993aefbdd5b00104d55c7c5479a8d00ed105b45716 + languageName: node + linkType: hard + +"find-cache-dir@npm:^4.0.0": + version: 4.0.0 + resolution: "find-cache-dir@npm:4.0.0" + dependencies: + common-path-prefix: ^3.0.0 + pkg-dir: ^7.0.0 + checksum: 52a456a80deeb27daa3af6e06059b63bdb9cc4af4d845fc6d6229887e505ba913cd56000349caa60bc3aa59dacdb5b4c37903d4ba34c75102d83cab330b70d2f + languageName: node + linkType: hard + +"find-up@npm:^3.0.0": + version: 3.0.0 + resolution: "find-up@npm:3.0.0" + dependencies: + locate-path: ^3.0.0 + checksum: 38eba3fe7a66e4bc7f0f5a1366dc25508b7cfc349f852640e3678d26ad9a6d7e2c43eff0a472287de4a9753ef58f066a0ea892a256fa3636ad51b3fe1e17fae9 + languageName: node + linkType: hard + +"find-up@npm:^5.0.0": + version: 5.0.0 + resolution: "find-up@npm:5.0.0" + dependencies: + locate-path: ^6.0.0 + path-exists: ^4.0.0 + checksum: 07955e357348f34660bde7920783204ff5a26ac2cafcaa28bace494027158a97b9f56faaf2d89a6106211a8174db650dd9f503f9c0d526b1202d5554a00b9095 + languageName: node + linkType: hard + +"find-up@npm:^6.3.0": + version: 6.3.0 + resolution: "find-up@npm:6.3.0" + dependencies: + locate-path: ^7.1.0 + path-exists: ^5.0.0 + checksum: 9a21b7f9244a420e54c6df95b4f6fc3941efd3c3e5476f8274eb452f6a85706e7a6a90de71353ee4f091fcb4593271a6f92810a324ec542650398f928783c280 + languageName: node + linkType: hard + +"flat@npm:^5.0.2": + version: 5.0.2 + resolution: "flat@npm:5.0.2" + bin: + flat: cli.js + checksum: 12a1536ac746db74881316a181499a78ef953632ddd28050b7a3a43c62ef5462e3357c8c29d76072bb635f147f7a9a1f0c02efef6b4be28f8db62ceb3d5c7f5d + languageName: node + linkType: hard + +"follow-redirects@npm:^1.0.0": + version: 1.15.6 + resolution: "follow-redirects@npm:1.15.6" + peerDependenciesMeta: + debug: + optional: true + checksum: a62c378dfc8c00f60b9c80cab158ba54e99ba0239a5dd7c81245e5a5b39d10f0c35e249c3379eae719ff0285fff88c365dd446fab19dee771f1d76252df1bbf5 + languageName: node + linkType: hard + +"foreground-child@npm:^3.1.0": + version: 3.1.1 + resolution: "foreground-child@npm:3.1.1" + dependencies: + cross-spawn: ^7.0.0 + signal-exit: ^4.0.1 + checksum: 139d270bc82dc9e6f8bc045fe2aae4001dc2472157044fdfad376d0a3457f77857fa883c1c8b21b491c6caade9a926a4bed3d3d2e8d3c9202b151a4cbbd0bcd5 + languageName: node + linkType: hard + +"fork-ts-checker-webpack-plugin@npm:^6.5.0": + version: 6.5.3 + resolution: "fork-ts-checker-webpack-plugin@npm:6.5.3" + dependencies: + "@babel/code-frame": ^7.8.3 + "@types/json-schema": ^7.0.5 + chalk: ^4.1.0 + chokidar: ^3.4.2 + cosmiconfig: ^6.0.0 + deepmerge: ^4.2.2 + fs-extra: ^9.0.0 + glob: ^7.1.6 + memfs: ^3.1.2 + minimatch: ^3.0.4 + schema-utils: 2.7.0 + semver: ^7.3.2 + tapable: ^1.0.0 + peerDependencies: + eslint: ">= 6" + typescript: ">= 2.7" + vue-template-compiler: "*" + webpack: ">= 4" + peerDependenciesMeta: + eslint: + optional: true + vue-template-compiler: + optional: true + checksum: 9732a49bfeed8fc23e6e8a59795fa7c238edeba91040a9b520db54b4d316dda27f9f1893d360e296fd0ad8930627d364417d28a8c7007fba60cc730ebfce4956 + languageName: node + linkType: hard + +"form-data-encoder@npm:^2.1.2": + version: 2.1.4 + resolution: "form-data-encoder@npm:2.1.4" + checksum: e0b3e5950fb69b3f32c273944620f9861f1933df9d3e42066e038e26dfb343d0f4465de9f27e0ead1a09d9df20bc2eed06a63c2ca2f8f00949e7202bae9e29dd + languageName: node + linkType: hard + +"format@npm:^0.2.0": + version: 0.2.2 + resolution: "format@npm:0.2.2" + checksum: 646a60e1336250d802509cf24fb801e43bd4a70a07510c816fa133aa42cdbc9c21e66e9cc0801bb183c5b031c9d68be62e7fbb6877756e52357850f92aa28799 + languageName: node + linkType: hard + +"forwarded@npm:0.2.0": + version: 0.2.0 + resolution: "forwarded@npm:0.2.0" + checksum: fd27e2394d8887ebd16a66ffc889dc983fbbd797d5d3f01087c020283c0f019a7d05ee85669383d8e0d216b116d720fc0cef2f6e9b7eb9f4c90c6e0bc7fd28e6 + languageName: node + linkType: hard + +"fraction.js@npm:^4.3.7": + version: 4.3.7 + resolution: "fraction.js@npm:4.3.7" + checksum: e1553ae3f08e3ba0e8c06e43a3ab20b319966dfb7ddb96fd9b5d0ee11a66571af7f993229c88ebbb0d4a816eb813a24ed48207b140d442a8f76f33763b8d1f3f + languageName: node + linkType: hard + +"fresh@npm:0.5.2": + version: 0.5.2 + resolution: "fresh@npm:0.5.2" + checksum: 13ea8b08f91e669a64e3ba3a20eb79d7ca5379a81f1ff7f4310d54e2320645503cc0c78daedc93dfb6191287295f6479544a649c64d8e41a1c0fb0c221552346 + languageName: node + linkType: hard + +"fs-extra@npm:^11.1.1": + version: 11.2.0 + resolution: "fs-extra@npm:11.2.0" + dependencies: + graceful-fs: ^4.2.0 + jsonfile: ^6.0.1 + universalify: ^2.0.0 + checksum: b12e42fa40ba47104202f57b8480dd098aa931c2724565e5e70779ab87605665594e76ee5fb00545f772ab9ace167fe06d2ab009c416dc8c842c5ae6df7aa7e8 + languageName: node + linkType: hard + +"fs-extra@npm:^9.0.0": + version: 9.1.0 + resolution: "fs-extra@npm:9.1.0" + dependencies: + at-least-node: ^1.0.0 + graceful-fs: ^4.2.0 + jsonfile: ^6.0.1 + universalify: ^2.0.0 + checksum: ba71ba32e0faa74ab931b7a0031d1523c66a73e225de7426e275e238e312d07313d2da2d33e34a52aa406c8763ade5712eb3ec9ba4d9edce652bcacdc29e6b20 + languageName: node + linkType: hard + +"fs-minipass@npm:^2.0.0": + version: 2.1.0 + resolution: "fs-minipass@npm:2.1.0" + dependencies: + minipass: ^3.0.0 + checksum: 1b8d128dae2ac6cc94230cc5ead341ba3e0efaef82dab46a33d171c044caaa6ca001364178d42069b2809c35a1c3c35079a32107c770e9ffab3901b59af8c8b1 + languageName: node + linkType: hard + +"fs-minipass@npm:^3.0.0": + version: 3.0.3 + resolution: "fs-minipass@npm:3.0.3" + dependencies: + minipass: ^7.0.3 + checksum: 8722a41109130851d979222d3ec88aabaceeaaf8f57b2a8f744ef8bd2d1ce95453b04a61daa0078822bc5cd21e008814f06fe6586f56fef511e71b8d2394d802 + languageName: node + linkType: hard + +"fs-monkey@npm:^1.0.4": + version: 1.0.6 + resolution: "fs-monkey@npm:1.0.6" + checksum: 4e9986acf197581b10b79d3e63e74252681ca215ef82d4afbd98dcfe86b3f09189ac1d7e8064bc433e4e53cdb5c14fdb38773277d41bba18b1ff8bbdcab01a3a + languageName: node + linkType: hard + +"fs.realpath@npm:^1.0.0": + version: 1.0.0 + resolution: "fs.realpath@npm:1.0.0" + checksum: 99ddea01a7e75aa276c250a04eedeffe5662bce66c65c07164ad6264f9de18fb21be9433ead460e54cff20e31721c811f4fb5d70591799df5f85dce6d6746fd0 + languageName: node + linkType: hard + +"fsevents@npm:~2.3.2": + version: 2.3.3 + resolution: "fsevents@npm:2.3.3" + dependencies: + node-gyp: latest + checksum: 11e6ea6fea15e42461fc55b4b0e4a0a3c654faa567f1877dbd353f39156f69def97a69936d1746619d656c4b93de2238bf731f6085a03a50cabf287c9d024317 + conditions: os=darwin + languageName: node + linkType: hard + +"fsevents@patch:fsevents@~2.3.2#~builtin<compat/fsevents>": + version: 2.3.3 + resolution: "fsevents@patch:fsevents@npm%3A2.3.3#~builtin<compat/fsevents>::version=2.3.3&hash=df0bf1" + dependencies: + node-gyp: latest + conditions: os=darwin + languageName: node + linkType: hard + +"function-bind@npm:^1.1.2": + version: 1.1.2 + resolution: "function-bind@npm:1.1.2" + checksum: 2b0ff4ce708d99715ad14a6d1f894e2a83242e4a52ccfcefaee5e40050562e5f6dafc1adbb4ce2d4ab47279a45dc736ab91ea5042d843c3c092820dfe032efb1 + languageName: node + linkType: hard + +"gensync@npm:^1.0.0-beta.2": + version: 1.0.0-beta.2 + resolution: "gensync@npm:1.0.0-beta.2" + checksum: a7437e58c6be12aa6c90f7730eac7fa9833dc78872b4ad2963d2031b00a3367a93f98aec75f9aaac7220848e4026d67a8655e870b24f20a543d103c0d65952ec + languageName: node + linkType: hard + +"get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.4": + version: 1.2.4 + resolution: "get-intrinsic@npm:1.2.4" + dependencies: + es-errors: ^1.3.0 + function-bind: ^1.1.2 + has-proto: ^1.0.1 + has-symbols: ^1.0.3 + hasown: ^2.0.0 + checksum: 414e3cdf2c203d1b9d7d33111df746a4512a1aa622770b361dadddf8ed0b5aeb26c560f49ca077e24bfafb0acb55ca908d1f709216ccba33ffc548ec8a79a951 + languageName: node + linkType: hard + +"get-own-enumerable-property-symbols@npm:^3.0.0": + version: 3.0.2 + resolution: "get-own-enumerable-property-symbols@npm:3.0.2" + checksum: 8f0331f14159f939830884799f937343c8c0a2c330506094bc12cbee3665d88337fe97a4ea35c002cc2bdba0f5d9975ad7ec3abb925015cdf2a93e76d4759ede + languageName: node + linkType: hard + +"get-stream@npm:^6.0.0, get-stream@npm:^6.0.1": + version: 6.0.1 + resolution: "get-stream@npm:6.0.1" + checksum: e04ecece32c92eebf5b8c940f51468cd53554dcbb0ea725b2748be583c9523d00128137966afce410b9b051eb2ef16d657cd2b120ca8edafcf5a65e81af63cad + languageName: node + linkType: hard + +"github-slugger@npm:^1.5.0": + version: 1.5.0 + resolution: "github-slugger@npm:1.5.0" + checksum: c70988224578b3bdaa25df65973ffc8c24594a77a28550c3636e495e49d17aef5cdb04c04fa3f1744babef98c61eecc6a43299a13ea7f3cc33d680bf9053ffbe + languageName: node + linkType: hard + +"glob-parent@npm:^5.1.2, glob-parent@npm:~5.1.2": + version: 5.1.2 + resolution: "glob-parent@npm:5.1.2" + dependencies: + is-glob: ^4.0.1 + checksum: f4f2bfe2425296e8a47e36864e4f42be38a996db40420fe434565e4480e3322f18eb37589617a98640c5dc8fdec1a387007ee18dbb1f3f5553409c34d17f425e + languageName: node + linkType: hard + +"glob-parent@npm:^6.0.1": + version: 6.0.2 + resolution: "glob-parent@npm:6.0.2" + dependencies: + is-glob: ^4.0.3 + checksum: c13ee97978bef4f55106b71e66428eb1512e71a7466ba49025fc2aec59a5bfb0954d5abd58fc5ee6c9b076eef4e1f6d3375c2e964b88466ca390da4419a786a8 + languageName: node + linkType: hard + +"glob-to-regexp@npm:^0.4.1": + version: 0.4.1 + resolution: "glob-to-regexp@npm:0.4.1" + checksum: e795f4e8f06d2a15e86f76e4d92751cf8bbfcf0157cea5c2f0f35678a8195a750b34096b1256e436f0cebc1883b5ff0888c47348443e69546a5a87f9e1eb1167 + languageName: node + linkType: hard + +"glob@npm:^10.2.2, glob@npm:^10.3.10": + version: 10.3.16 + resolution: "glob@npm:10.3.16" + dependencies: + foreground-child: ^3.1.0 + jackspeak: ^3.1.2 + minimatch: ^9.0.1 + minipass: ^7.0.4 + path-scurry: ^1.11.0 + bin: + glob: dist/esm/bin.mjs + checksum: 3cc49a0700fde72a1669ed587d167bb6921e23cd43fa3f03729794df6719a4188e0a5f3520a6d27b7762bd6b634a275fa6f400298b1559633d2e51bab8096c2e + languageName: node + linkType: hard + +"glob@npm:^7.0.0, glob@npm:^7.1.3, glob@npm:^7.1.6": + version: 7.2.3 + resolution: "glob@npm:7.2.3" + dependencies: + fs.realpath: ^1.0.0 + inflight: ^1.0.4 + inherits: 2 + minimatch: ^3.1.1 + once: ^1.3.0 + path-is-absolute: ^1.0.0 + checksum: 29452e97b38fa704dabb1d1045350fb2467cf0277e155aa9ff7077e90ad81d1ea9d53d3ee63bd37c05b09a065e90f16aec4a65f5b8de401d1dac40bc5605d133 + languageName: node + linkType: hard + +"global-dirs@npm:^3.0.0": + version: 3.0.1 + resolution: "global-dirs@npm:3.0.1" + dependencies: + ini: 2.0.0 + checksum: 70147b80261601fd40ac02a104581432325c1c47329706acd773f3a6ce99bb36d1d996038c85ccacd482ad22258ec233c586b6a91535b1a116b89663d49d6438 + languageName: node + linkType: hard + +"global-modules@npm:^2.0.0": + version: 2.0.0 + resolution: "global-modules@npm:2.0.0" + dependencies: + global-prefix: ^3.0.0 + checksum: d6197f25856c878c2fb5f038899f2dca7cbb2f7b7cf8999660c0104972d5cfa5c68b5a0a77fa8206bb536c3903a4615665acb9709b4d80846e1bb47eaef65430 + languageName: node + linkType: hard + +"global-prefix@npm:^3.0.0": + version: 3.0.0 + resolution: "global-prefix@npm:3.0.0" + dependencies: + ini: ^1.3.5 + kind-of: ^6.0.2 + which: ^1.3.1 + checksum: 8a82fc1d6f22c45484a4e34656cc91bf021a03e03213b0035098d605bfc612d7141f1e14a21097e8a0413b4884afd5b260df0b6a25605ce9d722e11f1df2881d + languageName: node + linkType: hard + +"globals@npm:^11.1.0": + version: 11.12.0 + resolution: "globals@npm:11.12.0" + checksum: 67051a45eca3db904aee189dfc7cd53c20c7d881679c93f6146ddd4c9f4ab2268e68a919df740d39c71f4445d2b38ee360fc234428baea1dbdfe68bbcb46979e + languageName: node + linkType: hard + +"globby@npm:^11.0.1, globby@npm:^11.0.4, globby@npm:^11.1.0": + version: 11.1.0 + resolution: "globby@npm:11.1.0" + dependencies: + array-union: ^2.1.0 + dir-glob: ^3.0.1 + fast-glob: ^3.2.9 + ignore: ^5.2.0 + merge2: ^1.4.1 + slash: ^3.0.0 + checksum: b4be8885e0cfa018fc783792942d53926c35c50b3aefd3fdcfb9d22c627639dc26bd2327a40a0b74b074100ce95bb7187bfeae2f236856aa3de183af7a02aea6 + languageName: node + linkType: hard + +"globby@npm:^13.1.1": + version: 13.2.2 + resolution: "globby@npm:13.2.2" + dependencies: + dir-glob: ^3.0.1 + fast-glob: ^3.3.0 + ignore: ^5.2.4 + merge2: ^1.4.1 + slash: ^4.0.0 + checksum: f3d84ced58a901b4fcc29c846983108c426631fe47e94872868b65565495f7bee7b3defd68923bd480582771fd4bbe819217803a164a618ad76f1d22f666f41e + languageName: node + linkType: hard + +"gopd@npm:^1.0.1": + version: 1.0.1 + resolution: "gopd@npm:1.0.1" + dependencies: + get-intrinsic: ^1.1.3 + checksum: a5ccfb8806e0917a94e0b3de2af2ea4979c1da920bc381667c260e00e7cafdbe844e2cb9c5bcfef4e5412e8bf73bab837285bc35c7ba73aaaf0134d4583393a6 + languageName: node + linkType: hard + +"got@npm:^12.1.0": + version: 12.6.1 + resolution: "got@npm:12.6.1" + dependencies: + "@sindresorhus/is": ^5.2.0 + "@szmarczak/http-timer": ^5.0.1 + cacheable-lookup: ^7.0.0 + cacheable-request: ^10.2.8 + decompress-response: ^6.0.0 + form-data-encoder: ^2.1.2 + get-stream: ^6.0.1 + http2-wrapper: ^2.1.10 + lowercase-keys: ^3.0.0 + p-cancelable: ^3.0.0 + responselike: ^3.0.0 + checksum: 3c37f5d858aca2859f9932e7609d35881d07e7f2d44c039d189396f0656896af6c77c22f2c51c563f8918be483f60ff41e219de742ab4642d4b106711baccbd5 + languageName: node + linkType: hard + +"graceful-fs@npm:4.2.10": + version: 4.2.10 + resolution: "graceful-fs@npm:4.2.10" + checksum: 3f109d70ae123951905d85032ebeae3c2a5a7a997430df00ea30df0e3a6c60cf6689b109654d6fdacd28810a053348c4d14642da1d075049e6be1ba5216218da + languageName: node + linkType: hard + +"graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.11, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": + version: 4.2.11 + resolution: "graceful-fs@npm:4.2.11" + checksum: ac85f94da92d8eb6b7f5a8b20ce65e43d66761c55ce85ac96df6865308390da45a8d3f0296dd3a663de65d30ba497bd46c696cc1e248c72b13d6d567138a4fc7 + languageName: node + linkType: hard + +"gray-matter@npm:^4.0.3": + version: 4.0.3 + resolution: "gray-matter@npm:4.0.3" + dependencies: + js-yaml: ^3.13.1 + kind-of: ^6.0.2 + section-matter: ^1.0.0 + strip-bom-string: ^1.0.0 + checksum: 37717bd424344487d655392251ce8d8878a1275ee087003e61208fba3bfd59cbb73a85b2159abf742ae95e23db04964813fdc33ae18b074208428b2528205222 + languageName: node + linkType: hard + +"gzip-size@npm:^6.0.0": + version: 6.0.0 + resolution: "gzip-size@npm:6.0.0" + dependencies: + duplexer: ^0.1.2 + checksum: 2df97f359696ad154fc171dcb55bc883fe6e833bca7a65e457b9358f3cb6312405ed70a8da24a77c1baac0639906cd52358dc0ce2ec1a937eaa631b934c94194 + languageName: node + linkType: hard + +"handle-thing@npm:^2.0.0": + version: 2.0.1 + resolution: "handle-thing@npm:2.0.1" + checksum: 68071f313062315cd9dce55710e9496873945f1dd425107007058fc1629f93002a7649fcc3e464281ce02c7e809a35f5925504ab8105d972cf649f1f47cb7d6c + languageName: node + linkType: hard + +"has-flag@npm:^3.0.0": + version: 3.0.0 + resolution: "has-flag@npm:3.0.0" + checksum: 4a15638b454bf086c8148979aae044dd6e39d63904cd452d970374fa6a87623423da485dfb814e7be882e05c096a7ccf1ebd48e7e7501d0208d8384ff4dea73b + languageName: node + linkType: hard + +"has-flag@npm:^4.0.0": + version: 4.0.0 + resolution: "has-flag@npm:4.0.0" + checksum: 261a1357037ead75e338156b1f9452c016a37dcd3283a972a30d9e4a87441ba372c8b81f818cd0fbcd9c0354b4ae7e18b9e1afa1971164aef6d18c2b6095a8ad + languageName: node + linkType: hard + +"has-property-descriptors@npm:^1.0.0, has-property-descriptors@npm:^1.0.2": + version: 1.0.2 + resolution: "has-property-descriptors@npm:1.0.2" + dependencies: + es-define-property: ^1.0.0 + checksum: fcbb246ea2838058be39887935231c6d5788babed499d0e9d0cc5737494c48aba4fe17ba1449e0d0fbbb1e36175442faa37f9c427ae357d6ccb1d895fbcd3de3 + languageName: node + linkType: hard + +"has-proto@npm:^1.0.1": + version: 1.0.3 + resolution: "has-proto@npm:1.0.3" + checksum: fe7c3d50b33f50f3933a04413ed1f69441d21d2d2944f81036276d30635cad9279f6b43bc8f32036c31ebdfcf6e731150f46c1907ad90c669ffe9b066c3ba5c4 + languageName: node + linkType: hard + +"has-symbols@npm:^1.0.3": + version: 1.0.3 + resolution: "has-symbols@npm:1.0.3" + checksum: a054c40c631c0d5741a8285010a0777ea0c068f99ed43e5d6eb12972da223f8af553a455132fdb0801bdcfa0e0f443c0c03a68d8555aa529b3144b446c3f2410 + languageName: node + linkType: hard + +"has-yarn@npm:^3.0.0": + version: 3.0.0 + resolution: "has-yarn@npm:3.0.0" + checksum: b9e14e78e0a37bc070550c862b201534287bc10e62a86ec9c1f455ffb082db42817ce9aed914bd73f1d589bbf268520e194629ff2f62ff6b98a482c4bd2dcbfb + languageName: node + linkType: hard + +"hasown@npm:^2.0.0": + version: 2.0.2 + resolution: "hasown@npm:2.0.2" + dependencies: + function-bind: ^1.1.2 + checksum: e8516f776a15149ca6c6ed2ae3110c417a00b62260e222590e54aa367cbcd6ed99122020b37b7fbdf05748df57b265e70095d7bf35a47660587619b15ffb93db + languageName: node + linkType: hard + +"hast-util-from-parse5@npm:^8.0.0": + version: 8.0.1 + resolution: "hast-util-from-parse5@npm:8.0.1" + dependencies: + "@types/hast": ^3.0.0 + "@types/unist": ^3.0.0 + devlop: ^1.0.0 + hastscript: ^8.0.0 + property-information: ^6.0.0 + vfile: ^6.0.0 + vfile-location: ^5.0.0 + web-namespaces: ^2.0.0 + checksum: fdd1ab8b03af13778ecb94ef9a58b1e3528410cdfceb3d6bb7600508967d0d836b451bc7bc3baf66efb7c730d3d395eea4bb1b30352b0162823d9f0de976774b + languageName: node + linkType: hard + +"hast-util-parse-selector@npm:^4.0.0": + version: 4.0.0 + resolution: "hast-util-parse-selector@npm:4.0.0" + dependencies: + "@types/hast": ^3.0.0 + checksum: 76087670d3b0b50b23a6cb70bca53a6176d6608307ccdbb3ed18b650b82e7c3513bfc40348f1389dc0c5ae872b9a768851f4335f44654abd7deafd6974c52402 + languageName: node + linkType: hard + +"hast-util-raw@npm:^9.0.0": + version: 9.0.3 + resolution: "hast-util-raw@npm:9.0.3" + dependencies: + "@types/hast": ^3.0.0 + "@types/unist": ^3.0.0 + "@ungap/structured-clone": ^1.0.0 + hast-util-from-parse5: ^8.0.0 + hast-util-to-parse5: ^8.0.0 + html-void-elements: ^3.0.0 + mdast-util-to-hast: ^13.0.0 + parse5: ^7.0.0 + unist-util-position: ^5.0.0 + unist-util-visit: ^5.0.0 + vfile: ^6.0.0 + web-namespaces: ^2.0.0 + zwitch: ^2.0.0 + checksum: 99061946777fa0d8fade8ce5511195c41fd49d2b7dc253d7f8590764d2e7ea6a0af90f1355a20940d8ad395c74b138b42686adfc5d9deb01bfd67f6641d835ae + languageName: node + linkType: hard + +"hast-util-to-estree@npm:^3.0.0": + version: 3.1.0 + resolution: "hast-util-to-estree@npm:3.1.0" + dependencies: + "@types/estree": ^1.0.0 + "@types/estree-jsx": ^1.0.0 + "@types/hast": ^3.0.0 + comma-separated-tokens: ^2.0.0 + devlop: ^1.0.0 + estree-util-attach-comments: ^3.0.0 + estree-util-is-identifier-name: ^3.0.0 + hast-util-whitespace: ^3.0.0 + mdast-util-mdx-expression: ^2.0.0 + mdast-util-mdx-jsx: ^3.0.0 + mdast-util-mdxjs-esm: ^2.0.0 + property-information: ^6.0.0 + space-separated-tokens: ^2.0.0 + style-to-object: ^0.4.0 + unist-util-position: ^5.0.0 + zwitch: ^2.0.0 + checksum: 61272f7c18c9d2a5e34df7cfd2c97cbf12f6e9d05114d60e4dedd64e5576565eb1e35c78b9213c909bb8f984f0f8e9c49b568f04bdb444b83d0bca9159e14f3c + languageName: node + linkType: hard + +"hast-util-to-jsx-runtime@npm:^2.0.0": + version: 2.3.0 + resolution: "hast-util-to-jsx-runtime@npm:2.3.0" + dependencies: + "@types/estree": ^1.0.0 + "@types/hast": ^3.0.0 + "@types/unist": ^3.0.0 + comma-separated-tokens: ^2.0.0 + devlop: ^1.0.0 + estree-util-is-identifier-name: ^3.0.0 + hast-util-whitespace: ^3.0.0 + mdast-util-mdx-expression: ^2.0.0 + mdast-util-mdx-jsx: ^3.0.0 + mdast-util-mdxjs-esm: ^2.0.0 + property-information: ^6.0.0 + space-separated-tokens: ^2.0.0 + style-to-object: ^1.0.0 + unist-util-position: ^5.0.0 + vfile-message: ^4.0.0 + checksum: 599a97c6ec61c1430776813d7fb42e6f96032bf4a04dfcbb8eceef3bc8d1845ecf242387a4426b9d3f52320dbbfa26450643b81124b3d6a0b9bbb0fff4d0ba83 + languageName: node + linkType: hard + +"hast-util-to-parse5@npm:^8.0.0": + version: 8.0.0 + resolution: "hast-util-to-parse5@npm:8.0.0" + dependencies: + "@types/hast": ^3.0.0 + comma-separated-tokens: ^2.0.0 + devlop: ^1.0.0 + property-information: ^6.0.0 + space-separated-tokens: ^2.0.0 + web-namespaces: ^2.0.0 + zwitch: ^2.0.0 + checksum: 137469209cb2b32b57387928878dc85310fbd5afa4807a8da69529199bb1d19044bfc95b50c3dc68d4fb2b6cb8bf99b899285597ab6ab318f50422eefd5599dd + languageName: node + linkType: hard + +"hast-util-whitespace@npm:^3.0.0": + version: 3.0.0 + resolution: "hast-util-whitespace@npm:3.0.0" + dependencies: + "@types/hast": ^3.0.0 + checksum: 41d93ccce218ba935dc3c12acdf586193c35069489c8c8f50c2aa824c00dec94a3c78b03d1db40fa75381942a189161922e4b7bca700b3a2cc779634c351a1e4 + languageName: node + linkType: hard + +"hastscript@npm:^8.0.0": + version: 8.0.0 + resolution: "hastscript@npm:8.0.0" + dependencies: + "@types/hast": ^3.0.0 + comma-separated-tokens: ^2.0.0 + hast-util-parse-selector: ^4.0.0 + property-information: ^6.0.0 + space-separated-tokens: ^2.0.0 + checksum: ae3c20223e7b847320c0f98b6fb3c763ebe1bf3913c5805fbc176cf84553a9db1117ca34cf842a5235890b4b9ae0e94501bfdc9a9b870a5dbf5fc52426db1097 + languageName: node + linkType: hard + +"he@npm:^1.2.0": + version: 1.2.0 + resolution: "he@npm:1.2.0" + bin: + he: bin/he + checksum: 3d4d6babccccd79c5c5a3f929a68af33360d6445587d628087f39a965079d84f18ce9c3d3f917ee1e3978916fc833bb8b29377c3b403f919426f91bc6965e7a7 + languageName: node + linkType: hard + +"history@npm:^4.9.0": + version: 4.10.1 + resolution: "history@npm:4.10.1" + dependencies: + "@babel/runtime": ^7.1.2 + loose-envify: ^1.2.0 + resolve-pathname: ^3.0.0 + tiny-invariant: ^1.0.2 + tiny-warning: ^1.0.0 + value-equal: ^1.0.1 + checksum: addd84bc4683929bae4400419b5af132ff4e4e9b311a0d4e224579ea8e184a6b80d7f72c55927e4fa117f69076a9e47ce082d8d0b422f1a9ddac7991490ca1d0 + languageName: node + linkType: hard + +"hoist-non-react-statics@npm:^3.1.0": + version: 3.3.2 + resolution: "hoist-non-react-statics@npm:3.3.2" + dependencies: + react-is: ^16.7.0 + checksum: b1538270429b13901ee586aa44f4cc3ecd8831c061d06cb8322e50ea17b3f5ce4d0e2e66394761e6c8e152cd8c34fb3b4b690116c6ce2bd45b18c746516cb9e8 + languageName: node + linkType: hard + +"hpack.js@npm:^2.1.6": + version: 2.1.6 + resolution: "hpack.js@npm:2.1.6" + dependencies: + inherits: ^2.0.1 + obuf: ^1.0.0 + readable-stream: ^2.0.1 + wbuf: ^1.1.0 + checksum: 2de144115197967ad6eeee33faf41096c6ba87078703c5cb011632dcfbffeb45784569e0cf02c317bd79c48375597c8ec88c30fff5bb0b023e8f654fb6e9c06e + languageName: node + linkType: hard + +"htm@npm:^3.1.1": + version: 3.1.1 + resolution: "htm@npm:3.1.1" + checksum: 1827a0cafffcff69690b048a4df59944086d7503fe5eb7c10b40834439205bdf992941e7aa25e92b3c2c086170565b4ed7c365bc072d31067c6e7a4e478776bd + languageName: node + linkType: hard + +"html-entities@npm:^2.3.2": + version: 2.5.2 + resolution: "html-entities@npm:2.5.2" + checksum: b23f4a07d33d49ade1994069af4e13d31650e3fb62621e92ae10ecdf01d1a98065c78fd20fdc92b4c7881612210b37c275f2c9fba9777650ab0d6f2ceb3b99b6 + languageName: node + linkType: hard + +"html-escaper@npm:^2.0.2": + version: 2.0.2 + resolution: "html-escaper@npm:2.0.2" + checksum: d2df2da3ad40ca9ee3a39c5cc6475ef67c8f83c234475f24d8e9ce0dc80a2c82df8e1d6fa78ddd1e9022a586ea1bd247a615e80a5cd9273d90111ddda7d9e974 + languageName: node + linkType: hard + +"html-minifier-terser@npm:^6.0.2": + version: 6.1.0 + resolution: "html-minifier-terser@npm:6.1.0" + dependencies: + camel-case: ^4.1.2 + clean-css: ^5.2.2 + commander: ^8.3.0 + he: ^1.2.0 + param-case: ^3.0.4 + relateurl: ^0.2.7 + terser: ^5.10.0 + bin: + html-minifier-terser: cli.js + checksum: ac52c14006476f773204c198b64838477859dc2879490040efab8979c0207424da55d59df7348153f412efa45a0840a1ca3c757bf14767d23a15e3e389d37a93 + languageName: node + linkType: hard + +"html-minifier-terser@npm:^7.2.0": + version: 7.2.0 + resolution: "html-minifier-terser@npm:7.2.0" + dependencies: + camel-case: ^4.1.2 + clean-css: ~5.3.2 + commander: ^10.0.0 + entities: ^4.4.0 + param-case: ^3.0.4 + relateurl: ^0.2.7 + terser: ^5.15.1 + bin: + html-minifier-terser: cli.js + checksum: 39feed354b5a8aafc8e910977d68cfd961d6db330a8e1a5b16a528c86b8ee7745d8945134822cf00acf7bf0d0135bf1abad650bf308bee4ea73adb003f5b8656 + languageName: node + linkType: hard + +"html-tags@npm:^3.3.1": + version: 3.3.1 + resolution: "html-tags@npm:3.3.1" + checksum: b4ef1d5a76b678e43cce46e3783d563607b1d550cab30b4f511211564574770aa8c658a400b100e588bc60b8234e59b35ff72c7851cc28f3b5403b13a2c6cbce + languageName: node + linkType: hard + +"html-void-elements@npm:^3.0.0": + version: 3.0.0 + resolution: "html-void-elements@npm:3.0.0" + checksum: 59be397525465a7489028afa064c55763d9cccd1d7d9f630cca47137317f0e897a9ca26cef7e745e7cff1abc44260cfa407742b243a54261dfacd42230e94fce + languageName: node + linkType: hard + +"html-webpack-plugin@npm:^5.5.3": + version: 5.6.0 + resolution: "html-webpack-plugin@npm:5.6.0" + dependencies: + "@types/html-minifier-terser": ^6.0.0 + html-minifier-terser: ^6.0.2 + lodash: ^4.17.21 + pretty-error: ^4.0.0 + tapable: ^2.0.0 + peerDependencies: + "@rspack/core": 0.x || 1.x + webpack: ^5.20.0 + peerDependenciesMeta: + "@rspack/core": + optional: true + webpack: + optional: true + checksum: 32a6e41da538e798fd0be476637d7611a5e8a98a3508f031996e9eb27804dcdc282cb01f847cf5d066f21b49cfb8e21627fcf977ffd0c9bea81cf80e5a65070d + languageName: node + linkType: hard + +"htmlparser2@npm:^6.1.0": + version: 6.1.0 + resolution: "htmlparser2@npm:6.1.0" + dependencies: + domelementtype: ^2.0.1 + domhandler: ^4.0.0 + domutils: ^2.5.2 + entities: ^2.0.0 + checksum: 81a7b3d9c3bb9acb568a02fc9b1b81ffbfa55eae7f1c41ae0bf840006d1dbf54cb3aa245b2553e2c94db674840a9f0fdad7027c9a9d01a062065314039058c4e + languageName: node + linkType: hard + +"htmlparser2@npm:^8.0.1": + version: 8.0.2 + resolution: "htmlparser2@npm:8.0.2" + dependencies: + domelementtype: ^2.3.0 + domhandler: ^5.0.3 + domutils: ^3.0.1 + entities: ^4.4.0 + checksum: 29167a0f9282f181da8a6d0311b76820c8a59bc9e3c87009e21968264c2987d2723d6fde5a964d4b7b6cba663fca96ffb373c06d8223a85f52a6089ced942700 + languageName: node + linkType: hard + +"http-cache-semantics@npm:^4.1.1": + version: 4.1.1 + resolution: "http-cache-semantics@npm:4.1.1" + checksum: 83ac0bc60b17a3a36f9953e7be55e5c8f41acc61b22583060e8dedc9dd5e3607c823a88d0926f9150e571f90946835c7fe150732801010845c72cd8bbff1a236 + languageName: node + linkType: hard + +"http-deceiver@npm:^1.2.7": + version: 1.2.7 + resolution: "http-deceiver@npm:1.2.7" + checksum: 64d7d1ae3a6933eb0e9a94e6f27be4af45a53a96c3c34e84ff57113787105a89fff9d1c3df263ef63add823df019b0e8f52f7121e32393bb5ce9a713bf100b41 + languageName: node + linkType: hard + +"http-errors@npm:2.0.0": + version: 2.0.0 + resolution: "http-errors@npm:2.0.0" + dependencies: + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.1 + toidentifier: 1.0.1 + checksum: 9b0a3782665c52ce9dc658a0d1560bcb0214ba5699e4ea15aefb2a496e2ca83db03ebc42e1cce4ac1f413e4e0d2d736a3fd755772c556a9a06853ba2a0b7d920 + languageName: node + linkType: hard + +"http-errors@npm:~1.6.2": + version: 1.6.3 + resolution: "http-errors@npm:1.6.3" + dependencies: + depd: ~1.1.2 + inherits: 2.0.3 + setprototypeof: 1.1.0 + statuses: ">= 1.4.0 < 2" + checksum: a9654ee027e3d5de305a56db1d1461f25709ac23267c6dc28cdab8323e3f96caa58a9a6a5e93ac15d7285cee0c2f019378c3ada9026e7fe19c872d695f27de7c + languageName: node + linkType: hard + +"http-parser-js@npm:>=0.5.1": + version: 0.5.8 + resolution: "http-parser-js@npm:0.5.8" + checksum: 6bbdf2429858e8cf13c62375b0bfb6dc3955ca0f32e58237488bc86cd2378f31d31785fd3ac4ce93f1c74e0189cf8823c91f5cb061696214fd368d2452dc871d + languageName: node + linkType: hard + +"http-proxy-agent@npm:^7.0.0": + version: 7.0.2 + resolution: "http-proxy-agent@npm:7.0.2" + dependencies: + agent-base: ^7.1.0 + debug: ^4.3.4 + checksum: 670858c8f8f3146db5889e1fa117630910101db601fff7d5a8aa637da0abedf68c899f03d3451cac2f83bcc4c3d2dabf339b3aa00ff8080571cceb02c3ce02f3 + languageName: node + linkType: hard + +"http-proxy-middleware@npm:^2.0.3": + version: 2.0.6 + resolution: "http-proxy-middleware@npm:2.0.6" + dependencies: + "@types/http-proxy": ^1.17.8 + http-proxy: ^1.18.1 + is-glob: ^4.0.1 + is-plain-obj: ^3.0.0 + micromatch: ^4.0.2 + peerDependencies: + "@types/express": ^4.17.13 + peerDependenciesMeta: + "@types/express": + optional: true + checksum: 2ee85bc878afa6cbf34491e972ece0f5be0a3e5c98a60850cf40d2a9a5356e1fc57aab6cff33c1fc37691b0121c3a42602d2b1956c52577e87a5b77b62ae1c3a + languageName: node + linkType: hard + +"http-proxy@npm:^1.18.1": + version: 1.18.1 + resolution: "http-proxy@npm:1.18.1" + dependencies: + eventemitter3: ^4.0.0 + follow-redirects: ^1.0.0 + requires-port: ^1.0.0 + checksum: f5bd96bf83e0b1e4226633dbb51f8b056c3e6321917df402deacec31dd7fe433914fc7a2c1831cf7ae21e69c90b3a669b8f434723e9e8b71fd68afe30737b6a5 + languageName: node + linkType: hard + +"http2-wrapper@npm:^2.1.10": + version: 2.2.1 + resolution: "http2-wrapper@npm:2.2.1" + dependencies: + quick-lru: ^5.1.1 + resolve-alpn: ^1.2.0 + checksum: e95e55e22c6fd61182ce81fecb9b7da3af680d479febe8ad870d05f7ebbc9f076e455193766f4e7934e50913bf1d8da3ba121fb5cd2928892390b58cf9d5c509 + languageName: node + linkType: hard + +"https-proxy-agent@npm:^7.0.1": + version: 7.0.4 + resolution: "https-proxy-agent@npm:7.0.4" + dependencies: + agent-base: ^7.0.2 + debug: 4 + checksum: daaab857a967a2519ddc724f91edbbd388d766ff141b9025b629f92b9408fc83cee8a27e11a907aede392938e9c398e240d643e178408a59e4073539cde8cfe9 + languageName: node + linkType: hard + +"human-signals@npm:^2.1.0": + version: 2.1.0 + resolution: "human-signals@npm:2.1.0" + checksum: b87fd89fce72391625271454e70f67fe405277415b48bcc0117ca73d31fa23a4241787afdc8d67f5a116cf37258c052f59ea82daffa72364d61351423848e3b8 + languageName: node + linkType: hard + +"iconv-lite@npm:0.4.24": + version: 0.4.24 + resolution: "iconv-lite@npm:0.4.24" + dependencies: + safer-buffer: ">= 2.1.2 < 3" + checksum: bd9f120f5a5b306f0bc0b9ae1edeb1577161503f5f8252a20f1a9e56ef8775c9959fd01c55f2d3a39d9a8abaf3e30c1abeb1895f367dcbbe0a8fd1c9ca01c4f6 + languageName: node + linkType: hard + +"iconv-lite@npm:0.6, iconv-lite@npm:^0.6.2": + version: 0.6.3 + resolution: "iconv-lite@npm:0.6.3" + dependencies: + safer-buffer: ">= 2.1.2 < 3.0.0" + checksum: 3f60d47a5c8fc3313317edfd29a00a692cc87a19cac0159e2ce711d0ebc9019064108323b5e493625e25594f11c6236647d8e256fbe7a58f4a3b33b89e6d30bf + languageName: node + linkType: hard + +"icss-utils@npm:^5.0.0, icss-utils@npm:^5.1.0": + version: 5.1.0 + resolution: "icss-utils@npm:5.1.0" + peerDependencies: + postcss: ^8.1.0 + checksum: 5c324d283552b1269cfc13a503aaaa172a280f914e5b81544f3803bc6f06a3b585fb79f66f7c771a2c052db7982c18bf92d001e3b47282e3abbbb4c4cc488d68 + languageName: node + linkType: hard + +"ignore@npm:^5.2.0, ignore@npm:^5.2.4": + version: 5.3.1 + resolution: "ignore@npm:5.3.1" + checksum: 71d7bb4c1dbe020f915fd881108cbe85a0db3d636a0ea3ba911393c53946711d13a9b1143c7e70db06d571a5822c0a324a6bcde5c9904e7ca5047f01f1bf8cd3 + languageName: node + linkType: hard + +"image-size@npm:^1.0.2": + version: 1.1.1 + resolution: "image-size@npm:1.1.1" + dependencies: + queue: 6.0.2 + bin: + image-size: bin/image-size.js + checksum: 23b3a515dded89e7f967d52b885b430d6a5a903da954fce703130bfb6069d738d80e6588efd29acfaf5b6933424a56535aa7bf06867e4ebd0250c2ee51f19a4a + languageName: node + linkType: hard + +"immer@npm:^9.0.7": + version: 9.0.21 + resolution: "immer@npm:9.0.21" + checksum: 70e3c274165995352f6936695f0ef4723c52c92c92dd0e9afdfe008175af39fa28e76aafb3a2ca9d57d1fb8f796efc4dd1e1cc36f18d33fa5b74f3dfb0375432 + languageName: node + linkType: hard + +"import-fresh@npm:^3.1.0, import-fresh@npm:^3.3.0": + version: 3.3.0 + resolution: "import-fresh@npm:3.3.0" + dependencies: + parent-module: ^1.0.0 + resolve-from: ^4.0.0 + checksum: 2cacfad06e652b1edc50be650f7ec3be08c5e5a6f6d12d035c440a42a8cc028e60a5b99ca08a77ab4d6b1346da7d971915828f33cdab730d3d42f08242d09baa + languageName: node + linkType: hard + +"import-lazy@npm:^4.0.0": + version: 4.0.0 + resolution: "import-lazy@npm:4.0.0" + checksum: 22f5e51702134aef78890156738454f620e5fe7044b204ebc057c614888a1dd6fdf2ede0fdcca44d5c173fd64f65c985f19a51775b06967ef58cc3d26898df07 + languageName: node + linkType: hard + +"imurmurhash@npm:^0.1.4": + version: 0.1.4 + resolution: "imurmurhash@npm:0.1.4" + checksum: 7cae75c8cd9a50f57dadd77482359f659eaebac0319dd9368bcd1714f55e65badd6929ca58569da2b6494ef13fdd5598cd700b1eba23f8b79c5f19d195a3ecf7 + languageName: node + linkType: hard + +"indent-string@npm:^4.0.0": + version: 4.0.0 + resolution: "indent-string@npm:4.0.0" + checksum: 824cfb9929d031dabf059bebfe08cf3137365e112019086ed3dcff6a0a7b698cb80cf67ccccde0e25b9e2d7527aa6cc1fed1ac490c752162496caba3e6699612 + languageName: node + linkType: hard + +"infima@npm:0.2.0-alpha.43": + version: 0.2.0-alpha.43 + resolution: "infima@npm:0.2.0-alpha.43" + checksum: fc5f79240e940eddd750439511767092ccb4051e5e91d253ec7630a9e7ce691812da3aa0f05e46b4c0a95dbfadeae5714fd0073f8d2df12e5aaff0697a1d6aa2 + languageName: node + linkType: hard + +"inflight@npm:^1.0.4": + version: 1.0.6 + resolution: "inflight@npm:1.0.6" + dependencies: + once: ^1.3.0 + wrappy: 1 + checksum: f4f76aa072ce19fae87ce1ef7d221e709afb59d445e05d47fba710e85470923a75de35bfae47da6de1b18afc3ce83d70facf44cfb0aff89f0a3f45c0a0244dfd + languageName: node + linkType: hard + +"inherits@npm:2, inherits@npm:2.0.4, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:~2.0.3": + version: 2.0.4 + resolution: "inherits@npm:2.0.4" + checksum: 4a48a733847879d6cf6691860a6b1e3f0f4754176e4d71494c41f3475553768b10f84b5ce1d40fbd0e34e6bfbb864ee35858ad4dd2cf31e02fc4a154b724d7f1 + languageName: node + linkType: hard + +"inherits@npm:2.0.3": + version: 2.0.3 + resolution: "inherits@npm:2.0.3" + checksum: 78cb8d7d850d20a5e9a7f3620db31483aa00ad5f722ce03a55b110e5a723539b3716a3b463e2b96ce3fe286f33afc7c131fa2f91407528ba80cea98a7545d4c0 + languageName: node + linkType: hard + +"ini@npm:2.0.0": + version: 2.0.0 + resolution: "ini@npm:2.0.0" + checksum: e7aadc5fb2e4aefc666d74ee2160c073995a4061556b1b5b4241ecb19ad609243b9cceafe91bae49c219519394bbd31512516cb22a3b1ca6e66d869e0447e84e + languageName: node + linkType: hard + +"ini@npm:^1.3.4, ini@npm:^1.3.5, ini@npm:~1.3.0": + version: 1.3.8 + resolution: "ini@npm:1.3.8" + checksum: dfd98b0ca3a4fc1e323e38a6c8eb8936e31a97a918d3b377649ea15bdb15d481207a0dda1021efbd86b464cae29a0d33c1d7dcaf6c5672bee17fa849bc50a1b3 + languageName: node + linkType: hard + +"inline-style-parser@npm:0.1.1": + version: 0.1.1 + resolution: "inline-style-parser@npm:0.1.1" + checksum: 5d545056a3e1f2bf864c928a886a0e1656a3517127d36917b973de581bd54adc91b4bf1febcb0da054f204b4934763f1a4e09308b4d55002327cf1d48ac5d966 + languageName: node + linkType: hard + +"inline-style-parser@npm:0.2.3": + version: 0.2.3 + resolution: "inline-style-parser@npm:0.2.3" + checksum: ed6454de80759e7faef511f51b5716b33c40a6b05b8a8f5383dc01e8a087c6fd5df877446d05e8e3961ae0751e028e25e180f5cffc192a5ce7822edef6810ade + languageName: node + linkType: hard + +"internmap@npm:1 - 2": + version: 2.0.3 + resolution: "internmap@npm:2.0.3" + checksum: 7ca41ec6aba8f0072fc32fa8a023450a9f44503e2d8e403583c55714b25efd6390c38a87161ec456bf42d7bc83aab62eb28f5aef34876b1ac4e60693d5e1d241 + languageName: node + linkType: hard + +"internmap@npm:^1.0.0": + version: 1.0.1 + resolution: "internmap@npm:1.0.1" + checksum: 9d00f8c0cf873a24a53a5a937120dab634c41f383105e066bb318a61864e6292d24eb9516e8e7dccfb4420ec42ca474a0f28ac9a6cc82536898fa09bbbe53813 + languageName: node + linkType: hard + +"interpret@npm:^1.0.0": + version: 1.4.0 + resolution: "interpret@npm:1.4.0" + checksum: 2e5f51268b5941e4a17e4ef0575bc91ed0ab5f8515e3cf77486f7c14d13f3010df9c0959f37063dcc96e78d12dc6b0bb1b9e111cdfe69771f4656d2993d36155 + languageName: node + linkType: hard + +"invariant@npm:^2.2.4": + version: 2.2.4 + resolution: "invariant@npm:2.2.4" + dependencies: + loose-envify: ^1.0.0 + checksum: cc3182d793aad82a8d1f0af697b462939cb46066ec48bbf1707c150ad5fad6406137e91a262022c269702e01621f35ef60269f6c0d7fd178487959809acdfb14 + languageName: node + linkType: hard + +"ip-address@npm:^9.0.5": + version: 9.0.5 + resolution: "ip-address@npm:9.0.5" + dependencies: + jsbn: 1.1.0 + sprintf-js: ^1.1.3 + checksum: aa15f12cfd0ef5e38349744e3654bae649a34c3b10c77a674a167e99925d1549486c5b14730eebce9fea26f6db9d5e42097b00aa4f9f612e68c79121c71652dc + languageName: node + linkType: hard + +"ipaddr.js@npm:1.9.1": + version: 1.9.1 + resolution: "ipaddr.js@npm:1.9.1" + checksum: f88d3825981486f5a1942414c8d77dd6674dd71c065adcfa46f578d677edcb99fda25af42675cb59db492fdf427b34a5abfcde3982da11a8fd83a500b41cfe77 + languageName: node + linkType: hard + +"ipaddr.js@npm:^2.0.1": + version: 2.2.0 + resolution: "ipaddr.js@npm:2.2.0" + checksum: 770ba8451fd9bf78015e8edac0d5abd7a708cbf75f9429ca9147a9d2f3a2d60767cd5de2aab2b1e13ca6e4445bdeff42bf12ef6f151c07a5c6cf8a44328e2859 + languageName: node + linkType: hard + +"is-alphabetical@npm:^2.0.0": + version: 2.0.1 + resolution: "is-alphabetical@npm:2.0.1" + checksum: 56207db8d9de0850f0cd30f4966bf731eb82cedfe496cbc2e97e7c3bacaf66fc54a972d2d08c0d93bb679cb84976a05d24c5ad63de56fabbfc60aadae312edaa + languageName: node + linkType: hard + +"is-alphanumerical@npm:^2.0.0": + version: 2.0.1 + resolution: "is-alphanumerical@npm:2.0.1" + dependencies: + is-alphabetical: ^2.0.0 + is-decimal: ^2.0.0 + checksum: 87acc068008d4c9c4e9f5bd5e251041d42e7a50995c77b1499cf6ed248f971aadeddb11f239cabf09f7975ee58cac7a48ffc170b7890076d8d227b24a68663c9 + languageName: node + linkType: hard + +"is-arrayish@npm:^0.2.1": + version: 0.2.1 + resolution: "is-arrayish@npm:0.2.1" + checksum: eef4417e3c10e60e2c810b6084942b3ead455af16c4509959a27e490e7aee87cfb3f38e01bbde92220b528a0ee1a18d52b787e1458ee86174d8c7f0e58cd488f + languageName: node + linkType: hard + +"is-binary-path@npm:~2.1.0": + version: 2.1.0 + resolution: "is-binary-path@npm:2.1.0" + dependencies: + binary-extensions: ^2.0.0 + checksum: 84192eb88cff70d320426f35ecd63c3d6d495da9d805b19bc65b518984b7c0760280e57dbf119b7e9be6b161784a5a673ab2c6abe83abb5198a432232ad5b35c + languageName: node + linkType: hard + +"is-ci@npm:^3.0.1": + version: 3.0.1 + resolution: "is-ci@npm:3.0.1" + dependencies: + ci-info: ^3.2.0 + bin: + is-ci: bin.js + checksum: 192c66dc7826d58f803ecae624860dccf1899fc1f3ac5505284c0a5cf5f889046ffeb958fa651e5725d5705c5bcb14f055b79150ea5fcad7456a9569de60260e + languageName: node + linkType: hard + +"is-core-module@npm:^2.13.0": + version: 2.13.1 + resolution: "is-core-module@npm:2.13.1" + dependencies: + hasown: ^2.0.0 + checksum: 256559ee8a9488af90e4bad16f5583c6d59e92f0742e9e8bb4331e758521ee86b810b93bae44f390766ffbc518a0488b18d9dab7da9a5ff997d499efc9403f7c + languageName: node + linkType: hard + +"is-decimal@npm:^2.0.0": + version: 2.0.1 + resolution: "is-decimal@npm:2.0.1" + checksum: 97132de7acdce77caa7b797632970a2ecd649a88e715db0e4dbc00ab0708b5e7574ba5903962c860cd4894a14fd12b100c0c4ac8aed445cf6f55c6cf747a4158 + languageName: node + linkType: hard + +"is-docker@npm:^2.0.0, is-docker@npm:^2.1.1": + version: 2.2.1 + resolution: "is-docker@npm:2.2.1" + bin: + is-docker: cli.js + checksum: 3fef7ddbf0be25958e8991ad941901bf5922ab2753c46980b60b05c1bf9c9c2402d35e6dc32e4380b980ef5e1970a5d9d5e5aa2e02d77727c3b6b5e918474c56 + languageName: node + linkType: hard + +"is-extendable@npm:^0.1.0": + version: 0.1.1 + resolution: "is-extendable@npm:0.1.1" + checksum: 3875571d20a7563772ecc7a5f36cb03167e9be31ad259041b4a8f73f33f885441f778cee1f1fe0085eb4bc71679b9d8c923690003a36a6a5fdf8023e6e3f0672 + languageName: node + linkType: hard + +"is-extglob@npm:^2.1.1": + version: 2.1.1 + resolution: "is-extglob@npm:2.1.1" + checksum: df033653d06d0eb567461e58a7a8c9f940bd8c22274b94bf7671ab36df5719791aae15eef6d83bbb5e23283967f2f984b8914559d4449efda578c775c4be6f85 + languageName: node + linkType: hard + +"is-fullwidth-code-point@npm:^3.0.0": + version: 3.0.0 + resolution: "is-fullwidth-code-point@npm:3.0.0" + checksum: 44a30c29457c7fb8f00297bce733f0a64cd22eca270f83e58c105e0d015e45c019491a4ab2faef91ab51d4738c670daff901c799f6a700e27f7314029e99e348 + languageName: node + linkType: hard + +"is-glob@npm:^4.0.1, is-glob@npm:^4.0.3, is-glob@npm:~4.0.1": + version: 4.0.3 + resolution: "is-glob@npm:4.0.3" + dependencies: + is-extglob: ^2.1.1 + checksum: d381c1319fcb69d341cc6e6c7cd588e17cd94722d9a32dbd60660b993c4fb7d0f19438674e68dfec686d09b7c73139c9166b47597f846af387450224a8101ab4 + languageName: node + linkType: hard + +"is-hexadecimal@npm:^2.0.0": + version: 2.0.1 + resolution: "is-hexadecimal@npm:2.0.1" + checksum: 66a2ea85994c622858f063f23eda506db29d92b52580709eb6f4c19550552d4dcf3fb81952e52f7cf972097237959e00adc7bb8c9400cd12886e15bf06145321 + languageName: node + linkType: hard + +"is-installed-globally@npm:^0.4.0": + version: 0.4.0 + resolution: "is-installed-globally@npm:0.4.0" + dependencies: + global-dirs: ^3.0.0 + is-path-inside: ^3.0.2 + checksum: 3359840d5982d22e9b350034237b2cda2a12bac1b48a721912e1ab8e0631dd07d45a2797a120b7b87552759a65ba03e819f1bd63f2d7ab8657ec0b44ee0bf399 + languageName: node + linkType: hard + +"is-lambda@npm:^1.0.1": + version: 1.0.1 + resolution: "is-lambda@npm:1.0.1" + checksum: 93a32f01940220532e5948538699ad610d5924ac86093fcee83022252b363eb0cc99ba53ab084a04e4fb62bf7b5731f55496257a4c38adf87af9c4d352c71c35 + languageName: node + linkType: hard + +"is-npm@npm:^6.0.0": + version: 6.0.0 + resolution: "is-npm@npm:6.0.0" + checksum: fafe1ddc772345f5460514891bb8014376904ccdbddd59eee7525c9adcc08d426933f28b087bef3e17524da7ebf35c03ef484ff3b6ba9d5fecd8c6e6a7d4bf11 + languageName: node + linkType: hard + +"is-number@npm:^7.0.0": + version: 7.0.0 + resolution: "is-number@npm:7.0.0" + checksum: 456ac6f8e0f3111ed34668a624e45315201dff921e5ac181f8ec24923b99e9f32ca1a194912dc79d539c97d33dba17dc635202ff0b2cf98326f608323276d27a + languageName: node + linkType: hard + +"is-obj@npm:^1.0.1": + version: 1.0.1 + resolution: "is-obj@npm:1.0.1" + checksum: 3ccf0efdea12951e0b9c784e2b00e77e87b2f8bd30b42a498548a8afcc11b3287342a2030c308e473e93a7a19c9ea7854c99a8832a476591c727df2a9c79796c + languageName: node + linkType: hard + +"is-obj@npm:^2.0.0": + version: 2.0.0 + resolution: "is-obj@npm:2.0.0" + checksum: c9916ac8f4621962a42f5e80e7ffdb1d79a3fab7456ceaeea394cd9e0858d04f985a9ace45be44433bf605673c8be8810540fe4cc7f4266fc7526ced95af5a08 + languageName: node + linkType: hard + +"is-path-cwd@npm:^2.2.0": + version: 2.2.0 + resolution: "is-path-cwd@npm:2.2.0" + checksum: 46a840921bb8cc0dc7b5b423a14220e7db338072a4495743a8230533ce78812dc152548c86f4b828411fe98c5451959f07cf841c6a19f611e46600bd699e8048 + languageName: node + linkType: hard + +"is-path-inside@npm:^3.0.2": + version: 3.0.3 + resolution: "is-path-inside@npm:3.0.3" + checksum: abd50f06186a052b349c15e55b182326f1936c89a78bf6c8f2b707412517c097ce04bc49a0ca221787bc44e1049f51f09a2ffb63d22899051988d3a618ba13e9 + languageName: node + linkType: hard + +"is-plain-obj@npm:^3.0.0": + version: 3.0.0 + resolution: "is-plain-obj@npm:3.0.0" + checksum: a6ebdf8e12ab73f33530641972a72a4b8aed6df04f762070d823808303e4f76d87d5ea5bd76f96a7bbe83d93f04ac7764429c29413bd9049853a69cb630fb21c + languageName: node + linkType: hard + +"is-plain-obj@npm:^4.0.0": + version: 4.1.0 + resolution: "is-plain-obj@npm:4.1.0" + checksum: 6dc45da70d04a81f35c9310971e78a6a3c7a63547ef782e3a07ee3674695081b6ca4e977fbb8efc48dae3375e0b34558d2bcd722aec9bddfa2d7db5b041be8ce + languageName: node + linkType: hard + +"is-plain-object@npm:^2.0.4": + version: 2.0.4 + resolution: "is-plain-object@npm:2.0.4" + dependencies: + isobject: ^3.0.1 + checksum: 2a401140cfd86cabe25214956ae2cfee6fbd8186809555cd0e84574f88de7b17abacb2e477a6a658fa54c6083ecbda1e6ae404c7720244cd198903848fca70ca + languageName: node + linkType: hard + +"is-reference@npm:^3.0.0": + version: 3.0.2 + resolution: "is-reference@npm:3.0.2" + dependencies: + "@types/estree": "*" + checksum: ac3bf5626fe9d0afbd7454760d73c47f16b9f471401b9749721ad3b66f0a39644390382acf88ca9d029c95782c1e2ec65662855e3ba91acf52d82231247a7fd3 + languageName: node + linkType: hard + +"is-regexp@npm:^1.0.0": + version: 1.0.0 + resolution: "is-regexp@npm:1.0.0" + checksum: be692828e24cba479ec33644326fa98959ec68ba77965e0291088c1a741feaea4919d79f8031708f85fd25e39de002b4520622b55460660b9c369e6f7187faef + languageName: node + linkType: hard + +"is-root@npm:^2.1.0": + version: 2.1.0 + resolution: "is-root@npm:2.1.0" + checksum: 37eea0822a2a9123feb58a9d101558ba276771a6d830f87005683349a9acff15958a9ca590a44e778c6b335660b83e85c744789080d734f6081a935a4880aee2 + languageName: node + linkType: hard + +"is-stream@npm:^2.0.0": + version: 2.0.1 + resolution: "is-stream@npm:2.0.1" + checksum: b8e05ccdf96ac330ea83c12450304d4a591f9958c11fd17bed240af8d5ffe08aedafa4c0f4cfccd4d28dc9d4d129daca1023633d5c11601a6cbc77521f6fae66 + languageName: node + linkType: hard + +"is-typedarray@npm:^1.0.0": + version: 1.0.0 + resolution: "is-typedarray@npm:1.0.0" + checksum: 3508c6cd0a9ee2e0df2fa2e9baabcdc89e911c7bd5cf64604586697212feec525aa21050e48affb5ffc3df20f0f5d2e2cf79b08caa64e1ccc9578e251763aef7 + languageName: node + linkType: hard + +"is-wsl@npm:^2.2.0": + version: 2.2.0 + resolution: "is-wsl@npm:2.2.0" + dependencies: + is-docker: ^2.0.0 + checksum: 20849846ae414997d290b75e16868e5261e86ff5047f104027026fd61d8b5a9b0b3ade16239f35e1a067b3c7cc02f70183cb661010ed16f4b6c7c93dad1b19d8 + languageName: node + linkType: hard + +"is-yarn-global@npm:^0.4.0": + version: 0.4.1 + resolution: "is-yarn-global@npm:0.4.1" + checksum: 79ec4e6f581c53d4fefdf5f6c237f9a3ad8db29c85cdc4659e76ae345659317552052a97b7e56952aa5d94a23c798ebec8ccad72fb14d3b26dc647ddceddd716 + languageName: node + linkType: hard + +"isarray@npm:0.0.1": + version: 0.0.1 + resolution: "isarray@npm:0.0.1" + checksum: 49191f1425681df4a18c2f0f93db3adb85573bcdd6a4482539d98eac9e705d8961317b01175627e860516a2fc45f8f9302db26e5a380a97a520e272e2a40a8d4 + languageName: node + linkType: hard + +"isarray@npm:~1.0.0": + version: 1.0.0 + resolution: "isarray@npm:1.0.0" + checksum: f032df8e02dce8ec565cf2eb605ea939bdccea528dbcf565cdf92bfa2da9110461159d86a537388ef1acef8815a330642d7885b29010e8f7eac967c9993b65ab + languageName: node + linkType: hard + +"isexe@npm:^2.0.0": + version: 2.0.0 + resolution: "isexe@npm:2.0.0" + checksum: 26bf6c5480dda5161c820c5b5c751ae1e766c587b1f951ea3fcfc973bafb7831ae5b54a31a69bd670220e42e99ec154475025a468eae58ea262f813fdc8d1c62 + languageName: node + linkType: hard + +"isexe@npm:^3.1.1": + version: 3.1.1 + resolution: "isexe@npm:3.1.1" + checksum: 7fe1931ee4e88eb5aa524cd3ceb8c882537bc3a81b02e438b240e47012eef49c86904d0f0e593ea7c3a9996d18d0f1f3be8d3eaa92333977b0c3a9d353d5563e + languageName: node + linkType: hard + +"isobject@npm:^3.0.1": + version: 3.0.1 + resolution: "isobject@npm:3.0.1" + checksum: db85c4c970ce30693676487cca0e61da2ca34e8d4967c2e1309143ff910c207133a969f9e4ddb2dc6aba670aabce4e0e307146c310350b298e74a31f7d464703 + languageName: node + linkType: hard + +"jackspeak@npm:^3.1.2": + version: 3.1.2 + resolution: "jackspeak@npm:3.1.2" + dependencies: + "@isaacs/cliui": ^8.0.2 + "@pkgjs/parseargs": ^0.11.0 + dependenciesMeta: + "@pkgjs/parseargs": + optional: true + checksum: 134276d5f785c518930701a0dcba1f3b0e9ce3e5b1c3e300898e2ae0bbd9b5195088b77252bf2110768de072c426e9e39f47e13912b0b002da4a3f4ff6e16eac + languageName: node + linkType: hard + +"jest-util@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-util@npm:29.7.0" + dependencies: + "@jest/types": ^29.6.3 + "@types/node": "*" + chalk: ^4.0.0 + ci-info: ^3.2.0 + graceful-fs: ^4.2.9 + picomatch: ^2.2.3 + checksum: 042ab4980f4ccd4d50226e01e5c7376a8556b472442ca6091a8f102488c0f22e6e8b89ea874111d2328a2080083bf3225c86f3788c52af0bd0345a00eb57a3ca + languageName: node + linkType: hard + +"jest-worker@npm:^27.4.5": + version: 27.5.1 + resolution: "jest-worker@npm:27.5.1" + dependencies: + "@types/node": "*" + merge-stream: ^2.0.0 + supports-color: ^8.0.0 + checksum: 98cd68b696781caed61c983a3ee30bf880b5bd021c01d98f47b143d4362b85d0737f8523761e2713d45e18b4f9a2b98af1eaee77afade4111bb65c77d6f7c980 + languageName: node + linkType: hard + +"jest-worker@npm:^29.4.3": + version: 29.7.0 + resolution: "jest-worker@npm:29.7.0" + dependencies: + "@types/node": "*" + jest-util: ^29.7.0 + merge-stream: ^2.0.0 + supports-color: ^8.0.0 + checksum: 30fff60af49675273644d408b650fc2eb4b5dcafc5a0a455f238322a8f9d8a98d847baca9d51ff197b6747f54c7901daa2287799230b856a0f48287d131f8c13 + languageName: node + linkType: hard + +"jiti@npm:^1.20.0": + version: 1.21.0 + resolution: "jiti@npm:1.21.0" + bin: + jiti: bin/jiti.js + checksum: a7bd5d63921c170eaec91eecd686388181c7828e1fa0657ab374b9372bfc1f383cf4b039e6b272383d5cb25607509880af814a39abdff967322459cca41f2961 + languageName: node + linkType: hard + +"joi@npm:^17.9.2": + version: 17.13.1 + resolution: "joi@npm:17.13.1" + dependencies: + "@hapi/hoek": ^9.3.0 + "@hapi/topo": ^5.1.0 + "@sideway/address": ^4.1.5 + "@sideway/formula": ^3.0.1 + "@sideway/pinpoint": ^2.0.0 + checksum: e755140446a0e0fb679c0f512d20dfe1625691de368abe8069507c9bccae5216b5bb56b5a83100a600808b1753ab44fdfdc9933026268417f84b6e0832a9604e + languageName: node + linkType: hard + +"js-tokens@npm:^3.0.0 || ^4.0.0, js-tokens@npm:^4.0.0": + version: 4.0.0 + resolution: "js-tokens@npm:4.0.0" + checksum: 8a95213a5a77deb6cbe94d86340e8d9ace2b93bc367790b260101d2f36a2eaf4e4e22d9fa9cf459b38af3a32fb4190e638024cf82ec95ef708680e405ea7cc78 + languageName: node + linkType: hard + +"js-yaml@npm:^3.13.1": + version: 3.14.1 + resolution: "js-yaml@npm:3.14.1" + dependencies: + argparse: ^1.0.7 + esprima: ^4.0.0 + bin: + js-yaml: bin/js-yaml.js + checksum: bef146085f472d44dee30ec34e5cf36bf89164f5d585435a3d3da89e52622dff0b188a580e4ad091c3341889e14cb88cac6e4deb16dc5b1e9623bb0601fc255c + languageName: node + linkType: hard + +"js-yaml@npm:^4.1.0": + version: 4.1.0 + resolution: "js-yaml@npm:4.1.0" + dependencies: + argparse: ^2.0.1 + bin: + js-yaml: bin/js-yaml.js + checksum: c7830dfd456c3ef2c6e355cc5a92e6700ceafa1d14bba54497b34a99f0376cecbb3e9ac14d3e5849b426d5a5140709a66237a8c991c675431271c4ce5504151a + languageName: node + linkType: hard + +"jsbn@npm:1.1.0": + version: 1.1.0 + resolution: "jsbn@npm:1.1.0" + checksum: 944f924f2bd67ad533b3850eee47603eed0f6ae425fd1ee8c760f477e8c34a05f144c1bd4f5a5dd1963141dc79a2c55f89ccc5ab77d039e7077f3ad196b64965 + languageName: node + linkType: hard + +"jsesc@npm:^2.5.1": + version: 2.5.2 + resolution: "jsesc@npm:2.5.2" + bin: + jsesc: bin/jsesc + checksum: 4dc190771129e12023f729ce20e1e0bfceac84d73a85bc3119f7f938843fe25a4aeccb54b6494dce26fcf263d815f5f31acdefac7cc9329efb8422a4f4d9fa9d + languageName: node + linkType: hard + +"jsesc@npm:~0.5.0": + version: 0.5.0 + resolution: "jsesc@npm:0.5.0" + bin: + jsesc: bin/jsesc + checksum: b8b44cbfc92f198ad972fba706ee6a1dfa7485321ee8c0b25f5cedd538dcb20cde3197de16a7265430fce8277a12db066219369e3d51055038946039f6e20e17 + languageName: node + linkType: hard + +"json-buffer@npm:3.0.1": + version: 3.0.1 + resolution: "json-buffer@npm:3.0.1" + checksum: 9026b03edc2847eefa2e37646c579300a1f3a4586cfb62bf857832b60c852042d0d6ae55d1afb8926163fa54c2b01d83ae24705f34990348bdac6273a29d4581 + languageName: node + linkType: hard + +"json-parse-even-better-errors@npm:^2.3.0, json-parse-even-better-errors@npm:^2.3.1": + version: 2.3.1 + resolution: "json-parse-even-better-errors@npm:2.3.1" + checksum: 798ed4cf3354a2d9ccd78e86d2169515a0097a5c133337807cdf7f1fc32e1391d207ccfc276518cc1d7d8d4db93288b8a50ba4293d212ad1336e52a8ec0a941f + languageName: node + linkType: hard + +"json-schema-traverse@npm:^0.4.1": + version: 0.4.1 + resolution: "json-schema-traverse@npm:0.4.1" + checksum: 7486074d3ba247769fda17d5181b345c9fb7d12e0da98b22d1d71a5db9698d8b4bd900a3ec1a4ffdd60846fc2556274a5c894d0c48795f14cb03aeae7b55260b + languageName: node + linkType: hard + +"json-schema-traverse@npm:^1.0.0": + version: 1.0.0 + resolution: "json-schema-traverse@npm:1.0.0" + checksum: 02f2f466cdb0362558b2f1fd5e15cce82ef55d60cd7f8fa828cf35ba74330f8d767fcae5c5c2adb7851fa811766c694b9405810879bc4e1ddd78a7c0e03658ad + languageName: node + linkType: hard + +"json5@npm:^2.1.2, json5@npm:^2.2.3": + version: 2.2.3 + resolution: "json5@npm:2.2.3" + bin: + json5: lib/cli.js + checksum: 2a7436a93393830bce797d4626275152e37e877b265e94ca69c99e3d20c2b9dab021279146a39cdb700e71b2dd32a4cebd1514cd57cee102b1af906ce5040349 + languageName: node + linkType: hard + +"jsonfile@npm:^6.0.1": + version: 6.1.0 + resolution: "jsonfile@npm:6.1.0" + dependencies: + graceful-fs: ^4.1.6 + universalify: ^2.0.0 + dependenciesMeta: + graceful-fs: + optional: true + checksum: 7af3b8e1ac8fe7f1eccc6263c6ca14e1966fcbc74b618d3c78a0a2075579487547b94f72b7a1114e844a1e15bb00d440e5d1720bfc4612d790a6f285d5ea8354 + languageName: node + linkType: hard + +"katex@npm:^0.16.9": + version: 0.16.10 + resolution: "katex@npm:0.16.10" + dependencies: + commander: ^8.3.0 + bin: + katex: cli.js + checksum: 108e9d810e17840c43eef8d46171096f4cc97852bfd1e2dd1890d9b3435846816e3e98678a31d38bd064eb97eea83b18ff224cb65d5f9511b54ce7ff4359b591 + languageName: node + linkType: hard + +"keyv@npm:^4.5.3": + version: 4.5.4 + resolution: "keyv@npm:4.5.4" + dependencies: + json-buffer: 3.0.1 + checksum: 74a24395b1c34bd44ad5cb2b49140d087553e170625240b86755a6604cd65aa16efdbdeae5cdb17ba1284a0fbb25ad06263755dbc71b8d8b06f74232ce3cdd72 + languageName: node + linkType: hard + +"khroma@npm:^2.0.0": + version: 2.1.0 + resolution: "khroma@npm:2.1.0" + checksum: b34ba39d3a9a52d388110bded8cb1c12272eb69c249d8eb26feab12d18a96a9bc4ceec4851d2afa43de4569f7d5ea78fa305965a3d0e96a38e02fe77c53677da + languageName: node + linkType: hard + +"kind-of@npm:^6.0.0, kind-of@npm:^6.0.2": + version: 6.0.3 + resolution: "kind-of@npm:6.0.3" + checksum: 3ab01e7b1d440b22fe4c31f23d8d38b4d9b91d9f291df683476576493d5dfd2e03848a8b05813dd0c3f0e835bc63f433007ddeceb71f05cb25c45ae1b19c6d3b + languageName: node + linkType: hard + +"kleur@npm:^3.0.3": + version: 3.0.3 + resolution: "kleur@npm:3.0.3" + checksum: df82cd1e172f957bae9c536286265a5cdbd5eeca487cb0a3b2a7b41ef959fc61f8e7c0e9aeea9c114ccf2c166b6a8dd45a46fd619c1c569d210ecd2765ad5169 + languageName: node + linkType: hard + +"kleur@npm:^4.0.3": + version: 4.1.5 + resolution: "kleur@npm:4.1.5" + checksum: 1dc476e32741acf0b1b5b0627ffd0d722e342c1b0da14de3e8ae97821327ca08f9fb944542fb3c126d90ac5f27f9d804edbe7c585bf7d12ef495d115e0f22c12 + languageName: node + linkType: hard + +"latest-version@npm:^7.0.0": + version: 7.0.0 + resolution: "latest-version@npm:7.0.0" + dependencies: + package-json: ^8.1.0 + checksum: 1f0deba00d5a34394cce4463c938811f51bbb539b131674f4bb2062c63f2cc3b80bccd56ecade3bd5932d04a34cf0a5a8a2ccc4ec9e5e6b285a9a7b3e27d0d66 + languageName: node + linkType: hard + +"launch-editor@npm:^2.6.0": + version: 2.6.1 + resolution: "launch-editor@npm:2.6.1" + dependencies: + picocolors: ^1.0.0 + shell-quote: ^1.8.1 + checksum: e06d193075ac09f7f8109f10cabe464a211bf7ed4cbe75f83348d6f67bf4d9f162f06e7a1ab3e1cd7fc250b5342c3b57080618aff2e646dc34248fe499227601 + languageName: node + linkType: hard + +"layout-base@npm:^1.0.0": + version: 1.0.2 + resolution: "layout-base@npm:1.0.2" + checksum: e4c312765ac4fa13b49c940e701461309c7a0aa07f784f81d31f626b945dced90a8abf83222388a5af16b7074271f745501a90ef5a3af676abb2e7eb16d55b2e + languageName: node + linkType: hard + +"leven@npm:^3.1.0": + version: 3.1.0 + resolution: "leven@npm:3.1.0" + checksum: 638401d534585261b6003db9d99afd244dfe82d75ddb6db5c0df412842d5ab30b2ef18de471aaec70fe69a46f17b4ae3c7f01d8a4e6580ef7adb9f4273ad1e55 + languageName: node + linkType: hard + +"lilconfig@npm:^3.1.1": + version: 3.1.1 + resolution: "lilconfig@npm:3.1.1" + checksum: dc8a4f4afde3f0fac6bd36163cc4777a577a90759b8ef1d0d766b19ccf121f723aa79924f32af5b954f3965268215e046d0f237c41c76e5ef01d4e6d1208a15e + languageName: node + linkType: hard + +"lines-and-columns@npm:^1.1.6": + version: 1.2.4 + resolution: "lines-and-columns@npm:1.2.4" + checksum: 0c37f9f7fa212b38912b7145e1cd16a5f3cd34d782441c3e6ca653485d326f58b3caccda66efce1c5812bde4961bbde3374fae4b0d11bf1226152337f3894aa5 + languageName: node + linkType: hard + +"loader-runner@npm:^4.2.0": + version: 4.3.0 + resolution: "loader-runner@npm:4.3.0" + checksum: a90e00dee9a16be118ea43fec3192d0b491fe03a32ed48a4132eb61d498f5536a03a1315531c19d284392a8726a4ecad71d82044c28d7f22ef62e029bf761569 + languageName: node + linkType: hard + +"loader-utils@npm:^2.0.0": + version: 2.0.4 + resolution: "loader-utils@npm:2.0.4" + dependencies: + big.js: ^5.2.2 + emojis-list: ^3.0.0 + json5: ^2.1.2 + checksum: a5281f5fff1eaa310ad5e1164095689443630f3411e927f95031ab4fb83b4a98f388185bb1fe949e8ab8d4247004336a625e9255c22122b815bb9a4c5d8fc3b7 + languageName: node + linkType: hard + +"loader-utils@npm:^3.2.0": + version: 3.2.1 + resolution: "loader-utils@npm:3.2.1" + checksum: 4e3ea054cdc8be1ab1f1238f49f42fdf0483039eff920fb1d442039f3f0ad4ebd11fb8e584ccdf2cb7e3c56b3d40c1832416e6408a55651b843da288960cc792 + languageName: node + linkType: hard + +"locate-path@npm:^3.0.0": + version: 3.0.0 + resolution: "locate-path@npm:3.0.0" + dependencies: + p-locate: ^3.0.0 + path-exists: ^3.0.0 + checksum: 53db3996672f21f8b0bf2a2c645ae2c13ffdae1eeecfcd399a583bce8516c0b88dcb4222ca6efbbbeb6949df7e46860895be2c02e8d3219abd373ace3bfb4e11 + languageName: node + linkType: hard + +"locate-path@npm:^6.0.0": + version: 6.0.0 + resolution: "locate-path@npm:6.0.0" + dependencies: + p-locate: ^5.0.0 + checksum: 72eb661788a0368c099a184c59d2fee760b3831c9c1c33955e8a19ae4a21b4116e53fa736dc086cdeb9fce9f7cc508f2f92d2d3aae516f133e16a2bb59a39f5a + languageName: node + linkType: hard + +"locate-path@npm:^7.1.0": + version: 7.2.0 + resolution: "locate-path@npm:7.2.0" + dependencies: + p-locate: ^6.0.0 + checksum: c1b653bdf29beaecb3d307dfb7c44d98a2a98a02ebe353c9ad055d1ac45d6ed4e1142563d222df9b9efebc2bcb7d4c792b507fad9e7150a04c29530b7db570f8 + languageName: node + linkType: hard + +"lodash-es@npm:^4.17.21": + version: 4.17.21 + resolution: "lodash-es@npm:4.17.21" + checksum: 05cbffad6e2adbb331a4e16fbd826e7faee403a1a04873b82b42c0f22090f280839f85b95393f487c1303c8a3d2a010048bf06151a6cbe03eee4d388fb0a12d2 + languageName: node + linkType: hard + +"lodash.debounce@npm:^4.0.8": + version: 4.0.8 + resolution: "lodash.debounce@npm:4.0.8" + checksum: a3f527d22c548f43ae31c861ada88b2637eb48ac6aa3eb56e82d44917971b8aa96fbb37aa60efea674dc4ee8c42074f90f7b1f772e9db375435f6c83a19b3bc6 + languageName: node + linkType: hard + +"lodash.memoize@npm:^4.1.2": + version: 4.1.2 + resolution: "lodash.memoize@npm:4.1.2" + checksum: 9ff3942feeccffa4f1fafa88d32f0d24fdc62fd15ded5a74a5f950ff5f0c6f61916157246744c620173dddf38d37095a92327d5fd3861e2063e736a5c207d089 + languageName: node + linkType: hard + +"lodash.uniq@npm:^4.5.0": + version: 4.5.0 + resolution: "lodash.uniq@npm:4.5.0" + checksum: a4779b57a8d0f3c441af13d9afe7ecff22dd1b8ce1129849f71d9bbc8e8ee4e46dfb4b7c28f7ad3d67481edd6e51126e4e2a6ee276e25906d10f7140187c392d + languageName: node + linkType: hard + +"lodash@npm:^4.17.20, lodash@npm:^4.17.21": + version: 4.17.21 + resolution: "lodash@npm:4.17.21" + checksum: eb835a2e51d381e561e508ce932ea50a8e5a68f4ebdd771ea240d3048244a8d13658acbd502cd4829768c56f2e16bdd4340b9ea141297d472517b83868e677f7 + languageName: node + linkType: hard + +"longest-streak@npm:^3.0.0": + version: 3.1.0 + resolution: "longest-streak@npm:3.1.0" + checksum: d7f952ed004cbdb5c8bcfc4f7f5c3d65449e6c5a9e9be4505a656e3df5a57ee125f284286b4bf8ecea0c21a7b3bf2b8f9001ad506c319b9815ad6a63a47d0fd0 + languageName: node + linkType: hard + +"loose-envify@npm:^1.0.0, loose-envify@npm:^1.1.0, loose-envify@npm:^1.2.0, loose-envify@npm:^1.3.1, loose-envify@npm:^1.4.0": + version: 1.4.0 + resolution: "loose-envify@npm:1.4.0" + dependencies: + js-tokens: ^3.0.0 || ^4.0.0 + bin: + loose-envify: cli.js + checksum: 6517e24e0cad87ec9888f500c5b5947032cdfe6ef65e1c1936a0c48a524b81e65542c9c3edc91c97d5bddc806ee2a985dbc79be89215d613b1de5db6d1cfe6f4 + languageName: node + linkType: hard + +"lower-case@npm:^2.0.2": + version: 2.0.2 + resolution: "lower-case@npm:2.0.2" + dependencies: + tslib: ^2.0.3 + checksum: 83a0a5f159ad7614bee8bf976b96275f3954335a84fad2696927f609ddae902802c4f3312d86668722e668bef41400254807e1d3a7f2e8c3eede79691aa1f010 + languageName: node + linkType: hard + +"lowercase-keys@npm:^3.0.0": + version: 3.0.0 + resolution: "lowercase-keys@npm:3.0.0" + checksum: 67a3f81409af969bc0c4ca0e76cd7d16adb1e25aa1c197229587eaf8671275c8c067cd421795dbca4c81be0098e4c426a086a05e30de8a9c587b7a13c0c7ccc5 + languageName: node + linkType: hard + +"lru-cache@npm:^10.0.1, lru-cache@npm:^10.2.0": + version: 10.2.2 + resolution: "lru-cache@npm:10.2.2" + checksum: 98e8fc93691c546f719a76103ef2bee5a3ac823955c755a47641ec41f8c7fafa1baeaba466937cc1cbfa9cfd47e03536d10e2db3158a64ad91ff3a58a32c893e + languageName: node + linkType: hard + +"lru-cache@npm:^5.1.1": + version: 5.1.1 + resolution: "lru-cache@npm:5.1.1" + dependencies: + yallist: ^3.0.2 + checksum: c154ae1cbb0c2206d1501a0e94df349653c92c8cbb25236d7e85190bcaf4567a03ac6eb43166fabfa36fd35623694da7233e88d9601fbf411a9a481d85dbd2cb + languageName: node + linkType: hard + +"lunr-languages@npm:^1.4.0": + version: 1.14.0 + resolution: "lunr-languages@npm:1.14.0" + checksum: 05dd6338af6897932f64f9cb735d5b48f9905d892499b22a3f3abc279b2ac71a6bce0fdfe59c01464c6ad3f8e44e2956ba0637f092535239793bbadf4540e72d + languageName: node + linkType: hard + +"make-fetch-happen@npm:^13.0.0": + version: 13.0.1 + resolution: "make-fetch-happen@npm:13.0.1" + dependencies: + "@npmcli/agent": ^2.0.0 + cacache: ^18.0.0 + http-cache-semantics: ^4.1.1 + is-lambda: ^1.0.1 + minipass: ^7.0.2 + minipass-fetch: ^3.0.0 + minipass-flush: ^1.0.5 + minipass-pipeline: ^1.2.4 + negotiator: ^0.6.3 + proc-log: ^4.2.0 + promise-retry: ^2.0.1 + ssri: ^10.0.0 + checksum: 5c9fad695579b79488fa100da05777213dd9365222f85e4757630f8dd2a21a79ddd3206c78cfd6f9b37346819681782b67900ac847a57cf04190f52dda5343fd + languageName: node + linkType: hard + +"mark.js@npm:^8.11.1": + version: 8.11.1 + resolution: "mark.js@npm:8.11.1" + checksum: aa6b9ae1c67245348d5b7abd253ef2acd6bb05c6be358d7d192416d964e42665fc10e0e865591c6f93ab9b57e8da1f23c23216e8ebddb580905ea7a0c0df15d4 + languageName: node + linkType: hard + +"markdown-extensions@npm:^2.0.0": + version: 2.0.0 + resolution: "markdown-extensions@npm:2.0.0" + checksum: ec4ffcb0768f112e778e7ac74cb8ef22a966c168c3e6c29829f007f015b0a0b5c79c73ee8599a0c72e440e7f5cfdbf19e80e2d77b9a313b8f66e180a330cf1b2 + languageName: node + linkType: hard + +"markdown-table@npm:^3.0.0": + version: 3.0.3 + resolution: "markdown-table@npm:3.0.3" + checksum: 8fcd3d9018311120fbb97115987f8b1665a603f3134c93fbecc5d1463380c8036f789e2a62c19432058829e594fff8db9ff81c88f83690b2f8ed6c074f8d9e10 + languageName: node + linkType: hard + +"mdast-util-directive@npm:^3.0.0": + version: 3.0.0 + resolution: "mdast-util-directive@npm:3.0.0" + dependencies: + "@types/mdast": ^4.0.0 + "@types/unist": ^3.0.0 + devlop: ^1.0.0 + mdast-util-from-markdown: ^2.0.0 + mdast-util-to-markdown: ^2.0.0 + parse-entities: ^4.0.0 + stringify-entities: ^4.0.0 + unist-util-visit-parents: ^6.0.0 + checksum: 593afdc4f39f99bb198f3774bf4648cb546cb99a055e40c82262a7faab10926d2529a725d0d3945300ed0a1f07c6c84215a3f76b899a89b3f410ec7375bbab17 + languageName: node + linkType: hard + +"mdast-util-find-and-replace@npm:^3.0.0, mdast-util-find-and-replace@npm:^3.0.1": + version: 3.0.1 + resolution: "mdast-util-find-and-replace@npm:3.0.1" + dependencies: + "@types/mdast": ^4.0.0 + escape-string-regexp: ^5.0.0 + unist-util-is: ^6.0.0 + unist-util-visit-parents: ^6.0.0 + checksum: 05d5c4ff02e31db2f8a685a13bcb6c3f44e040bd9dfa54c19a232af8de5268334c8755d79cb456ed4cced1300c4fb83e88444c7ae8ee9ff16869a580f29d08cd + languageName: node + linkType: hard + +"mdast-util-from-markdown@npm:^1.3.0": + version: 1.3.1 + resolution: "mdast-util-from-markdown@npm:1.3.1" + dependencies: + "@types/mdast": ^3.0.0 + "@types/unist": ^2.0.0 + decode-named-character-reference: ^1.0.0 + mdast-util-to-string: ^3.1.0 + micromark: ^3.0.0 + micromark-util-decode-numeric-character-reference: ^1.0.0 + micromark-util-decode-string: ^1.0.0 + micromark-util-normalize-identifier: ^1.0.0 + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.0 + unist-util-stringify-position: ^3.0.0 + uvu: ^0.5.0 + checksum: c2fac225167e248d394332a4ea39596e04cbde07d8cdb3889e91e48972c4c3462a02b39fda3855345d90231eb17a90ac6e082fb4f012a77c1d0ddfb9c7446940 + languageName: node + linkType: hard + +"mdast-util-from-markdown@npm:^2.0.0": + version: 2.0.0 + resolution: "mdast-util-from-markdown@npm:2.0.0" + dependencies: + "@types/mdast": ^4.0.0 + "@types/unist": ^3.0.0 + decode-named-character-reference: ^1.0.0 + devlop: ^1.0.0 + mdast-util-to-string: ^4.0.0 + micromark: ^4.0.0 + micromark-util-decode-numeric-character-reference: ^2.0.0 + micromark-util-decode-string: ^2.0.0 + micromark-util-normalize-identifier: ^2.0.0 + micromark-util-symbol: ^2.0.0 + micromark-util-types: ^2.0.0 + unist-util-stringify-position: ^4.0.0 + checksum: 4e8d8a46b4b588486c41b80c39da333a91593bc8d60cd7421c6cd3c22003b8e5a62478292fb7bc97b9255b6301a2250cca32340ef43c309156e215453c5b92be + languageName: node + linkType: hard + +"mdast-util-frontmatter@npm:^2.0.0": + version: 2.0.1 + resolution: "mdast-util-frontmatter@npm:2.0.1" + dependencies: + "@types/mdast": ^4.0.0 + devlop: ^1.0.0 + escape-string-regexp: ^5.0.0 + mdast-util-from-markdown: ^2.0.0 + mdast-util-to-markdown: ^2.0.0 + micromark-extension-frontmatter: ^2.0.0 + checksum: 86a7c8d9eb183be2621d6d9134b9d33df2a3647e3255f68a9796e2425e25643ffae00a501e36c57d9c10973087b94aa5a2ffd865d33cdd274cc9b88cd2d90a2e + languageName: node + linkType: hard + +"mdast-util-gfm-autolink-literal@npm:^2.0.0": + version: 2.0.0 + resolution: "mdast-util-gfm-autolink-literal@npm:2.0.0" + dependencies: + "@types/mdast": ^4.0.0 + ccount: ^2.0.0 + devlop: ^1.0.0 + mdast-util-find-and-replace: ^3.0.0 + micromark-util-character: ^2.0.0 + checksum: 10322662e5302964bed7c9829c5fd3b0c9899d4f03e63fb8620ab141cf4f3de9e61fcb4b44d46aacc8a23f82bcd5d900980a211825dfe026b1dab5fdbc3e8742 + languageName: node + linkType: hard + +"mdast-util-gfm-footnote@npm:^2.0.0": + version: 2.0.0 + resolution: "mdast-util-gfm-footnote@npm:2.0.0" + dependencies: + "@types/mdast": ^4.0.0 + devlop: ^1.1.0 + mdast-util-from-markdown: ^2.0.0 + mdast-util-to-markdown: ^2.0.0 + micromark-util-normalize-identifier: ^2.0.0 + checksum: 45d26b40e7a093712e023105791129d76e164e2168d5268e113298a22de30c018162683fb7893cdc04ab246dac0087eed708b2a136d1d18ed2b32b3e0cae4a79 + languageName: node + linkType: hard + +"mdast-util-gfm-strikethrough@npm:^2.0.0": + version: 2.0.0 + resolution: "mdast-util-gfm-strikethrough@npm:2.0.0" + dependencies: + "@types/mdast": ^4.0.0 + mdast-util-from-markdown: ^2.0.0 + mdast-util-to-markdown: ^2.0.0 + checksum: fe9b1d0eba9b791ff9001c008744eafe3dd7a81b085f2bf521595ce4a8e8b1b44764ad9361761ad4533af3e5d913d8ad053abec38172031d9ee32a8ebd1c7dbd + languageName: node + linkType: hard + +"mdast-util-gfm-table@npm:^2.0.0": + version: 2.0.0 + resolution: "mdast-util-gfm-table@npm:2.0.0" + dependencies: + "@types/mdast": ^4.0.0 + devlop: ^1.0.0 + markdown-table: ^3.0.0 + mdast-util-from-markdown: ^2.0.0 + mdast-util-to-markdown: ^2.0.0 + checksum: 063a627fd0993548fd63ca0c24c437baf91ba7d51d0a38820bd459bc20bf3d13d7365ef8d28dca99176dd5eb26058f7dde51190479c186dfe6af2e11202957c9 + languageName: node + linkType: hard + +"mdast-util-gfm-task-list-item@npm:^2.0.0": + version: 2.0.0 + resolution: "mdast-util-gfm-task-list-item@npm:2.0.0" + dependencies: + "@types/mdast": ^4.0.0 + devlop: ^1.0.0 + mdast-util-from-markdown: ^2.0.0 + mdast-util-to-markdown: ^2.0.0 + checksum: 37db90c59b15330fc54d790404abf5ef9f2f83e8961c53666fe7de4aab8dd5e6b3c296b6be19797456711a89a27840291d8871ff0438e9b4e15c89d170efe072 + languageName: node + linkType: hard + +"mdast-util-gfm@npm:^3.0.0": + version: 3.0.0 + resolution: "mdast-util-gfm@npm:3.0.0" + dependencies: + mdast-util-from-markdown: ^2.0.0 + mdast-util-gfm-autolink-literal: ^2.0.0 + mdast-util-gfm-footnote: ^2.0.0 + mdast-util-gfm-strikethrough: ^2.0.0 + mdast-util-gfm-table: ^2.0.0 + mdast-util-gfm-task-list-item: ^2.0.0 + mdast-util-to-markdown: ^2.0.0 + checksum: 62039d2f682ae3821ea1c999454863d31faf94d67eb9b746589c7e136076d7fb35fabc67e02f025c7c26fd7919331a0ee1aabfae24f565d9a6a9ebab3371c626 + languageName: node + linkType: hard + +"mdast-util-mdx-expression@npm:^2.0.0": + version: 2.0.0 + resolution: "mdast-util-mdx-expression@npm:2.0.0" + dependencies: + "@types/estree-jsx": ^1.0.0 + "@types/hast": ^3.0.0 + "@types/mdast": ^4.0.0 + devlop: ^1.0.0 + mdast-util-from-markdown: ^2.0.0 + mdast-util-to-markdown: ^2.0.0 + checksum: 4e1183000e183e07a7264e192889b4fd57372806103031c71b9318967f85fd50a5dd0f92ef14f42c331e77410808f5de3341d7bc8ad4ee91b7fa8f0a30043a8a + languageName: node + linkType: hard + +"mdast-util-mdx-jsx@npm:^3.0.0": + version: 3.1.2 + resolution: "mdast-util-mdx-jsx@npm:3.1.2" + dependencies: + "@types/estree-jsx": ^1.0.0 + "@types/hast": ^3.0.0 + "@types/mdast": ^4.0.0 + "@types/unist": ^3.0.0 + ccount: ^2.0.0 + devlop: ^1.1.0 + mdast-util-from-markdown: ^2.0.0 + mdast-util-to-markdown: ^2.0.0 + parse-entities: ^4.0.0 + stringify-entities: ^4.0.0 + unist-util-remove-position: ^5.0.0 + unist-util-stringify-position: ^4.0.0 + vfile-message: ^4.0.0 + checksum: 33cb8a657702d5bb8d3f658d158f448c45147664cdb2475501a1c467e3a167d75842546296a06f758f07cce4d2a6ba1add405dbdb6caa145a6980c9782e411e2 + languageName: node + linkType: hard + +"mdast-util-mdx@npm:^3.0.0": + version: 3.0.0 + resolution: "mdast-util-mdx@npm:3.0.0" + dependencies: + mdast-util-from-markdown: ^2.0.0 + mdast-util-mdx-expression: ^2.0.0 + mdast-util-mdx-jsx: ^3.0.0 + mdast-util-mdxjs-esm: ^2.0.0 + mdast-util-to-markdown: ^2.0.0 + checksum: e2b007d826fcd49fd57ed03e190753c8b0f7d9eff6c7cb26ba609cde15cd3a472c0cd5e4a1ee3e39a40f14be22fdb57de243e093cea0c064d6f3366cff3e3af2 + languageName: node + linkType: hard + +"mdast-util-mdxjs-esm@npm:^2.0.0": + version: 2.0.1 + resolution: "mdast-util-mdxjs-esm@npm:2.0.1" + dependencies: + "@types/estree-jsx": ^1.0.0 + "@types/hast": ^3.0.0 + "@types/mdast": ^4.0.0 + devlop: ^1.0.0 + mdast-util-from-markdown: ^2.0.0 + mdast-util-to-markdown: ^2.0.0 + checksum: 1f9dad04d31d59005332e9157ea9510dc1d03092aadbc607a10475c7eec1c158b475aa0601a3a4f74e13097ca735deb8c2d9d37928ddef25d3029fd7c9e14dc3 + languageName: node + linkType: hard + +"mdast-util-phrasing@npm:^4.0.0": + version: 4.1.0 + resolution: "mdast-util-phrasing@npm:4.1.0" + dependencies: + "@types/mdast": ^4.0.0 + unist-util-is: ^6.0.0 + checksum: 3a97533e8ad104a422f8bebb34b3dde4f17167b8ed3a721cf9263c7416bd3447d2364e6d012a594aada40cac9e949db28a060bb71a982231693609034ed5324e + languageName: node + linkType: hard + +"mdast-util-to-hast@npm:^13.0.0": + version: 13.1.0 + resolution: "mdast-util-to-hast@npm:13.1.0" + dependencies: + "@types/hast": ^3.0.0 + "@types/mdast": ^4.0.0 + "@ungap/structured-clone": ^1.0.0 + devlop: ^1.0.0 + micromark-util-sanitize-uri: ^2.0.0 + trim-lines: ^3.0.0 + unist-util-position: ^5.0.0 + unist-util-visit: ^5.0.0 + vfile: ^6.0.0 + checksum: 640bc897286af8fe760cd477fb04bbf544a5a897cdc2220ce36fe2f892f067b483334610387aeb969511bd78a2d841a54851079cd676ac513d6a5ff75852514e + languageName: node + linkType: hard + +"mdast-util-to-markdown@npm:^2.0.0": + version: 2.1.0 + resolution: "mdast-util-to-markdown@npm:2.1.0" + dependencies: + "@types/mdast": ^4.0.0 + "@types/unist": ^3.0.0 + longest-streak: ^3.0.0 + mdast-util-phrasing: ^4.0.0 + mdast-util-to-string: ^4.0.0 + micromark-util-decode-string: ^2.0.0 + unist-util-visit: ^5.0.0 + zwitch: ^2.0.0 + checksum: 3a2cf3957e23b34e2e092e6e76ae72ee0b8745955bd811baba6814cf3a3d916c3fd52264b4b58f3bb3d512a428f84a1e998b6fc7e28434e388a9ae8fb6a9c173 + languageName: node + linkType: hard + +"mdast-util-to-string@npm:^3.1.0": + version: 3.2.0 + resolution: "mdast-util-to-string@npm:3.2.0" + dependencies: + "@types/mdast": ^3.0.0 + checksum: dc40b544d54339878ae2c9f2b3198c029e1e07291d2126bd00ca28272ee6616d0d2194eb1c9828a7c34d412a79a7e73b26512a734698d891c710a1e73db1e848 + languageName: node + linkType: hard + +"mdast-util-to-string@npm:^4.0.0": + version: 4.0.0 + resolution: "mdast-util-to-string@npm:4.0.0" + dependencies: + "@types/mdast": ^4.0.0 + checksum: 35489fb5710d58cbc2d6c8b6547df161a3f81e0f28f320dfb3548a9393555daf07c310c0c497708e67ed4dfea4a06e5655799e7d631ca91420c288b4525d6c29 + languageName: node + linkType: hard + +"mdn-data@npm:2.0.28": + version: 2.0.28 + resolution: "mdn-data@npm:2.0.28" + checksum: f51d587a6ebe8e426c3376c74ea6df3e19ec8241ed8e2466c9c8a3904d5d04397199ea4f15b8d34d14524b5de926d8724ae85207984be47e165817c26e49e0aa + languageName: node + linkType: hard + +"mdn-data@npm:2.0.30": + version: 2.0.30 + resolution: "mdn-data@npm:2.0.30" + checksum: d6ac5ac7439a1607df44b22738ecf83f48e66a0874e4482d6424a61c52da5cde5750f1d1229b6f5fa1b80a492be89465390da685b11f97d62b8adcc6e88189aa + languageName: node + linkType: hard + +"media-typer@npm:0.3.0": + version: 0.3.0 + resolution: "media-typer@npm:0.3.0" + checksum: af1b38516c28ec95d6b0826f6c8f276c58aec391f76be42aa07646b4e39d317723e869700933ca6995b056db4b09a78c92d5440dc23657e6764be5d28874bba1 + languageName: node + linkType: hard + +"memfs@npm:^3.1.2, memfs@npm:^3.4.3": + version: 3.6.0 + resolution: "memfs@npm:3.6.0" + dependencies: + fs-monkey: ^1.0.4 + checksum: 934e79f32aabb10869056815bf369ed63aacb61d13183a3a3826847bbb359d7023fd5b365984ddd73faed463bbb5370ed5cd1e87ecf50ac010c5cac81929ed78 + languageName: node + linkType: hard + +"merge-descriptors@npm:1.0.1": + version: 1.0.1 + resolution: "merge-descriptors@npm:1.0.1" + checksum: 5abc259d2ae25bb06d19ce2b94a21632583c74e2a9109ee1ba7fd147aa7362b380d971e0251069f8b3eb7d48c21ac839e21fa177b335e82c76ec172e30c31a26 + languageName: node + linkType: hard + +"merge-stream@npm:^2.0.0": + version: 2.0.0 + resolution: "merge-stream@npm:2.0.0" + checksum: 6fa4dcc8d86629705cea944a4b88ef4cb0e07656ebf223fa287443256414283dd25d91c1cd84c77987f2aec5927af1a9db6085757cb43d90eb170ebf4b47f4f4 + languageName: node + linkType: hard + +"merge2@npm:^1.3.0, merge2@npm:^1.4.1": + version: 1.4.1 + resolution: "merge2@npm:1.4.1" + checksum: 7268db63ed5169466540b6fb947aec313200bcf6d40c5ab722c22e242f651994619bcd85601602972d3c85bd2cc45a358a4c61937e9f11a061919a1da569b0c2 + languageName: node + linkType: hard + +"mermaid@npm:^10.4.0": + version: 10.9.1 + resolution: "mermaid@npm:10.9.1" + dependencies: + "@braintree/sanitize-url": ^6.0.1 + "@types/d3-scale": ^4.0.3 + "@types/d3-scale-chromatic": ^3.0.0 + cytoscape: ^3.28.1 + cytoscape-cose-bilkent: ^4.1.0 + d3: ^7.4.0 + d3-sankey: ^0.12.3 + dagre-d3-es: 7.0.10 + dayjs: ^1.11.7 + dompurify: ^3.0.5 + elkjs: ^0.9.0 + katex: ^0.16.9 + khroma: ^2.0.0 + lodash-es: ^4.17.21 + mdast-util-from-markdown: ^1.3.0 + non-layered-tidy-tree-layout: ^2.0.2 + stylis: ^4.1.3 + ts-dedent: ^2.2.0 + uuid: ^9.0.0 + web-worker: ^1.2.0 + checksum: ec4f463011205ab031fe27ad95730daf815097be9f161866c9c08ac291118dee99a0e841f6e39e7b480c12287a923b71914931eab8beb048bfd991d9957f11ee + languageName: node + linkType: hard + +"methods@npm:~1.1.2": + version: 1.1.2 + resolution: "methods@npm:1.1.2" + checksum: 0917ff4041fa8e2f2fda5425a955fe16ca411591fbd123c0d722fcf02b73971ed6f764d85f0a6f547ce49ee0221ce2c19a5fa692157931cecb422984f1dcd13a + languageName: node + linkType: hard + +"micromark-core-commonmark@npm:^1.0.1": + version: 1.1.0 + resolution: "micromark-core-commonmark@npm:1.1.0" + dependencies: + decode-named-character-reference: ^1.0.0 + micromark-factory-destination: ^1.0.0 + micromark-factory-label: ^1.0.0 + micromark-factory-space: ^1.0.0 + micromark-factory-title: ^1.0.0 + micromark-factory-whitespace: ^1.0.0 + micromark-util-character: ^1.0.0 + micromark-util-chunked: ^1.0.0 + micromark-util-classify-character: ^1.0.0 + micromark-util-html-tag-name: ^1.0.0 + micromark-util-normalize-identifier: ^1.0.0 + micromark-util-resolve-all: ^1.0.0 + micromark-util-subtokenize: ^1.0.0 + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.1 + uvu: ^0.5.0 + checksum: c6dfedc95889cc73411cb222fc2330b9eda6d849c09c9fd9eb3cd3398af246167e9d3cdb0ae3ce9ae59dd34a14624c8330e380255d41279ad7350cf6c6be6c5b + languageName: node + linkType: hard + +"micromark-core-commonmark@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-core-commonmark@npm:2.0.1" + dependencies: + decode-named-character-reference: ^1.0.0 + devlop: ^1.0.0 + micromark-factory-destination: ^2.0.0 + micromark-factory-label: ^2.0.0 + micromark-factory-space: ^2.0.0 + micromark-factory-title: ^2.0.0 + micromark-factory-whitespace: ^2.0.0 + micromark-util-character: ^2.0.0 + micromark-util-chunked: ^2.0.0 + micromark-util-classify-character: ^2.0.0 + micromark-util-html-tag-name: ^2.0.0 + micromark-util-normalize-identifier: ^2.0.0 + micromark-util-resolve-all: ^2.0.0 + micromark-util-subtokenize: ^2.0.0 + micromark-util-symbol: ^2.0.0 + micromark-util-types: ^2.0.0 + checksum: 6a9891cc883a531e090dc8dab6669945f3df9448e84216a8f2a91f9258281e6abea5ae3940fde2bd77a57dc3e0d67f2add6762aed63a378f37b09eaf7e7426c4 + languageName: node + linkType: hard + +"micromark-extension-directive@npm:^3.0.0": + version: 3.0.0 + resolution: "micromark-extension-directive@npm:3.0.0" + dependencies: + devlop: ^1.0.0 + micromark-factory-space: ^2.0.0 + micromark-factory-whitespace: ^2.0.0 + micromark-util-character: ^2.0.0 + micromark-util-symbol: ^2.0.0 + micromark-util-types: ^2.0.0 + parse-entities: ^4.0.0 + checksum: 8350106bdf039a544cba64cf7932261a710e07d73d43d6c645dd2b16577f30ebd04abf762e8ca74266f5de19938e1eeff6c237d79f8244dea23aef7f90df2c31 + languageName: node + linkType: hard + +"micromark-extension-frontmatter@npm:^2.0.0": + version: 2.0.0 + resolution: "micromark-extension-frontmatter@npm:2.0.0" + dependencies: + fault: ^2.0.0 + micromark-util-character: ^2.0.0 + micromark-util-symbol: ^2.0.0 + micromark-util-types: ^2.0.0 + checksum: f68032df38c00ae47de15b63bcd72515bfcce39de4a9262a3a1ac9c5990f253f8e41bdc65fd17ec4bb3d144c32529ce0829571331e4901a9a413f1a53785d1e8 + languageName: node + linkType: hard + +"micromark-extension-gfm-autolink-literal@npm:^2.0.0": + version: 2.0.0 + resolution: "micromark-extension-gfm-autolink-literal@npm:2.0.0" + dependencies: + micromark-util-character: ^2.0.0 + micromark-util-sanitize-uri: ^2.0.0 + micromark-util-symbol: ^2.0.0 + micromark-util-types: ^2.0.0 + checksum: fa16d59528239262d6d04d539a052baf1f81275954ec8bfadea40d81bfc25667d5c8e68b225a5358626df5e30a3933173a67fdad2fed011d37810a10b770b0b2 + languageName: node + linkType: hard + +"micromark-extension-gfm-footnote@npm:^2.0.0": + version: 2.0.0 + resolution: "micromark-extension-gfm-footnote@npm:2.0.0" + dependencies: + devlop: ^1.0.0 + micromark-core-commonmark: ^2.0.0 + micromark-factory-space: ^2.0.0 + micromark-util-character: ^2.0.0 + micromark-util-normalize-identifier: ^2.0.0 + micromark-util-sanitize-uri: ^2.0.0 + micromark-util-symbol: ^2.0.0 + micromark-util-types: ^2.0.0 + checksum: a426fddecfac6144fc622b845cd2dc09d46faa75be5b76ff022cb76a03301b1d4929a5e5e41e071491787936be65e03d0b03c7aebc0e0136b3cdbfadadd6632c + languageName: node + linkType: hard + +"micromark-extension-gfm-strikethrough@npm:^2.0.0": + version: 2.0.0 + resolution: "micromark-extension-gfm-strikethrough@npm:2.0.0" + dependencies: + devlop: ^1.0.0 + micromark-util-chunked: ^2.0.0 + micromark-util-classify-character: ^2.0.0 + micromark-util-resolve-all: ^2.0.0 + micromark-util-symbol: ^2.0.0 + micromark-util-types: ^2.0.0 + checksum: 4e35fbbf364bfce08066b70acd94b9d393a8fd09a5afbe0bae70d0c8a174640b1ba86ab6b78ee38f411a813e2a718b07959216cf0063d823ba1c569a7694e5ad + languageName: node + linkType: hard + +"micromark-extension-gfm-table@npm:^2.0.0": + version: 2.0.0 + resolution: "micromark-extension-gfm-table@npm:2.0.0" + dependencies: + devlop: ^1.0.0 + micromark-factory-space: ^2.0.0 + micromark-util-character: ^2.0.0 + micromark-util-symbol: ^2.0.0 + micromark-util-types: ^2.0.0 + checksum: 71484dcf8db7b189da0528f472cc81e4d6d1a64ae43bbe7fcb7e2e1dba758a0a4f785f9f1afb9459fe5b4a02bbe023d78c95c05204414a14083052eb8219e5eb + languageName: node + linkType: hard + +"micromark-extension-gfm-tagfilter@npm:^2.0.0": + version: 2.0.0 + resolution: "micromark-extension-gfm-tagfilter@npm:2.0.0" + dependencies: + micromark-util-types: ^2.0.0 + checksum: cf21552f4a63592bfd6c96ae5d64a5f22bda4e77814e3f0501bfe80e7a49378ad140f827007f36044666f176b3a0d5fea7c2e8e7973ce4b4579b77789f01ae95 + languageName: node + linkType: hard + +"micromark-extension-gfm-task-list-item@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-extension-gfm-task-list-item@npm:2.0.1" + dependencies: + devlop: ^1.0.0 + micromark-factory-space: ^2.0.0 + micromark-util-character: ^2.0.0 + micromark-util-symbol: ^2.0.0 + micromark-util-types: ^2.0.0 + checksum: 80e569ab1a1d1f89d86af91482e9629e24b7e3f019c9d7989190f36a9367c6de723b2af48e908c1b73479f35b2215d3d38c1fdbf02ab01eb2fc90a59d1cf4465 + languageName: node + linkType: hard + +"micromark-extension-gfm@npm:^3.0.0": + version: 3.0.0 + resolution: "micromark-extension-gfm@npm:3.0.0" + dependencies: + micromark-extension-gfm-autolink-literal: ^2.0.0 + micromark-extension-gfm-footnote: ^2.0.0 + micromark-extension-gfm-strikethrough: ^2.0.0 + micromark-extension-gfm-table: ^2.0.0 + micromark-extension-gfm-tagfilter: ^2.0.0 + micromark-extension-gfm-task-list-item: ^2.0.0 + micromark-util-combine-extensions: ^2.0.0 + micromark-util-types: ^2.0.0 + checksum: 2060fa62666a09532d6b3a272d413bc1b25bbb262f921d7402795ac021e1362c8913727e33d7528d5b4ccaf26922ec51208c43f795a702964817bc986de886c9 + languageName: node + linkType: hard + +"micromark-extension-mdx-expression@npm:^3.0.0": + version: 3.0.0 + resolution: "micromark-extension-mdx-expression@npm:3.0.0" + dependencies: + "@types/estree": ^1.0.0 + devlop: ^1.0.0 + micromark-factory-mdx-expression: ^2.0.0 + micromark-factory-space: ^2.0.0 + micromark-util-character: ^2.0.0 + micromark-util-events-to-acorn: ^2.0.0 + micromark-util-symbol: ^2.0.0 + micromark-util-types: ^2.0.0 + checksum: abd6ba0acdebc03bc0836c51a1ec4ca28e0be86f10420dd8cfbcd6c10dd37cd3f31e7c8b9792e9276e7526748883f4a30d0803d72b6285dae47d4e5348c23a10 + languageName: node + linkType: hard + +"micromark-extension-mdx-jsx@npm:^3.0.0": + version: 3.0.0 + resolution: "micromark-extension-mdx-jsx@npm:3.0.0" + dependencies: + "@types/acorn": ^4.0.0 + "@types/estree": ^1.0.0 + devlop: ^1.0.0 + estree-util-is-identifier-name: ^3.0.0 + micromark-factory-mdx-expression: ^2.0.0 + micromark-factory-space: ^2.0.0 + micromark-util-character: ^2.0.0 + micromark-util-symbol: ^2.0.0 + micromark-util-types: ^2.0.0 + vfile-message: ^4.0.0 + checksum: 5e2f45d381d1ce43afadc5376427b42ef8cd2a574ca3658473254eabe84db99ef1abc03055b3d86728fac7f1edfb1076e6f2f322ed8bfb1f2f14cafc2c8f0d0e + languageName: node + linkType: hard + +"micromark-extension-mdx-md@npm:^2.0.0": + version: 2.0.0 + resolution: "micromark-extension-mdx-md@npm:2.0.0" + dependencies: + micromark-util-types: ^2.0.0 + checksum: 7daf03372fd7faddf3f0ac87bdb0debb0bb770f33b586f72251e1072b222ceee75400ab6194c0e130dbf1e077369a5b627be6e9130d7a2e9e6b849f0d18ff246 + languageName: node + linkType: hard + +"micromark-extension-mdxjs-esm@npm:^3.0.0": + version: 3.0.0 + resolution: "micromark-extension-mdxjs-esm@npm:3.0.0" + dependencies: + "@types/estree": ^1.0.0 + devlop: ^1.0.0 + micromark-core-commonmark: ^2.0.0 + micromark-util-character: ^2.0.0 + micromark-util-events-to-acorn: ^2.0.0 + micromark-util-symbol: ^2.0.0 + micromark-util-types: ^2.0.0 + unist-util-position-from-estree: ^2.0.0 + vfile-message: ^4.0.0 + checksum: fb33d850200afce567b95c90f2f7d42259bd33eea16154349e4fa77c3ec934f46c8e5c111acea16321dce3d9f85aaa4c49afe8b810e31b34effc11617aeee8f6 + languageName: node + linkType: hard + +"micromark-extension-mdxjs@npm:^3.0.0": + version: 3.0.0 + resolution: "micromark-extension-mdxjs@npm:3.0.0" + dependencies: + acorn: ^8.0.0 + acorn-jsx: ^5.0.0 + micromark-extension-mdx-expression: ^3.0.0 + micromark-extension-mdx-jsx: ^3.0.0 + micromark-extension-mdx-md: ^2.0.0 + micromark-extension-mdxjs-esm: ^3.0.0 + micromark-util-combine-extensions: ^2.0.0 + micromark-util-types: ^2.0.0 + checksum: 7da6f0fb0e1e0270a2f5ad257e7422cc16e68efa7b8214c63c9d55bc264cb872e9ca4ac9a71b9dfd13daf52e010f730bac316086f4340e4fcc6569ec699915bf + languageName: node + linkType: hard + +"micromark-factory-destination@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-factory-destination@npm:1.1.0" + dependencies: + micromark-util-character: ^1.0.0 + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.0 + checksum: 9e2b5fb5fedbf622b687e20d51eb3d56ae90c0e7ecc19b37bd5285ec392c1e56f6e21aa7cfcb3c01eda88df88fe528f3acb91a5f57d7f4cba310bc3cd7f824fa + languageName: node + linkType: hard + +"micromark-factory-destination@npm:^2.0.0": + version: 2.0.0 + resolution: "micromark-factory-destination@npm:2.0.0" + dependencies: + micromark-util-character: ^2.0.0 + micromark-util-symbol: ^2.0.0 + micromark-util-types: ^2.0.0 + checksum: d36e65ed1c072ff4148b016783148ba7c68a078991154625723e24bda3945160268fb91079fb28618e1613c2b6e70390a8ddc544c45410288aa27b413593071a + languageName: node + linkType: hard + +"micromark-factory-label@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-factory-label@npm:1.1.0" + dependencies: + micromark-util-character: ^1.0.0 + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.0 + uvu: ^0.5.0 + checksum: fcda48f1287d9b148c562c627418a2ab759cdeae9c8e017910a0cba94bb759a96611e1fc6df33182e97d28fbf191475237298983bb89ef07d5b02464b1ad28d5 + languageName: node + linkType: hard + +"micromark-factory-label@npm:^2.0.0": + version: 2.0.0 + resolution: "micromark-factory-label@npm:2.0.0" + dependencies: + devlop: ^1.0.0 + micromark-util-character: ^2.0.0 + micromark-util-symbol: ^2.0.0 + micromark-util-types: ^2.0.0 + checksum: c021dbd0ed367610d35f2bae21209bc804d1a6d1286ffce458fd6a717f4d7fe581a7cba7d5c2d7a63757c44eb927c80d6a571d6ea7969fae1b48ab6461d109c4 + languageName: node + linkType: hard + +"micromark-factory-mdx-expression@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-factory-mdx-expression@npm:2.0.1" + dependencies: + "@types/estree": ^1.0.0 + devlop: ^1.0.0 + micromark-util-character: ^2.0.0 + micromark-util-events-to-acorn: ^2.0.0 + micromark-util-symbol: ^2.0.0 + micromark-util-types: ^2.0.0 + unist-util-position-from-estree: ^2.0.0 + vfile-message: ^4.0.0 + checksum: 2ba0ae939d0174a5e5331b1a4c203b96862ccf06e8903d6bdcc2d51f75515e52d407cd394afcd182f9ff0e877dc2a14e3fa430ced0131e156650d45104de8311 + languageName: node + linkType: hard + +"micromark-factory-space@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-factory-space@npm:1.1.0" + dependencies: + micromark-util-character: ^1.0.0 + micromark-util-types: ^1.0.0 + checksum: b58435076b998a7e244259a4694eb83c78915581206b6e7fc07b34c6abd36a1726ade63df8972fbf6c8fa38eecb9074f4e17be8d53f942e3b3d23d1a0ecaa941 + languageName: node + linkType: hard + +"micromark-factory-space@npm:^2.0.0": + version: 2.0.0 + resolution: "micromark-factory-space@npm:2.0.0" + dependencies: + micromark-util-character: ^2.0.0 + micromark-util-types: ^2.0.0 + checksum: 4ffdcdc2f759887bbb356500cb460b3915ecddcb5d85c3618d7df68ad05d13ed02b1153ee1845677b7d8126df8f388288b84fcf0d943bd9c92bcc71cd7222e37 + languageName: node + linkType: hard + +"micromark-factory-title@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-factory-title@npm:1.1.0" + dependencies: + micromark-factory-space: ^1.0.0 + micromark-util-character: ^1.0.0 + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.0 + checksum: 4432d3dbc828c81f483c5901b0c6591a85d65a9e33f7d96ba7c3ae821617a0b3237ff5faf53a9152d00aaf9afb3a9f185b205590f40ed754f1d9232e0e9157b1 + languageName: node + linkType: hard + +"micromark-factory-title@npm:^2.0.0": + version: 2.0.0 + resolution: "micromark-factory-title@npm:2.0.0" + dependencies: + micromark-factory-space: ^2.0.0 + micromark-util-character: ^2.0.0 + micromark-util-symbol: ^2.0.0 + micromark-util-types: ^2.0.0 + checksum: 39e1ac23af3554e6e652e56065579bc7faf21ade7b8704b29c175871b4152b7109b790bb3cae0f7e088381139c6bac9553b8400772c3d322e4fa635f813a3578 + languageName: node + linkType: hard + +"micromark-factory-whitespace@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-factory-whitespace@npm:1.1.0" + dependencies: + micromark-factory-space: ^1.0.0 + micromark-util-character: ^1.0.0 + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.0 + checksum: ef0fa682c7d593d85a514ee329809dee27d10bc2a2b65217d8ef81173e33b8e83c549049764b1ad851adfe0a204dec5450d9d20a4ca8598f6c94533a73f73fcd + languageName: node + linkType: hard + +"micromark-factory-whitespace@npm:^2.0.0": + version: 2.0.0 + resolution: "micromark-factory-whitespace@npm:2.0.0" + dependencies: + micromark-factory-space: ^2.0.0 + micromark-util-character: ^2.0.0 + micromark-util-symbol: ^2.0.0 + micromark-util-types: ^2.0.0 + checksum: 9587c2546d1a58b4d5472b42adf05463f6212d0449455285662d63cd8eaed89c6b159ac82713fcee5f9dd88628c24307d9533cccd8971a2f3f4d48702f8f850a + languageName: node + linkType: hard + +"micromark-util-character@npm:^1.0.0, micromark-util-character@npm:^1.1.0": + version: 1.2.0 + resolution: "micromark-util-character@npm:1.2.0" + dependencies: + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.0 + checksum: 089e79162a19b4a28731736246579ab7e9482ac93cd681c2bfca9983dcff659212ef158a66a5957e9d4b1dba957d1b87b565d85418a5b009f0294f1f07f2aaac + languageName: node + linkType: hard + +"micromark-util-character@npm:^2.0.0": + version: 2.1.0 + resolution: "micromark-util-character@npm:2.1.0" + dependencies: + micromark-util-symbol: ^2.0.0 + micromark-util-types: ^2.0.0 + checksum: 36ee910f84077cf16626fa618cfe46ac25956b3242e3166b8e8e98c5a8c524af7e5bf3d70822264b1fd2d297a36104a7eb7e3462c19c28353eaca7b0d8717594 + languageName: node + linkType: hard + +"micromark-util-chunked@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-util-chunked@npm:1.1.0" + dependencies: + micromark-util-symbol: ^1.0.0 + checksum: c435bde9110cb595e3c61b7f54c2dc28ee03e6a57fa0fc1e67e498ad8bac61ee5a7457a2b6a73022ddc585676ede4b912d28dcf57eb3bd6951e54015e14dc20b + languageName: node + linkType: hard + +"micromark-util-chunked@npm:^2.0.0": + version: 2.0.0 + resolution: "micromark-util-chunked@npm:2.0.0" + dependencies: + micromark-util-symbol: ^2.0.0 + checksum: 324f95cccdae061332a8241936eaba6ef0782a1e355bac5c607ad2564fd3744929be7dc81651315a2921535747a33243e6a5606bcb64b7a56d49b6d74ea1a3d4 + languageName: node + linkType: hard + +"micromark-util-classify-character@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-util-classify-character@npm:1.1.0" + dependencies: + micromark-util-character: ^1.0.0 + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.0 + checksum: 8499cb0bb1f7fb946f5896285fcca65cd742f66cd3e79ba7744792bd413ec46834f932a286de650349914d02e822946df3b55d03e6a8e1d245d1ddbd5102e5b0 + languageName: node + linkType: hard + +"micromark-util-classify-character@npm:^2.0.0": + version: 2.0.0 + resolution: "micromark-util-classify-character@npm:2.0.0" + dependencies: + micromark-util-character: ^2.0.0 + micromark-util-symbol: ^2.0.0 + micromark-util-types: ^2.0.0 + checksum: 086e52904deffebb793fb1c08c94aabb8901f76958142dfc3a6282890ebaa983b285e69bd602b9d507f1b758ed38e75a994d2ad9fbbefa7de2584f67a16af405 + languageName: node + linkType: hard + +"micromark-util-combine-extensions@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-util-combine-extensions@npm:1.1.0" + dependencies: + micromark-util-chunked: ^1.0.0 + micromark-util-types: ^1.0.0 + checksum: ee78464f5d4b61ccb437850cd2d7da4d690b260bca4ca7a79c4bb70291b84f83988159e373b167181b6716cb197e309bc6e6c96a68cc3ba9d50c13652774aba9 + languageName: node + linkType: hard + +"micromark-util-combine-extensions@npm:^2.0.0": + version: 2.0.0 + resolution: "micromark-util-combine-extensions@npm:2.0.0" + dependencies: + micromark-util-chunked: ^2.0.0 + micromark-util-types: ^2.0.0 + checksum: 107c47700343f365b4ed81551e18bc3458b573c500e56ac052b2490bd548adc475216e41d2271633a8867fac66fc22ba3e0a2d74a31ed79b9870ca947eb4e3ba + languageName: node + linkType: hard + +"micromark-util-decode-numeric-character-reference@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-util-decode-numeric-character-reference@npm:1.1.0" + dependencies: + micromark-util-symbol: ^1.0.0 + checksum: 4733fe75146e37611243f055fc6847137b66f0cde74d080e33bd26d0408c1d6f44cabc984063eee5968b133cb46855e729d555b9ff8d744652262b7b51feec73 + languageName: node + linkType: hard + +"micromark-util-decode-numeric-character-reference@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-util-decode-numeric-character-reference@npm:2.0.1" + dependencies: + micromark-util-symbol: ^2.0.0 + checksum: 9512507722efd2033a9f08715eeef787fbfe27e23edf55db21423d46d82ab46f76c89b4f960be3f5e50a2d388d89658afc0647989cf256d051e9ea01277a1adb + languageName: node + linkType: hard + +"micromark-util-decode-string@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-util-decode-string@npm:1.1.0" + dependencies: + decode-named-character-reference: ^1.0.0 + micromark-util-character: ^1.0.0 + micromark-util-decode-numeric-character-reference: ^1.0.0 + micromark-util-symbol: ^1.0.0 + checksum: f1625155db452f15aa472918499689ba086b9c49d1322a08b22bfbcabe918c61b230a3002c8bc3ea9b1f52ca7a9bb1c3dd43ccb548c7f5f8b16c24a1ae77a813 + languageName: node + linkType: hard + +"micromark-util-decode-string@npm:^2.0.0": + version: 2.0.0 + resolution: "micromark-util-decode-string@npm:2.0.0" + dependencies: + decode-named-character-reference: ^1.0.0 + micromark-util-character: ^2.0.0 + micromark-util-decode-numeric-character-reference: ^2.0.0 + micromark-util-symbol: ^2.0.0 + checksum: a75daf32a4a6b549e9f19b4d833ebfeb09a32a9a1f9ce50f35dec6b6a3e4f9f121f49024ba7f9c91c55ebe792f7c7a332fc9604795181b6a612637df0df5b959 + languageName: node + linkType: hard + +"micromark-util-encode@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-util-encode@npm:1.1.0" + checksum: 4ef29d02b12336918cea6782fa87c8c578c67463925221d4e42183a706bde07f4b8b5f9a5e1c7ce8c73bb5a98b261acd3238fecd152e6dd1cdfa2d1ae11b60a0 + languageName: node + linkType: hard + +"micromark-util-encode@npm:^2.0.0": + version: 2.0.0 + resolution: "micromark-util-encode@npm:2.0.0" + checksum: 853a3f33fce72aaf4ffa60b7f2b6fcfca40b270b3466e1b96561b02185d2bd8c01dd7948bc31a24ac014f4cc854e545ca9a8e9cf7ea46262f9d24c9e88551c66 + languageName: node + linkType: hard + +"micromark-util-events-to-acorn@npm:^2.0.0": + version: 2.0.2 + resolution: "micromark-util-events-to-acorn@npm:2.0.2" + dependencies: + "@types/acorn": ^4.0.0 + "@types/estree": ^1.0.0 + "@types/unist": ^3.0.0 + devlop: ^1.0.0 + estree-util-visit: ^2.0.0 + micromark-util-symbol: ^2.0.0 + micromark-util-types: ^2.0.0 + vfile-message: ^4.0.0 + checksum: bcb3eeac52a4ae5c3ca3d8cff514de3a7d1f272d9a94cce26a08c578bef64df4d61820874c01207e92fcace9eae5c9a7ecdddef0c6e10014b255a07b7880bf94 + languageName: node + linkType: hard + +"micromark-util-html-tag-name@npm:^1.0.0": + version: 1.2.0 + resolution: "micromark-util-html-tag-name@npm:1.2.0" + checksum: ccf0fa99b5c58676dc5192c74665a3bfd1b536fafaf94723bd7f31f96979d589992df6fcf2862eba290ef18e6a8efb30ec8e1e910d9f3fc74f208871e9f84750 + languageName: node + linkType: hard + +"micromark-util-html-tag-name@npm:^2.0.0": + version: 2.0.0 + resolution: "micromark-util-html-tag-name@npm:2.0.0" + checksum: d786d4486f93eb0ac5b628779809ca97c5dc60f3c9fc03eb565809831db181cf8cb7f05f9ac76852f3eb35461af0f89fa407b46f3a03f4f97a96754d8dc540d8 + languageName: node + linkType: hard + +"micromark-util-normalize-identifier@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-util-normalize-identifier@npm:1.1.0" + dependencies: + micromark-util-symbol: ^1.0.0 + checksum: 8655bea41ffa4333e03fc22462cb42d631bbef9c3c07b625fd852b7eb442a110f9d2e5902a42e65188d85498279569502bf92f3434a1180fc06f7c37edfbaee2 + languageName: node + linkType: hard + +"micromark-util-normalize-identifier@npm:^2.0.0": + version: 2.0.0 + resolution: "micromark-util-normalize-identifier@npm:2.0.0" + dependencies: + micromark-util-symbol: ^2.0.0 + checksum: b36da2d3fd102053dadd953ce5c558328df12a63a8ac0e5aad13d4dda8e43b6a5d4a661baafe0a1cd8a260bead4b4a8e6e0e74193dd651e8484225bd4f4e68aa + languageName: node + linkType: hard + +"micromark-util-resolve-all@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-util-resolve-all@npm:1.1.0" + dependencies: + micromark-util-types: ^1.0.0 + checksum: 1ce6c0237cd3ca061e76fae6602cf95014e764a91be1b9f10d36cb0f21ca88f9a07de8d49ab8101efd0b140a4fbfda6a1efb72027ab3f4d5b54c9543271dc52c + languageName: node + linkType: hard + +"micromark-util-resolve-all@npm:^2.0.0": + version: 2.0.0 + resolution: "micromark-util-resolve-all@npm:2.0.0" + dependencies: + micromark-util-types: ^2.0.0 + checksum: 31fe703b85572cb3f598ebe32750e59516925c7ff1f66cfe6afaebe0771a395a9eaa770787f2523d3c46082ea80e6c14f83643303740b3d650af7c96ebd30ccc + languageName: node + linkType: hard + +"micromark-util-sanitize-uri@npm:^1.0.0": + version: 1.2.0 + resolution: "micromark-util-sanitize-uri@npm:1.2.0" + dependencies: + micromark-util-character: ^1.0.0 + micromark-util-encode: ^1.0.0 + micromark-util-symbol: ^1.0.0 + checksum: 6663f365c4fe3961d622a580f4a61e34867450697f6806f027f21cf63c92989494895fcebe2345d52e249fe58a35be56e223a9776d084c9287818b40c779acc1 + languageName: node + linkType: hard + +"micromark-util-sanitize-uri@npm:^2.0.0": + version: 2.0.0 + resolution: "micromark-util-sanitize-uri@npm:2.0.0" + dependencies: + micromark-util-character: ^2.0.0 + micromark-util-encode: ^2.0.0 + micromark-util-symbol: ^2.0.0 + checksum: ea4c28bbffcf2430e9aff2d18554296789a8b0a1f54ac24020d1dde76624a7f93e8f2a83e88cd5a846b6d2c4287b71b1142d1b89fa7f1b0363a9b33711a141fe + languageName: node + linkType: hard + +"micromark-util-subtokenize@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-util-subtokenize@npm:1.1.0" + dependencies: + micromark-util-chunked: ^1.0.0 + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.0 + uvu: ^0.5.0 + checksum: 4a9d780c4d62910e196ea4fd886dc4079d8e424e5d625c0820016da0ed399a281daff39c50f9288045cc4bcd90ab47647e5396aba500f0853105d70dc8b1fc45 + languageName: node + linkType: hard + +"micromark-util-subtokenize@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-util-subtokenize@npm:2.0.1" + dependencies: + devlop: ^1.0.0 + micromark-util-chunked: ^2.0.0 + micromark-util-symbol: ^2.0.0 + micromark-util-types: ^2.0.0 + checksum: 5d338883ad8889c63f9b262b9cae0c02a42088201981d820ae7af7aa6d38fab6585b89fd4cf2206a46a7c4002e41ee6c70e1a3e0ceb3ad8b7adcffaf166b1511 + languageName: node + linkType: hard + +"micromark-util-symbol@npm:^1.0.0, micromark-util-symbol@npm:^1.0.1": + version: 1.1.0 + resolution: "micromark-util-symbol@npm:1.1.0" + checksum: 02414a753b79f67ff3276b517eeac87913aea6c028f3e668a19ea0fc09d98aea9f93d6222a76ca783d20299af9e4b8e7c797fe516b766185dcc6e93290f11f88 + languageName: node + linkType: hard + +"micromark-util-symbol@npm:^2.0.0": + version: 2.0.0 + resolution: "micromark-util-symbol@npm:2.0.0" + checksum: fa4a05bff575d9fbf0ad96a1013003e3bb6087ed6b34b609a141b6c0d2137b57df594aca409a95f4c5fda199f227b56a7d8b1f82cea0768df161d8a3a3660764 + languageName: node + linkType: hard + +"micromark-util-types@npm:^1.0.0, micromark-util-types@npm:^1.0.1": + version: 1.1.0 + resolution: "micromark-util-types@npm:1.1.0" + checksum: b0ef2b4b9589f15aec2666690477a6a185536927ceb7aa55a0f46475852e012d75a1ab945187e5c7841969a842892164b15d58ff8316b8e0d6cc920cabd5ede7 + languageName: node + linkType: hard + +"micromark-util-types@npm:^2.0.0": + version: 2.0.0 + resolution: "micromark-util-types@npm:2.0.0" + checksum: 819fef3ab5770c37893d2a60381fb2694396c8d22803b6e103c830c3a1bc1490363c2b0470bb2acaaddad776dfbc2fc1fcfde39cb63c4f54d95121611672e3d0 + languageName: node + linkType: hard + +"micromark@npm:^3.0.0": + version: 3.2.0 + resolution: "micromark@npm:3.2.0" + dependencies: + "@types/debug": ^4.0.0 + debug: ^4.0.0 + decode-named-character-reference: ^1.0.0 + micromark-core-commonmark: ^1.0.1 + micromark-factory-space: ^1.0.0 + micromark-util-character: ^1.0.0 + micromark-util-chunked: ^1.0.0 + micromark-util-combine-extensions: ^1.0.0 + micromark-util-decode-numeric-character-reference: ^1.0.0 + micromark-util-encode: ^1.0.0 + micromark-util-normalize-identifier: ^1.0.0 + micromark-util-resolve-all: ^1.0.0 + micromark-util-sanitize-uri: ^1.0.0 + micromark-util-subtokenize: ^1.0.0 + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.1 + uvu: ^0.5.0 + checksum: 56c15851ad3eb8301aede65603473443e50c92a54849cac1dadd57e4ec33ab03a0a77f3df03de47133e6e8f695dae83b759b514586193269e98c0bf319ecd5e4 + languageName: node + linkType: hard + +"micromark@npm:^4.0.0": + version: 4.0.0 + resolution: "micromark@npm:4.0.0" + dependencies: + "@types/debug": ^4.0.0 + debug: ^4.0.0 + decode-named-character-reference: ^1.0.0 + devlop: ^1.0.0 + micromark-core-commonmark: ^2.0.0 + micromark-factory-space: ^2.0.0 + micromark-util-character: ^2.0.0 + micromark-util-chunked: ^2.0.0 + micromark-util-combine-extensions: ^2.0.0 + micromark-util-decode-numeric-character-reference: ^2.0.0 + micromark-util-encode: ^2.0.0 + micromark-util-normalize-identifier: ^2.0.0 + micromark-util-resolve-all: ^2.0.0 + micromark-util-sanitize-uri: ^2.0.0 + micromark-util-subtokenize: ^2.0.0 + micromark-util-symbol: ^2.0.0 + micromark-util-types: ^2.0.0 + checksum: b84ab5ab1a0b28c063c52e9c2c9d7d44b954507235c10c9492d66e0b38f7de24bf298f914a1fbdf109f2a57a88cf0412de217c84cfac5fd60e3e42a74dbac085 + languageName: node + linkType: hard + +"micromatch@npm:^4.0.2, micromatch@npm:^4.0.4, micromatch@npm:^4.0.5": + version: 4.0.5 + resolution: "micromatch@npm:4.0.5" + dependencies: + braces: ^3.0.2 + picomatch: ^2.3.1 + checksum: 02a17b671c06e8fefeeb6ef996119c1e597c942e632a21ef589154f23898c9c6a9858526246abb14f8bca6e77734aa9dcf65476fca47cedfb80d9577d52843fc + languageName: node + linkType: hard + +"mime-db@npm:1.52.0, mime-db@npm:>= 1.43.0 < 2": + version: 1.52.0 + resolution: "mime-db@npm:1.52.0" + checksum: 0d99a03585f8b39d68182803b12ac601d9c01abfa28ec56204fa330bc9f3d1c5e14beb049bafadb3dbdf646dfb94b87e24d4ec7b31b7279ef906a8ea9b6a513f + languageName: node + linkType: hard + +"mime-db@npm:~1.33.0": + version: 1.33.0 + resolution: "mime-db@npm:1.33.0" + checksum: 281a0772187c9b8f6096976cb193ac639c6007ac85acdbb8dc1617ed7b0f4777fa001d1b4f1b634532815e60717c84b2f280201d55677fb850c9d45015b50084 + languageName: node + linkType: hard + +"mime-types@npm:2.1.18": + version: 2.1.18 + resolution: "mime-types@npm:2.1.18" + dependencies: + mime-db: ~1.33.0 + checksum: 729265eff1e5a0e87cb7f869da742a610679585167d2f2ec997a7387fc6aedf8e5cad078e99b0164a927bdf3ace34fca27430d6487456ad090cba5594441ba43 + languageName: node + linkType: hard + +"mime-types@npm:^2.1.27, mime-types@npm:^2.1.31, mime-types@npm:~2.1.17, mime-types@npm:~2.1.24, mime-types@npm:~2.1.34": + version: 2.1.35 + resolution: "mime-types@npm:2.1.35" + dependencies: + mime-db: 1.52.0 + checksum: 89a5b7f1def9f3af5dad6496c5ed50191ae4331cc5389d7c521c8ad28d5fdad2d06fd81baf38fed813dc4e46bb55c8145bb0ff406330818c9cf712fb2e9b3836 + languageName: node + linkType: hard + +"mime@npm:1.6.0": + version: 1.6.0 + resolution: "mime@npm:1.6.0" + bin: + mime: cli.js + checksum: fef25e39263e6d207580bdc629f8872a3f9772c923c7f8c7e793175cee22777bbe8bba95e5d509a40aaa292d8974514ce634ae35769faa45f22d17edda5e8557 + languageName: node + linkType: hard + +"mimic-fn@npm:^2.1.0": + version: 2.1.0 + resolution: "mimic-fn@npm:2.1.0" + checksum: d2421a3444848ce7f84bd49115ddacff29c15745db73f54041edc906c14b131a38d05298dae3081667627a59b2eb1ca4b436ff2e1b80f69679522410418b478a + languageName: node + linkType: hard + +"mimic-response@npm:^3.1.0": + version: 3.1.0 + resolution: "mimic-response@npm:3.1.0" + checksum: 25739fee32c17f433626bf19f016df9036b75b3d84a3046c7d156e72ec963dd29d7fc8a302f55a3d6c5a4ff24259676b15d915aad6480815a969ff2ec0836867 + languageName: node + linkType: hard + +"mimic-response@npm:^4.0.0": + version: 4.0.0 + resolution: "mimic-response@npm:4.0.0" + checksum: 33b804cc961efe206efdb1fca6a22540decdcfce6c14eb5c0c50e5ae9022267ab22ce8f5568b1f7247ba67500fe20d523d81e0e9f009b321ccd9d472e78d1850 + languageName: node + linkType: hard + +"mini-css-extract-plugin@npm:^2.7.6": + version: 2.9.0 + resolution: "mini-css-extract-plugin@npm:2.9.0" + dependencies: + schema-utils: ^4.0.0 + tapable: ^2.2.1 + peerDependencies: + webpack: ^5.0.0 + checksum: ae192c67ba85ac8bffeab66774635bf90181f00d5dd6cf95412426192599ddf5506fb4b1550acbd7a5476476e39db53c770dd40f8378f7baf5de96e3fec4e6e9 + languageName: node + linkType: hard + +"minimalistic-assert@npm:^1.0.0": + version: 1.0.1 + resolution: "minimalistic-assert@npm:1.0.1" + checksum: cc7974a9268fbf130fb055aff76700d7e2d8be5f761fb5c60318d0ed010d839ab3661a533ad29a5d37653133385204c503bfac995aaa4236f4e847461ea32ba7 + languageName: node + linkType: hard + +"minimatch@npm:3.1.2, minimatch@npm:^3.0.4, minimatch@npm:^3.0.5, minimatch@npm:^3.1.1": + version: 3.1.2 + resolution: "minimatch@npm:3.1.2" + dependencies: + brace-expansion: ^1.1.7 + checksum: c154e566406683e7bcb746e000b84d74465b3a832c45d59912b9b55cd50dee66e5c4b1e5566dba26154040e51672f9aa450a9aef0c97cfc7336b78b7afb9540a + languageName: node + linkType: hard + +"minimatch@npm:^9.0.1": + version: 9.0.4 + resolution: "minimatch@npm:9.0.4" + dependencies: + brace-expansion: ^2.0.1 + checksum: cf717f597ec3eed7dabc33153482a2e8d49f4fd3c26e58fd9c71a94c5029a0838728841b93f46bf1263b65a8010e2ee800d0dc9b004ab8ba8b6d1ec07cc115b5 + languageName: node + linkType: hard + +"minimist@npm:^1.2.0": + version: 1.2.8 + resolution: "minimist@npm:1.2.8" + checksum: 75a6d645fb122dad29c06a7597bddea977258957ed88d7a6df59b5cd3fe4a527e253e9bbf2e783e4b73657f9098b96a5fe96ab8a113655d4109108577ecf85b0 + languageName: node + linkType: hard + +"minipass-collect@npm:^2.0.1": + version: 2.0.1 + resolution: "minipass-collect@npm:2.0.1" + dependencies: + minipass: ^7.0.3 + checksum: b251bceea62090f67a6cced7a446a36f4cd61ee2d5cea9aee7fff79ba8030e416327a1c5aa2908dc22629d06214b46d88fdab8c51ac76bacbf5703851b5ad342 + languageName: node + linkType: hard + +"minipass-fetch@npm:^3.0.0": + version: 3.0.5 + resolution: "minipass-fetch@npm:3.0.5" + dependencies: + encoding: ^0.1.13 + minipass: ^7.0.3 + minipass-sized: ^1.0.3 + minizlib: ^2.1.2 + dependenciesMeta: + encoding: + optional: true + checksum: 8047d273236157aab27ab7cd8eab7ea79e6ecd63e8f80c3366ec076cb9a0fed550a6935bab51764369027c414647fd8256c2a20c5445fb250c483de43350de83 + languageName: node + linkType: hard + +"minipass-flush@npm:^1.0.5": + version: 1.0.5 + resolution: "minipass-flush@npm:1.0.5" + dependencies: + minipass: ^3.0.0 + checksum: 56269a0b22bad756a08a94b1ffc36b7c9c5de0735a4dd1ab2b06c066d795cfd1f0ac44a0fcae13eece5589b908ecddc867f04c745c7009be0b566421ea0944cf + languageName: node + linkType: hard + +"minipass-pipeline@npm:^1.2.4": + version: 1.2.4 + resolution: "minipass-pipeline@npm:1.2.4" + dependencies: + minipass: ^3.0.0 + checksum: b14240dac0d29823c3d5911c286069e36d0b81173d7bdf07a7e4a91ecdef92cdff4baaf31ea3746f1c61e0957f652e641223970870e2353593f382112257971b + languageName: node + linkType: hard + +"minipass-sized@npm:^1.0.3": + version: 1.0.3 + resolution: "minipass-sized@npm:1.0.3" + dependencies: + minipass: ^3.0.0 + checksum: 79076749fcacf21b5d16dd596d32c3b6bf4d6e62abb43868fac21674078505c8b15eaca4e47ed844985a4514854f917d78f588fcd029693709417d8f98b2bd60 + languageName: node + linkType: hard + +"minipass@npm:^3.0.0": + version: 3.3.6 + resolution: "minipass@npm:3.3.6" + dependencies: + yallist: ^4.0.0 + checksum: a30d083c8054cee83cdcdc97f97e4641a3f58ae743970457b1489ce38ee1167b3aaf7d815cd39ec7a99b9c40397fd4f686e83750e73e652b21cb516f6d845e48 + languageName: node + linkType: hard + +"minipass@npm:^5.0.0": + version: 5.0.0 + resolution: "minipass@npm:5.0.0" + checksum: 425dab288738853fded43da3314a0b5c035844d6f3097a8e3b5b29b328da8f3c1af6fc70618b32c29ff906284cf6406b6841376f21caaadd0793c1d5a6a620ea + languageName: node + linkType: hard + +"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3, minipass@npm:^7.0.4": + version: 7.1.1 + resolution: "minipass@npm:7.1.1" + checksum: d2c461947a7530f93de4162aa3ca0a1bed1f121626906f6ec63a5ba05fd7b1d9bee4fe89a37a43db7241c2416be98a799c1796abae583c7180be37be5c392ef6 + languageName: node + linkType: hard + +"minizlib@npm:^2.1.1, minizlib@npm:^2.1.2": + version: 2.1.2 + resolution: "minizlib@npm:2.1.2" + dependencies: + minipass: ^3.0.0 + yallist: ^4.0.0 + checksum: f1fdeac0b07cf8f30fcf12f4b586795b97be856edea22b5e9072707be51fc95d41487faec3f265b42973a304fe3a64acd91a44a3826a963e37b37bafde0212c3 + languageName: node + linkType: hard + +"mkdirp@npm:^1.0.3": + version: 1.0.4 + resolution: "mkdirp@npm:1.0.4" + bin: + mkdirp: bin/cmd.js + checksum: a96865108c6c3b1b8e1d5e9f11843de1e077e57737602de1b82030815f311be11f96f09cce59bd5b903d0b29834733e5313f9301e3ed6d6f6fba2eae0df4298f + languageName: node + linkType: hard + +"mri@npm:^1.1.0": + version: 1.2.0 + resolution: "mri@npm:1.2.0" + checksum: 83f515abbcff60150873e424894a2f65d68037e5a7fcde8a9e2b285ee9c13ac581b63cfc1e6826c4732de3aeb84902f7c1e16b7aff46cd3f897a0f757a894e85 + languageName: node + linkType: hard + +"mrmime@npm:^2.0.0": + version: 2.0.0 + resolution: "mrmime@npm:2.0.0" + checksum: f6fe11ec667c3d96f1ce5fd41184ed491d5f0a5f4045e82446a471ccda5f84c7f7610dff61d378b73d964f73a320bd7f89788f9e6b9403e32cc4be28ba99f569 + languageName: node + linkType: hard + +"ms@npm:2.0.0": + version: 2.0.0 + resolution: "ms@npm:2.0.0" + checksum: 0e6a22b8b746d2e0b65a430519934fefd41b6db0682e3477c10f60c76e947c4c0ad06f63ffdf1d78d335f83edee8c0aa928aa66a36c7cd95b69b26f468d527f4 + languageName: node + linkType: hard + +"ms@npm:2.1.2": + version: 2.1.2 + resolution: "ms@npm:2.1.2" + checksum: 673cdb2c3133eb050c745908d8ce632ed2c02d85640e2edb3ace856a2266a813b30c613569bf3354fdf4ea7d1a1494add3bfa95e2713baa27d0c2c71fc44f58f + languageName: node + linkType: hard + +"ms@npm:2.1.3": + version: 2.1.3 + resolution: "ms@npm:2.1.3" + checksum: aa92de608021b242401676e35cfa5aa42dd70cbdc082b916da7fb925c542173e36bce97ea3e804923fe92c0ad991434e4a38327e15a1b5b5f945d66df615ae6d + languageName: node + linkType: hard + +"multicast-dns@npm:^7.2.5": + version: 7.2.5 + resolution: "multicast-dns@npm:7.2.5" + dependencies: + dns-packet: ^5.2.2 + thunky: ^1.0.2 + bin: + multicast-dns: cli.js + checksum: 00b8a57df152d4cd0297946320a94b7c3cdf75a46a2247f32f958a8927dea42958177f9b7fdae69fab2e4e033fb3416881af1f5e9055a3e1542888767139e2fb + languageName: node + linkType: hard + +"nanoid@npm:^3.3.7": + version: 3.3.7 + resolution: "nanoid@npm:3.3.7" + bin: + nanoid: bin/nanoid.cjs + checksum: d36c427e530713e4ac6567d488b489a36582ef89da1d6d4e3b87eded11eb10d7042a877958c6f104929809b2ab0bafa17652b076cdf84324aa75b30b722204f2 + languageName: node + linkType: hard + +"negotiator@npm:0.6.3, negotiator@npm:^0.6.3": + version: 0.6.3 + resolution: "negotiator@npm:0.6.3" + checksum: b8ffeb1e262eff7968fc90a2b6767b04cfd9842582a9d0ece0af7049537266e7b2506dfb1d107a32f06dd849ab2aea834d5830f7f4d0e5cb7d36e1ae55d021d9 + languageName: node + linkType: hard + +"neo-async@npm:^2.6.2": + version: 2.6.2 + resolution: "neo-async@npm:2.6.2" + checksum: deac9f8d00eda7b2e5cd1b2549e26e10a0faa70adaa6fdadca701cc55f49ee9018e427f424bac0c790b7c7e2d3068db97f3093f1093975f2acb8f8818b936ed9 + languageName: node + linkType: hard + +"no-case@npm:^3.0.4": + version: 3.0.4 + resolution: "no-case@npm:3.0.4" + dependencies: + lower-case: ^2.0.2 + tslib: ^2.0.3 + checksum: 0b2ebc113dfcf737d48dde49cfebf3ad2d82a8c3188e7100c6f375e30eafbef9e9124aadc3becef237b042fd5eb0aad2fd78669c20972d045bbe7fea8ba0be5c + languageName: node + linkType: hard + +"node-emoji@npm:^2.1.0": + version: 2.1.3 + resolution: "node-emoji@npm:2.1.3" + dependencies: + "@sindresorhus/is": ^4.6.0 + char-regex: ^1.0.2 + emojilib: ^2.4.0 + skin-tone: ^2.0.0 + checksum: 9ae5a1fb12fd5ce6885f251f345986115de4bb82e7d06fdc943845fb19260d89d0aaaccbaf85cae39fe7aaa1fc391640558865ba690c9bb8a7236c3ac10bbab0 + languageName: node + linkType: hard + +"node-forge@npm:^1": + version: 1.3.1 + resolution: "node-forge@npm:1.3.1" + checksum: 08fb072d3d670599c89a1704b3e9c649ff1b998256737f0e06fbd1a5bf41cae4457ccaee32d95052d80bbafd9ffe01284e078c8071f0267dc9744e51c5ed42a9 + languageName: node + linkType: hard + +"node-gyp@npm:latest": + version: 10.1.0 + resolution: "node-gyp@npm:10.1.0" + dependencies: + env-paths: ^2.2.0 + exponential-backoff: ^3.1.1 + glob: ^10.3.10 + graceful-fs: ^4.2.6 + make-fetch-happen: ^13.0.0 + nopt: ^7.0.0 + proc-log: ^3.0.0 + semver: ^7.3.5 + tar: ^6.1.2 + which: ^4.0.0 + bin: + node-gyp: bin/node-gyp.js + checksum: 72e2ab4b23fc32007a763da94018f58069fc0694bf36115d49a2b195c8831e12cf5dd1e7a3718fa85c06969aedf8fc126722d3b672ec1cb27e06ed33caee3c60 + languageName: node + linkType: hard + +"node-releases@npm:^2.0.14": + version: 2.0.14 + resolution: "node-releases@npm:2.0.14" + checksum: 59443a2f77acac854c42d321bf1b43dea0aef55cd544c6a686e9816a697300458d4e82239e2d794ea05f7bbbc8a94500332e2d3ac3f11f52e4b16cbe638b3c41 + languageName: node + linkType: hard + +"non-layered-tidy-tree-layout@npm:^2.0.2": + version: 2.0.2 + resolution: "non-layered-tidy-tree-layout@npm:2.0.2" + checksum: 5defc1c459001b22816a4fb8b86259b9b76e7f3090df576122a41c760133ab2061934cacd6f176c98c2ae4fee3879b97941e8897e8882985cbfe830f155cd158 + languageName: node + linkType: hard + +"nopt@npm:^7.0.0": + version: 7.2.1 + resolution: "nopt@npm:7.2.1" + dependencies: + abbrev: ^2.0.0 + bin: + nopt: bin/nopt.js + checksum: 6fa729cc77ce4162cfad8abbc9ba31d4a0ff6850c3af61d59b505653bef4781ec059f8890ecfe93ee8aa0c511093369cca88bfc998101616a2904e715bbbb7c9 + languageName: node + linkType: hard + +"normalize-path@npm:^3.0.0, normalize-path@npm:~3.0.0": + version: 3.0.0 + resolution: "normalize-path@npm:3.0.0" + checksum: 88eeb4da891e10b1318c4b2476b6e2ecbeb5ff97d946815ffea7794c31a89017c70d7f34b3c2ebf23ef4e9fc9fb99f7dffe36da22011b5b5c6ffa34f4873ec20 + languageName: node + linkType: hard + +"normalize-range@npm:^0.1.2": + version: 0.1.2 + resolution: "normalize-range@npm:0.1.2" + checksum: 9b2f14f093593f367a7a0834267c24f3cb3e887a2d9809c77d8a7e5fd08738bcd15af46f0ab01cc3a3d660386f015816b5c922cea8bf2ee79777f40874063184 + languageName: node + linkType: hard + +"normalize-url@npm:^8.0.0": + version: 8.0.1 + resolution: "normalize-url@npm:8.0.1" + checksum: 43ea9ef0d6d135dd1556ab67aa4b74820f0d9d15aa504b59fa35647c729f1147dfce48d3ad504998fd1010f089cfb82c86c6d9126eb5c5bd2e9bd25f3a97749b + languageName: node + linkType: hard + +"npm-run-path@npm:^4.0.1": + version: 4.0.1 + resolution: "npm-run-path@npm:4.0.1" + dependencies: + path-key: ^3.0.0 + checksum: 5374c0cea4b0bbfdfae62da7bbdf1e1558d338335f4cacf2515c282ff358ff27b2ecb91ffa5330a8b14390ac66a1e146e10700440c1ab868208430f56b5f4d23 + languageName: node + linkType: hard + +"nprogress@npm:^0.2.0": + version: 0.2.0 + resolution: "nprogress@npm:0.2.0" + checksum: 66b7bec5d563ecf2d1c3d2815e6d5eb74ed815eee8563e0afa63d3f185ab1b9cf2ddd97e1ded263b9995c5019d26d600320e849e50f3747984daa033744619dc + languageName: node + linkType: hard + +"nth-check@npm:^2.0.1": + version: 2.1.1 + resolution: "nth-check@npm:2.1.1" + dependencies: + boolbase: ^1.0.0 + checksum: 5afc3dafcd1573b08877ca8e6148c52abd565f1d06b1eb08caf982e3fa289a82f2cae697ffb55b5021e146d60443f1590a5d6b944844e944714a5b549675bcd3 + languageName: node + linkType: hard + +"object-assign@npm:^4.1.1": + version: 4.1.1 + resolution: "object-assign@npm:4.1.1" + checksum: fcc6e4ea8c7fe48abfbb552578b1c53e0d194086e2e6bbbf59e0a536381a292f39943c6e9628af05b5528aa5e3318bb30d6b2e53cadaf5b8fe9e12c4b69af23f + languageName: node + linkType: hard + +"object-inspect@npm:^1.13.1": + version: 1.13.1 + resolution: "object-inspect@npm:1.13.1" + checksum: 7d9fa9221de3311dcb5c7c307ee5dc011cdd31dc43624b7c184b3840514e118e05ef0002be5388304c416c0eb592feb46e983db12577fc47e47d5752fbbfb61f + languageName: node + linkType: hard + +"object-keys@npm:^1.1.1": + version: 1.1.1 + resolution: "object-keys@npm:1.1.1" + checksum: b363c5e7644b1e1b04aa507e88dcb8e3a2f52b6ffd0ea801e4c7a62d5aa559affe21c55a07fd4b1fd55fc03a33c610d73426664b20032405d7b92a1414c34d6a + languageName: node + linkType: hard + +"object.assign@npm:^4.1.0": + version: 4.1.5 + resolution: "object.assign@npm:4.1.5" + dependencies: + call-bind: ^1.0.5 + define-properties: ^1.2.1 + has-symbols: ^1.0.3 + object-keys: ^1.1.1 + checksum: f9aeac0541661370a1fc86e6a8065eb1668d3e771f7dbb33ee54578201336c057b21ee61207a186dd42db0c62201d91aac703d20d12a79fc79c353eed44d4e25 + languageName: node + linkType: hard + +"obuf@npm:^1.0.0, obuf@npm:^1.1.2": + version: 1.1.2 + resolution: "obuf@npm:1.1.2" + checksum: 41a2ba310e7b6f6c3b905af82c275bf8854896e2e4c5752966d64cbcd2f599cfffd5932006bcf3b8b419dfdacebb3a3912d5d94e10f1d0acab59876c8757f27f + languageName: node + linkType: hard + +"on-finished@npm:2.4.1": + version: 2.4.1 + resolution: "on-finished@npm:2.4.1" + dependencies: + ee-first: 1.1.1 + checksum: d20929a25e7f0bb62f937a425b5edeb4e4cde0540d77ba146ec9357f00b0d497cdb3b9b05b9c8e46222407d1548d08166bff69cc56dfa55ba0e4469228920ff0 + languageName: node + linkType: hard + +"on-headers@npm:~1.0.2": + version: 1.0.2 + resolution: "on-headers@npm:1.0.2" + checksum: 2bf13467215d1e540a62a75021e8b318a6cfc5d4fc53af8e8f84ad98dbcea02d506c6d24180cd62e1d769c44721ba542f3154effc1f7579a8288c9f7873ed8e5 + languageName: node + linkType: hard + +"once@npm:^1.3.0": + version: 1.4.0 + resolution: "once@npm:1.4.0" + dependencies: + wrappy: 1 + checksum: cd0a88501333edd640d95f0d2700fbde6bff20b3d4d9bdc521bdd31af0656b5706570d6c6afe532045a20bb8dc0849f8332d6f2a416e0ba6d3d3b98806c7db68 + languageName: node + linkType: hard + +"onetime@npm:^5.1.2": + version: 5.1.2 + resolution: "onetime@npm:5.1.2" + dependencies: + mimic-fn: ^2.1.0 + checksum: 2478859ef817fc5d4e9c2f9e5728512ddd1dbc9fb7829ad263765bb6d3b91ce699d6e2332eef6b7dff183c2f490bd3349f1666427eaba4469fba0ac38dfd0d34 + languageName: node + linkType: hard + +"open@npm:^8.0.9, open@npm:^8.4.0": + version: 8.4.2 + resolution: "open@npm:8.4.2" + dependencies: + define-lazy-prop: ^2.0.0 + is-docker: ^2.1.1 + is-wsl: ^2.2.0 + checksum: 6388bfff21b40cb9bd8f913f9130d107f2ed4724ea81a8fd29798ee322b361ca31fa2cdfb491a5c31e43a3996cfe9566741238c7a741ada8d7af1cb78d85cf26 + languageName: node + linkType: hard + +"opener@npm:^1.5.2": + version: 1.5.2 + resolution: "opener@npm:1.5.2" + bin: + opener: bin/opener-bin.js + checksum: 33b620c0d53d5b883f2abc6687dd1c5fd394d270dbe33a6356f2d71e0a2ec85b100d5bac94694198ccf5c30d592da863b2292c5539009c715a9c80c697b4f6cc + languageName: node + linkType: hard + +"p-cancelable@npm:^3.0.0": + version: 3.0.0 + resolution: "p-cancelable@npm:3.0.0" + checksum: 2b5ae34218f9c2cf7a7c18e5d9a726ef9b165ef07e6c959f6738371509e747334b5f78f3bcdeb03d8a12dcb978faf641fd87eb21486ed7d36fb823b8ddef3219 + languageName: node + linkType: hard + +"p-limit@npm:^2.0.0": + version: 2.3.0 + resolution: "p-limit@npm:2.3.0" + dependencies: + p-try: ^2.0.0 + checksum: 84ff17f1a38126c3314e91ecfe56aecbf36430940e2873dadaa773ffe072dc23b7af8e46d4b6485d302a11673fe94c6b67ca2cfbb60c989848b02100d0594ac1 + languageName: node + linkType: hard + +"p-limit@npm:^3.0.2": + version: 3.1.0 + resolution: "p-limit@npm:3.1.0" + dependencies: + yocto-queue: ^0.1.0 + checksum: 7c3690c4dbf62ef625671e20b7bdf1cbc9534e83352a2780f165b0d3ceba21907e77ad63401708145ca4e25bfc51636588d89a8c0aeb715e6c37d1c066430360 + languageName: node + linkType: hard + +"p-limit@npm:^4.0.0": + version: 4.0.0 + resolution: "p-limit@npm:4.0.0" + dependencies: + yocto-queue: ^1.0.0 + checksum: 01d9d70695187788f984226e16c903475ec6a947ee7b21948d6f597bed788e3112cc7ec2e171c1d37125057a5f45f3da21d8653e04a3a793589e12e9e80e756b + languageName: node + linkType: hard + +"p-locate@npm:^3.0.0": + version: 3.0.0 + resolution: "p-locate@npm:3.0.0" + dependencies: + p-limit: ^2.0.0 + checksum: 83991734a9854a05fe9dbb29f707ea8a0599391f52daac32b86f08e21415e857ffa60f0e120bfe7ce0cc4faf9274a50239c7895fc0d0579d08411e513b83a4ae + languageName: node + linkType: hard + +"p-locate@npm:^5.0.0": + version: 5.0.0 + resolution: "p-locate@npm:5.0.0" + dependencies: + p-limit: ^3.0.2 + checksum: 1623088f36cf1cbca58e9b61c4e62bf0c60a07af5ae1ca99a720837356b5b6c5ba3eb1b2127e47a06865fee59dd0453cad7cc844cda9d5a62ac1a5a51b7c86d3 + languageName: node + linkType: hard + +"p-locate@npm:^6.0.0": + version: 6.0.0 + resolution: "p-locate@npm:6.0.0" + dependencies: + p-limit: ^4.0.0 + checksum: 2bfe5234efa5e7a4e74b30a5479a193fdd9236f8f6b4d2f3f69e3d286d9a7d7ab0c118a2a50142efcf4e41625def635bd9332d6cbf9cc65d85eb0718c579ab38 + languageName: node + linkType: hard + +"p-map@npm:^4.0.0": + version: 4.0.0 + resolution: "p-map@npm:4.0.0" + dependencies: + aggregate-error: ^3.0.0 + checksum: cb0ab21ec0f32ddffd31dfc250e3afa61e103ef43d957cc45497afe37513634589316de4eb88abdfd969fe6410c22c0b93ab24328833b8eb1ccc087fc0442a1c + languageName: node + linkType: hard + +"p-retry@npm:^4.5.0": + version: 4.6.2 + resolution: "p-retry@npm:4.6.2" + dependencies: + "@types/retry": 0.12.0 + retry: ^0.13.1 + checksum: 45c270bfddaffb4a895cea16cb760dcc72bdecb6cb45fef1971fa6ea2e91ddeafddefe01e444ac73e33b1b3d5d29fb0dd18a7effb294262437221ddc03ce0f2e + languageName: node + linkType: hard + +"p-try@npm:^2.0.0": + version: 2.2.0 + resolution: "p-try@npm:2.2.0" + checksum: f8a8e9a7693659383f06aec604ad5ead237c7a261c18048a6e1b5b85a5f8a067e469aa24f5bc009b991ea3b058a87f5065ef4176793a200d4917349881216cae + languageName: node + linkType: hard + +"package-json@npm:^8.1.0": + version: 8.1.1 + resolution: "package-json@npm:8.1.1" + dependencies: + got: ^12.1.0 + registry-auth-token: ^5.0.1 + registry-url: ^6.0.0 + semver: ^7.3.7 + checksum: 28bec6f42bf9fba66b7c8fea07576fc23d08ec7923433f7835d6cd8654e72169d74f9738b3785107d18a476ae76712e0daeb1dddcd6930e69f9e4b47eba7c0ca + languageName: node + linkType: hard + +"param-case@npm:^3.0.4": + version: 3.0.4 + resolution: "param-case@npm:3.0.4" + dependencies: + dot-case: ^3.0.4 + tslib: ^2.0.3 + checksum: b34227fd0f794e078776eb3aa6247442056cb47761e9cd2c4c881c86d84c64205f6a56ef0d70b41ee7d77da02c3f4ed2f88e3896a8fefe08bdfb4deca037c687 + languageName: node + linkType: hard + +"parent-module@npm:^1.0.0": + version: 1.0.1 + resolution: "parent-module@npm:1.0.1" + dependencies: + callsites: ^3.0.0 + checksum: 6ba8b255145cae9470cf5551eb74be2d22281587af787a2626683a6c20fbb464978784661478dd2a3f1dad74d1e802d403e1b03c1a31fab310259eec8ac560ff + languageName: node + linkType: hard + +"parse-entities@npm:^4.0.0": + version: 4.0.1 + resolution: "parse-entities@npm:4.0.1" + dependencies: + "@types/unist": ^2.0.0 + character-entities: ^2.0.0 + character-entities-legacy: ^3.0.0 + character-reference-invalid: ^2.0.0 + decode-named-character-reference: ^1.0.0 + is-alphanumerical: ^2.0.0 + is-decimal: ^2.0.0 + is-hexadecimal: ^2.0.0 + checksum: 32a6ff5b9acb9d2c4d71537308521fd265e685b9215691df73feedd9edfe041bb6da9f89bd0c35c4a2bc7d58e3e76e399bb6078c2fd7d2a343ff1dd46edbf1bd + languageName: node + linkType: hard + +"parse-json@npm:^5.0.0, parse-json@npm:^5.2.0": + version: 5.2.0 + resolution: "parse-json@npm:5.2.0" + dependencies: + "@babel/code-frame": ^7.0.0 + error-ex: ^1.3.1 + json-parse-even-better-errors: ^2.3.0 + lines-and-columns: ^1.1.6 + checksum: 62085b17d64da57f40f6afc2ac1f4d95def18c4323577e1eced571db75d9ab59b297d1d10582920f84b15985cbfc6b6d450ccbf317644cfa176f3ed982ad87e2 + languageName: node + linkType: hard + +"parse-numeric-range@npm:^1.3.0": + version: 1.3.0 + resolution: "parse-numeric-range@npm:1.3.0" + checksum: 289ca126d5b8ace7325b199218de198014f58ea6895ccc88a5247491d07f0143bf047f80b4a31784f1ca8911762278d7d6ecb90a31dfae31da91cc1a2524c8ce + languageName: node + linkType: hard + +"parse5-htmlparser2-tree-adapter@npm:^7.0.0": + version: 7.0.0 + resolution: "parse5-htmlparser2-tree-adapter@npm:7.0.0" + dependencies: + domhandler: ^5.0.2 + parse5: ^7.0.0 + checksum: fc5d01e07733142a1baf81de5c2a9c41426c04b7ab29dd218acb80cd34a63177c90aff4a4aee66cf9f1d0aeecff1389adb7452ad6f8af0a5888e3e9ad6ef733d + languageName: node + linkType: hard + +"parse5@npm:^7.0.0": + version: 7.1.2 + resolution: "parse5@npm:7.1.2" + dependencies: + entities: ^4.4.0 + checksum: 59465dd05eb4c5ec87b76173d1c596e152a10e290b7abcda1aecf0f33be49646ea74840c69af975d7887543ea45564801736356c568d6b5e71792fd0f4055713 + languageName: node + linkType: hard + +"parseurl@npm:~1.3.2, parseurl@npm:~1.3.3": + version: 1.3.3 + resolution: "parseurl@npm:1.3.3" + checksum: 407cee8e0a3a4c5cd472559bca8b6a45b82c124e9a4703302326e9ab60fc1081442ada4e02628efef1eb16197ddc7f8822f5a91fd7d7c86b51f530aedb17dfa2 + languageName: node + linkType: hard + +"pascal-case@npm:^3.1.2": + version: 3.1.2 + resolution: "pascal-case@npm:3.1.2" + dependencies: + no-case: ^3.0.4 + tslib: ^2.0.3 + checksum: ba98bfd595fc91ef3d30f4243b1aee2f6ec41c53b4546bfa3039487c367abaa182471dcfc830a1f9e1a0df00c14a370514fa2b3a1aacc68b15a460c31116873e + languageName: node + linkType: hard + +"path-exists@npm:^3.0.0": + version: 3.0.0 + resolution: "path-exists@npm:3.0.0" + checksum: 96e92643aa34b4b28d0de1cd2eba52a1c5313a90c6542d03f62750d82480e20bfa62bc865d5cfc6165f5fcd5aeb0851043c40a39be5989646f223300021bae0a + languageName: node + linkType: hard + +"path-exists@npm:^4.0.0": + version: 4.0.0 + resolution: "path-exists@npm:4.0.0" + checksum: 505807199dfb7c50737b057dd8d351b82c033029ab94cb10a657609e00c1bc53b951cfdbccab8de04c5584d5eff31128ce6afd3db79281874a5ef2adbba55ed1 + languageName: node + linkType: hard + +"path-exists@npm:^5.0.0": + version: 5.0.0 + resolution: "path-exists@npm:5.0.0" + checksum: 8ca842868cab09423994596eb2c5ec2a971c17d1a3cb36dbf060592c730c725cd524b9067d7d2a1e031fef9ba7bd2ac6dc5ec9fb92aa693265f7be3987045254 + languageName: node + linkType: hard + +"path-is-absolute@npm:^1.0.0": + version: 1.0.1 + resolution: "path-is-absolute@npm:1.0.1" + checksum: 060840f92cf8effa293bcc1bea81281bd7d363731d214cbe5c227df207c34cd727430f70c6037b5159c8a870b9157cba65e775446b0ab06fd5ecc7e54615a3b8 + languageName: node + linkType: hard + +"path-is-inside@npm:1.0.2": + version: 1.0.2 + resolution: "path-is-inside@npm:1.0.2" + checksum: 0b5b6c92d3018b82afb1f74fe6de6338c4c654de4a96123cb343f2b747d5606590ac0c890f956ed38220a4ab59baddfd7b713d78a62d240b20b14ab801fa02cb + languageName: node + linkType: hard + +"path-key@npm:^3.0.0, path-key@npm:^3.1.0": + version: 3.1.1 + resolution: "path-key@npm:3.1.1" + checksum: 55cd7a9dd4b343412a8386a743f9c746ef196e57c823d90ca3ab917f90ab9f13dd0ded27252ba49dbdfcab2b091d998bc446f6220cd3cea65db407502a740020 + languageName: node + linkType: hard + +"path-parse@npm:^1.0.7": + version: 1.0.7 + resolution: "path-parse@npm:1.0.7" + checksum: 49abf3d81115642938a8700ec580da6e830dde670be21893c62f4e10bd7dd4c3742ddc603fe24f898cba7eb0c6bc1777f8d9ac14185d34540c6d4d80cd9cae8a + languageName: node + linkType: hard + +"path-scurry@npm:^1.11.0": + version: 1.11.1 + resolution: "path-scurry@npm:1.11.1" + dependencies: + lru-cache: ^10.2.0 + minipass: ^5.0.0 || ^6.0.2 || ^7.0.0 + checksum: 890d5abcd593a7912dcce7cf7c6bf7a0b5648e3dee6caf0712c126ca0a65c7f3d7b9d769072a4d1baf370f61ce493ab5b038d59988688e0c5f3f646ee3c69023 + languageName: node + linkType: hard + +"path-to-regexp@npm:0.1.7": + version: 0.1.7 + resolution: "path-to-regexp@npm:0.1.7" + checksum: 69a14ea24db543e8b0f4353305c5eac6907917031340e5a8b37df688e52accd09e3cebfe1660b70d76b6bd89152f52183f28c74813dbf454ba1a01c82a38abce + languageName: node + linkType: hard + +"path-to-regexp@npm:2.2.1": + version: 2.2.1 + resolution: "path-to-regexp@npm:2.2.1" + checksum: b921a74e7576e25b06ad1635abf7e8125a29220d2efc2b71d74b9591f24a27e6f09078fa9a1b27516a097ea0637b7cab79d19b83d7f36a8ef3ef5422770e89d9 + languageName: node + linkType: hard + +"path-to-regexp@npm:^1.7.0": + version: 1.8.0 + resolution: "path-to-regexp@npm:1.8.0" + dependencies: + isarray: 0.0.1 + checksum: 709f6f083c0552514ef4780cb2e7e4cf49b0cc89a97439f2b7cc69a608982b7690fb5d1720a7473a59806508fc2dae0be751ba49f495ecf89fd8fbc62abccbcd + languageName: node + linkType: hard + +"path-type@npm:^4.0.0": + version: 4.0.0 + resolution: "path-type@npm:4.0.0" + checksum: 5b1e2daa247062061325b8fdbfd1fb56dde0a448fb1455453276ea18c60685bdad23a445dc148cf87bc216be1573357509b7d4060494a6fd768c7efad833ee45 + languageName: node + linkType: hard + +"periscopic@npm:^3.0.0": + version: 3.1.0 + resolution: "periscopic@npm:3.1.0" + dependencies: + "@types/estree": ^1.0.0 + estree-walker: ^3.0.0 + is-reference: ^3.0.0 + checksum: 2153244352e58a0d76e7e8d9263e66fe74509495f809af388da20045fb30aa3e93f2f94468dc0b9166ecf206fcfc0d73d2c7641c6fbedc07b1de858b710142cb + languageName: node + linkType: hard + +"picocolors@npm:^1.0.0, picocolors@npm:^1.0.1": + version: 1.0.1 + resolution: "picocolors@npm:1.0.1" + checksum: fa68166d1f56009fc02a34cdfd112b0dd3cf1ef57667ac57281f714065558c01828cdf4f18600ad6851cbe0093952ed0660b1e0156bddf2184b6aaf5817553a5 + languageName: node + linkType: hard + +"picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.2.3, picomatch@npm:^2.3.1": + version: 2.3.1 + resolution: "picomatch@npm:2.3.1" + checksum: 050c865ce81119c4822c45d3c84f1ced46f93a0126febae20737bd05ca20589c564d6e9226977df859ed5e03dc73f02584a2b0faad36e896936238238b0446cf + languageName: node + linkType: hard + +"pkg-dir@npm:^7.0.0": + version: 7.0.0 + resolution: "pkg-dir@npm:7.0.0" + dependencies: + find-up: ^6.3.0 + checksum: 94298b20a446bfbbd66604474de8a0cdd3b8d251225170970f15d9646f633e056c80520dd5b4c1d1050c9fed8f6a9e5054b141c93806439452efe72e57562c03 + languageName: node + linkType: hard + +"pkg-up@npm:^3.1.0": + version: 3.1.0 + resolution: "pkg-up@npm:3.1.0" + dependencies: + find-up: ^3.0.0 + checksum: 5bac346b7c7c903613c057ae3ab722f320716199d753f4a7d053d38f2b5955460f3e6ab73b4762c62fd3e947f58e04f1343e92089e7bb6091c90877406fcd8c8 + languageName: node + linkType: hard + +"postcss-calc@npm:^9.0.1": + version: 9.0.1 + resolution: "postcss-calc@npm:9.0.1" + dependencies: + postcss-selector-parser: ^6.0.11 + postcss-value-parser: ^4.2.0 + peerDependencies: + postcss: ^8.2.2 + checksum: 7327ed83bfec544ab8b3e38353baa72ff6d04378b856db4ad82dbd68ce0b73668867ef182b5d4025f9dd9aa9c64aacc50cd1bd9db8d8b51ccc4cb97866b9d72b + languageName: node + linkType: hard + +"postcss-colormin@npm:^6.1.0": + version: 6.1.0 + resolution: "postcss-colormin@npm:6.1.0" + dependencies: + browserslist: ^4.23.0 + caniuse-api: ^3.0.0 + colord: ^2.9.3 + postcss-value-parser: ^4.2.0 + peerDependencies: + postcss: ^8.4.31 + checksum: 55a1525de345d953bc7f32ecaa5ee6275ef0277c27d1f97ff06a1bd1a2fedf7f254e36dc1500621f1df20c25a6d2485a74a0b527d8ff74eb90726c76efe2ac8e + languageName: node + linkType: hard + +"postcss-convert-values@npm:^6.1.0": + version: 6.1.0 + resolution: "postcss-convert-values@npm:6.1.0" + dependencies: + browserslist: ^4.23.0 + postcss-value-parser: ^4.2.0 + peerDependencies: + postcss: ^8.4.31 + checksum: 43e9f66af9bdec3c76695f9dde36885abc01f662c370c490b45d895459caab2c5792f906f3ddad107129133e41485a65634da7f699eef916a636e47f6a37a299 + languageName: node + linkType: hard + +"postcss-discard-comments@npm:^6.0.2": + version: 6.0.2 + resolution: "postcss-discard-comments@npm:6.0.2" + peerDependencies: + postcss: ^8.4.31 + checksum: c1731ccc8d1e3d910412a61395988d3033365e6532d9e5432ad7c74add8c9dcb0af0c03d4e901bf0d2b59ea4e7297a0c77a547ff2ed1b1cc065559cc0de43b4e + languageName: node + linkType: hard + +"postcss-discard-duplicates@npm:^6.0.3": + version: 6.0.3 + resolution: "postcss-discard-duplicates@npm:6.0.3" + peerDependencies: + postcss: ^8.4.31 + checksum: 308e3fb84c35e4703532de1efa5d6e8444cc5f167d0e40f42d7ea3fa3a37d9d636fd10729847d078e0c303eee16f8548d14b6f88a3fce4e38a2b452648465175 + languageName: node + linkType: hard + +"postcss-discard-empty@npm:^6.0.3": + version: 6.0.3 + resolution: "postcss-discard-empty@npm:6.0.3" + peerDependencies: + postcss: ^8.4.31 + checksum: bad305572faa066026a295faab37e718cee096589ab827b19c990c55620b2b2a1ce9f0145212651737a66086db01b2676c1927bbb8408c5f9cb42686d5959f00 + languageName: node + linkType: hard + +"postcss-discard-overridden@npm:^6.0.2": + version: 6.0.2 + resolution: "postcss-discard-overridden@npm:6.0.2" + peerDependencies: + postcss: ^8.4.31 + checksum: a38e0fe7a36f83cb9b73c1ba9ee2a48cf93c69ec0ea5753935824ffb71e958e58ae0393171c0f3d0014a397469d09bbb0d56bb5ab80f0280722967e2e273aebb + languageName: node + linkType: hard + +"postcss-discard-unused@npm:^6.0.5": + version: 6.0.5 + resolution: "postcss-discard-unused@npm:6.0.5" + dependencies: + postcss-selector-parser: ^6.0.16 + peerDependencies: + postcss: ^8.4.31 + checksum: 7962640773240186de38125f142a6555b7f9b2493c4968e0f0b11c6629b2bf43ac70b9fc4ee78aa732d82670ad8bf802b2febc9a9864b022eb68530eded26836 + languageName: node + linkType: hard + +"postcss-loader@npm:^7.3.3": + version: 7.3.4 + resolution: "postcss-loader@npm:7.3.4" + dependencies: + cosmiconfig: ^8.3.5 + jiti: ^1.20.0 + semver: ^7.5.4 + peerDependencies: + postcss: ^7.0.0 || ^8.0.1 + webpack: ^5.0.0 + checksum: f109eb266580eb296441a1ae057f93629b9b79ad962bdd3fc134417180431606a5419b6f5848c31e6d92c818e71fe96e4335a85cc5332c2f7b14e2869951e5b3 + languageName: node + linkType: hard + +"postcss-merge-idents@npm:^6.0.3": + version: 6.0.3 + resolution: "postcss-merge-idents@npm:6.0.3" + dependencies: + cssnano-utils: ^4.0.2 + postcss-value-parser: ^4.2.0 + peerDependencies: + postcss: ^8.4.31 + checksum: b45780d6d103b8e45a580032747ee6e1842f81863672341a6b4961397e243ca896217bf1f3ee732376a766207d5f610ba8924cf08cf6d5bbd4b093133fd05d70 + languageName: node + linkType: hard + +"postcss-merge-longhand@npm:^6.0.5": + version: 6.0.5 + resolution: "postcss-merge-longhand@npm:6.0.5" + dependencies: + postcss-value-parser: ^4.2.0 + stylehacks: ^6.1.1 + peerDependencies: + postcss: ^8.4.31 + checksum: 9ae5acf47dc0c1f494684ae55672d55bba7f5ee11c9c0f266aabd7c798e9f7394c6096363cd95685fd21ef088740389121a317772cf523ca22c915009bca2617 + languageName: node + linkType: hard + +"postcss-merge-rules@npm:^6.1.1": + version: 6.1.1 + resolution: "postcss-merge-rules@npm:6.1.1" + dependencies: + browserslist: ^4.23.0 + caniuse-api: ^3.0.0 + cssnano-utils: ^4.0.2 + postcss-selector-parser: ^6.0.16 + peerDependencies: + postcss: ^8.4.31 + checksum: 43f60a1c88806491cf752ae7871676de0e7a2a9d6d2fc6bc894068cc35a910a63d30f7c7d79545e0926c8b3a9ec583e5e8357203c40b5bad5ff58133b0c900f6 + languageName: node + linkType: hard + +"postcss-minify-font-values@npm:^6.1.0": + version: 6.1.0 + resolution: "postcss-minify-font-values@npm:6.1.0" + dependencies: + postcss-value-parser: ^4.2.0 + peerDependencies: + postcss: ^8.4.31 + checksum: 985e4dd2f89220a4442a822aad7dff016ab58a9dbb7bbca9d01c2d07d5a1e7d8c02e1c6e836abb4c9b4e825b4b80d99ee1f5899e74bf0d969095037738e6e452 + languageName: node + linkType: hard + +"postcss-minify-gradients@npm:^6.0.3": + version: 6.0.3 + resolution: "postcss-minify-gradients@npm:6.0.3" + dependencies: + colord: ^2.9.3 + cssnano-utils: ^4.0.2 + postcss-value-parser: ^4.2.0 + peerDependencies: + postcss: ^8.4.31 + checksum: 89b95088c3830f829f6d4636d1be4d4f13300bf9f1577c48c25169c81e11ec0026760b9abb32112b95d2c622f09d3b737f4d2975a7842927ccb567e1002ef7b3 + languageName: node + linkType: hard + +"postcss-minify-params@npm:^6.1.0": + version: 6.1.0 + resolution: "postcss-minify-params@npm:6.1.0" + dependencies: + browserslist: ^4.23.0 + cssnano-utils: ^4.0.2 + postcss-value-parser: ^4.2.0 + peerDependencies: + postcss: ^8.4.31 + checksum: 1e1cc3057d9bcc532c70e40628e96e3aea0081d8072dffe983a270a8cd59c03ac585e57d036b70e43d4ee725f274a05a6a8efac5a715f448284e115c13f82a46 + languageName: node + linkType: hard + +"postcss-minify-selectors@npm:^6.0.4": + version: 6.0.4 + resolution: "postcss-minify-selectors@npm:6.0.4" + dependencies: + postcss-selector-parser: ^6.0.16 + peerDependencies: + postcss: ^8.4.31 + checksum: 150221a84422ca7627c67ee691ee51e0fe2c3583c8108801e9fc93d3be8b538c2eb04fcfdc908270d7eeaeaf01594a20b81311690a873efccb8a23aeafe1c354 + languageName: node + linkType: hard + +"postcss-modules-extract-imports@npm:^3.1.0": + version: 3.1.0 + resolution: "postcss-modules-extract-imports@npm:3.1.0" + peerDependencies: + postcss: ^8.1.0 + checksum: b9192e0f4fb3d19431558be6f8af7ca45fc92baaad9b2778d1732a5880cd25c3df2074ce5484ae491e224f0d21345ffc2d419bd51c25b019af76d7a7af88c17f + languageName: node + linkType: hard + +"postcss-modules-local-by-default@npm:^4.0.5": + version: 4.0.5 + resolution: "postcss-modules-local-by-default@npm:4.0.5" + dependencies: + icss-utils: ^5.0.0 + postcss-selector-parser: ^6.0.2 + postcss-value-parser: ^4.1.0 + peerDependencies: + postcss: ^8.1.0 + checksum: ca9b01f4a0a3dfb33e016299e2dfb7e85c3123292f7aec2efc0c6771b9955648598bfb4c1561f7ee9732fb27fb073681233661b32eef98baab43743f96735452 + languageName: node + linkType: hard + +"postcss-modules-scope@npm:^3.2.0": + version: 3.2.0 + resolution: "postcss-modules-scope@npm:3.2.0" + dependencies: + postcss-selector-parser: ^6.0.4 + peerDependencies: + postcss: ^8.1.0 + checksum: 2ffe7e98c1fa993192a39c8dd8ade93fc4f59fbd1336ce34fcedaee0ee3bafb29e2e23fb49189256895b30e4f21af661c6a6a16ef7b17ae2c859301e4a4459ae + languageName: node + linkType: hard + +"postcss-modules-values@npm:^4.0.0": + version: 4.0.0 + resolution: "postcss-modules-values@npm:4.0.0" + dependencies: + icss-utils: ^5.0.0 + peerDependencies: + postcss: ^8.1.0 + checksum: f7f2cdf14a575b60e919ad5ea52fed48da46fe80db2733318d71d523fc87db66c835814940d7d05b5746b0426e44661c707f09bdb83592c16aea06e859409db6 + languageName: node + linkType: hard + +"postcss-normalize-charset@npm:^6.0.2": + version: 6.0.2 + resolution: "postcss-normalize-charset@npm:6.0.2" + peerDependencies: + postcss: ^8.4.31 + checksum: 5b8aeb17d61578a8656571cd5d5eefa8d4ee7126a99a41fdd322078002a06f2ae96f649197b9c01067a5f3e38a2e4b03e0e3fda5a0ec9e3d7ad056211ce86156 + languageName: node + linkType: hard + +"postcss-normalize-display-values@npm:^6.0.2": + version: 6.0.2 + resolution: "postcss-normalize-display-values@npm:6.0.2" + dependencies: + postcss-value-parser: ^4.2.0 + peerDependencies: + postcss: ^8.4.31 + checksum: da30a9394b0e4a269ccad8d240693a6cd564bcc60e24db67caee00f70ddfbc070ad76faed64c32e6eec9ed02e92565488b7879d4fd6c40d877c290eadbb0bb28 + languageName: node + linkType: hard + +"postcss-normalize-positions@npm:^6.0.2": + version: 6.0.2 + resolution: "postcss-normalize-positions@npm:6.0.2" + dependencies: + postcss-value-parser: ^4.2.0 + peerDependencies: + postcss: ^8.4.31 + checksum: 44fb77583fae4d71b76e38226cf770570876bcf5af6940dc9aeac7a7e2252896b361e0249044766cff8dad445f925378f06a005d6541597573c20e599a62b516 + languageName: node + linkType: hard + +"postcss-normalize-repeat-style@npm:^6.0.2": + version: 6.0.2 + resolution: "postcss-normalize-repeat-style@npm:6.0.2" + dependencies: + postcss-value-parser: ^4.2.0 + peerDependencies: + postcss: ^8.4.31 + checksum: bebdac63bec6777ead3e265fc12527b261cf8d0da1b7f0abb12bda86fd53b7058e4afe392210ac74dac012e413bb1c2a46a1138c89f82b8bf70b81711f620f8c + languageName: node + linkType: hard + +"postcss-normalize-string@npm:^6.0.2": + version: 6.0.2 + resolution: "postcss-normalize-string@npm:6.0.2" + dependencies: + postcss-value-parser: ^4.2.0 + peerDependencies: + postcss: ^8.4.31 + checksum: 5e8e253c528b542accafc142846fb33643c342a787c86e5b68c6287c7d8f63c5ae7d4d3fc28e3daf80821cc26a91add135e58bdd62ff9c735fca65d994898c7d + languageName: node + linkType: hard + +"postcss-normalize-timing-functions@npm:^6.0.2": + version: 6.0.2 + resolution: "postcss-normalize-timing-functions@npm:6.0.2" + dependencies: + postcss-value-parser: ^4.2.0 + peerDependencies: + postcss: ^8.4.31 + checksum: 1970f5aad04be11f99d51c59e27debb6fd7b49d0fa4a8879062b42c82113f8e520a284448727add3b54de85deefb8bd5fe554f618406586e9ad8fc9d060609f1 + languageName: node + linkType: hard + +"postcss-normalize-unicode@npm:^6.1.0": + version: 6.1.0 + resolution: "postcss-normalize-unicode@npm:6.1.0" + dependencies: + browserslist: ^4.23.0 + postcss-value-parser: ^4.2.0 + peerDependencies: + postcss: ^8.4.31 + checksum: 69ef35d06242061f0c504c128b83752e0f8daa30ebb26734de7d090460910be0b2efd8b17b1d64c3c85b95831a041faad9ad0aaba80e239406a79cfad3d63568 + languageName: node + linkType: hard + +"postcss-normalize-url@npm:^6.0.2": + version: 6.0.2 + resolution: "postcss-normalize-url@npm:6.0.2" + dependencies: + postcss-value-parser: ^4.2.0 + peerDependencies: + postcss: ^8.4.31 + checksum: bef51a18bbfee4fbf0381fec3c91e6c0dace36fca053bbd5f228e653d2732b6df3985525d79c4f7fc89f840ed07eb6d226e9d7503ecdc6f16d6d80cacae9df33 + languageName: node + linkType: hard + +"postcss-normalize-whitespace@npm:^6.0.2": + version: 6.0.2 + resolution: "postcss-normalize-whitespace@npm:6.0.2" + dependencies: + postcss-value-parser: ^4.2.0 + peerDependencies: + postcss: ^8.4.31 + checksum: 6081eb3a4b305749eec02c00a95c2d236336a77ee636bb1d939f18d5dfa5ba82b7cf7fa072e83f9133d0bc984276596af3fe468bdd67c742ce69e9c63dbc218d + languageName: node + linkType: hard + +"postcss-ordered-values@npm:^6.0.2": + version: 6.0.2 + resolution: "postcss-ordered-values@npm:6.0.2" + dependencies: + cssnano-utils: ^4.0.2 + postcss-value-parser: ^4.2.0 + peerDependencies: + postcss: ^8.4.31 + checksum: c3d96177b4ffa43754e835e30c40043cc75ab1e95eb6c55ac8723eb48c13a12e986250e63d96619bbbd1a098876a1c0c1b3b7a8e1de1108a009cf7aa0beac834 + languageName: node + linkType: hard + +"postcss-reduce-idents@npm:^6.0.3": + version: 6.0.3 + resolution: "postcss-reduce-idents@npm:6.0.3" + dependencies: + postcss-value-parser: ^4.2.0 + peerDependencies: + postcss: ^8.4.31 + checksum: 1feff316838f947386c908f50807cf1b9589fd09b8e8df633a01f2640af5492833cc892448938ceba10ab96826c44767b8f2e1569d587579423f2db81202f7c7 + languageName: node + linkType: hard + +"postcss-reduce-initial@npm:^6.1.0": + version: 6.1.0 + resolution: "postcss-reduce-initial@npm:6.1.0" + dependencies: + browserslist: ^4.23.0 + caniuse-api: ^3.0.0 + peerDependencies: + postcss: ^8.4.31 + checksum: 39e4034ffbf62a041b66944c5cebc4b17f656e76b97568f7f6230b0b886479e5c75b02ae4ba48c472cb0bde47489f9ed1fe6110ae8cff0d7b7165f53c2d64a12 + languageName: node + linkType: hard + +"postcss-reduce-transforms@npm:^6.0.2": + version: 6.0.2 + resolution: "postcss-reduce-transforms@npm:6.0.2" + dependencies: + postcss-value-parser: ^4.2.0 + peerDependencies: + postcss: ^8.4.31 + checksum: c424cc554eb5d253b7687b64925a13fc16759f058795d223854f5a20d9bca641b5f25d0559d03287e63f07a4629c24ac78156adcf604483fcad3c51721da0a08 + languageName: node + linkType: hard + +"postcss-selector-parser@npm:^6.0.11, postcss-selector-parser@npm:^6.0.16, postcss-selector-parser@npm:^6.0.2, postcss-selector-parser@npm:^6.0.4": + version: 6.0.16 + resolution: "postcss-selector-parser@npm:6.0.16" + dependencies: + cssesc: ^3.0.0 + util-deprecate: ^1.0.2 + checksum: e1cd68e33a39e3dc1e1e5bd8717be5bbe3cc23a4cecb466c3acb2f3a77daad7a47df4d6137a76f8db74cf160d2fb16b2cfdb4ccbebdfda844690f8d545fe281d + languageName: node + linkType: hard + +"postcss-sort-media-queries@npm:^5.2.0": + version: 5.2.0 + resolution: "postcss-sort-media-queries@npm:5.2.0" + dependencies: + sort-css-media-queries: 2.2.0 + peerDependencies: + postcss: ^8.4.23 + checksum: d4a976a64b53234762cc35c06ce97c1684bd7a64ead17e84c2047676c7307945be7c005235e6aac7c4620e1f835d6ba1a7dcf018ab7fe0a47657c62c96ad9f35 + languageName: node + linkType: hard + +"postcss-svgo@npm:^6.0.3": + version: 6.0.3 + resolution: "postcss-svgo@npm:6.0.3" + dependencies: + postcss-value-parser: ^4.2.0 + svgo: ^3.2.0 + peerDependencies: + postcss: ^8.4.31 + checksum: 1a7d1c8dea555884a7791e28ec2c22ea92331731067584ff5a23042a0e615f88fefde04e1140f11c262a728ef9fab6851423b40b9c47f9ae05353bd3c0ff051a + languageName: node + linkType: hard + +"postcss-unique-selectors@npm:^6.0.4": + version: 6.0.4 + resolution: "postcss-unique-selectors@npm:6.0.4" + dependencies: + postcss-selector-parser: ^6.0.16 + peerDependencies: + postcss: ^8.4.31 + checksum: b09df9943b4e858e88b30f3d279ce867a0490df806f1f947d286b0a4e95ba923f1229c385e5bf365f4f124f1edccda41ec18ccad4ba8798d829279d6dc971203 + languageName: node + linkType: hard + +"postcss-value-parser@npm:^4.1.0, postcss-value-parser@npm:^4.2.0": + version: 4.2.0 + resolution: "postcss-value-parser@npm:4.2.0" + checksum: 819ffab0c9d51cf0acbabf8996dffbfafbafa57afc0e4c98db88b67f2094cb44488758f06e5da95d7036f19556a4a732525e84289a425f4f6fd8e412a9d7442f + languageName: node + linkType: hard + +"postcss-zindex@npm:^6.0.2": + version: 6.0.2 + resolution: "postcss-zindex@npm:6.0.2" + peerDependencies: + postcss: ^8.4.31 + checksum: 394119e47b0fb098dc53d1bcf71b5500ab29605fe106526b2e81290bff179174ee00a82a4d4be5a42d4ef4138e8a3d6aabeef3b06cf7cb15b851848c8585d53b + languageName: node + linkType: hard + +"postcss@npm:^8.4.21, postcss@npm:^8.4.24, postcss@npm:^8.4.26, postcss@npm:^8.4.33, postcss@npm:^8.4.38": + version: 8.4.38 + resolution: "postcss@npm:8.4.38" + dependencies: + nanoid: ^3.3.7 + picocolors: ^1.0.0 + source-map-js: ^1.2.0 + checksum: 649f9e60a763ca4b5a7bbec446a069edf07f057f6d780a5a0070576b841538d1ecf7dd888f2fbfd1f76200e26c969e405aeeae66332e6927dbdc8bdcb90b9451 + languageName: node + linkType: hard + +"preact@npm:^10.13.2": + version: 10.22.0 + resolution: "preact@npm:10.22.0" + checksum: 1b7493abec35d5042094d652e5cb980de00a0ef39e130b2f20485214d273ef0cebafa2000aa9fa4ef9dad952bd4e746ad3714f42206f34b817fd3712d0d70bcd + languageName: node + linkType: hard + +"pretty-error@npm:^4.0.0": + version: 4.0.0 + resolution: "pretty-error@npm:4.0.0" + dependencies: + lodash: ^4.17.20 + renderkid: ^3.0.0 + checksum: a5b9137365690104ded6947dca2e33360bf55e62a4acd91b1b0d7baa3970e43754c628cc9e16eafbdd4e8f8bcb260a5865475d4fc17c3106ff2d61db4e72cdf3 + languageName: node + linkType: hard + +"pretty-time@npm:^1.1.0": + version: 1.1.0 + resolution: "pretty-time@npm:1.1.0" + checksum: a319e7009aadbc6cfedbd8b66861327d3a0c68bd3e8794bf5b86f62b40b01b9479c5a70c76bb368ad454acce52a1216daee460cc825766e2442c04f3a84a02c9 + languageName: node + linkType: hard + +"prism-react-renderer@npm:^2.3.0": + version: 2.3.1 + resolution: "prism-react-renderer@npm:2.3.1" + dependencies: + "@types/prismjs": ^1.26.0 + clsx: ^2.0.0 + peerDependencies: + react: ">=16.0.0" + checksum: b12a7d502c1e764d94f7d3c84aee9cd6fccc676bb7e21dee94d37eb2e7e62e097a343999e1979887cb83a57cbdea48d2046aa74d07bce05caa25f4c296df30b6 + languageName: node + linkType: hard + +"prismjs@npm:^1.29.0": + version: 1.29.0 + resolution: "prismjs@npm:1.29.0" + checksum: 007a8869d4456ff8049dc59404e32d5666a07d99c3b0e30a18bd3b7676dfa07d1daae9d0f407f20983865fd8da56de91d09cb08e6aa61f5bc420a27c0beeaf93 + languageName: node + linkType: hard + +"proc-log@npm:^3.0.0": + version: 3.0.0 + resolution: "proc-log@npm:3.0.0" + checksum: 02b64e1b3919e63df06f836b98d3af002b5cd92655cab18b5746e37374bfb73e03b84fe305454614b34c25b485cc687a9eebdccf0242cda8fda2475dd2c97e02 + languageName: node + linkType: hard + +"proc-log@npm:^4.2.0": + version: 4.2.0 + resolution: "proc-log@npm:4.2.0" + checksum: 98f6cd012d54b5334144c5255ecb941ee171744f45fca8b43b58ae5a0c1af07352475f481cadd9848e7f0250376ee584f6aa0951a856ff8f021bdfbff4eb33fc + languageName: node + linkType: hard + +"process-nextick-args@npm:~2.0.0": + version: 2.0.1 + resolution: "process-nextick-args@npm:2.0.1" + checksum: 1d38588e520dab7cea67cbbe2efdd86a10cc7a074c09657635e34f035277b59fbb57d09d8638346bf7090f8e8ebc070c96fa5fd183b777fff4f5edff5e9466cf + languageName: node + linkType: hard + +"promise-retry@npm:^2.0.1": + version: 2.0.1 + resolution: "promise-retry@npm:2.0.1" + dependencies: + err-code: ^2.0.2 + retry: ^0.12.0 + checksum: f96a3f6d90b92b568a26f71e966cbbc0f63ab85ea6ff6c81284dc869b41510e6cdef99b6b65f9030f0db422bf7c96652a3fff9f2e8fb4a0f069d8f4430359429 + languageName: node + linkType: hard + +"prompts@npm:^2.4.2": + version: 2.4.2 + resolution: "prompts@npm:2.4.2" + dependencies: + kleur: ^3.0.3 + sisteransi: ^1.0.5 + checksum: d8fd1fe63820be2412c13bfc5d0a01909acc1f0367e32396962e737cb2fc52d004f3302475d5ce7d18a1e8a79985f93ff04ee03007d091029c3f9104bffc007d + languageName: node + linkType: hard + +"prop-types@npm:^15.6.2, prop-types@npm:^15.7.2": + version: 15.8.1 + resolution: "prop-types@npm:15.8.1" + dependencies: + loose-envify: ^1.4.0 + object-assign: ^4.1.1 + react-is: ^16.13.1 + checksum: c056d3f1c057cb7ff8344c645450e14f088a915d078dcda795041765047fa080d38e5d626560ccaac94a4e16e3aa15f3557c1a9a8d1174530955e992c675e459 + languageName: node + linkType: hard + +"property-information@npm:^6.0.0": + version: 6.5.0 + resolution: "property-information@npm:6.5.0" + checksum: 6e55664e2f64083b715011e5bafaa1e694faf36986c235b0907e95d09259cc37c38382e3cc94a4c3f56366e05336443db12c8a0f0968a8c0a1b1416eebfc8f53 + languageName: node + linkType: hard + +"proto-list@npm:~1.2.1": + version: 1.2.4 + resolution: "proto-list@npm:1.2.4" + checksum: 4d4826e1713cbfa0f15124ab0ae494c91b597a3c458670c9714c36e8baddf5a6aad22842776f2f5b137f259c8533e741771445eb8df82e861eea37a6eaba03f7 + languageName: node + linkType: hard + +"proxy-addr@npm:~2.0.7": + version: 2.0.7 + resolution: "proxy-addr@npm:2.0.7" + dependencies: + forwarded: 0.2.0 + ipaddr.js: 1.9.1 + checksum: 29c6990ce9364648255454842f06f8c46fcd124d3e6d7c5066df44662de63cdc0bad032e9bf5a3d653ff72141cc7b6019873d685708ac8210c30458ad99f2b74 + languageName: node + linkType: hard + +"punycode@npm:^1.3.2": + version: 1.4.1 + resolution: "punycode@npm:1.4.1" + checksum: fa6e698cb53db45e4628559e557ddaf554103d2a96a1d62892c8f4032cd3bc8871796cae9eabc1bc700e2b6677611521ce5bb1d9a27700086039965d0cf34518 + languageName: node + linkType: hard + +"punycode@npm:^2.1.0": + version: 2.3.1 + resolution: "punycode@npm:2.3.1" + checksum: bb0a0ceedca4c3c57a9b981b90601579058903c62be23c5e8e843d2c2d4148a3ecf029d5133486fb0e1822b098ba8bba09e89d6b21742d02fa26bda6441a6fb2 + languageName: node + linkType: hard + +"pupa@npm:^3.1.0": + version: 3.1.0 + resolution: "pupa@npm:3.1.0" + dependencies: + escape-goat: ^4.0.0 + checksum: 0e4f4ab6bbdce600fa6d23b1833f1af57b2641246ff4cbe10f9d66e4e5479b0de2864a88d5bd629eef59524eda3c6680726acd7f3f873d9ed46b7f095d0bb5f6 + languageName: node + linkType: hard + +"qs@npm:6.11.0": + version: 6.11.0 + resolution: "qs@npm:6.11.0" + dependencies: + side-channel: ^1.0.4 + checksum: 6e1f29dd5385f7488ec74ac7b6c92f4d09a90408882d0c208414a34dd33badc1a621019d4c799a3df15ab9b1d0292f97c1dd71dc7c045e69f81a8064e5af7297 + languageName: node + linkType: hard + +"queue-microtask@npm:^1.2.2": + version: 1.2.3 + resolution: "queue-microtask@npm:1.2.3" + checksum: b676f8c040cdc5b12723ad2f91414d267605b26419d5c821ff03befa817ddd10e238d22b25d604920340fd73efd8ba795465a0377c4adf45a4a41e4234e42dc4 + languageName: node + linkType: hard + +"queue@npm:6.0.2": + version: 6.0.2 + resolution: "queue@npm:6.0.2" + dependencies: + inherits: ~2.0.3 + checksum: ebc23639248e4fe40a789f713c20548e513e053b3dc4924b6cb0ad741e3f264dcff948225c8737834dd4f9ec286dbc06a1a7c13858ea382d9379f4303bcc0916 + languageName: node + linkType: hard + +"quick-lru@npm:^5.1.1": + version: 5.1.1 + resolution: "quick-lru@npm:5.1.1" + checksum: a516faa25574be7947969883e6068dbe4aa19e8ef8e8e0fd96cddd6d36485e9106d85c0041a27153286b0770b381328f4072aa40d3b18a19f5f7d2b78b94b5ed + languageName: node + linkType: hard + +"randombytes@npm:^2.1.0": + version: 2.1.0 + resolution: "randombytes@npm:2.1.0" + dependencies: + safe-buffer: ^5.1.0 + checksum: d779499376bd4cbb435ef3ab9a957006c8682f343f14089ed5f27764e4645114196e75b7f6abf1cbd84fd247c0cb0651698444df8c9bf30e62120fbbc52269d6 + languageName: node + linkType: hard + +"range-parser@npm:1.2.0": + version: 1.2.0 + resolution: "range-parser@npm:1.2.0" + checksum: bdf397f43fedc15c559d3be69c01dedf38444ca7a1610f5bf5955e3f3da6057a892f34691e7ebdd8c7e1698ce18ef6c4d4811f70e658dda3ff230ef741f8423a + languageName: node + linkType: hard + +"range-parser@npm:^1.2.1, range-parser@npm:~1.2.1": + version: 1.2.1 + resolution: "range-parser@npm:1.2.1" + checksum: 0a268d4fea508661cf5743dfe3d5f47ce214fd6b7dec1de0da4d669dd4ef3d2144468ebe4179049eff253d9d27e719c88dae55be64f954e80135a0cada804ec9 + languageName: node + linkType: hard + +"raw-body@npm:2.5.2": + version: 2.5.2 + resolution: "raw-body@npm:2.5.2" + dependencies: + bytes: 3.1.2 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + unpipe: 1.0.0 + checksum: ba1583c8d8a48e8fbb7a873fdbb2df66ea4ff83775421bfe21ee120140949ab048200668c47d9ae3880012f6e217052690628cf679ddfbd82c9fc9358d574676 + languageName: node + linkType: hard + +"rc@npm:1.2.8": + version: 1.2.8 + resolution: "rc@npm:1.2.8" + dependencies: + deep-extend: ^0.6.0 + ini: ~1.3.0 + minimist: ^1.2.0 + strip-json-comments: ~2.0.1 + bin: + rc: ./cli.js + checksum: 2e26e052f8be2abd64e6d1dabfbd7be03f80ec18ccbc49562d31f617d0015fbdbcf0f9eed30346ea6ab789e0fdfe4337f033f8016efdbee0df5354751842080e + languageName: node + linkType: hard + +"react-dev-utils@npm:^12.0.1": + version: 12.0.1 + resolution: "react-dev-utils@npm:12.0.1" + dependencies: + "@babel/code-frame": ^7.16.0 + address: ^1.1.2 + browserslist: ^4.18.1 + chalk: ^4.1.2 + cross-spawn: ^7.0.3 + detect-port-alt: ^1.1.6 + escape-string-regexp: ^4.0.0 + filesize: ^8.0.6 + find-up: ^5.0.0 + fork-ts-checker-webpack-plugin: ^6.5.0 + global-modules: ^2.0.0 + globby: ^11.0.4 + gzip-size: ^6.0.0 + immer: ^9.0.7 + is-root: ^2.1.0 + loader-utils: ^3.2.0 + open: ^8.4.0 + pkg-up: ^3.1.0 + prompts: ^2.4.2 + react-error-overlay: ^6.0.11 + recursive-readdir: ^2.2.2 + shell-quote: ^1.7.3 + strip-ansi: ^6.0.1 + text-table: ^0.2.0 + checksum: 2c6917e47f03d9595044770b0f883a61c6b660fcaa97b8ba459a1d57c9cca9aa374cd51296b22d461ff5e432105dbe6f04732dab128e52729c79239e1c23ab56 + languageName: node + linkType: hard + +"react-dom@npm:^18.0.0": + version: 18.3.1 + resolution: "react-dom@npm:18.3.1" + dependencies: + loose-envify: ^1.1.0 + scheduler: ^0.23.2 + peerDependencies: + react: ^18.3.1 + checksum: 298954ecd8f78288dcaece05e88b570014d8f6dce5db6f66e6ee91448debeb59dcd31561dddb354eee47e6c1bb234669459060deb238ed0213497146e555a0b9 + languageName: node + linkType: hard + +"react-error-overlay@npm:^6.0.11": + version: 6.0.11 + resolution: "react-error-overlay@npm:6.0.11" + checksum: ce7b44c38fadba9cedd7c095cf39192e632daeccf1d0747292ed524f17dcb056d16bc197ddee5723f9dd888f0b9b19c3b486c430319e30504289b9296f2d2c42 + languageName: node + linkType: hard + +"react-fast-compare@npm:^3.2.0, react-fast-compare@npm:^3.2.2": + version: 3.2.2 + resolution: "react-fast-compare@npm:3.2.2" + checksum: 2071415b4f76a3e6b55c84611c4d24dcb12ffc85811a2840b5a3f1ff2d1a99be1020d9437ee7c6e024c9f4cbb84ceb35e48cf84f28fcb00265ad2dfdd3947704 + languageName: node + linkType: hard + +"react-helmet-async@npm:*": + version: 2.0.5 + resolution: "react-helmet-async@npm:2.0.5" + dependencies: + invariant: ^2.2.4 + react-fast-compare: ^3.2.2 + shallowequal: ^1.1.0 + peerDependencies: + react: ^16.6.0 || ^17.0.0 || ^18.0.0 + checksum: cc2d13496f6fdee6b5f9472d3f7369db3e70e4fc1a55793708c2bbd90d48b0dedc725fd066f987c7a3d74b03a29bd5e65b9f40fa29bd8239e7cfb526aff4d4b6 + languageName: node + linkType: hard + +"react-helmet-async@npm:^1.3.0": + version: 1.3.0 + resolution: "react-helmet-async@npm:1.3.0" + dependencies: + "@babel/runtime": ^7.12.5 + invariant: ^2.2.4 + prop-types: ^15.7.2 + react-fast-compare: ^3.2.0 + shallowequal: ^1.1.0 + peerDependencies: + react: ^16.6.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 + checksum: 7ca7e47f8af14ea186688b512a87ab912bf6041312b297f92516341b140b3f0f8aedf5a44d226d99e69ed067b0cc106e38aeb9c9b738ffcc63d10721c844db90 + languageName: node + linkType: hard + +"react-is@npm:^16.13.1, react-is@npm:^16.6.0, react-is@npm:^16.7.0": + version: 16.13.1 + resolution: "react-is@npm:16.13.1" + checksum: f7a19ac3496de32ca9ae12aa030f00f14a3d45374f1ceca0af707c831b2a6098ef0d6bdae51bd437b0a306d7f01d4677fcc8de7c0d331eb47ad0f46130e53c5f + languageName: node + linkType: hard + +"react-json-view-lite@npm:^1.2.0": + version: 1.4.0 + resolution: "react-json-view-lite@npm:1.4.0" + peerDependencies: + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + checksum: 420921258478da46a54887b6e4740e6cf21c7264eba95c33d6264fdf71c482f0746c1345eb187a4a52b31d2a3a951f88c7af338b9fccbced2a918751dd98c844 + languageName: node + linkType: hard + +"react-loadable-ssr-addon-v5-slorber@npm:^1.0.1": + version: 1.0.1 + resolution: "react-loadable-ssr-addon-v5-slorber@npm:1.0.1" + dependencies: + "@babel/runtime": ^7.10.3 + peerDependencies: + react-loadable: "*" + webpack: ">=4.41.1 || 5.x" + checksum: 1cf7ceb488d329a5be15f891dae16727fb7ade08ef57826addd21e2c3d485e2440259ef8be94f4d54e9afb4bcbd2fcc22c3c5bad92160c9c06ae6ba7b5562497 + languageName: node + linkType: hard + +"react-loadable@npm:@docusaurus/react-loadable@6.0.0": + version: 6.0.0 + resolution: "@docusaurus/react-loadable@npm:6.0.0" + dependencies: + "@types/react": "*" + peerDependencies: + react: "*" + checksum: 4c32061b2fc10689d5d8ba11ead71b69e4c8a55fcfeafb551a6747b1a7b496c4f2d8dbb5d023f5cafc2a9aea9d14582bdb324d11e6f9b8c3049d45b74439203f + languageName: node + linkType: hard + +"react-router-config@npm:^5.1.1": + version: 5.1.1 + resolution: "react-router-config@npm:5.1.1" + dependencies: + "@babel/runtime": ^7.1.2 + peerDependencies: + react: ">=15" + react-router: ">=5" + checksum: bde7ee79444454bf7c3737fd9c5c268021012c8cc37bc19116b2e7daa28c4231598c275816c7f32c16f9f974dc707b91de279291a5e39efce2e1b1569355b87a + languageName: node + linkType: hard + +"react-router-dom@npm:^5.3.4": + version: 5.3.4 + resolution: "react-router-dom@npm:5.3.4" + dependencies: + "@babel/runtime": ^7.12.13 + history: ^4.9.0 + loose-envify: ^1.3.1 + prop-types: ^15.6.2 + react-router: 5.3.4 + tiny-invariant: ^1.0.2 + tiny-warning: ^1.0.0 + peerDependencies: + react: ">=15" + checksum: b86a6f2f5222f041e38adf4e4b32c7643d6735a1a915ef25855b2db285fd059d72ba8d62e5bcd5d822b8ef9520a80453209e55077f5a90d0f72e908979b8f535 + languageName: node + linkType: hard + +"react-router@npm:5.3.4, react-router@npm:^5.3.4": + version: 5.3.4 + resolution: "react-router@npm:5.3.4" + dependencies: + "@babel/runtime": ^7.12.13 + history: ^4.9.0 + hoist-non-react-statics: ^3.1.0 + loose-envify: ^1.3.1 + path-to-regexp: ^1.7.0 + prop-types: ^15.6.2 + react-is: ^16.6.0 + tiny-invariant: ^1.0.2 + tiny-warning: ^1.0.0 + peerDependencies: + react: ">=15" + checksum: 892d4e274a23bf4f39abc2efca54472fb646d3aed4b584020cf49654d2f50d09a2bacebe7c92b4ec7cb8925077376dfcd0664bad6442a73604397cefec9f01f9 + languageName: node + linkType: hard + +"react@npm:^18.0.0": + version: 18.3.1 + resolution: "react@npm:18.3.1" + dependencies: + loose-envify: ^1.1.0 + checksum: a27bcfa8ff7c15a1e50244ad0d0c1cb2ad4375eeffefd266a64889beea6f6b64c4966c9b37d14ee32d6c9fcd5aa6ba183b6988167ab4d127d13e7cb5b386a376 + languageName: node + linkType: hard + +"readable-stream@npm:^2.0.1": + version: 2.3.8 + resolution: "readable-stream@npm:2.3.8" + dependencies: + core-util-is: ~1.0.0 + inherits: ~2.0.3 + isarray: ~1.0.0 + process-nextick-args: ~2.0.0 + safe-buffer: ~5.1.1 + string_decoder: ~1.1.1 + util-deprecate: ~1.0.1 + checksum: 65645467038704f0c8aaf026a72fbb588a9e2ef7a75cd57a01702ee9db1c4a1e4b03aaad36861a6a0926546a74d174149c8c207527963e0c2d3eee2f37678a42 + languageName: node + linkType: hard + +"readable-stream@npm:^3.0.6": + version: 3.6.2 + resolution: "readable-stream@npm:3.6.2" + dependencies: + inherits: ^2.0.3 + string_decoder: ^1.1.1 + util-deprecate: ^1.0.1 + checksum: bdcbe6c22e846b6af075e32cf8f4751c2576238c5043169a1c221c92ee2878458a816a4ea33f4c67623c0b6827c8a400409bfb3cf0bf3381392d0b1dfb52ac8d + languageName: node + linkType: hard + +"readdirp@npm:~3.6.0": + version: 3.6.0 + resolution: "readdirp@npm:3.6.0" + dependencies: + picomatch: ^2.2.1 + checksum: 1ced032e6e45670b6d7352d71d21ce7edf7b9b928494dcaba6f11fba63180d9da6cd7061ebc34175ffda6ff529f481818c962952004d273178acd70f7059b320 + languageName: node + linkType: hard + +"reading-time@npm:^1.5.0": + version: 1.5.0 + resolution: "reading-time@npm:1.5.0" + checksum: e27bc5a70ba0f4ac337896b18531b914d38f4bee67cbad48029d0c11dd0a7a847b2a6bba895ab7ce2ad3e7ecb86912bdc477d8fa2d48405a3deda964be54d09b + languageName: node + linkType: hard + +"rechoir@npm:^0.6.2": + version: 0.6.2 + resolution: "rechoir@npm:0.6.2" + dependencies: + resolve: ^1.1.6 + checksum: fe76bf9c21875ac16e235defedd7cbd34f333c02a92546142b7911a0f7c7059d2e16f441fe6fb9ae203f459c05a31b2bcf26202896d89e390eda7514d5d2702b + languageName: node + linkType: hard + +"recursive-readdir@npm:^2.2.2": + version: 2.2.3 + resolution: "recursive-readdir@npm:2.2.3" + dependencies: + minimatch: ^3.0.5 + checksum: 88ec96e276237290607edc0872b4f9842837b95cfde0cdbb1e00ba9623dfdf3514d44cdd14496ab60a0c2dd180a6ef8a3f1c34599e6cf2273afac9b72a6fb2b5 + languageName: node + linkType: hard + +"regenerate-unicode-properties@npm:^10.1.0": + version: 10.1.1 + resolution: "regenerate-unicode-properties@npm:10.1.1" + dependencies: + regenerate: ^1.4.2 + checksum: b80958ef40f125275824c2c47d5081dfaefebd80bff26c76761e9236767c748a4a95a69c053fe29d2df881177f2ca85df4a71fe70a82360388b31159ef19adcf + languageName: node + linkType: hard + +"regenerate@npm:^1.4.2": + version: 1.4.2 + resolution: "regenerate@npm:1.4.2" + checksum: 3317a09b2f802da8db09aa276e469b57a6c0dd818347e05b8862959c6193408242f150db5de83c12c3fa99091ad95fb42a6db2c3329bfaa12a0ea4cbbeb30cb0 + languageName: node + linkType: hard + +"regenerator-runtime@npm:^0.14.0": + version: 0.14.1 + resolution: "regenerator-runtime@npm:0.14.1" + checksum: 9f57c93277b5585d3c83b0cf76be47b473ae8c6d9142a46ce8b0291a04bb2cf902059f0f8445dcabb3fb7378e5fe4bb4ea1e008876343d42e46d3b484534ce38 + languageName: node + linkType: hard + +"regenerator-transform@npm:^0.15.2": + version: 0.15.2 + resolution: "regenerator-transform@npm:0.15.2" + dependencies: + "@babel/runtime": ^7.8.4 + checksum: 20b6f9377d65954980fe044cfdd160de98df415b4bff38fbade67b3337efaf078308c4fed943067cd759827cc8cfeca9cb28ccda1f08333b85d6a2acbd022c27 + languageName: node + linkType: hard + +"regexpu-core@npm:^5.3.1": + version: 5.3.2 + resolution: "regexpu-core@npm:5.3.2" + dependencies: + "@babel/regjsgen": ^0.8.0 + regenerate: ^1.4.2 + regenerate-unicode-properties: ^10.1.0 + regjsparser: ^0.9.1 + unicode-match-property-ecmascript: ^2.0.0 + unicode-match-property-value-ecmascript: ^2.1.0 + checksum: 95bb97088419f5396e07769b7de96f995f58137ad75fac5811fb5fe53737766dfff35d66a0ee66babb1eb55386ef981feaef392f9df6d671f3c124812ba24da2 + languageName: node + linkType: hard + +"registry-auth-token@npm:^5.0.1": + version: 5.0.2 + resolution: "registry-auth-token@npm:5.0.2" + dependencies: + "@pnpm/npm-conf": ^2.1.0 + checksum: 0d7683b71ee418993e7872b389024b13645c4295eb7bb850d10728eaf46065db24ea4d47dc6cbb71a60d1aa4bef077b0d8b7363c9ac9d355fdba47bebdfb01dd + languageName: node + linkType: hard + +"registry-url@npm:^6.0.0": + version: 6.0.1 + resolution: "registry-url@npm:6.0.1" + dependencies: + rc: 1.2.8 + checksum: 33712aa1b489aab7aba2191c1cdadfdd71f5bf166d4792d81744a6be332c160bd7d9273af8269d8a01284b9562f14a5b31b7abcf7ad9306c44887ecff51c89ab + languageName: node + linkType: hard + +"regjsparser@npm:^0.9.1": + version: 0.9.1 + resolution: "regjsparser@npm:0.9.1" + dependencies: + jsesc: ~0.5.0 + bin: + regjsparser: bin/parser + checksum: 5e1b76afe8f1d03c3beaf9e0d935dd467589c3625f6d65fb8ffa14f224d783a0fed4bf49c2c1b8211043ef92b6117313419edf055a098ed8342e340586741afc + languageName: node + linkType: hard + +"rehype-raw@npm:^7.0.0": + version: 7.0.0 + resolution: "rehype-raw@npm:7.0.0" + dependencies: + "@types/hast": ^3.0.0 + hast-util-raw: ^9.0.0 + vfile: ^6.0.0 + checksum: f9e28dcbf4c6c7d91a97c10a840310f18ef3268aa45abb3e0428b6b191ff3c4fa8f753b910d768588a2dac5c7da7e557b4ddc3f1b6cd252e8d20cb62d60c65ed + languageName: node + linkType: hard + +"relateurl@npm:^0.2.7": + version: 0.2.7 + resolution: "relateurl@npm:0.2.7" + checksum: 5891e792eae1dfc3da91c6fda76d6c3de0333a60aa5ad848982ebb6dccaa06e86385fb1235a1582c680a3d445d31be01c6bfc0804ebbcab5aaf53fa856fde6b6 + languageName: node + linkType: hard + +"remark-directive@npm:^3.0.0": + version: 3.0.0 + resolution: "remark-directive@npm:3.0.0" + dependencies: + "@types/mdast": ^4.0.0 + mdast-util-directive: ^3.0.0 + micromark-extension-directive: ^3.0.0 + unified: ^11.0.0 + checksum: 744d12bbe924bd0492a2481cbaf9250aa6622c0d2cc090bb7bc39975e355c8a46ae13cc4793204ada39f0af64c953f6b730a55420a50375e0f74a5dd5d201089 + languageName: node + linkType: hard + +"remark-emoji@npm:^4.0.0": + version: 4.0.1 + resolution: "remark-emoji@npm:4.0.1" + dependencies: + "@types/mdast": ^4.0.2 + emoticon: ^4.0.1 + mdast-util-find-and-replace: ^3.0.1 + node-emoji: ^2.1.0 + unified: ^11.0.4 + checksum: 2c02d8c0b694535a9f0c4fe39180cb89a8fbd07eb873c94842c34dfde566b8a6703df9d28fe175a8c28584f96252121de722862baa756f2d875f2f1a4352c1f4 + languageName: node + linkType: hard + +"remark-frontmatter@npm:^5.0.0": + version: 5.0.0 + resolution: "remark-frontmatter@npm:5.0.0" + dependencies: + "@types/mdast": ^4.0.0 + mdast-util-frontmatter: ^2.0.0 + micromark-extension-frontmatter: ^2.0.0 + unified: ^11.0.0 + checksum: b36e11d528d1d0172489c74ce7961bb6073f7272e71ea1349f765fc79c4246a758aef949174d371a088c48e458af776fcfbb3b043c49cd1120ca8239aeafe16a + languageName: node + linkType: hard + +"remark-gfm@npm:^4.0.0": + version: 4.0.0 + resolution: "remark-gfm@npm:4.0.0" + dependencies: + "@types/mdast": ^4.0.0 + mdast-util-gfm: ^3.0.0 + micromark-extension-gfm: ^3.0.0 + remark-parse: ^11.0.0 + remark-stringify: ^11.0.0 + unified: ^11.0.0 + checksum: 84bea84e388061fbbb697b4b666089f5c328aa04d19dc544c229b607446bc10902e46b67b9594415a1017bbbd7c811c1f0c30d36682c6d1a6718b66a1558261b + languageName: node + linkType: hard + +"remark-mdx@npm:^3.0.0": + version: 3.0.1 + resolution: "remark-mdx@npm:3.0.1" + dependencies: + mdast-util-mdx: ^3.0.0 + micromark-extension-mdxjs: ^3.0.0 + checksum: e7fcffbe1ccb0c7dfcb01c6d9dbc48df9c668c8321745455db7346f4860c43dbcb98e36e3398a5117d773426ab5ef656a95c78a21208c59e92571f021b8e678e + languageName: node + linkType: hard + +"remark-parse@npm:^11.0.0": + version: 11.0.0 + resolution: "remark-parse@npm:11.0.0" + dependencies: + "@types/mdast": ^4.0.0 + mdast-util-from-markdown: ^2.0.0 + micromark-util-types: ^2.0.0 + unified: ^11.0.0 + checksum: d83d245290fa84bb04fb3e78111f09c74f7417e7c012a64dd8dc04fccc3699036d828fbd8eeec8944f774b6c30cc1d925c98f8c46495ebcee7c595496342ab7f + languageName: node + linkType: hard + +"remark-rehype@npm:^11.0.0": + version: 11.1.0 + resolution: "remark-rehype@npm:11.1.0" + dependencies: + "@types/hast": ^3.0.0 + "@types/mdast": ^4.0.0 + mdast-util-to-hast: ^13.0.0 + unified: ^11.0.0 + vfile: ^6.0.0 + checksum: f0c731f0ab92a122e7f9c9bcbd10d6a31fdb99f0ea3595d232ddd9f9d11a308c4ec0aff4d56e1d0d256042dfad7df23b9941e50b5038da29786959a5926814e1 + languageName: node + linkType: hard + +"remark-stringify@npm:^11.0.0": + version: 11.0.0 + resolution: "remark-stringify@npm:11.0.0" + dependencies: + "@types/mdast": ^4.0.0 + mdast-util-to-markdown: ^2.0.0 + unified: ^11.0.0 + checksum: 59e07460eb629d6c3b3c0f438b0b236e7e6858fd5ab770303078f5a556ec00354d9c7fb9ef6d5f745a4617ac7da1ab618b170fbb4dac120e183fecd9cc86bce6 + languageName: node + linkType: hard + +"renderkid@npm:^3.0.0": + version: 3.0.0 + resolution: "renderkid@npm:3.0.0" + dependencies: + css-select: ^4.1.3 + dom-converter: ^0.2.0 + htmlparser2: ^6.1.0 + lodash: ^4.17.21 + strip-ansi: ^6.0.1 + checksum: 77162b62d6f33ab81f337c39efce0439ff0d1f6d441e29c35183151f83041c7850774fb904da163d6c844264d440d10557714e6daa0b19e4561a5cd4ef305d41 + languageName: node + linkType: hard + +"require-from-string@npm:^2.0.2": + version: 2.0.2 + resolution: "require-from-string@npm:2.0.2" + checksum: a03ef6895445f33a4015300c426699bc66b2b044ba7b670aa238610381b56d3f07c686251740d575e22f4c87531ba662d06937508f0f3c0f1ddc04db3130560b + languageName: node + linkType: hard + +"require-like@npm:>= 0.1.1": + version: 0.1.2 + resolution: "require-like@npm:0.1.2" + checksum: edb8331f05fd807381a75b76f6cca9f0ce8acaa2e910b7e116541799aa970bfbc64fde5fd6adb3a6917dba346f8386ebbddb81614c24e8dad1b4290c7af9535e + languageName: node + linkType: hard + +"requires-port@npm:^1.0.0": + version: 1.0.0 + resolution: "requires-port@npm:1.0.0" + checksum: eee0e303adffb69be55d1a214e415cf42b7441ae858c76dfc5353148644f6fd6e698926fc4643f510d5c126d12a705e7c8ed7e38061113bdf37547ab356797ff + languageName: node + linkType: hard + +"resolve-alpn@npm:^1.2.0": + version: 1.2.1 + resolution: "resolve-alpn@npm:1.2.1" + checksum: f558071fcb2c60b04054c99aebd572a2af97ef64128d59bef7ab73bd50d896a222a056de40ffc545b633d99b304c259ea9d0c06830d5c867c34f0bfa60b8eae0 + languageName: node + linkType: hard + +"resolve-from@npm:^4.0.0": + version: 4.0.0 + resolution: "resolve-from@npm:4.0.0" + checksum: f4ba0b8494846a5066328ad33ef8ac173801a51739eb4d63408c847da9a2e1c1de1e6cbbf72699211f3d13f8fc1325648b169bd15eb7da35688e30a5fb0e4a7f + languageName: node + linkType: hard + +"resolve-pathname@npm:^3.0.0": + version: 3.0.0 + resolution: "resolve-pathname@npm:3.0.0" + checksum: 6147241ba42c423dbe83cb067a2b4af4f60908c3af57e1ea567729cc71416c089737fe2a73e9e79e7a60f00f66c91e4b45ad0d37cd4be2d43fec44963ef14368 + languageName: node + linkType: hard + +"resolve@npm:^1.1.6, resolve@npm:^1.14.2": + version: 1.22.8 + resolution: "resolve@npm:1.22.8" + dependencies: + is-core-module: ^2.13.0 + path-parse: ^1.0.7 + supports-preserve-symlinks-flag: ^1.0.0 + bin: + resolve: bin/resolve + checksum: f8a26958aa572c9b064562750b52131a37c29d072478ea32e129063e2da7f83e31f7f11e7087a18225a8561cfe8d2f0df9dbea7c9d331a897571c0a2527dbb4c + languageName: node + linkType: hard + +"resolve@patch:resolve@^1.1.6#~builtin<compat/resolve>, resolve@patch:resolve@^1.14.2#~builtin<compat/resolve>": + version: 1.22.8 + resolution: "resolve@patch:resolve@npm%3A1.22.8#~builtin<compat/resolve>::version=1.22.8&hash=c3c19d" + dependencies: + is-core-module: ^2.13.0 + path-parse: ^1.0.7 + supports-preserve-symlinks-flag: ^1.0.0 + bin: + resolve: bin/resolve + checksum: 5479b7d431cacd5185f8db64bfcb7286ae5e31eb299f4c4f404ad8aa6098b77599563ac4257cb2c37a42f59dfc06a1bec2bcf283bb448f319e37f0feb9a09847 + languageName: node + linkType: hard + +"responselike@npm:^3.0.0": + version: 3.0.0 + resolution: "responselike@npm:3.0.0" + dependencies: + lowercase-keys: ^3.0.0 + checksum: e0cc9be30df4f415d6d83cdede3c5c887cd4a73e7cc1708bcaab1d50a28d15acb68460ac5b02bcc55a42f3d493729c8856427dcf6e57e6e128ad05cba4cfb95e + languageName: node + linkType: hard + +"retry@npm:^0.12.0": + version: 0.12.0 + resolution: "retry@npm:0.12.0" + checksum: 623bd7d2e5119467ba66202d733ec3c2e2e26568074923bc0585b6b99db14f357e79bdedb63cab56cec47491c4a0da7e6021a7465ca6dc4f481d3898fdd3158c + languageName: node + linkType: hard + +"retry@npm:^0.13.1": + version: 0.13.1 + resolution: "retry@npm:0.13.1" + checksum: 47c4d5be674f7c13eee4cfe927345023972197dbbdfba5d3af7e461d13b44de1bfd663bfc80d2f601f8ef3fc8164c16dd99655a221921954a65d044a2fc1233b + languageName: node + linkType: hard + +"reusify@npm:^1.0.4": + version: 1.0.4 + resolution: "reusify@npm:1.0.4" + checksum: c3076ebcc22a6bc252cb0b9c77561795256c22b757f40c0d8110b1300723f15ec0fc8685e8d4ea6d7666f36c79ccc793b1939c748bf36f18f542744a4e379fcc + languageName: node + linkType: hard + +"rimraf@npm:^3.0.2": + version: 3.0.2 + resolution: "rimraf@npm:3.0.2" + dependencies: + glob: ^7.1.3 + bin: + rimraf: bin.js + checksum: 87f4164e396f0171b0a3386cc1877a817f572148ee13a7e113b238e48e8a9f2f31d009a92ec38a591ff1567d9662c6b67fd8818a2dbbaed74bc26a87a2a4a9a0 + languageName: node + linkType: hard + +"robust-predicates@npm:^3.0.2": + version: 3.0.2 + resolution: "robust-predicates@npm:3.0.2" + checksum: 36854c1321548ceca96d36ad9d6e0a5a512986029ec6929ad6ed3ec1612c22cc8b46cc72d2c5674af42e8074a119d793f6f0ea3a5b51373e3ab926c64b172d7a + languageName: node + linkType: hard + +"rtl-detect@npm:^1.0.4": + version: 1.1.2 + resolution: "rtl-detect@npm:1.1.2" + checksum: 4a43a1e5df0617eb86d5485640b318787d12b86acf53d840a3b2ff701ee941e95479d4e9ae97e907569ec763d1c47218cb87639bc87bcdad60a85747e5270cf0 + languageName: node + linkType: hard + +"rtlcss@npm:^4.1.0": + version: 4.1.1 + resolution: "rtlcss@npm:4.1.1" + dependencies: + escalade: ^3.1.1 + picocolors: ^1.0.0 + postcss: ^8.4.21 + strip-json-comments: ^3.1.1 + bin: + rtlcss: bin/rtlcss.js + checksum: dcf37d76265b5c84d610488afa68a2506d008f95feac968b35ccae9aa49e7019ae0336a80363303f8f8bbf60df3ecdeb60413548b049114a24748319b68aefde + languageName: node + linkType: hard + +"run-parallel@npm:^1.1.9": + version: 1.2.0 + resolution: "run-parallel@npm:1.2.0" + dependencies: + queue-microtask: ^1.2.2 + checksum: cb4f97ad25a75ebc11a8ef4e33bb962f8af8516bb2001082ceabd8902e15b98f4b84b4f8a9b222e5d57fc3bd1379c483886ed4619367a7680dad65316993021d + languageName: node + linkType: hard + +"rw@npm:1": + version: 1.3.3 + resolution: "rw@npm:1.3.3" + checksum: c20d82421f5a71c86a13f76121b751553a99cd4a70ea27db86f9b23f33db941f3f06019c30f60d50c356d0bd674c8e74764ac146ea55e217c091bde6fba82aa3 + languageName: node + linkType: hard + +"sade@npm:^1.7.3": + version: 1.8.1 + resolution: "sade@npm:1.8.1" + dependencies: + mri: ^1.1.0 + checksum: 0756e5b04c51ccdc8221ebffd1548d0ce5a783a44a0fa9017a026659b97d632913e78f7dca59f2496aa996a0be0b0c322afd87ca72ccd909406f49dbffa0f45d + languageName: node + linkType: hard + +"safe-buffer@npm:5.1.2, safe-buffer@npm:~5.1.0, safe-buffer@npm:~5.1.1": + version: 5.1.2 + resolution: "safe-buffer@npm:5.1.2" + checksum: f2f1f7943ca44a594893a852894055cf619c1fbcb611237fc39e461ae751187e7baf4dc391a72125e0ac4fb2d8c5c0b3c71529622e6a58f46b960211e704903c + languageName: node + linkType: hard + +"safe-buffer@npm:5.2.1, safe-buffer@npm:>=5.1.0, safe-buffer@npm:^5.1.0, safe-buffer@npm:~5.2.0": + version: 5.2.1 + resolution: "safe-buffer@npm:5.2.1" + checksum: b99c4b41fdd67a6aaf280fcd05e9ffb0813654894223afb78a31f14a19ad220bba8aba1cb14eddce1fcfb037155fe6de4e861784eb434f7d11ed58d1e70dd491 + languageName: node + linkType: hard + +"safer-buffer@npm:>= 2.1.2 < 3, safer-buffer@npm:>= 2.1.2 < 3.0.0": + version: 2.1.2 + resolution: "safer-buffer@npm:2.1.2" + checksum: cab8f25ae6f1434abee8d80023d7e72b598cf1327164ddab31003c51215526801e40b66c5e65d658a0af1e9d6478cadcb4c745f4bd6751f97d8644786c0978b0 + languageName: node + linkType: hard + +"sax@npm:^1.2.4": + version: 1.3.0 + resolution: "sax@npm:1.3.0" + checksum: 238ab3a9ba8c8f8aaf1c5ea9120386391f6ee0af52f1a6a40bbb6df78241dd05d782f2359d614ac6aae08c4c4125208b456548a6cf68625aa4fe178486e63ecd + languageName: node + linkType: hard + +"scheduler@npm:^0.23.2": + version: 0.23.2 + resolution: "scheduler@npm:0.23.2" + dependencies: + loose-envify: ^1.1.0 + checksum: 3e82d1f419e240ef6219d794ff29c7ee415fbdc19e038f680a10c067108e06284f1847450a210b29bbaf97b9d8a97ced5f624c31c681248ac84c80d56ad5a2c4 + languageName: node + linkType: hard + +"schema-utils@npm:2.7.0": + version: 2.7.0 + resolution: "schema-utils@npm:2.7.0" + dependencies: + "@types/json-schema": ^7.0.4 + ajv: ^6.12.2 + ajv-keywords: ^3.4.1 + checksum: 8889325b0ee1ae6a8f5d6aaa855c71e136ebbb7fd731b01a9d3ec8225dcb245f644c47c50104db4c741983b528cdff8558570021257d4d397ec6aaecd9172a8e + languageName: node + linkType: hard + +"schema-utils@npm:^3.0.0, schema-utils@npm:^3.1.1, schema-utils@npm:^3.2.0": + version: 3.3.0 + resolution: "schema-utils@npm:3.3.0" + dependencies: + "@types/json-schema": ^7.0.8 + ajv: ^6.12.5 + ajv-keywords: ^3.5.2 + checksum: ea56971926fac2487f0757da939a871388891bc87c6a82220d125d587b388f1704788f3706e7f63a7b70e49fc2db974c41343528caea60444afd5ce0fe4b85c0 + languageName: node + linkType: hard + +"schema-utils@npm:^4.0.0, schema-utils@npm:^4.0.1": + version: 4.2.0 + resolution: "schema-utils@npm:4.2.0" + dependencies: + "@types/json-schema": ^7.0.9 + ajv: ^8.9.0 + ajv-formats: ^2.1.1 + ajv-keywords: ^5.1.0 + checksum: 26a0463d47683258106e6652e9aeb0823bf0b85843039e068b57da1892f7ae6b6b1094d48e9ed5ba5cbe9f7166469d880858b9d91abe8bd249421eb813850cde + languageName: node + linkType: hard + +"section-matter@npm:^1.0.0": + version: 1.0.0 + resolution: "section-matter@npm:1.0.0" + dependencies: + extend-shallow: ^2.0.1 + kind-of: ^6.0.0 + checksum: 3cc4131705493b2955729b075dcf562359bba66183debb0332752dc9cad35616f6da7a23e42b6cab45cd2e4bb5cda113e9e84c8f05aee77adb6b0289a0229101 + languageName: node + linkType: hard + +"select-hose@npm:^2.0.0": + version: 2.0.0 + resolution: "select-hose@npm:2.0.0" + checksum: d7e5fcc695a4804209d232a1b18624a5134be334d4e1114b0721f7a5e72bd73da483dcf41528c1af4f4f4892ad7cfd6a1e55c8ffb83f9c9fe723b738db609dbb + languageName: node + linkType: hard + +"selfsigned@npm:^2.1.1": + version: 2.4.1 + resolution: "selfsigned@npm:2.4.1" + dependencies: + "@types/node-forge": ^1.3.0 + node-forge: ^1 + checksum: 38b91c56f1d7949c0b77f9bbe4545b19518475cae15e7d7f0043f87b1626710b011ce89879a88969651f650a19d213bb15b7d5b4c2877df9eeeff7ba8f8b9bfa + languageName: node + linkType: hard + +"semver-diff@npm:^4.0.0": + version: 4.0.0 + resolution: "semver-diff@npm:4.0.0" + dependencies: + semver: ^7.3.5 + checksum: 4a958d6f76c7e7858268e1e2cf936712542441c9e003e561b574167279eee0a9bd55cc7eae1bfb31d3e7ad06a9fc370e7dd412fcfefec8c0daf1ce5aea623559 + languageName: node + linkType: hard + +"semver@npm:^6.3.1": + version: 6.3.1 + resolution: "semver@npm:6.3.1" + bin: + semver: bin/semver.js + checksum: ae47d06de28836adb9d3e25f22a92943477371292d9b665fb023fae278d345d508ca1958232af086d85e0155aee22e313e100971898bbb8d5d89b8b1d4054ca2 + languageName: node + linkType: hard + +"semver@npm:^7.3.2, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.5.4": + version: 7.6.2 + resolution: "semver@npm:7.6.2" + bin: + semver: bin/semver.js + checksum: 40f6a95101e8d854357a644da1b8dd9d93ce786d5c6a77227bc69dbb17bea83d0d1d1d7c4cd5920a6df909f48e8bd8a5909869535007f90278289f2451d0292d + languageName: node + linkType: hard + +"send@npm:0.18.0": + version: 0.18.0 + resolution: "send@npm:0.18.0" + dependencies: + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + encodeurl: ~1.0.2 + escape-html: ~1.0.3 + etag: ~1.8.1 + fresh: 0.5.2 + http-errors: 2.0.0 + mime: 1.6.0 + ms: 2.1.3 + on-finished: 2.4.1 + range-parser: ~1.2.1 + statuses: 2.0.1 + checksum: 74fc07ebb58566b87b078ec63e5a3e41ecd987e4272ba67b7467e86c6ad51bc6b0b0154133b6d8b08a2ddda360464f71382f7ef864700f34844a76c8027817a8 + languageName: node + linkType: hard + +"serialize-javascript@npm:^6.0.0, serialize-javascript@npm:^6.0.1": + version: 6.0.2 + resolution: "serialize-javascript@npm:6.0.2" + dependencies: + randombytes: ^2.1.0 + checksum: c4839c6206c1d143c0f80763997a361310305751171dd95e4b57efee69b8f6edd8960a0b7fbfc45042aadff98b206d55428aee0dc276efe54f100899c7fa8ab7 + languageName: node + linkType: hard + +"serve-handler@npm:^6.1.5": + version: 6.1.5 + resolution: "serve-handler@npm:6.1.5" + dependencies: + bytes: 3.0.0 + content-disposition: 0.5.2 + fast-url-parser: 1.1.3 + mime-types: 2.1.18 + minimatch: 3.1.2 + path-is-inside: 1.0.2 + path-to-regexp: 2.2.1 + range-parser: 1.2.0 + checksum: 7a98ca9cbf8692583b6cde4deb3941cff900fa38bf16adbfccccd8430209bab781e21d9a1f61c9c03e226f9f67689893bbce25941368f3ddaf985fc3858b49dc + languageName: node + linkType: hard + +"serve-index@npm:^1.9.1": + version: 1.9.1 + resolution: "serve-index@npm:1.9.1" + dependencies: + accepts: ~1.3.4 + batch: 0.6.1 + debug: 2.6.9 + escape-html: ~1.0.3 + http-errors: ~1.6.2 + mime-types: ~2.1.17 + parseurl: ~1.3.2 + checksum: e2647ce13379485b98a53ba2ea3fbad4d44b57540d00663b02b976e426e6194d62ac465c0d862cb7057f65e0de8ab8a684aa095427a4b8612412eca0d300d22f + languageName: node + linkType: hard + +"serve-static@npm:1.15.0": + version: 1.15.0 + resolution: "serve-static@npm:1.15.0" + dependencies: + encodeurl: ~1.0.2 + escape-html: ~1.0.3 + parseurl: ~1.3.3 + send: 0.18.0 + checksum: af57fc13be40d90a12562e98c0b7855cf6e8bd4c107fe9a45c212bf023058d54a1871b1c89511c3958f70626fff47faeb795f5d83f8cf88514dbaeb2b724464d + languageName: node + linkType: hard + +"set-function-length@npm:^1.2.1": + version: 1.2.2 + resolution: "set-function-length@npm:1.2.2" + dependencies: + define-data-property: ^1.1.4 + es-errors: ^1.3.0 + function-bind: ^1.1.2 + get-intrinsic: ^1.2.4 + gopd: ^1.0.1 + has-property-descriptors: ^1.0.2 + checksum: a8248bdacdf84cb0fab4637774d9fb3c7a8e6089866d04c817583ff48e14149c87044ce683d7f50759a8c50fb87c7a7e173535b06169c87ef76f5fb276dfff72 + languageName: node + linkType: hard + +"setprototypeof@npm:1.1.0": + version: 1.1.0 + resolution: "setprototypeof@npm:1.1.0" + checksum: 27cb44304d6c9e1a23bc6c706af4acaae1a7aa1054d4ec13c05f01a99fd4887109a83a8042b67ad90dbfcd100d43efc171ee036eb080667172079213242ca36e + languageName: node + linkType: hard + +"setprototypeof@npm:1.2.0": + version: 1.2.0 + resolution: "setprototypeof@npm:1.2.0" + checksum: be18cbbf70e7d8097c97f713a2e76edf84e87299b40d085c6bf8b65314e994cc15e2e317727342fa6996e38e1f52c59720b53fe621e2eb593a6847bf0356db89 + languageName: node + linkType: hard + +"shallow-clone@npm:^3.0.0": + version: 3.0.1 + resolution: "shallow-clone@npm:3.0.1" + dependencies: + kind-of: ^6.0.2 + checksum: 39b3dd9630a774aba288a680e7d2901f5c0eae7b8387fc5c8ea559918b29b3da144b7bdb990d7ccd9e11be05508ac9e459ce51d01fd65e583282f6ffafcba2e7 + languageName: node + linkType: hard + +"shallowequal@npm:^1.1.0": + version: 1.1.0 + resolution: "shallowequal@npm:1.1.0" + checksum: f4c1de0837f106d2dbbfd5d0720a5d059d1c66b42b580965c8f06bb1db684be8783538b684092648c981294bf817869f743a066538771dbecb293df78f765e00 + languageName: node + linkType: hard + +"shebang-command@npm:^2.0.0": + version: 2.0.0 + resolution: "shebang-command@npm:2.0.0" + dependencies: + shebang-regex: ^3.0.0 + checksum: 6b52fe87271c12968f6a054e60f6bde5f0f3d2db483a1e5c3e12d657c488a15474121a1d55cd958f6df026a54374ec38a4a963988c213b7570e1d51575cea7fa + languageName: node + linkType: hard + +"shebang-regex@npm:^3.0.0": + version: 3.0.0 + resolution: "shebang-regex@npm:3.0.0" + checksum: 1a2bcae50de99034fcd92ad4212d8e01eedf52c7ec7830eedcf886622804fe36884278f2be8be0ea5fde3fd1c23911643a4e0f726c8685b61871c8908af01222 + languageName: node + linkType: hard + +"shell-quote@npm:^1.7.3, shell-quote@npm:^1.8.1": + version: 1.8.1 + resolution: "shell-quote@npm:1.8.1" + checksum: 5f01201f4ef504d4c6a9d0d283fa17075f6770bfbe4c5850b074974c68062f37929ca61700d95ad2ac8822e14e8c4b990ca0e6e9272e64befd74ce5e19f0736b + languageName: node + linkType: hard + +"shelljs@npm:^0.8.5": + version: 0.8.5 + resolution: "shelljs@npm:0.8.5" + dependencies: + glob: ^7.0.0 + interpret: ^1.0.0 + rechoir: ^0.6.2 + bin: + shjs: bin/shjs + checksum: 7babc46f732a98f4c054ec1f048b55b9149b98aa2da32f6cf9844c434b43c6251efebd6eec120937bd0999e13811ebd45efe17410edb3ca938f82f9381302748 + languageName: node + linkType: hard + +"side-channel@npm:^1.0.4": + version: 1.0.6 + resolution: "side-channel@npm:1.0.6" + dependencies: + call-bind: ^1.0.7 + es-errors: ^1.3.0 + get-intrinsic: ^1.2.4 + object-inspect: ^1.13.1 + checksum: bfc1afc1827d712271453e91b7cd3878ac0efd767495fd4e594c4c2afaa7963b7b510e249572bfd54b0527e66e4a12b61b80c061389e129755f34c493aad9b97 + languageName: node + linkType: hard + +"signal-exit@npm:^3.0.2, signal-exit@npm:^3.0.3": + version: 3.0.7 + resolution: "signal-exit@npm:3.0.7" + checksum: a2f098f247adc367dffc27845853e9959b9e88b01cb301658cfe4194352d8d2bb32e18467c786a7fe15f1d44b233ea35633d076d5e737870b7139949d1ab6318 + languageName: node + linkType: hard + +"signal-exit@npm:^4.0.1": + version: 4.1.0 + resolution: "signal-exit@npm:4.1.0" + checksum: 64c757b498cb8629ffa5f75485340594d2f8189e9b08700e69199069c8e3070fb3e255f7ab873c05dc0b3cec412aea7402e10a5990cb6a050bd33ba062a6c549 + languageName: node + linkType: hard + +"sirv@npm:^2.0.3": + version: 2.0.4 + resolution: "sirv@npm:2.0.4" + dependencies: + "@polka/url": ^1.0.0-next.24 + mrmime: ^2.0.0 + totalist: ^3.0.0 + checksum: 6853384a51d6ee9377dd657e2b257e0e98b29abbfbfa6333e105197f0f100c8c56a4520b47028b04ab1833cf2312526206f38fcd4f891c6df453f40da1a15a57 + languageName: node + linkType: hard + +"sisteransi@npm:^1.0.5": + version: 1.0.5 + resolution: "sisteransi@npm:1.0.5" + checksum: aba6438f46d2bfcef94cf112c835ab395172c75f67453fe05c340c770d3c402363018ae1ab4172a1026a90c47eaccf3af7b6ff6fa749a680c2929bd7fa2b37a4 + languageName: node + linkType: hard + +"sitemap@npm:^7.1.1": + version: 7.1.1 + resolution: "sitemap@npm:7.1.1" + dependencies: + "@types/node": ^17.0.5 + "@types/sax": ^1.2.1 + arg: ^5.0.0 + sax: ^1.2.4 + bin: + sitemap: dist/cli.js + checksum: 87a6d21b0d4a33b8c611d3bb8543d02b813c0ebfce014213ef31849b5c1439005644f19ad1593ec89815f6101355f468c9a02c251d09aa03f6fddd17e23c4be4 + languageName: node + linkType: hard + +"skin-tone@npm:^2.0.0": + version: 2.0.0 + resolution: "skin-tone@npm:2.0.0" + dependencies: + unicode-emoji-modifier-base: ^1.0.0 + checksum: 19de157586b8019cacc55eb25d9d640f00fc02415761f3e41a4527142970fd4e7f6af0333bc90e879858766c20a976107bb386ffd4c812289c01d51f2c8d182c + languageName: node + linkType: hard + +"slash@npm:^3.0.0": + version: 3.0.0 + resolution: "slash@npm:3.0.0" + checksum: 94a93fff615f25a999ad4b83c9d5e257a7280c90a32a7cb8b4a87996e4babf322e469c42b7f649fd5796edd8687652f3fb452a86dc97a816f01113183393f11c + languageName: node + linkType: hard + +"slash@npm:^4.0.0": + version: 4.0.0 + resolution: "slash@npm:4.0.0" + checksum: da8e4af73712253acd21b7853b7e0dbba776b786e82b010a5bfc8b5051a1db38ed8aba8e1e8f400dd2c9f373be91eb1c42b66e91abb407ff42b10feece5e1d2d + languageName: node + linkType: hard + +"smart-buffer@npm:^4.2.0": + version: 4.2.0 + resolution: "smart-buffer@npm:4.2.0" + checksum: b5167a7142c1da704c0e3af85c402002b597081dd9575031a90b4f229ca5678e9a36e8a374f1814c8156a725d17008ae3bde63b92f9cfd132526379e580bec8b + languageName: node + linkType: hard + +"snake-case@npm:^3.0.4": + version: 3.0.4 + resolution: "snake-case@npm:3.0.4" + dependencies: + dot-case: ^3.0.4 + tslib: ^2.0.3 + checksum: 0a7a79900bbb36f8aaa922cf111702a3647ac6165736d5dc96d3ef367efc50465cac70c53cd172c382b022dac72ec91710608e5393de71f76d7142e6fd80e8a3 + languageName: node + linkType: hard + +"sockjs@npm:^0.3.24": + version: 0.3.24 + resolution: "sockjs@npm:0.3.24" + dependencies: + faye-websocket: ^0.11.3 + uuid: ^8.3.2 + websocket-driver: ^0.7.4 + checksum: 355309b48d2c4e9755349daa29cea1c0d9ee23e49b983841c6bf7a20276b00d3c02343f9f33f26d2ee8b261a5a02961b52a25c8da88b2538c5b68d3071b4934c + languageName: node + linkType: hard + +"socks-proxy-agent@npm:^8.0.3": + version: 8.0.3 + resolution: "socks-proxy-agent@npm:8.0.3" + dependencies: + agent-base: ^7.1.1 + debug: ^4.3.4 + socks: ^2.7.1 + checksum: 8fab38821c327c190c28f1658087bc520eb065d55bc07b4a0fdf8d1e0e7ad5d115abbb22a95f94f944723ea969dd771ad6416b1e3cde9060c4c71f705c8b85c5 + languageName: node + linkType: hard + +"socks@npm:^2.7.1": + version: 2.8.3 + resolution: "socks@npm:2.8.3" + dependencies: + ip-address: ^9.0.5 + smart-buffer: ^4.2.0 + checksum: 7a6b7f6eedf7482b9e4597d9a20e09505824208006ea8f2c49b71657427f3c137ca2ae662089baa73e1971c62322d535d9d0cf1c9235cf6f55e315c18203eadd + languageName: node + linkType: hard + +"sort-css-media-queries@npm:2.2.0": + version: 2.2.0 + resolution: "sort-css-media-queries@npm:2.2.0" + checksum: c090c9a27be40f3e50f5f9bc9d85a8af0e2c5152565eca34bdb028d952749bce169bc5abef21a5a385ca6221a0869640c9faf58f082ac46de9085ebdb506291f + languageName: node + linkType: hard + +"source-map-js@npm:^1.0.1, source-map-js@npm:^1.2.0": + version: 1.2.0 + resolution: "source-map-js@npm:1.2.0" + checksum: 791a43306d9223792e84293b00458bf102a8946e7188f3db0e4e22d8d530b5f80a4ce468eb5ec0bf585443ad55ebbd630bf379c98db0b1f317fd902500217f97 + languageName: node + linkType: hard + +"source-map-support@npm:~0.5.20": + version: 0.5.21 + resolution: "source-map-support@npm:0.5.21" + dependencies: + buffer-from: ^1.0.0 + source-map: ^0.6.0 + checksum: 43e98d700d79af1d36f859bdb7318e601dfc918c7ba2e98456118ebc4c4872b327773e5a1df09b0524e9e5063bb18f0934538eace60cca2710d1fa687645d137 + languageName: node + linkType: hard + +"source-map@npm:^0.6.0, source-map@npm:~0.6.0": + version: 0.6.1 + resolution: "source-map@npm:0.6.1" + checksum: 59ce8640cf3f3124f64ac289012c2b8bd377c238e316fb323ea22fbfe83da07d81e000071d7242cad7a23cd91c7de98e4df8830ec3f133cb6133a5f6e9f67bc2 + languageName: node + linkType: hard + +"source-map@npm:^0.7.0": + version: 0.7.4 + resolution: "source-map@npm:0.7.4" + checksum: 01cc5a74b1f0e1d626a58d36ad6898ea820567e87f18dfc9d24a9843a351aaa2ec09b87422589906d6ff1deed29693e176194dc88bcae7c9a852dc74b311dbf5 + languageName: node + linkType: hard + +"space-separated-tokens@npm:^2.0.0": + version: 2.0.2 + resolution: "space-separated-tokens@npm:2.0.2" + checksum: 202e97d7ca1ba0758a0aa4fe226ff98142073bcceeff2da3aad037968878552c3bbce3b3231970025375bbba5aee00c5b8206eda408da837ab2dc9c0f26be990 + languageName: node + linkType: hard + +"spdy-transport@npm:^3.0.0": + version: 3.0.0 + resolution: "spdy-transport@npm:3.0.0" + dependencies: + debug: ^4.1.0 + detect-node: ^2.0.4 + hpack.js: ^2.1.6 + obuf: ^1.1.2 + readable-stream: ^3.0.6 + wbuf: ^1.7.3 + checksum: 0fcaad3b836fb1ec0bdd39fa7008b9a7a84a553f12be6b736a2512613b323207ffc924b9551cef0378f7233c85916cff1118652e03a730bdb97c0e042243d56c + languageName: node + linkType: hard + +"spdy@npm:^4.0.2": + version: 4.0.2 + resolution: "spdy@npm:4.0.2" + dependencies: + debug: ^4.1.0 + handle-thing: ^2.0.0 + http-deceiver: ^1.2.7 + select-hose: ^2.0.0 + spdy-transport: ^3.0.0 + checksum: 2c739d0ff6f56ad36d2d754d0261d5ec358457bea7cbf77b1b05b0c6464f2ce65b85f196305f50b7bd9120723eb94bae9933466f28e67e5cd8cde4e27f1d75f8 + languageName: node + linkType: hard + +"sprintf-js@npm:^1.1.3": + version: 1.1.3 + resolution: "sprintf-js@npm:1.1.3" + checksum: a3fdac7b49643875b70864a9d9b469d87a40dfeaf5d34d9d0c5b1cda5fd7d065531fcb43c76357d62254c57184a7b151954156563a4d6a747015cfb41021cad0 + languageName: node + linkType: hard + +"sprintf-js@npm:~1.0.2": + version: 1.0.3 + resolution: "sprintf-js@npm:1.0.3" + checksum: 19d79aec211f09b99ec3099b5b2ae2f6e9cdefe50bc91ac4c69144b6d3928a640bb6ae5b3def70c2e85a2c3d9f5ec2719921e3a59d3ca3ef4b2fd1a4656a0df3 + languageName: node + linkType: hard + +"srcset@npm:^4.0.0": + version: 4.0.0 + resolution: "srcset@npm:4.0.0" + checksum: aceb898c9281101ef43bfbf96bf04dfae828e1bf942a45df6fad74ae9f8f0a425f4bca1480e0d22879beb40dd2bc6947e0e1e5f4d307a714666196164bc5769d + languageName: node + linkType: hard + +"ssri@npm:^10.0.0": + version: 10.0.6 + resolution: "ssri@npm:10.0.6" + dependencies: + minipass: ^7.0.3 + checksum: 4603d53a05bcd44188747d38f1cc43833b9951b5a1ee43ba50535bdfc5fe4a0897472dbe69837570a5417c3c073377ef4f8c1a272683b401857f72738ee57299 + languageName: node + linkType: hard + +"statuses@npm:2.0.1": + version: 2.0.1 + resolution: "statuses@npm:2.0.1" + checksum: 18c7623fdb8f646fb213ca4051be4df7efb3484d4ab662937ca6fbef7ced9b9e12842709872eb3020cc3504b93bde88935c9f6417489627a7786f24f8031cbcb + languageName: node + linkType: hard + +"statuses@npm:>= 1.4.0 < 2": + version: 1.5.0 + resolution: "statuses@npm:1.5.0" + checksum: c469b9519de16a4bb19600205cffb39ee471a5f17b82589757ca7bd40a8d92ebb6ed9f98b5a540c5d302ccbc78f15dc03cc0280dd6e00df1335568a5d5758a5c + languageName: node + linkType: hard + +"std-env@npm:^3.0.1": + version: 3.7.0 + resolution: "std-env@npm:3.7.0" + checksum: 4f489d13ff2ab838c9acd4ed6b786b51aa52ecacdfeaefe9275fcb220ff2ac80c6e95674723508fd29850a694569563a8caaaea738eb82ca16429b3a0b50e510 + languageName: node + linkType: hard + +"string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^4.1.0, string-width@npm:^4.2.0": + version: 4.2.3 + resolution: "string-width@npm:4.2.3" + dependencies: + emoji-regex: ^8.0.0 + is-fullwidth-code-point: ^3.0.0 + strip-ansi: ^6.0.1 + checksum: e52c10dc3fbfcd6c3a15f159f54a90024241d0f149cf8aed2982a2d801d2e64df0bf1dc351cf8e95c3319323f9f220c16e740b06faecd53e2462df1d2b5443fb + languageName: node + linkType: hard + +"string-width@npm:^5.0.1, string-width@npm:^5.1.2": + version: 5.1.2 + resolution: "string-width@npm:5.1.2" + dependencies: + eastasianwidth: ^0.2.0 + emoji-regex: ^9.2.2 + strip-ansi: ^7.0.1 + checksum: 7369deaa29f21dda9a438686154b62c2c5f661f8dda60449088f9f980196f7908fc39fdd1803e3e01541970287cf5deae336798337e9319a7055af89dafa7193 + languageName: node + linkType: hard + +"string_decoder@npm:^1.1.1": + version: 1.3.0 + resolution: "string_decoder@npm:1.3.0" + dependencies: + safe-buffer: ~5.2.0 + checksum: 8417646695a66e73aefc4420eb3b84cc9ffd89572861fe004e6aeb13c7bc00e2f616247505d2dbbef24247c372f70268f594af7126f43548565c68c117bdeb56 + languageName: node + linkType: hard + +"string_decoder@npm:~1.1.1": + version: 1.1.1 + resolution: "string_decoder@npm:1.1.1" + dependencies: + safe-buffer: ~5.1.0 + checksum: 9ab7e56f9d60a28f2be697419917c50cac19f3e8e6c28ef26ed5f4852289fe0de5d6997d29becf59028556f2c62983790c1d9ba1e2a3cc401768ca12d5183a5b + languageName: node + linkType: hard + +"stringify-entities@npm:^4.0.0": + version: 4.0.4 + resolution: "stringify-entities@npm:4.0.4" + dependencies: + character-entities-html4: ^2.0.0 + character-entities-legacy: ^3.0.0 + checksum: ac1344ef211eacf6cf0a0a8feaf96f9c36083835b406560d2c6ff5a87406a41b13f2f0b4c570a3b391f465121c4fd6822b863ffb197e8c0601a64097862cc5b5 + languageName: node + linkType: hard + +"stringify-object@npm:^3.3.0": + version: 3.3.0 + resolution: "stringify-object@npm:3.3.0" + dependencies: + get-own-enumerable-property-symbols: ^3.0.0 + is-obj: ^1.0.1 + is-regexp: ^1.0.0 + checksum: 6827a3f35975cfa8572e8cd3ed4f7b262def260af18655c6fde549334acdac49ddba69f3c861ea5a6e9c5a4990fe4ae870b9c0e6c31019430504c94a83b7a154 + languageName: node + linkType: hard + +"strip-ansi-cjs@npm:strip-ansi@^6.0.1, strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1": + version: 6.0.1 + resolution: "strip-ansi@npm:6.0.1" + dependencies: + ansi-regex: ^5.0.1 + checksum: f3cd25890aef3ba6e1a74e20896c21a46f482e93df4a06567cebf2b57edabb15133f1f94e57434e0a958d61186087b1008e89c94875d019910a213181a14fc8c + languageName: node + linkType: hard + +"strip-ansi@npm:^7.0.1": + version: 7.1.0 + resolution: "strip-ansi@npm:7.1.0" + dependencies: + ansi-regex: ^6.0.1 + checksum: 859c73fcf27869c22a4e4d8c6acfe690064659e84bef9458aa6d13719d09ca88dcfd40cbf31fd0be63518ea1a643fe070b4827d353e09533a5b0b9fd4553d64d + languageName: node + linkType: hard + +"strip-bom-string@npm:^1.0.0": + version: 1.0.0 + resolution: "strip-bom-string@npm:1.0.0" + checksum: 5635a3656d8512a2c194d6c8d5dee7ef0dde6802f7be9413b91e201981ad4132506656d9cf14137f019fd50f0269390d91c7f6a2601b1bee039a4859cfce4934 + languageName: node + linkType: hard + +"strip-final-newline@npm:^2.0.0": + version: 2.0.0 + resolution: "strip-final-newline@npm:2.0.0" + checksum: 69412b5e25731e1938184b5d489c32e340605bb611d6140344abc3421b7f3c6f9984b21dff296dfcf056681b82caa3bb4cc996a965ce37bcfad663e92eae9c64 + languageName: node + linkType: hard + +"strip-json-comments@npm:^3.1.1": + version: 3.1.1 + resolution: "strip-json-comments@npm:3.1.1" + checksum: 492f73e27268f9b1c122733f28ecb0e7e8d8a531a6662efbd08e22cccb3f9475e90a1b82cab06a392f6afae6d2de636f977e231296400d0ec5304ba70f166443 + languageName: node + linkType: hard + +"strip-json-comments@npm:~2.0.1": + version: 2.0.1 + resolution: "strip-json-comments@npm:2.0.1" + checksum: 1074ccb63270d32ca28edfb0a281c96b94dc679077828135141f27d52a5a398ef5e78bcf22809d23cadc2b81dfbe345eb5fd8699b385c8b1128907dec4a7d1e1 + languageName: node + linkType: hard + +"style-to-object@npm:^0.4.0": + version: 0.4.4 + resolution: "style-to-object@npm:0.4.4" + dependencies: + inline-style-parser: 0.1.1 + checksum: 41656c06f93ac0a7ac260ebc2f9d09a8bd74b8ec1836f358cc58e169235835a3a356977891d2ebbd76f0e08a53616929069199f9cce543214d3dc98346e19c9a + languageName: node + linkType: hard + +"style-to-object@npm:^1.0.0": + version: 1.0.6 + resolution: "style-to-object@npm:1.0.6" + dependencies: + inline-style-parser: 0.2.3 + checksum: 5b58295dcc2c21f1da1b9308de1e81b4a987b876a177e677453a76b2e3151a0e21afc630e99c1ea6c82dd8dbec0d01a8b1a51a829422aca055162b03e52572a9 + languageName: node + linkType: hard + +"stylehacks@npm:^6.1.1": + version: 6.1.1 + resolution: "stylehacks@npm:6.1.1" + dependencies: + browserslist: ^4.23.0 + postcss-selector-parser: ^6.0.16 + peerDependencies: + postcss: ^8.4.31 + checksum: 7bef69822280a23817caa43969de76d77ba34042e9f1f7baaeda8f22b1d8c20f1f839ad028552c169e158e387830f176feccd0324b07ef6ec657cba1dd0b2466 + languageName: node + linkType: hard + +"stylis@npm:^4.1.3": + version: 4.3.2 + resolution: "stylis@npm:4.3.2" + checksum: 0faa8a97ff38369f47354376cd9f0def9bf12846da54c28c5987f64aaf67dcb6f00dce88a8632013bfb823b2c4d1d62a44f4ac20363a3505a7ab4e21b70179fc + languageName: node + linkType: hard + +"supports-color@npm:^5.3.0": + version: 5.5.0 + resolution: "supports-color@npm:5.5.0" + dependencies: + has-flag: ^3.0.0 + checksum: 95f6f4ba5afdf92f495b5a912d4abee8dcba766ae719b975c56c084f5004845f6f5a5f7769f52d53f40e21952a6d87411bafe34af4a01e65f9926002e38e1dac + languageName: node + linkType: hard + +"supports-color@npm:^7.1.0": + version: 7.2.0 + resolution: "supports-color@npm:7.2.0" + dependencies: + has-flag: ^4.0.0 + checksum: 3dda818de06ebbe5b9653e07842d9479f3555ebc77e9a0280caf5a14fb877ffee9ed57007c3b78f5a6324b8dbeec648d9e97a24e2ed9fdb81ddc69ea07100f4a + languageName: node + linkType: hard + +"supports-color@npm:^8.0.0": + version: 8.1.1 + resolution: "supports-color@npm:8.1.1" + dependencies: + has-flag: ^4.0.0 + checksum: c052193a7e43c6cdc741eb7f378df605636e01ad434badf7324f17fb60c69a880d8d8fcdcb562cf94c2350e57b937d7425ab5b8326c67c2adc48f7c87c1db406 + languageName: node + linkType: hard + +"supports-preserve-symlinks-flag@npm:^1.0.0": + version: 1.0.0 + resolution: "supports-preserve-symlinks-flag@npm:1.0.0" + checksum: 53b1e247e68e05db7b3808b99b892bd36fb096e6fba213a06da7fab22045e97597db425c724f2bbd6c99a3c295e1e73f3e4de78592289f38431049e1277ca0ae + languageName: node + linkType: hard + +"svg-parser@npm:^2.0.4": + version: 2.0.4 + resolution: "svg-parser@npm:2.0.4" + checksum: b3de6653048212f2ae7afe4a423e04a76ec6d2d06e1bf7eacc618a7c5f7df7faa5105561c57b94579ec831fbbdbf5f190ba56a9205ff39ed13eabdf8ab086ddf + languageName: node + linkType: hard + +"svgo@npm:^3.0.2, svgo@npm:^3.2.0": + version: 3.3.2 + resolution: "svgo@npm:3.3.2" + dependencies: + "@trysound/sax": 0.2.0 + commander: ^7.2.0 + css-select: ^5.1.0 + css-tree: ^2.3.1 + css-what: ^6.1.0 + csso: ^5.0.5 + picocolors: ^1.0.0 + bin: + svgo: ./bin/svgo + checksum: a3f8aad597dec13ab24e679c4c218147048dc1414fe04e99447c5f42a6e077b33d712d306df84674b5253b98c9b84dfbfb41fdd08552443b04946e43d03e054e + languageName: node + linkType: hard + +"tapable@npm:^1.0.0": + version: 1.1.3 + resolution: "tapable@npm:1.1.3" + checksum: 53ff4e7c3900051c38cc4faab428ebfd7e6ad0841af5a7ac6d5f3045c5b50e88497bfa8295b4b3fbcadd94993c9e358868b78b9fb249a76cb8b018ac8dccafd7 + languageName: node + linkType: hard + +"tapable@npm:^2.0.0, tapable@npm:^2.1.1, tapable@npm:^2.2.0, tapable@npm:^2.2.1": + version: 2.2.1 + resolution: "tapable@npm:2.2.1" + checksum: 3b7a1b4d86fa940aad46d9e73d1e8739335efd4c48322cb37d073eb6f80f5281889bf0320c6d8ffcfa1a0dd5bfdbd0f9d037e252ef972aca595330538aac4d51 + languageName: node + linkType: hard + +"tar@npm:^6.1.11, tar@npm:^6.1.2": + version: 6.2.1 + resolution: "tar@npm:6.2.1" + dependencies: + chownr: ^2.0.0 + fs-minipass: ^2.0.0 + minipass: ^5.0.0 + minizlib: ^2.1.1 + mkdirp: ^1.0.3 + yallist: ^4.0.0 + checksum: f1322768c9741a25356c11373bce918483f40fa9a25c69c59410c8a1247632487edef5fe76c5f12ac51a6356d2f1829e96d2bc34098668a2fc34d76050ac2b6c + languageName: node + linkType: hard + +"terser-webpack-plugin@npm:^5.3.10, terser-webpack-plugin@npm:^5.3.9": + version: 5.3.10 + resolution: "terser-webpack-plugin@npm:5.3.10" + dependencies: + "@jridgewell/trace-mapping": ^0.3.20 + jest-worker: ^27.4.5 + schema-utils: ^3.1.1 + serialize-javascript: ^6.0.1 + terser: ^5.26.0 + peerDependencies: + webpack: ^5.1.0 + peerDependenciesMeta: + "@swc/core": + optional: true + esbuild: + optional: true + uglify-js: + optional: true + checksum: bd6e7596cf815f3353e2a53e79cbdec959a1b0276f5e5d4e63e9d7c3c5bb5306df567729da287d1c7b39d79093e56863c569c42c6c24cc34c76aa313bd2cbcea + languageName: node + linkType: hard + +"terser@npm:^5.10.0, terser@npm:^5.15.1, terser@npm:^5.26.0": + version: 5.31.0 + resolution: "terser@npm:5.31.0" + dependencies: + "@jridgewell/source-map": ^0.3.3 + acorn: ^8.8.2 + commander: ^2.20.0 + source-map-support: ~0.5.20 + bin: + terser: bin/terser + checksum: 48f14229618866bba8a9464e9d0e7fdcb6b6488b3a6c4690fcf4d48df65bf45959d5ae8c02f1a0b3f3dd035a9ae340b715e1e547645b112dc3963daa3564699a + languageName: node + linkType: hard + +"text-table@npm:^0.2.0": + version: 0.2.0 + resolution: "text-table@npm:0.2.0" + checksum: b6937a38c80c7f84d9c11dd75e49d5c44f71d95e810a3250bd1f1797fc7117c57698204adf676b71497acc205d769d65c16ae8fa10afad832ae1322630aef10a + languageName: node + linkType: hard + +"thunky@npm:^1.0.2": + version: 1.1.0 + resolution: "thunky@npm:1.1.0" + checksum: 993096c472b6b8f30e29dc777a8d17720e4cab448375041f20c0cb802a09a7fb2217f2a3e8cdc11851faa71c957e2db309357367fc9d7af3cb7a4d00f4b66034 + languageName: node + linkType: hard + +"tiny-invariant@npm:^1.0.2": + version: 1.3.3 + resolution: "tiny-invariant@npm:1.3.3" + checksum: 5e185c8cc2266967984ce3b352a4e57cb89dad5a8abb0dea21468a6ecaa67cd5bb47a3b7a85d08041008644af4f667fb8b6575ba38ba5fb00b3b5068306e59fe + languageName: node + linkType: hard + +"tiny-warning@npm:^1.0.0": + version: 1.0.3 + resolution: "tiny-warning@npm:1.0.3" + checksum: da62c4acac565902f0624b123eed6dd3509bc9a8d30c06e017104bedcf5d35810da8ff72864400ad19c5c7806fc0a8323c68baf3e326af7cb7d969f846100d71 + languageName: node + linkType: hard + +"to-fast-properties@npm:^2.0.0": + version: 2.0.0 + resolution: "to-fast-properties@npm:2.0.0" + checksum: be2de62fe58ead94e3e592680052683b1ec986c72d589e7b21e5697f8744cdbf48c266fa72f6c15932894c10187b5f54573a3bcf7da0bfd964d5caf23d436168 + languageName: node + linkType: hard + +"to-regex-range@npm:^5.0.1": + version: 5.0.1 + resolution: "to-regex-range@npm:5.0.1" + dependencies: + is-number: ^7.0.0 + checksum: f76fa01b3d5be85db6a2a143e24df9f60dd047d151062d0ba3df62953f2f697b16fe5dad9b0ac6191c7efc7b1d9dcaa4b768174b7b29da89d4428e64bc0a20ed + languageName: node + linkType: hard + +"toidentifier@npm:1.0.1": + version: 1.0.1 + resolution: "toidentifier@npm:1.0.1" + checksum: 952c29e2a85d7123239b5cfdd889a0dde47ab0497f0913d70588f19c53f7e0b5327c95f4651e413c74b785147f9637b17410ac8c846d5d4a20a5a33eb6dc3a45 + languageName: node + linkType: hard + +"totalist@npm:^3.0.0": + version: 3.0.1 + resolution: "totalist@npm:3.0.1" + checksum: 5132d562cf88ff93fd710770a92f31dbe67cc19b5c6ccae2efc0da327f0954d211bbfd9456389655d726c624f284b4a23112f56d1da931ca7cfabbe1f45e778a + languageName: node + linkType: hard + +"trim-lines@npm:^3.0.0": + version: 3.0.1 + resolution: "trim-lines@npm:3.0.1" + checksum: e241da104682a0e0d807222cc1496b92e716af4db7a002f4aeff33ae6a0024fef93165d49eab11aa07c71e1347c42d46563f91dfaa4d3fb945aa535cdead53ed + languageName: node + linkType: hard + +"trough@npm:^2.0.0": + version: 2.2.0 + resolution: "trough@npm:2.2.0" + checksum: 6097df63169aca1f9b08c263b1b501a9b878387f46e161dde93f6d0bba7febba93c95f876a293c5ea370f6cb03bcb687b2488c8955c3cfb66c2c0161ea8c00f6 + languageName: node + linkType: hard + +"ts-dedent@npm:^2.2.0": + version: 2.2.0 + resolution: "ts-dedent@npm:2.2.0" + checksum: 93ed8f7878b6d5ed3c08d99b740010eede6bccfe64bce61c5a4da06a2c17d6ddbb80a8c49c2d15251de7594a4f93ffa21dd10e7be75ef66a4dc9951b4a94e2af + languageName: node + linkType: hard + +"tslib@npm:^2.0.3, tslib@npm:^2.6.0": + version: 2.6.2 + resolution: "tslib@npm:2.6.2" + checksum: 329ea56123005922f39642318e3d1f0f8265d1e7fcb92c633e0809521da75eeaca28d2cf96d7248229deb40e5c19adf408259f4b9640afd20d13aecc1430f3ad + languageName: node + linkType: hard + +"type-fest@npm:^1.0.1": + version: 1.4.0 + resolution: "type-fest@npm:1.4.0" + checksum: b011c3388665b097ae6a109a437a04d6f61d81b7357f74cbcb02246f2f5bd72b888ae33631b99871388122ba0a87f4ff1c94078e7119ff22c70e52c0ff828201 + languageName: node + linkType: hard + +"type-fest@npm:^2.13.0, type-fest@npm:^2.5.0": + version: 2.19.0 + resolution: "type-fest@npm:2.19.0" + checksum: a4ef07ece297c9fba78fc1bd6d85dff4472fe043ede98bd4710d2615d15776902b595abf62bd78339ed6278f021235fb28a96361f8be86ed754f778973a0d278 + languageName: node + linkType: hard + +"type-is@npm:~1.6.18": + version: 1.6.18 + resolution: "type-is@npm:1.6.18" + dependencies: + media-typer: 0.3.0 + mime-types: ~2.1.24 + checksum: 2c8e47675d55f8b4e404bcf529abdf5036c537a04c2b20177bcf78c9e3c1da69da3942b1346e6edb09e823228c0ee656ef0e033765ec39a70d496ef601a0c657 + languageName: node + linkType: hard + +"typedarray-to-buffer@npm:^3.1.5": + version: 3.1.5 + resolution: "typedarray-to-buffer@npm:3.1.5" + dependencies: + is-typedarray: ^1.0.0 + checksum: 99c11aaa8f45189fcfba6b8a4825fd684a321caa9bd7a76a27cf0c7732c174d198b99f449c52c3818107430b5f41c0ccbbfb75cb2ee3ca4a9451710986d61a60 + languageName: node + linkType: hard + +"typescript@npm:~5.2.2": + version: 5.2.2 + resolution: "typescript@npm:5.2.2" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 7912821dac4d962d315c36800fe387cdc0a6298dba7ec171b350b4a6e988b51d7b8f051317786db1094bd7431d526b648aba7da8236607febb26cf5b871d2d3c + languageName: node + linkType: hard + +"typescript@patch:typescript@~5.2.2#~builtin<compat/typescript>": + version: 5.2.2 + resolution: "typescript@patch:typescript@npm%3A5.2.2#~builtin<compat/typescript>::version=5.2.2&hash=1f5320" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 07106822b4305de3f22835cbba949a2b35451cad50888759b6818421290ff95d522b38ef7919e70fb381c5fe9c1c643d7dea22c8b31652a717ddbd57b7f4d554 + languageName: node + linkType: hard + +"undici-types@npm:~5.26.4": + version: 5.26.5 + resolution: "undici-types@npm:5.26.5" + checksum: 3192ef6f3fd5df652f2dc1cd782b49d6ff14dc98e5dced492aa8a8c65425227da5da6aafe22523c67f035a272c599bb89cfe803c1db6311e44bed3042fc25487 + languageName: node + linkType: hard + +"unicode-canonical-property-names-ecmascript@npm:^2.0.0": + version: 2.0.0 + resolution: "unicode-canonical-property-names-ecmascript@npm:2.0.0" + checksum: 39be078afd014c14dcd957a7a46a60061bc37c4508ba146517f85f60361acf4c7539552645ece25de840e17e293baa5556268d091ca6762747fdd0c705001a45 + languageName: node + linkType: hard + +"unicode-emoji-modifier-base@npm:^1.0.0": + version: 1.0.0 + resolution: "unicode-emoji-modifier-base@npm:1.0.0" + checksum: 6e1521d35fa69493207eb8b41f8edb95985d8b3faf07c01d820a1830b5e8403e20002563e2f84683e8e962a49beccae789f0879356bf92a4ec7a4dd8e2d16fdb + languageName: node + linkType: hard + +"unicode-match-property-ecmascript@npm:^2.0.0": + version: 2.0.0 + resolution: "unicode-match-property-ecmascript@npm:2.0.0" + dependencies: + unicode-canonical-property-names-ecmascript: ^2.0.0 + unicode-property-aliases-ecmascript: ^2.0.0 + checksum: 1f34a7434a23df4885b5890ac36c5b2161a809887000be560f56ad4b11126d433c0c1c39baf1016bdabed4ec54829a6190ee37aa24919aa116dc1a5a8a62965a + languageName: node + linkType: hard + +"unicode-match-property-value-ecmascript@npm:^2.1.0": + version: 2.1.0 + resolution: "unicode-match-property-value-ecmascript@npm:2.1.0" + checksum: 8d6f5f586b9ce1ed0e84a37df6b42fdba1317a05b5df0c249962bd5da89528771e2d149837cad11aa26bcb84c35355cb9f58a10c3d41fa3b899181ece6c85220 + languageName: node + linkType: hard + +"unicode-property-aliases-ecmascript@npm:^2.0.0": + version: 2.1.0 + resolution: "unicode-property-aliases-ecmascript@npm:2.1.0" + checksum: 243524431893649b62cc674d877bd64ef292d6071dd2fd01ab4d5ad26efbc104ffcd064f93f8a06b7e4ec54c172bf03f6417921a0d8c3a9994161fe1f88f815b + languageName: node + linkType: hard + +"unified@npm:^11.0.0, unified@npm:^11.0.3, unified@npm:^11.0.4": + version: 11.0.4 + resolution: "unified@npm:11.0.4" + dependencies: + "@types/unist": ^3.0.0 + bail: ^2.0.0 + devlop: ^1.0.0 + extend: ^3.0.0 + is-plain-obj: ^4.0.0 + trough: ^2.0.0 + vfile: ^6.0.0 + checksum: cfb023913480ac2bd5e787ffb8c27782c43e6be4a55f8f1c288233fce46a7ebe7718ccc5adb80bf8d56b7ef85f5fc32239c7bfccda006f9f2382e0cc2e2a77e4 + languageName: node + linkType: hard + +"unique-filename@npm:^3.0.0": + version: 3.0.0 + resolution: "unique-filename@npm:3.0.0" + dependencies: + unique-slug: ^4.0.0 + checksum: 8e2f59b356cb2e54aab14ff98a51ac6c45781d15ceaab6d4f1c2228b780193dc70fae4463ce9e1df4479cb9d3304d7c2043a3fb905bdeca71cc7e8ce27e063df + languageName: node + linkType: hard + +"unique-slug@npm:^4.0.0": + version: 4.0.0 + resolution: "unique-slug@npm:4.0.0" + dependencies: + imurmurhash: ^0.1.4 + checksum: 0884b58365af59f89739e6f71e3feacb5b1b41f2df2d842d0757933620e6de08eff347d27e9d499b43c40476cbaf7988638d3acb2ffbcb9d35fd035591adfd15 + languageName: node + linkType: hard + +"unique-string@npm:^3.0.0": + version: 3.0.0 + resolution: "unique-string@npm:3.0.0" + dependencies: + crypto-random-string: ^4.0.0 + checksum: 1a1e2e7d02eab1bb10f720475da735e1990c8a5ff34edd1a3b6bc31590cb4210b7a1233d779360cc622ce11c211e43afa1628dd658f35d3e6a89964b622940df + languageName: node + linkType: hard + +"unist-util-is@npm:^6.0.0": + version: 6.0.0 + resolution: "unist-util-is@npm:6.0.0" + dependencies: + "@types/unist": ^3.0.0 + checksum: f630a925126594af9993b091cf807b86811371e465b5049a6283e08537d3e6ba0f7e248e1e7dab52cfe33f9002606acef093441137181b327f6fe504884b20e2 + languageName: node + linkType: hard + +"unist-util-position-from-estree@npm:^2.0.0": + version: 2.0.0 + resolution: "unist-util-position-from-estree@npm:2.0.0" + dependencies: + "@types/unist": ^3.0.0 + checksum: d3b3048a5727c2367f64ef6dcc5b20c4717215ef8b1372ff9a7c426297c5d1e5776409938acd01531213e2cd2543218d16e73f9f862f318e9496e2c73bb18354 + languageName: node + linkType: hard + +"unist-util-position@npm:^5.0.0": + version: 5.0.0 + resolution: "unist-util-position@npm:5.0.0" + dependencies: + "@types/unist": ^3.0.0 + checksum: f89b27989b19f07878de9579cd8db2aa0194c8360db69e2c99bd2124a480d79c08f04b73a64daf01a8fb3af7cba65ff4b45a0b978ca243226084ad5f5d441dde + languageName: node + linkType: hard + +"unist-util-remove-position@npm:^5.0.0": + version: 5.0.0 + resolution: "unist-util-remove-position@npm:5.0.0" + dependencies: + "@types/unist": ^3.0.0 + unist-util-visit: ^5.0.0 + checksum: 8aabdb9d0e3e744141bc123d8f87b90835d521209ad3c6c4619d403b324537152f0b8f20dda839b40c3aa0abfbf1828b3635a7a8bb159c3ed469e743023510ee + languageName: node + linkType: hard + +"unist-util-stringify-position@npm:^3.0.0": + version: 3.0.3 + resolution: "unist-util-stringify-position@npm:3.0.3" + dependencies: + "@types/unist": ^2.0.0 + checksum: dbd66c15183607ca942a2b1b7a9f6a5996f91c0d30cf8966fb88955a02349d9eefd3974e9010ee67e71175d784c5a9fea915b0aa0b0df99dcb921b95c4c9e124 + languageName: node + linkType: hard + +"unist-util-stringify-position@npm:^4.0.0": + version: 4.0.0 + resolution: "unist-util-stringify-position@npm:4.0.0" + dependencies: + "@types/unist": ^3.0.0 + checksum: e2e7aee4b92ddb64d314b4ac89eef7a46e4c829cbd3ee4aee516d100772b490eb6b4974f653ba0717a0071ca6ea0770bf22b0a2ea62c65fcba1d071285e96324 + languageName: node + linkType: hard + +"unist-util-visit-parents@npm:^6.0.0": + version: 6.0.1 + resolution: "unist-util-visit-parents@npm:6.0.1" + dependencies: + "@types/unist": ^3.0.0 + unist-util-is: ^6.0.0 + checksum: 08927647c579f63b91aafcbec9966dc4a7d0af1e5e26fc69f4e3e6a01215084835a2321b06f3cbe7bf7914a852830fc1439f0fc3d7153d8804ac3ef851ddfa20 + languageName: node + linkType: hard + +"unist-util-visit@npm:^5.0.0": + version: 5.0.0 + resolution: "unist-util-visit@npm:5.0.0" + dependencies: + "@types/unist": ^3.0.0 + unist-util-is: ^6.0.0 + unist-util-visit-parents: ^6.0.0 + checksum: 9ec42e618e7e5d0202f3c191cd30791b51641285732767ee2e6bcd035931032e3c1b29093f4d7fd0c79175bbc1f26f24f26ee49770d32be76f8730a652a857e6 + languageName: node + linkType: hard + +"universalify@npm:^2.0.0": + version: 2.0.1 + resolution: "universalify@npm:2.0.1" + checksum: ecd8469fe0db28e7de9e5289d32bd1b6ba8f7183db34f3bfc4ca53c49891c2d6aa05f3fb3936a81285a905cc509fb641a0c3fc131ec786167eff41236ae32e60 + languageName: node + linkType: hard + +"unpipe@npm:1.0.0, unpipe@npm:~1.0.0": + version: 1.0.0 + resolution: "unpipe@npm:1.0.0" + checksum: 4fa18d8d8d977c55cb09715385c203197105e10a6d220087ec819f50cb68870f02942244f1017565484237f1f8c5d3cd413631b1ae104d3096f24fdfde1b4aa2 + languageName: node + linkType: hard + +"update-browserslist-db@npm:^1.0.13": + version: 1.0.16 + resolution: "update-browserslist-db@npm:1.0.16" + dependencies: + escalade: ^3.1.2 + picocolors: ^1.0.1 + peerDependencies: + browserslist: ">= 4.21.0" + bin: + update-browserslist-db: cli.js + checksum: 51b1f7189c9ea5925c80154b0a6fd3ec36106d07858d8f69826427d8edb4735d1801512c69eade38ba0814d7407d11f400d74440bbf3da0309f3d788017f35b2 + languageName: node + linkType: hard + +"update-notifier@npm:^6.0.2": + version: 6.0.2 + resolution: "update-notifier@npm:6.0.2" + dependencies: + boxen: ^7.0.0 + chalk: ^5.0.1 + configstore: ^6.0.0 + has-yarn: ^3.0.0 + import-lazy: ^4.0.0 + is-ci: ^3.0.1 + is-installed-globally: ^0.4.0 + is-npm: ^6.0.0 + is-yarn-global: ^0.4.0 + latest-version: ^7.0.0 + pupa: ^3.1.0 + semver: ^7.3.7 + semver-diff: ^4.0.0 + xdg-basedir: ^5.1.0 + checksum: 4bae7b3eca7b2068b6b87dde88c9dad24831fa913a5b83ecb39a7e4702c93e8b05fd9bcac5f1a005178f6e5dc859e0b3817ddda833d2a7ab92c6485e078b3cc8 + languageName: node + linkType: hard + +"uri-js@npm:^4.2.2, uri-js@npm:^4.4.1": + version: 4.4.1 + resolution: "uri-js@npm:4.4.1" + dependencies: + punycode: ^2.1.0 + checksum: 7167432de6817fe8e9e0c9684f1d2de2bb688c94388f7569f7dbdb1587c9f4ca2a77962f134ec90be0cc4d004c939ff0d05acc9f34a0db39a3c797dada262633 + languageName: node + linkType: hard + +"url-loader@npm:^4.1.1": + version: 4.1.1 + resolution: "url-loader@npm:4.1.1" + dependencies: + loader-utils: ^2.0.0 + mime-types: ^2.1.27 + schema-utils: ^3.0.0 + peerDependencies: + file-loader: "*" + webpack: ^4.0.0 || ^5.0.0 + peerDependenciesMeta: + file-loader: + optional: true + checksum: c1122a992c6cff70a7e56dfc2b7474534d48eb40b2cc75467cde0c6972e7597faf8e43acb4f45f93c2473645dfd803bcbc20960b57544dd1e4c96e77f72ba6fd + languageName: node + linkType: hard + +"util-deprecate@npm:^1.0.1, util-deprecate@npm:^1.0.2, util-deprecate@npm:~1.0.1": + version: 1.0.2 + resolution: "util-deprecate@npm:1.0.2" + checksum: 474acf1146cb2701fe3b074892217553dfcf9a031280919ba1b8d651a068c9b15d863b7303cb15bd00a862b498e6cf4ad7b4a08fb134edd5a6f7641681cb54a2 + languageName: node + linkType: hard + +"utila@npm:~0.4": + version: 0.4.0 + resolution: "utila@npm:0.4.0" + checksum: 97ffd3bd2bb80c773429d3fb8396469115cd190dded1e733f190d8b602bd0a1bcd6216b7ce3c4395ee3c79e3c879c19d268dbaae3093564cb169ad1212d436f4 + languageName: node + linkType: hard + +"utility-types@npm:^3.10.0": + version: 3.11.0 + resolution: "utility-types@npm:3.11.0" + checksum: 35a4866927bbea5d037726744028d05c6e37772ded2aabaca21480ce9380185436aef586ead525e327c7f3c640b1a3287769a12ef269c7b165a2ddd50ea6ad61 + languageName: node + linkType: hard + +"utils-merge@npm:1.0.1": + version: 1.0.1 + resolution: "utils-merge@npm:1.0.1" + checksum: c81095493225ecfc28add49c106ca4f09cdf56bc66731aa8dabc2edbbccb1e1bfe2de6a115e5c6a380d3ea166d1636410b62ef216bb07b3feb1cfde1d95d5080 + languageName: node + linkType: hard + +"uuid@npm:^8.3.2": + version: 8.3.2 + resolution: "uuid@npm:8.3.2" + bin: + uuid: dist/bin/uuid + checksum: 5575a8a75c13120e2f10e6ddc801b2c7ed7d8f3c8ac22c7ed0c7b2ba6383ec0abda88c905085d630e251719e0777045ae3236f04c812184b7c765f63a70e58df + languageName: node + linkType: hard + +"uuid@npm:^9.0.0": + version: 9.0.1 + resolution: "uuid@npm:9.0.1" + bin: + uuid: dist/bin/uuid + checksum: 39931f6da74e307f51c0fb463dc2462807531dc80760a9bff1e35af4316131b4fc3203d16da60ae33f07fdca5b56f3f1dd662da0c99fea9aaeab2004780cc5f4 + languageName: node + linkType: hard + +"uvu@npm:^0.5.0": + version: 0.5.6 + resolution: "uvu@npm:0.5.6" + dependencies: + dequal: ^2.0.0 + diff: ^5.0.0 + kleur: ^4.0.3 + sade: ^1.7.3 + bin: + uvu: bin.js + checksum: 09460a37975627de9fcad396e5078fb844d01aaf64a6399ebfcfd9e55f1c2037539b47611e8631f89be07656962af0cf48c334993db82b9ae9c3d25ce3862168 + languageName: node + linkType: hard + +"value-equal@npm:^1.0.1": + version: 1.0.1 + resolution: "value-equal@npm:1.0.1" + checksum: bb7ae1facc76b5cf8071aeb6c13d284d023fdb370478d10a5d64508e0e6e53bb459c4bbe34258df29d82e6f561f874f0105eba38de0e61fe9edd0bdce07a77a2 + languageName: node + linkType: hard + +"vary@npm:~1.1.2": + version: 1.1.2 + resolution: "vary@npm:1.1.2" + checksum: ae0123222c6df65b437669d63dfa8c36cee20a504101b2fcd97b8bf76f91259c17f9f2b4d70a1e3c6bbcee7f51b28392833adb6b2770b23b01abec84e369660b + languageName: node + linkType: hard + +"vfile-location@npm:^5.0.0": + version: 5.0.2 + resolution: "vfile-location@npm:5.0.2" + dependencies: + "@types/unist": ^3.0.0 + vfile: ^6.0.0 + checksum: b61c048cedad3555b4f007f390412c6503f58a6a130b58badf4ee340c87e0d7421e9c86bbc1494c57dedfccadb60f5176cc60ba3098209d99fb3a3d8804e4c38 + languageName: node + linkType: hard + +"vfile-message@npm:^4.0.0": + version: 4.0.2 + resolution: "vfile-message@npm:4.0.2" + dependencies: + "@types/unist": ^3.0.0 + unist-util-stringify-position: ^4.0.0 + checksum: 964e7e119f4c0e0270fc269119c41c96da20afa01acb7c9809a88365c8e0c64aa692fafbd952669382b978002ecd7ad31ef4446d85e8a22cdb62f6df20186c2d + languageName: node + linkType: hard + +"vfile@npm:^6.0.0, vfile@npm:^6.0.1": + version: 6.0.1 + resolution: "vfile@npm:6.0.1" + dependencies: + "@types/unist": ^3.0.0 + unist-util-stringify-position: ^4.0.0 + vfile-message: ^4.0.0 + checksum: 05ccee73aeb00402bc8a5d0708af299e9f4a33f5132805449099295085e3ca3b0d018328bad9ff44cf2e6f4cd364f1d558d3fb9b394243a25b2739207edcb0ed + languageName: node + linkType: hard + +"watchpack@npm:^2.4.1": + version: 2.4.1 + resolution: "watchpack@npm:2.4.1" + dependencies: + glob-to-regexp: ^0.4.1 + graceful-fs: ^4.1.2 + checksum: 5b0179348655dcdf19cac7cb4ff923fdc024d630650c0bf6bec8899cf47c60e19d4f810a88dba692ed0e7f684cf0fcffea86efdbf6c35d81f031e328043b7fab + languageName: node + linkType: hard + +"wbuf@npm:^1.1.0, wbuf@npm:^1.7.3": + version: 1.7.3 + resolution: "wbuf@npm:1.7.3" + dependencies: + minimalistic-assert: ^1.0.0 + checksum: 2abc306c96930b757972a1c4650eb6b25b5d99f24088714957f88629e137db569368c5de0e57986c89ea70db2f1df9bba11a87cb6d0c8694b6f53a0159fab3bf + languageName: node + linkType: hard + +"web-namespaces@npm:^2.0.0": + version: 2.0.1 + resolution: "web-namespaces@npm:2.0.1" + checksum: b6d9f02f1a43d0ef0848a812d89c83801d5bbad57d8bb61f02eb6d7eb794c3736f6cc2e1191664bb26136594c8218ac609f4069722c6f56d9fc2d808fa9271c6 + languageName: node + linkType: hard + +"web-worker@npm:^1.2.0": + version: 1.3.0 + resolution: "web-worker@npm:1.3.0" + checksum: ed1f869aefd1d81a43d0fbfe7b315a65beb6d7d2486b378c436a7047eed4216be34b2e6afca738b6fa95d016326b765f5f816355db33267dbf43b2b8a1837c0c + languageName: node + linkType: hard + +"webpack-bundle-analyzer@npm:^4.9.0": + version: 4.10.2 + resolution: "webpack-bundle-analyzer@npm:4.10.2" + dependencies: + "@discoveryjs/json-ext": 0.5.7 + acorn: ^8.0.4 + acorn-walk: ^8.0.0 + commander: ^7.2.0 + debounce: ^1.2.1 + escape-string-regexp: ^4.0.0 + gzip-size: ^6.0.0 + html-escaper: ^2.0.2 + opener: ^1.5.2 + picocolors: ^1.0.0 + sirv: ^2.0.3 + ws: ^7.3.1 + bin: + webpack-bundle-analyzer: lib/bin/analyzer.js + checksum: 4f0275e7d87bb6203a618ca5d2d4953943979d986fa2b91be1bf1ad0bcd22bec13398803273d11699f9fbcf106896311208a72d63fe5f8a47b687a226e598dc1 + languageName: node + linkType: hard + +"webpack-dev-middleware@npm:^5.3.4": + version: 5.3.4 + resolution: "webpack-dev-middleware@npm:5.3.4" + dependencies: + colorette: ^2.0.10 + memfs: ^3.4.3 + mime-types: ^2.1.31 + range-parser: ^1.2.1 + schema-utils: ^4.0.0 + peerDependencies: + webpack: ^4.0.0 || ^5.0.0 + checksum: 90cf3e27d0714c1a745454a1794f491b7076434939340605b9ee8718ba2b85385b120939754e9fdbd6569811e749dee53eec319e0d600e70e0b0baffd8e3fb13 + languageName: node + linkType: hard + +"webpack-dev-server@npm:^4.15.1": + version: 4.15.2 + resolution: "webpack-dev-server@npm:4.15.2" + dependencies: + "@types/bonjour": ^3.5.9 + "@types/connect-history-api-fallback": ^1.3.5 + "@types/express": ^4.17.13 + "@types/serve-index": ^1.9.1 + "@types/serve-static": ^1.13.10 + "@types/sockjs": ^0.3.33 + "@types/ws": ^8.5.5 + ansi-html-community: ^0.0.8 + bonjour-service: ^1.0.11 + chokidar: ^3.5.3 + colorette: ^2.0.10 + compression: ^1.7.4 + connect-history-api-fallback: ^2.0.0 + default-gateway: ^6.0.3 + express: ^4.17.3 + graceful-fs: ^4.2.6 + html-entities: ^2.3.2 + http-proxy-middleware: ^2.0.3 + ipaddr.js: ^2.0.1 + launch-editor: ^2.6.0 + open: ^8.0.9 + p-retry: ^4.5.0 + rimraf: ^3.0.2 + schema-utils: ^4.0.0 + selfsigned: ^2.1.1 + serve-index: ^1.9.1 + sockjs: ^0.3.24 + spdy: ^4.0.2 + webpack-dev-middleware: ^5.3.4 + ws: ^8.13.0 + peerDependencies: + webpack: ^4.37.0 || ^5.0.0 + peerDependenciesMeta: + webpack: + optional: true + webpack-cli: + optional: true + bin: + webpack-dev-server: bin/webpack-dev-server.js + checksum: 123507129cb4d55fdc5fabdd177574f31133605748372bb11353307b7a583ef25c6fd27b6addf56bf070ba44c88d5da861771c2ec55f52405082ec9efd01f039 + languageName: node + linkType: hard + +"webpack-merge@npm:^5.9.0": + version: 5.10.0 + resolution: "webpack-merge@npm:5.10.0" + dependencies: + clone-deep: ^4.0.1 + flat: ^5.0.2 + wildcard: ^2.0.0 + checksum: 1fe8bf5309add7298e1ac72fb3f2090e1dfa80c48c7e79fa48aa60b5961332c7d0d61efa8851acb805e6b91a4584537a347bc106e05e9aec87fa4f7088c62f2f + languageName: node + linkType: hard + +"webpack-sources@npm:^3.2.3": + version: 3.2.3 + resolution: "webpack-sources@npm:3.2.3" + checksum: 989e401b9fe3536529e2a99dac8c1bdc50e3a0a2c8669cbafad31271eadd994bc9405f88a3039cd2e29db5e6d9d0926ceb7a1a4e7409ece021fe79c37d9c4607 + languageName: node + linkType: hard + +"webpack@npm:^5.88.1": + version: 5.91.0 + resolution: "webpack@npm:5.91.0" + dependencies: + "@types/eslint-scope": ^3.7.3 + "@types/estree": ^1.0.5 + "@webassemblyjs/ast": ^1.12.1 + "@webassemblyjs/wasm-edit": ^1.12.1 + "@webassemblyjs/wasm-parser": ^1.12.1 + acorn: ^8.7.1 + acorn-import-assertions: ^1.9.0 + browserslist: ^4.21.10 + chrome-trace-event: ^1.0.2 + enhanced-resolve: ^5.16.0 + es-module-lexer: ^1.2.1 + eslint-scope: 5.1.1 + events: ^3.2.0 + glob-to-regexp: ^0.4.1 + graceful-fs: ^4.2.11 + json-parse-even-better-errors: ^2.3.1 + loader-runner: ^4.2.0 + mime-types: ^2.1.27 + neo-async: ^2.6.2 + schema-utils: ^3.2.0 + tapable: ^2.1.1 + terser-webpack-plugin: ^5.3.10 + watchpack: ^2.4.1 + webpack-sources: ^3.2.3 + peerDependenciesMeta: + webpack-cli: + optional: true + bin: + webpack: bin/webpack.js + checksum: f1073715dbb1ed5c070affef293d800a867708bcbc5aba4d8baee87660e0cf53c55966a6f36fab078d1d6c9567cdcd0a9086bdfb607cab87ea68c6449791b9a3 + languageName: node + linkType: hard + +"webpackbar@npm:^5.0.2": + version: 5.0.2 + resolution: "webpackbar@npm:5.0.2" + dependencies: + chalk: ^4.1.0 + consola: ^2.15.3 + pretty-time: ^1.1.0 + std-env: ^3.0.1 + peerDependencies: + webpack: 3 || 4 || 5 + checksum: 214a734b1d4d391eb8271ed1b11085f0efe6831e93f641229b292abfd6fea871422dce121612511c17ae8047522be6d65c1a2666cabb396c79549816a3612338 + languageName: node + linkType: hard + +"websocket-driver@npm:>=0.5.1, websocket-driver@npm:^0.7.4": + version: 0.7.4 + resolution: "websocket-driver@npm:0.7.4" + dependencies: + http-parser-js: ">=0.5.1" + safe-buffer: ">=5.1.0" + websocket-extensions: ">=0.1.1" + checksum: fffe5a33fe8eceafd21d2a065661d09e38b93877eae1de6ab5d7d2734c6ed243973beae10ae48c6613cfd675f200e5a058d1e3531bc9e6c5d4f1396ff1f0bfb9 + languageName: node + linkType: hard + +"websocket-extensions@npm:>=0.1.1": + version: 0.1.4 + resolution: "websocket-extensions@npm:0.1.4" + checksum: 5976835e68a86afcd64c7a9762ed85f2f27d48c488c707e67ba85e717b90fa066b98ab33c744d64255c9622d349eedecf728e65a5f921da71b58d0e9591b9038 + languageName: node + linkType: hard + +"which@npm:^1.3.1": + version: 1.3.1 + resolution: "which@npm:1.3.1" + dependencies: + isexe: ^2.0.0 + bin: + which: ./bin/which + checksum: f2e185c6242244b8426c9df1510e86629192d93c1a986a7d2a591f2c24869e7ffd03d6dac07ca863b2e4c06f59a4cc9916c585b72ee9fa1aa609d0124df15e04 + languageName: node + linkType: hard + +"which@npm:^2.0.1": + version: 2.0.2 + resolution: "which@npm:2.0.2" + dependencies: + isexe: ^2.0.0 + bin: + node-which: ./bin/node-which + checksum: 1a5c563d3c1b52d5f893c8b61afe11abc3bab4afac492e8da5bde69d550de701cf9806235f20a47b5c8fa8a1d6a9135841de2596535e998027a54589000e66d1 + languageName: node + linkType: hard + +"which@npm:^4.0.0": + version: 4.0.0 + resolution: "which@npm:4.0.0" + dependencies: + isexe: ^3.1.1 + bin: + node-which: bin/which.js + checksum: f17e84c042592c21e23c8195108cff18c64050b9efb8459589116999ea9da6dd1509e6a1bac3aeebefd137be00fabbb61b5c2bc0aa0f8526f32b58ee2f545651 + languageName: node + linkType: hard + +"widest-line@npm:^4.0.1": + version: 4.0.1 + resolution: "widest-line@npm:4.0.1" + dependencies: + string-width: ^5.0.1 + checksum: 64c48cf27171221be5f86fc54b94dd29879165bdff1a7aa92dde723d9a8c99fb108312768a5d62c8c2b80b701fa27bbd36a1ddc58367585cd45c0db7920a0cba + languageName: node + linkType: hard + +"wildcard@npm:^2.0.0": + version: 2.0.1 + resolution: "wildcard@npm:2.0.1" + checksum: e0c60a12a219e4b12065d1199802d81c27b841ed6ad6d9d28240980c73ceec6f856771d575af367cbec2982d9ae7838759168b551776577f155044f5a5ba843c + languageName: node + linkType: hard + +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": + version: 7.0.0 + resolution: "wrap-ansi@npm:7.0.0" + dependencies: + ansi-styles: ^4.0.0 + string-width: ^4.1.0 + strip-ansi: ^6.0.0 + checksum: a790b846fd4505de962ba728a21aaeda189b8ee1c7568ca5e817d85930e06ef8d1689d49dbf0e881e8ef84436af3a88bc49115c2e2788d841ff1b8b5b51a608b + languageName: node + linkType: hard + +"wrap-ansi@npm:^8.0.1, wrap-ansi@npm:^8.1.0": + version: 8.1.0 + resolution: "wrap-ansi@npm:8.1.0" + dependencies: + ansi-styles: ^6.1.0 + string-width: ^5.0.1 + strip-ansi: ^7.0.1 + checksum: 371733296dc2d616900ce15a0049dca0ef67597d6394c57347ba334393599e800bab03c41d4d45221b6bc967b8c453ec3ae4749eff3894202d16800fdfe0e238 + languageName: node + linkType: hard + +"wrappy@npm:1": + version: 1.0.2 + resolution: "wrappy@npm:1.0.2" + checksum: 159da4805f7e84a3d003d8841557196034155008f817172d4e986bd591f74aa82aa7db55929a54222309e01079a65a92a9e6414da5a6aa4b01ee44a511ac3ee5 + languageName: node + linkType: hard + +"write-file-atomic@npm:^3.0.3": + version: 3.0.3 + resolution: "write-file-atomic@npm:3.0.3" + dependencies: + imurmurhash: ^0.1.4 + is-typedarray: ^1.0.0 + signal-exit: ^3.0.2 + typedarray-to-buffer: ^3.1.5 + checksum: c55b24617cc61c3a4379f425fc62a386cc51916a9b9d993f39734d005a09d5a4bb748bc251f1304e7abd71d0a26d339996c275955f527a131b1dcded67878280 + languageName: node + linkType: hard + +"ws@npm:^7.3.1": + version: 7.5.9 + resolution: "ws@npm:7.5.9" + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + checksum: c3c100a181b731f40b7f2fddf004aa023f79d64f489706a28bc23ff88e87f6a64b3c6651fbec3a84a53960b75159574d7a7385709847a62ddb7ad6af76f49138 + languageName: node + linkType: hard + +"ws@npm:^8.13.0": + version: 8.17.0 + resolution: "ws@npm:8.17.0" + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ">=5.0.2" + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + checksum: 147ef9eab0251364e1d2c55338ad0efb15e6913923ccbfdf20f7a8a6cb8f88432bcd7f4d8f66977135bfad35575644f9983201c1a361019594a4e53977bf6d4e + languageName: node + linkType: hard + +"xdg-basedir@npm:^5.0.1, xdg-basedir@npm:^5.1.0": + version: 5.1.0 + resolution: "xdg-basedir@npm:5.1.0" + checksum: b60e8a2c663ccb1dac77c2d913f3b96de48dafbfa083657171d3d50e10820b8a04bb4edfe9f00808c8c20e5f5355e1927bea9029f03136e29265cb98291e1fea + languageName: node + linkType: hard + +"xml-js@npm:^1.6.11": + version: 1.6.11 + resolution: "xml-js@npm:1.6.11" + dependencies: + sax: ^1.2.4 + bin: + xml-js: ./bin/cli.js + checksum: 24a55479919413687105fc2d8ab05e613ebedb1c1bc12258a108e07cff5ef793779297db854800a4edf0281303ebd1f177bc4a588442f5344e62b3dddda26c2b + languageName: node + linkType: hard + +"yallist@npm:^3.0.2": + version: 3.1.1 + resolution: "yallist@npm:3.1.1" + checksum: 48f7bb00dc19fc635a13a39fe547f527b10c9290e7b3e836b9a8f1ca04d4d342e85714416b3c2ab74949c9c66f9cebb0473e6bc353b79035356103b47641285d + languageName: node + linkType: hard + +"yallist@npm:^4.0.0": + version: 4.0.0 + resolution: "yallist@npm:4.0.0" + checksum: 343617202af32df2a15a3be36a5a8c0c8545208f3d3dfbc6bb7c3e3b7e8c6f8e7485432e4f3b88da3031a6e20afa7c711eded32ddfb122896ac5d914e75848d5 + languageName: node + linkType: hard + +"yaml@npm:^1.7.2": + version: 1.10.2 + resolution: "yaml@npm:1.10.2" + checksum: ce4ada136e8a78a0b08dc10b4b900936912d15de59905b2bf415b4d33c63df1d555d23acb2a41b23cf9fb5da41c256441afca3d6509de7247daa062fd2c5ea5f + languageName: node + linkType: hard + +"yocto-queue@npm:^0.1.0": + version: 0.1.0 + resolution: "yocto-queue@npm:0.1.0" + checksum: f77b3d8d00310def622123df93d4ee654fc6a0096182af8bd60679ddcdfb3474c56c6c7190817c84a2785648cdee9d721c0154eb45698c62176c322fb46fc700 + languageName: node + linkType: hard + +"yocto-queue@npm:^1.0.0": + version: 1.0.0 + resolution: "yocto-queue@npm:1.0.0" + checksum: 2cac84540f65c64ccc1683c267edce396b26b1e931aa429660aefac8fbe0188167b7aee815a3c22fa59a28a58d898d1a2b1825048f834d8d629f4c2a5d443801 + languageName: node + linkType: hard + +"zwitch@npm:^2.0.0": + version: 2.0.4 + resolution: "zwitch@npm:2.0.4" + checksum: f22ec5fc2d5f02c423c93d35cdfa83573a3a3bd98c66b927c368ea4d0e7252a500df2a90a6b45522be536a96a73404393c958e945fdba95e6832c200791702b6 + languageName: node + linkType: hard diff --git a/nix/project.nix b/nix/project.nix index cec73f42e64..9945c6c116f 100644 --- a/nix/project.nix +++ b/nix/project.nix @@ -141,6 +141,14 @@ let ssreflect equations ]; + + plutus-core.components.tests.plutus-core-test.postInstall = '' + wrapProgram $out/bin/plutus-core-test --set PATH ${lib.makeBinPath [ pkgs.diffutils ]} + ''; + + plutus-core.components.tests.plutus-ir-test.postInstall = '' + wrapProgram $out/bin/plutus-ir-test --set PATH ${lib.makeBinPath [ pkgs.diffutils ]} + ''; }; } diff --git a/plutus-benchmark/bls12-381-costs/bench/Bench.hs b/plutus-benchmark/bls12-381-costs/bench/Bench.hs index c656f6e3e0c..33d6e63441d 100644 --- a/plutus-benchmark/bls12-381-costs/bench/Bench.hs +++ b/plutus-benchmark/bls12-381-costs/bench/Bench.hs @@ -7,7 +7,7 @@ module Main where import Criterion.Main import PlutusBenchmark.BLS12_381.Scripts -import PlutusBenchmark.Common (benchProgramCek, mkEvalCtx) +import PlutusBenchmark.Common (benchProgramCek, mkMostRecentEvalCtx) import PlutusLedgerApi.Common (EvaluationContext) import PlutusTx.Prelude qualified as Tx @@ -77,7 +77,7 @@ schnorrG2Verify ctx = bench "schnorrG2Verify" $ benchProgramCek ctx mkSchnorrG2V main :: IO () main = do - evalCtx <- evaluate mkEvalCtx + evalCtx <- evaluate mkMostRecentEvalCtx defaultMain [ bgroup "hashAndAddG1" $ fmap (benchHashAndAddG1 evalCtx) [0, 10..150] , bgroup "hashAndAddG2" $ fmap (benchHashAndAddG2 evalCtx) [0, 10..150] diff --git a/plutus-benchmark/bls12-381-costs/test/9.6/bls12-381-costs.golden b/plutus-benchmark/bls12-381-costs/test/9.6/bls12-381-costs.golden index 0f4b11bfb84..426a859fd3a 100644 --- a/plutus-benchmark/bls12-381-costs/test/9.6/bls12-381-costs.golden +++ b/plutus-benchmark/bls12-381-costs/test/9.6/bls12-381-costs.golden @@ -2,144 +2,144 @@ Hash n bytestrings onto G1 and add points n Script size CPU usage Memory usage ---------------------------------------------------------------------- - 0 115 (0.7%) 17294189 (0.2%) 3918 (0.0%) - 10 224 (1.4%) 693350079 (6.9%) 37278 (0.3%) - 20 334 (2.0%) 1369405969 (13.7%) 70638 (0.5%) - 30 444 (2.7%) 2045461859 (20.5%) 103998 (0.7%) - 40 554 (3.4%) 2721517749 (27.2%) 137358 (1.0%) - 50 664 (4.1%) 3397573639 (34.0%) 170718 (1.2%) - 60 774 (4.7%) 4073629529 (40.7%) 204078 (1.5%) - 70 884 (5.4%) 4749685419 (47.5%) 237438 (1.7%) - 80 994 (6.1%) 5425741309 (54.3%) 270798 (1.9%) - 90 1104 (6.7%) 6101797199 (61.0%) 304158 (2.2%) - 100 1214 (7.4%) 6777853089 (67.8%) 337518 (2.4%) - 110 1324 (8.1%) 7453908979 (74.5%) 370878 (2.6%) - 120 1434 (8.8%) 8129964869 (81.3%) 404238 (2.9%) - 130 1544 (9.4%) 8806020759 (88.1%) 437598 (3.1%) - 140 1654 (10.1%) 9482076649 (94.8%) 470958 (3.4%) - 150 1764 (10.8%) 10158132539 (101.6%) 504318 (3.6%) + 0 115 (0.7%) 53556222 (0.5%) 3918 (0.0%) + 10 224 (1.4%) 593877682 (5.9%) 37278 (0.3%) + 20 334 (2.0%) 1134199142 (11.3%) 70638 (0.5%) + 30 444 (2.7%) 1674520602 (16.7%) 103998 (0.7%) + 40 554 (3.4%) 2214842062 (22.1%) 137358 (1.0%) + 50 664 (4.1%) 2755163522 (27.6%) 170718 (1.2%) + 60 774 (4.7%) 3295484982 (33.0%) 204078 (1.5%) + 70 884 (5.4%) 3835806442 (38.4%) 237438 (1.7%) + 80 994 (6.1%) 4376127902 (43.8%) 270798 (1.9%) + 90 1104 (6.7%) 4916449362 (49.2%) 304158 (2.2%) + 100 1214 (7.4%) 5456770822 (54.6%) 337518 (2.4%) + 110 1324 (8.1%) 5997092282 (60.0%) 370878 (2.6%) + 120 1434 (8.8%) 6537413742 (65.4%) 404238 (2.9%) + 130 1544 (9.4%) 7077735202 (70.8%) 437598 (3.1%) + 140 1654 (10.1%) 7618056662 (76.2%) 470958 (3.4%) + 150 1764 (10.8%) 8158378122 (81.6%) 504318 (3.6%) Hash n bytestrings onto G2 and add points n Script size CPU usage Memory usage ---------------------------------------------------------------------- - 0 163 (1.0%) 33886964 (0.3%) 3936 (0.0%) - 10 272 (1.7%) 2105540474 (21.1%) 37656 (0.3%) - 20 382 (2.3%) 4177193984 (41.8%) 71376 (0.5%) - 30 492 (3.0%) 6248847494 (62.5%) 105096 (0.8%) - 40 602 (3.7%) 8320501004 (83.2%) 138816 (1.0%) - 50 712 (4.3%) 10392154514 (103.9%) 172536 (1.2%) - 60 822 (5.0%) 12463808024 (124.6%) 206256 (1.5%) - 70 932 (5.7%) 14535461534 (145.4%) 239976 (1.7%) - 80 1042 (6.4%) 16607115044 (166.1%) 273696 (2.0%) - 90 1152 (7.0%) 18678768554 (186.8%) 307416 (2.2%) - 100 1262 (7.7%) 20750422064 (207.5%) 341136 (2.4%) - 110 1372 (8.4%) 22822075574 (228.2%) 374856 (2.7%) - 120 1482 (9.0%) 24893729084 (248.9%) 408576 (2.9%) - 130 1592 (9.7%) 26965382594 (269.7%) 442296 (3.2%) - 140 1702 (10.4%) 29037036104 (290.4%) 476016 (3.4%) - 150 1812 (11.1%) 31108689614 (311.1%) 509736 (3.6%) + 0 163 (1.0%) 75306572 (0.8%) 3936 (0.0%) + 10 272 (1.7%) 1769766432 (17.7%) 37656 (0.3%) + 20 382 (2.3%) 3464226292 (34.6%) 71376 (0.5%) + 30 492 (3.0%) 5158686152 (51.6%) 105096 (0.8%) + 40 602 (3.7%) 6853146012 (68.5%) 138816 (1.0%) + 50 712 (4.3%) 8547605872 (85.5%) 172536 (1.2%) + 60 822 (5.0%) 10242065732 (102.4%) 206256 (1.5%) + 70 932 (5.7%) 11936525592 (119.4%) 239976 (1.7%) + 80 1042 (6.4%) 13630985452 (136.3%) 273696 (2.0%) + 90 1152 (7.0%) 15325445312 (153.3%) 307416 (2.2%) + 100 1262 (7.7%) 17019905172 (170.2%) 341136 (2.4%) + 110 1372 (8.4%) 18714365032 (187.1%) 374856 (2.7%) + 120 1482 (9.0%) 20408824892 (204.1%) 408576 (2.9%) + 130 1592 (9.7%) 22103284752 (221.0%) 442296 (3.2%) + 140 1702 (10.4%) 23797744612 (238.0%) 476016 (3.4%) + 150 1812 (11.1%) 25492204472 (254.9%) 509736 (3.6%) Uncompress n G1 points and add the results n Script size CPU usage Memory usage ---------------------------------------------------------------------- - 0 112 (0.7%) 17294189 (0.2%) 3918 (0.0%) - 10 661 (4.0%) 196953159 (2.0%) 35278 (0.3%) - 20 1211 (7.4%) 376612129 (3.8%) 66638 (0.5%) - 30 1761 (10.7%) 556271099 (5.6%) 97998 (0.7%) - 40 2311 (14.1%) 735930069 (7.4%) 129358 (0.9%) - 50 2861 (17.5%) 915589039 (9.2%) 160718 (1.1%) - 60 3411 (20.8%) 1095248009 (11.0%) 192078 (1.4%) - 70 3961 (24.2%) 1274906979 (12.7%) 223438 (1.6%) - 80 4511 (27.5%) 1454565949 (14.5%) 254798 (1.8%) - 90 5061 (30.9%) 1634224919 (16.3%) 286158 (2.0%) - 100 5611 (34.2%) 1813883889 (18.1%) 317518 (2.3%) - 110 6161 (37.6%) 1993542859 (19.9%) 348878 (2.5%) - 120 6711 (41.0%) 2173201829 (21.7%) 380238 (2.7%) - 130 7261 (44.3%) 2352860799 (23.5%) 411598 (2.9%) - 140 7811 (47.7%) 2532519769 (25.3%) 442958 (3.2%) - 150 8361 (51.0%) 2712178739 (27.1%) 474318 (3.4%) + 0 112 (0.7%) 53556222 (0.5%) 3918 (0.0%) + 10 661 (4.0%) 597620792 (6.0%) 35278 (0.3%) + 20 1211 (7.4%) 1141685362 (11.4%) 66638 (0.5%) + 30 1761 (10.7%) 1685749932 (16.9%) 97998 (0.7%) + 40 2311 (14.1%) 2229814502 (22.3%) 129358 (0.9%) + 50 2861 (17.5%) 2773879072 (27.7%) 160718 (1.1%) + 60 3411 (20.8%) 3317943642 (33.2%) 192078 (1.4%) + 70 3961 (24.2%) 3862008212 (38.6%) 223438 (1.6%) + 80 4511 (27.5%) 4406072782 (44.1%) 254798 (1.8%) + 90 5061 (30.9%) 4950137352 (49.5%) 286158 (2.0%) + 100 5611 (34.2%) 5494201922 (54.9%) 317518 (2.3%) + 110 6161 (37.6%) 6038266492 (60.4%) 348878 (2.5%) + 120 6711 (41.0%) 6582331062 (65.8%) 380238 (2.7%) + 130 7261 (44.3%) 7126395632 (71.3%) 411598 (2.9%) + 140 7811 (47.7%) 7670460202 (76.7%) 442958 (3.2%) + 150 8361 (51.0%) 8214524772 (82.1%) 474318 (3.4%) Uncompress n G2 points and add the results n Script size CPU usage Memory usage ---------------------------------------------------------------------- - 0 160 (1.0%) 33886964 (0.3%) 3936 (0.0%) - 10 1189 (7.3%) 392603584 (3.9%) 35656 (0.3%) - 20 2219 (13.5%) 751320204 (7.5%) 67376 (0.5%) - 30 3249 (19.8%) 1110036824 (11.1%) 99096 (0.7%) - 40 4279 (26.1%) 1468753444 (14.7%) 130816 (0.9%) - 50 5309 (32.4%) 1827470064 (18.3%) 162536 (1.2%) - 60 6339 (38.7%) 2186186684 (21.9%) 194256 (1.4%) - 70 7369 (45.0%) 2544903304 (25.4%) 225976 (1.6%) - 80 8399 (51.3%) 2903619924 (29.0%) 257696 (1.8%) - 90 9429 (57.6%) 3262336544 (32.6%) 289416 (2.1%) - 100 10459 (63.8%) 3621053164 (36.2%) 321136 (2.3%) - 110 11489 (70.1%) 3979769784 (39.8%) 352856 (2.5%) - 120 12519 (76.4%) 4338486404 (43.4%) 384576 (2.7%) - 130 13549 (82.7%) 4697203024 (47.0%) 416296 (3.0%) - 140 14579 (89.0%) 5055919644 (50.6%) 448016 (3.2%) - 150 15609 (95.3%) 5414636264 (54.1%) 479736 (3.4%) + 0 160 (1.0%) 75306572 (0.8%) 3936 (0.0%) + 10 1189 (7.3%) 847209652 (8.5%) 35656 (0.3%) + 20 2219 (13.5%) 1619112732 (16.2%) 67376 (0.5%) + 30 3249 (19.8%) 2391015812 (23.9%) 99096 (0.7%) + 40 4279 (26.1%) 3162918892 (31.6%) 130816 (0.9%) + 50 5309 (32.4%) 3934821972 (39.3%) 162536 (1.2%) + 60 6339 (38.7%) 4706725052 (47.1%) 194256 (1.4%) + 70 7369 (45.0%) 5478628132 (54.8%) 225976 (1.6%) + 80 8399 (51.3%) 6250531212 (62.5%) 257696 (1.8%) + 90 9429 (57.6%) 7022434292 (70.2%) 289416 (2.1%) + 100 10459 (63.8%) 7794337372 (77.9%) 321136 (2.3%) + 110 11489 (70.1%) 8566240452 (85.7%) 352856 (2.5%) + 120 12519 (76.4%) 9338143532 (93.4%) 384576 (2.7%) + 130 13549 (82.7%) 10110046612 (101.1%) 416296 (3.0%) + 140 14579 (89.0%) 10881949692 (108.8%) 448016 (3.2%) + 150 15609 (95.3%) 11653852772 (116.5%) 479736 (3.4%) Apply pairing to two pairs of points in G1 x G2 and run finalVerify on the results n Script size CPU usage Memory usage ---------------------------------------------------------------------- - - 342 (2.1%) 1292150444 (12.9%) 4654 (0.0%) + - 342 (2.1%) 1097919597 (11.0%) 4654 (0.0%) Groth16 verification example n Script size CPU usage Memory usage ---------------------------------------------------------------------- - - 779 (4.8%) 2312779174 (23.1%) 10904 (0.1%) + - 779 (4.8%) 1996880342 (20.0%) 10904 (0.1%) VRF example n Script size CPU usage Memory usage ---------------------------------------------------------------------- - - 712 (4.3%) 1303023563 (13.0%) 47949 (0.3%) + - 712 (4.3%) 1220773236 (12.2%) 47949 (0.3%) G1 Verify n Script size CPU usage Memory usage ---------------------------------------------------------------------- - - 332 (2.0%) 1463720946 (14.6%) 5754 (0.0%) + - 332 (2.0%) 1190332196 (11.9%) 5754 (0.0%) G2 Verify n Script size CPU usage Memory usage ---------------------------------------------------------------------- - - 380 (2.3%) 1342066427 (13.4%) 5754 (0.0%) + - 380 (2.3%) 1097700554 (11.0%) 5754 (0.0%) Aggregate Single Key n Script size CPU usage Memory usage ---------------------------------------------------------------------- - - 777 (4.7%) 3336634422 (33.4%) 70002 (0.5%) + - 777 (4.7%) 2720886359 (27.2%) 70002 (0.5%) Aggregate Multi Key n Script size CPU usage Memory usage ---------------------------------------------------------------------- - - 1704 (10.4%) 3674821887 (36.7%) 421586 (3.0%) + - 1704 (10.4%) 3446243236 (34.5%) 421586 (3.0%) Schnorr Signature G1 n Script size CPU usage Memory usage ---------------------------------------------------------------------- - - 370 (2.3%) 248136411 (2.5%) 13796 (0.1%) + - 370 (2.3%) 320182564 (3.2%) 13796 (0.1%) Schnorr Signature G2 n Script size CPU usage Memory usage ---------------------------------------------------------------------- - - 514 (3.1%) 493212089 (4.9%) 13964 (0.1%) + - 514 (3.1%) 552393171 (5.5%) 13964 (0.1%) Groth16Verify succeeded Simple Verify succeeded diff --git a/plutus-benchmark/cek-calibration/Main.hs b/plutus-benchmark/cek-calibration/Main.hs index 5569f529136..0741ffd74f6 100644 --- a/plutus-benchmark/cek-calibration/Main.hs +++ b/plutus-benchmark/cek-calibration/Main.hs @@ -17,7 +17,7 @@ module Main (main) where import Prelude qualified as Haskell -import PlutusBenchmark.Common (benchTermCek, mkEvalCtx) +import PlutusBenchmark.Common (benchTermCek, mkMostRecentEvalCtx) import PlutusCore import PlutusCore.Pretty qualified as PP import PlutusLedgerApi.Common (EvaluationContext) @@ -87,7 +87,7 @@ writePlc p = main1 :: Haskell.IO () main1 = do - evalCtx <- evaluate mkEvalCtx + evalCtx <- evaluate mkMostRecentEvalCtx defaultMainWith (defaultConfig { C.csvFile = Just "cek-lists.csv" }) [mkListBMs evalCtx [0,10..1000]] diff --git a/plutus-benchmark/common/PlutusBenchmark/Common.hs b/plutus-benchmark/common/PlutusBenchmark/Common.hs index 4db0cc4453c..2a58f44dc6d 100644 --- a/plutus-benchmark/common/PlutusBenchmark/Common.hs +++ b/plutus-benchmark/common/PlutusBenchmark/Common.hs @@ -17,6 +17,7 @@ module PlutusBenchmark.Common , runTermCek , cekResultMatchesHaskellValue , mkEvalCtx + , mkMostRecentEvalCtx , evaluateCekLikeInProd , benchTermCek , TestSize (..) @@ -35,14 +36,13 @@ import PlutusBenchmark.ProtocolParameters as PP import PlutusLedgerApi.Common qualified as LedgerApi -import PlutusTx qualified as Tx - import PlutusCore qualified as PLC import PlutusCore.Default import PlutusCore.Evaluation.Machine.ExBudget (ExBudget (..)) import PlutusCore.Evaluation.Machine.ExBudgetingDefaults qualified as PLC import PlutusCore.Evaluation.Machine.ExMemory (ExCPU (..), ExMemory (..)) +import PlutusTx.Test.Util.Compiled import UntypedPlutusCore qualified as UPLC import UntypedPlutusCore.Evaluation.Machine.Cek as Cek import UntypedPlutusCore.Evaluation.Machine.Cek qualified as UPLC @@ -52,7 +52,6 @@ import Criterion.Main import Criterion.Types (Config (..)) import Data.ByteString qualified as BS import Data.SatInt (fromSatInt) -import Data.Text (Text) import Flat qualified import GHC.IO.Encoding (setLocaleEncoding) import System.Directory @@ -78,99 +77,41 @@ getConfig limit = do timeLimit = limit } -type Term = UPLC.Term PLC.NamedDeBruijn DefaultUni DefaultFun () -type Program = UPLC.Program PLC.NamedDeBruijn DefaultUni DefaultFun () - -{- | Given a DeBruijn-named term, give every variable the name "v". If we later - call unDeBruijn, that will rename the variables to things like "v123", where - 123 is the relevant de Bruijn index.-} -toNamedDeBruijnTerm - :: UPLC.Term UPLC.DeBruijn DefaultUni DefaultFun () - -> UPLC.Term UPLC.NamedDeBruijn DefaultUni DefaultFun () -toNamedDeBruijnTerm = UPLC.termMapNames UPLC.fakeNameDeBruijn - -{- | Remove the textual names from a NamedDeBruijn term -} -toAnonDeBruijnTerm - :: Term - -> UPLC.Term UPLC.DeBruijn DefaultUni DefaultFun () -toAnonDeBruijnTerm = UPLC.termMapNames UPLC.unNameDeBruijn - -toAnonDeBruijnProg - :: UPLC.Program UPLC.NamedDeBruijn DefaultUni DefaultFun () - -> UPLC.Program UPLC.DeBruijn DefaultUni DefaultFun () -toAnonDeBruijnProg (UPLC.Program () ver body) = - UPLC.Program () ver $ toAnonDeBruijnTerm body - - -{- | Just extract the body of a program wrapped in a 'CompiledCodeIn'. We use this a lot. -} -compiledCodeToTerm - :: Tx.CompiledCodeIn DefaultUni DefaultFun a -> Term -compiledCodeToTerm (Tx.getPlcNoAnn -> UPLC.Program _ _ body) = body - -{- | Lift a Haskell value to a PLC term. The constraints get a bit out of control - if we try to do this over an arbitrary universe.-} -haskellValueToTerm - :: Tx.Lift DefaultUni a => a -> Term -haskellValueToTerm = compiledCodeToTerm . Tx.liftCodeDef - -{- | Just run a term to obtain an `EvaluationResult` (used for tests etc.) -} -unsafeRunTermCek :: Term -> EvaluationResult Term -unsafeRunTermCek = - unsafeExtractEvaluationResult - . (\(res, _, _) -> res) - . runCekDeBruijn PLC.defaultCekParameters Cek.restrictingEnormous Cek.noEmitter - --- | Just run a term. -runTermCek :: - Term -> - ( Either (CekEvaluationException UPLC.NamedDeBruijn DefaultUni DefaultFun) Term - , [Text] - ) -runTermCek = - (\(res, _, logs) -> (res, logs)) - . runCekDeBruijn PLC.defaultCekParameters Cek.restrictingEnormous Cek.logEmitter - -- | Evaluate a script and return the CPU and memory costs (according to the cost model) getCostsCek :: UPLC.Program UPLC.NamedDeBruijn DefaultUni DefaultFun () -> (Integer, Integer) getCostsCek (UPLC.Program _ _ prog) = - case Cek.runCekDeBruijn PLC.defaultCekParameters Cek.tallying Cek.noEmitter prog of + case Cek.runCekDeBruijn PLC.defaultCekParametersForTesting Cek.tallying Cek.noEmitter prog of (_res, Cek.TallyingSt _ budget, _logs) -> let ExBudget (ExCPU cpu)(ExMemory mem) = budget in (fromSatInt cpu, fromSatInt mem) -{- | Evaluate a PLC term and check that the result matches a given Haskell value - (perhaps obtained by running the Haskell code that the term was compiled - from). We evaluate the lifted Haskell value as well, because lifting may - produce reducible terms. The function is polymorphic in the comparison - operator so that we can use it with both HUnit Assertions and QuickCheck - Properties. -} -cekResultMatchesHaskellValue - :: Tx.Lift DefaultUni a - => Term - -> (EvaluationResult Term -> EvaluationResult Term -> b) - -> a - -> b -cekResultMatchesHaskellValue term matches value = - (unsafeRunTermCek term) `matches` (unsafeRunTermCek $ haskellValueToTerm value) - --- | Create the evaluation context for the benchmarks. This doesn't exactly match how it's done --- on-chain, but that's okay because the evaluation context is cached by the ledger, so we're --- deliberately not including it in the benchmarks. -mkEvalCtx :: LedgerApi.EvaluationContext -mkEvalCtx = - case PLC.defaultCostModelParams of +-- | Create the evaluation context for the benchmarks. This doesn't exactly +-- match how it's done on-chain, but that's okay because the evaluation context +-- is cached by the ledger, so we're deliberately not including it in the +-- benchmarks. Different benchmarks may depend on different language versions +-- and semantic variants, so we have to specify those here. +mkEvalCtx + :: LedgerApi.PlutusLedgerLanguage + -> BuiltinSemanticsVariant DefaultFun + -> LedgerApi.EvaluationContext +mkEvalCtx ll semvar = + case PLC.defaultCostModelParamsForVariant semvar of Just p -> let errOrCtx = - -- The validation benchmarks were all created from PlutusV1 scripts LedgerApi.mkDynEvaluationContext - LedgerApi.PlutusV1 - [DefaultFunSemanticsVariant1] - (const DefaultFunSemanticsVariant1) + ll + [semvar] + (const semvar) p in case errOrCtx of Right ec -> ec Left err -> error $ show err - Nothing -> error "Couldn't get cost model params" + Nothing -> error $ "Couldn't get cost model params for " ++ (show semvar) + +-- Many of our benchmarks should use an evaluation context for the most recent +-- Plutus language version and the ost recent semantic variant. +mkMostRecentEvalCtx :: LedgerApi.EvaluationContext +mkMostRecentEvalCtx = mkEvalCtx maxBound maxBound -- | Evaluate a term as it would be evaluated using the on-chain evaluator. evaluateCekLikeInProd diff --git a/plutus-benchmark/ed25519-costs/test/9.6/ed25519-costs.golden b/plutus-benchmark/ed25519-costs/test/9.6/ed25519-costs.golden index 560a768b047..4e1d7e3c2b5 100644 --- a/plutus-benchmark/ed25519-costs/test/9.6/ed25519-costs.golden +++ b/plutus-benchmark/ed25519-costs/test/9.6/ed25519-costs.golden @@ -1,20 +1,20 @@ n Script size CPU usage Memory usage ---------------------------------------------------------------------- - 0 481 (2.9%) 5848112 (0.1%) 21522 (0.2%) - 10 2208 (13.5%) 732286512 (7.3%) 516352 (3.7%) - 20 3935 (24.0%) 1458724912 (14.6%) 1011182 (7.2%) - 30 5662 (34.6%) 2185163312 (21.9%) 1506012 (10.8%) - 40 7389 (45.1%) 2911601712 (29.1%) 2000842 (14.3%) - 50 9115 (55.6%) 3638040112 (36.4%) 2495672 (17.8%) - 60 10842 (66.2%) 4364478512 (43.6%) 2990502 (21.4%) - 70 12569 (76.7%) 5090916912 (50.9%) 3485332 (24.9%) - 80 14295 (87.2%) 5817355312 (58.2%) 3980162 (28.4%) - 90 16022 (97.8%) 6543793712 (65.4%) 4474992 (32.0%) - 100 17749 (108.3%) 7270232112 (72.7%) 4969822 (35.5%) - 110 19476 (118.9%) 7996670512 (80.0%) 5464652 (39.0%) - 120 21202 (129.4%) 8723108912 (87.2%) 5959482 (42.6%) - 130 22929 (139.9%) 9449547312 (94.5%) 6454312 (46.1%) - 140 24656 (150.5%) 10175985712 (101.8%) 6949142 (49.6%) - 150 26383 (161.0%) 10902424112 (109.0%) 7443972 (53.2%) + 0 481 (2.9%) 4458441 (0.0%) 21522 (0.2%) + 10 2208 (13.5%) 646843741 (6.5%) 516352 (3.7%) + 20 3935 (24.0%) 1289229041 (12.9%) 1011182 (7.2%) + 30 5662 (34.6%) 1931614341 (19.3%) 1506012 (10.8%) + 40 7389 (45.1%) 2573999641 (25.7%) 2000842 (14.3%) + 50 9115 (55.6%) 3216384941 (32.2%) 2495672 (17.8%) + 60 10842 (66.2%) 3858770241 (38.6%) 2990502 (21.4%) + 70 12569 (76.7%) 4501155541 (45.0%) 3485332 (24.9%) + 80 14295 (87.2%) 5143540841 (51.4%) 3980162 (28.4%) + 90 16022 (97.8%) 5785926141 (57.9%) 4474992 (32.0%) + 100 17749 (108.3%) 6428311441 (64.3%) 4969822 (35.5%) + 110 19476 (118.9%) 7070696741 (70.7%) 5464652 (39.0%) + 120 21202 (129.4%) 7713082041 (77.1%) 5959482 (42.6%) + 130 22929 (139.9%) 8355467341 (83.6%) 6454312 (46.1%) + 140 24656 (150.5%) 8997852641 (90.0%) 6949142 (49.6%) + 150 26383 (161.0%) 9640237941 (96.4%) 7443972 (53.2%) Off-chain version succeeded on 100 inputs diff --git a/plutus-benchmark/lists/bench/Bench.hs b/plutus-benchmark/lists/bench/Bench.hs index 5459644fcf2..992e6295881 100644 --- a/plutus-benchmark/lists/bench/Bench.hs +++ b/plutus-benchmark/lists/bench/Bench.hs @@ -6,7 +6,7 @@ module Main (main) where import Criterion.Main -import PlutusBenchmark.Common (benchTermCek, getConfig, mkEvalCtx) +import PlutusBenchmark.Common (benchTermCek, getConfig, mkMostRecentEvalCtx) import PlutusBenchmark.Lists.Sort qualified as Sort import PlutusBenchmark.Lists.Sum.Compiled qualified as Sum.Compiled import PlutusBenchmark.Lists.Sum.HandWritten qualified as Sum.HandWritten @@ -54,5 +54,5 @@ main :: IO () main = do -- Run each benchmark for at least 15 seconds. Change this with -L or --timeout. config <- getConfig 15.0 - evalCtx <- evaluate mkEvalCtx + evalCtx <- evaluate mkMostRecentEvalCtx defaultMainWith config $ benchmarks evalCtx diff --git a/plutus-benchmark/lists/exe/Main.hs b/plutus-benchmark/lists/exe/Main.hs index 1fa93ac8ed4..a9654d94375 100644 --- a/plutus-benchmark/lists/exe/Main.hs +++ b/plutus-benchmark/lists/exe/Main.hs @@ -21,7 +21,7 @@ import UntypedPlutusCore.Evaluation.Machine.Cek qualified as Cek getBudgetUsage :: Term -> Maybe Integer getBudgetUsage term = case (\ (fstT,sndT,_) -> (fstT,sndT) ) $ - Cek.runCekDeBruijn PLC.defaultCekParameters Cek.counting Cek.noEmitter term + Cek.runCekDeBruijn PLC.defaultCekParametersForTesting Cek.counting Cek.noEmitter term of (Left _, _) -> Nothing (Right _, Cek.CountingSt c) -> diff --git a/plutus-benchmark/lists/test/Lookup/9.6/match-builtin-list-10.budget.golden b/plutus-benchmark/lists/test/Lookup/9.6/match-builtin-list-10.budget.golden index 23852804fd8..3ba5db7308e 100644 --- a/plutus-benchmark/lists/test/Lookup/9.6/match-builtin-list-10.budget.golden +++ b/plutus-benchmark/lists/test/Lookup/9.6/match-builtin-list-10.budget.golden @@ -1,2 +1,2 @@ -({cpu: 278230764 +({cpu: 196086904 | mem: 837952}) \ No newline at end of file diff --git a/plutus-benchmark/lists/test/Lookup/9.6/match-builtin-list-100.budget.golden b/plutus-benchmark/lists/test/Lookup/9.6/match-builtin-list-100.budget.golden index 8182110200d..fe78892377f 100644 --- a/plutus-benchmark/lists/test/Lookup/9.6/match-builtin-list-100.budget.golden +++ b/plutus-benchmark/lists/test/Lookup/9.6/match-builtin-list-100.budget.golden @@ -1,2 +1,2 @@ -({cpu: 23433064554 +({cpu: 16341428194 | mem: 69498232}) \ No newline at end of file diff --git a/plutus-benchmark/lists/test/Lookup/9.6/match-builtin-list-5.budget.golden b/plutus-benchmark/lists/test/Lookup/9.6/match-builtin-list-5.budget.golden index 6caa192097d..5a5f058070c 100644 --- a/plutus-benchmark/lists/test/Lookup/9.6/match-builtin-list-5.budget.golden +++ b/plutus-benchmark/lists/test/Lookup/9.6/match-builtin-list-5.budget.golden @@ -1,2 +1,2 @@ -({cpu: 82807834 +({cpu: 58837074 | mem: 253492}) \ No newline at end of file diff --git a/plutus-benchmark/lists/test/Lookup/9.6/match-builtin-list-50.budget.golden b/plutus-benchmark/lists/test/Lookup/9.6/match-builtin-list-50.budget.golden index 4287b69f569..8130a9a3cfa 100644 --- a/plutus-benchmark/lists/test/Lookup/9.6/match-builtin-list-50.budget.golden +++ b/plutus-benchmark/lists/test/Lookup/9.6/match-builtin-list-50.budget.golden @@ -1,2 +1,2 @@ -({cpu: 5975766004 +({cpu: 4173000144 | mem: 17753632}) \ No newline at end of file diff --git a/plutus-benchmark/lists/test/Lookup/9.6/match-scott-list-10.budget.golden b/plutus-benchmark/lists/test/Lookup/9.6/match-scott-list-10.budget.golden index b33f8a2092e..6e9c7e40ec5 100644 --- a/plutus-benchmark/lists/test/Lookup/9.6/match-scott-list-10.budget.golden +++ b/plutus-benchmark/lists/test/Lookup/9.6/match-scott-list-10.budget.golden @@ -1,2 +1,2 @@ -({cpu: 184072620 +({cpu: 113745780 | mem: 538480}) \ No newline at end of file diff --git a/plutus-benchmark/lists/test/Lookup/9.6/match-scott-list-100.budget.golden b/plutus-benchmark/lists/test/Lookup/9.6/match-scott-list-100.budget.golden index 952a7b0e307..b8b69683d92 100644 --- a/plutus-benchmark/lists/test/Lookup/9.6/match-scott-list-100.budget.golden +++ b/plutus-benchmark/lists/test/Lookup/9.6/match-scott-list-100.budget.golden @@ -1,2 +1,2 @@ -({cpu: 14151996300 +({cpu: 8662950900 | mem: 39539800}) \ No newline at end of file diff --git a/plutus-benchmark/lists/test/Lookup/9.6/match-scott-list-5.budget.golden b/plutus-benchmark/lists/test/Lookup/9.6/match-scott-list-5.budget.golden index c7674cba8ad..e0c5c4dad76 100644 --- a/plutus-benchmark/lists/test/Lookup/9.6/match-scott-list-5.budget.golden +++ b/plutus-benchmark/lists/test/Lookup/9.6/match-scott-list-5.budget.golden @@ -1,2 +1,2 @@ -({cpu: 58810710 +({cpu: 36645190 | mem: 178640}) \ No newline at end of file diff --git a/plutus-benchmark/lists/test/Lookup/9.6/match-scott-list-50.budget.golden b/plutus-benchmark/lists/test/Lookup/9.6/match-scott-list-50.budget.golden index ab19d6c089f..22fea7ecbe5 100644 --- a/plutus-benchmark/lists/test/Lookup/9.6/match-scott-list-50.budget.golden +++ b/plutus-benchmark/lists/test/Lookup/9.6/match-scott-list-50.budget.golden @@ -1,2 +1,2 @@ -({cpu: 3652106700 +({cpu: 2238212500 | mem: 10264400}) \ No newline at end of file diff --git a/plutus-benchmark/lists/test/Lookup/Spec.hs b/plutus-benchmark/lists/test/Lookup/Spec.hs index 941f8e80e11..132ead7ec62 100644 --- a/plutus-benchmark/lists/test/Lookup/Spec.hs +++ b/plutus-benchmark/lists/test/Lookup/Spec.hs @@ -1,7 +1,7 @@ module Lookup.Spec (tests) where import Test.Tasty -import Test.Tasty.Extras (TestNested, runTestGroupNestedGhc) +import Test.Tasty.Extras (TestNested, runTestNested, testNestedGhc) import PlutusBenchmark.Lists.Lookup.Compiled qualified as Compiled @@ -9,12 +9,12 @@ import PlutusTx.Test qualified as Tx -- Make a set of golden tests with results stored in a given subdirectory -- inside a subdirectory determined by the GHC version. -testGroupGhcIn :: [FilePath] -> [TestNested] -> TestTree -testGroupGhcIn dir = runTestGroupNestedGhc (["lists", "test"] ++ dir) +runTestGhc :: [FilePath] -> [TestNested] -> TestTree +runTestGhc path = runTestNested (["lists", "test"] ++ path) . pure . testNestedGhc tests :: TestTree tests = - testGroupGhcIn ["Lookup"] $ + runTestGhc ["Lookup"] $ flip concatMap sizes $ \sz -> [ Tx.goldenBudget ("match-scott-list-" ++ show sz) $ Compiled.mkMatchWithListsCode (Compiled.workloadOfSize sz) diff --git a/plutus-benchmark/lists/test/Sum/9.6/left-fold-built-in.budget.golden b/plutus-benchmark/lists/test/Sum/9.6/left-fold-built-in.budget.golden index 395e5b67546..13cac20713b 100644 --- a/plutus-benchmark/lists/test/Sum/9.6/left-fold-built-in.budget.golden +++ b/plutus-benchmark/lists/test/Sum/9.6/left-fold-built-in.budget.golden @@ -1,2 +1,2 @@ -({cpu: 167321654 +({cpu: 123874594 | mem: 533932}) \ No newline at end of file diff --git a/plutus-benchmark/lists/test/Sum/9.6/left-fold-data.budget.golden b/plutus-benchmark/lists/test/Sum/9.6/left-fold-data.budget.golden index 4bf28dbf46f..4b64a373df5 100644 --- a/plutus-benchmark/lists/test/Sum/9.6/left-fold-data.budget.golden +++ b/plutus-benchmark/lists/test/Sum/9.6/left-fold-data.budget.golden @@ -1,2 +1,2 @@ -({cpu: 361242389 +({cpu: 272684232 | mem: 1083930}) \ No newline at end of file diff --git a/plutus-benchmark/lists/test/Sum/9.6/left-fold-scott.budget.golden b/plutus-benchmark/lists/test/Sum/9.6/left-fold-scott.budget.golden index 20b1c51615f..118f7f4fbbd 100644 --- a/plutus-benchmark/lists/test/Sum/9.6/left-fold-scott.budget.golden +++ b/plutus-benchmark/lists/test/Sum/9.6/left-fold-scott.budget.golden @@ -1,2 +1,2 @@ -({cpu: 125205800 +({cpu: 82856900 | mem: 454900}) \ No newline at end of file diff --git a/plutus-benchmark/lists/test/Sum/9.6/right-fold-built-in.budget.golden b/plutus-benchmark/lists/test/Sum/9.6/right-fold-built-in.budget.golden index e02752a7212..c09873e12dd 100644 --- a/plutus-benchmark/lists/test/Sum/9.6/right-fold-built-in.budget.golden +++ b/plutus-benchmark/lists/test/Sum/9.6/right-fold-built-in.budget.golden @@ -1,2 +1,2 @@ -({cpu: 174221654 +({cpu: 128674594 | mem: 563932}) \ No newline at end of file diff --git a/plutus-benchmark/lists/test/Sum/9.6/right-fold-data.budget.golden b/plutus-benchmark/lists/test/Sum/9.6/right-fold-data.budget.golden index 253becdb69d..27c361f4b8d 100644 --- a/plutus-benchmark/lists/test/Sum/9.6/right-fold-data.budget.golden +++ b/plutus-benchmark/lists/test/Sum/9.6/right-fold-data.budget.golden @@ -1,2 +1,2 @@ -({cpu: 368142389 +({cpu: 277484232 | mem: 1113930}) \ No newline at end of file diff --git a/plutus-benchmark/lists/test/Sum/9.6/right-fold-scott.budget.golden b/plutus-benchmark/lists/test/Sum/9.6/right-fold-scott.budget.golden index 7f0a3a0f7f8..98ba89dd8b9 100644 --- a/plutus-benchmark/lists/test/Sum/9.6/right-fold-scott.budget.golden +++ b/plutus-benchmark/lists/test/Sum/9.6/right-fold-scott.budget.golden @@ -1,2 +1,2 @@ -({cpu: 132105800 +({cpu: 87656900 | mem: 484900}) \ No newline at end of file diff --git a/plutus-benchmark/lists/test/Sum/Spec.hs b/plutus-benchmark/lists/test/Sum/Spec.hs index d62dc551b4a..89892581fd0 100644 --- a/plutus-benchmark/lists/test/Sum/Spec.hs +++ b/plutus-benchmark/lists/test/Sum/Spec.hs @@ -2,7 +2,7 @@ module Sum.Spec (tests) where import Test.Tasty -import Test.Tasty.Extras (TestNested, runTestGroupNestedGhc) +import Test.Tasty.Extras (TestNested, runTestNested, testNestedGhc) import Test.Tasty.QuickCheck import PlutusBenchmark.Common (Term, cekResultMatchesHaskellValue) @@ -14,8 +14,8 @@ import PlutusTx.Test qualified as Tx -- Make a set of golden tests with results stored in a given subdirectory -- inside a subdirectory determined by the GHC version. -testGroupGhcIn :: [FilePath] -> [TestNested] -> TestTree -testGroupGhcIn dir = runTestGroupNestedGhc (["lists", "test"] ++ dir) +runTestGhc :: [FilePath] -> [TestNested] -> TestTree +runTestGhc path = runTestNested (["lists", "test"] ++ path) . pure . testNestedGhc -- | Check that the various summation functions all give the same result as 'sum' @@ -37,7 +37,7 @@ tests = , testProperty "Compiled left fold (built-in lists)" $ prop_sum Compiled.mkSumLeftBuiltinTerm , testProperty "Compiled left fold (data lists)" $ prop_sum Compiled.mkSumLeftDataTerm ] - , testGroupGhcIn ["Sum"] + , runTestGhc ["Sum"] [ Tx.goldenBudget "right-fold-scott" $ Compiled.mkSumRightScottCode input , Tx.goldenBudget "right-fold-built-in" $ Compiled.mkSumRightBuiltinCode input , Tx.goldenBudget "right-fold-data" $ Compiled.mkSumRightDataCode input diff --git a/plutus-benchmark/marlowe/bench/BenchCek.hs b/plutus-benchmark/marlowe/bench/BenchCek.hs index 3c1c341a627..1d425b65ad7 100644 --- a/plutus-benchmark/marlowe/bench/BenchCek.hs +++ b/plutus-benchmark/marlowe/bench/BenchCek.hs @@ -2,12 +2,12 @@ module Main where -import PlutusBenchmark.Common (benchProgramCek, mkEvalCtx) +import PlutusBenchmark.Common (benchProgramCek, mkMostRecentEvalCtx) import Shared (runBenchmarks) import Control.Exception (evaluate) main :: IO () main = do - evalCtx <- evaluate mkEvalCtx + evalCtx <- evaluate mkMostRecentEvalCtx runBenchmarks (benchProgramCek evalCtx) diff --git a/plutus-benchmark/marlowe/src/PlutusBenchmark/Marlowe/Scripts/RolePayout.hs b/plutus-benchmark/marlowe/src/PlutusBenchmark/Marlowe/Scripts/RolePayout.hs index fd07357efdf..c8658550273 100644 --- a/plutus-benchmark/marlowe/src/PlutusBenchmark/Marlowe/Scripts/RolePayout.hs +++ b/plutus-benchmark/marlowe/src/PlutusBenchmark/Marlowe/Scripts/RolePayout.hs @@ -40,7 +40,8 @@ import PlutusLedgerApi.V2 (CurrencySymbol, ScriptContext (scriptContextTxInfo), import PlutusLedgerApi.V2.Contexts (valueSpent) import PlutusTx (CompiledCode, unsafeFromBuiltinData) import PlutusTx.Plugin () -import PlutusTx.Prelude as PlutusTxPrelude (Bool (..), BuiltinData, check, toBuiltin, ($), (.)) +import PlutusTx.Prelude as PlutusTxPrelude (Bool (..), BuiltinData, BuiltinUnit, check, toBuiltin, + ($), (.)) import Cardano.Crypto.Hash qualified as Hash import Data.ByteString qualified as BS @@ -65,7 +66,7 @@ mkRolePayoutValidator (currency, role) _ ctx = -- | Compute the hash of a script. -hashScript :: CompiledCode (BuiltinData -> BuiltinData -> BuiltinData -> ()) -> ScriptHash +hashScript :: CompiledCode (BuiltinData -> BuiltinData -> BuiltinData -> BuiltinUnit) -> ScriptHash hashScript = -- FIXME: Apparently this is the wrong recipe, since its hash disagrees with `cardano-cli`. ScriptHash @@ -78,11 +79,11 @@ hashScript = {-# INLINABLE rolePayoutValidator #-} -- | The Marlowe payout validator. -rolePayoutValidator :: CompiledCode (BuiltinData -> BuiltinData -> BuiltinData -> ()) +rolePayoutValidator :: CompiledCode (BuiltinData -> BuiltinData -> BuiltinData -> BuiltinUnit) rolePayoutValidator = $$(PlutusTx.compile [|| rolePayoutValidator' ||]) where - rolePayoutValidator' :: BuiltinData -> BuiltinData -> BuiltinData -> () + rolePayoutValidator' :: BuiltinData -> BuiltinData -> BuiltinData -> BuiltinUnit rolePayoutValidator' d r p = check $ mkRolePayoutValidator diff --git a/plutus-benchmark/marlowe/src/PlutusBenchmark/Marlowe/Scripts/Semantics.hs b/plutus-benchmark/marlowe/src/PlutusBenchmark/Marlowe/Scripts/Semantics.hs index fcf33a09fc6..267a02be430 100644 --- a/plutus-benchmark/marlowe/src/PlutusBenchmark/Marlowe/Scripts/Semantics.hs +++ b/plutus-benchmark/marlowe/src/PlutusBenchmark/Marlowe/Scripts/Semantics.hs @@ -67,11 +67,11 @@ import PlutusTx (CompiledCode, makeIsDataIndexed, makeLift, unsafeFromBuiltinDat import PlutusTx.Plugin () import PlutusTx.Prelude as PlutusTxPrelude (AdditiveGroup ((-)), AdditiveMonoid (zero), AdditiveSemigroup ((+)), Bool (..), BuiltinByteString, - BuiltinData, BuiltinString, Enum (fromEnum), Eq (..), - Functor (fmap), Integer, Maybe (..), Ord ((>)), - Semigroup ((<>)), all, any, check, elem, filter, find, - foldMap, null, otherwise, snd, toBuiltin, ($), (&&), - (.), (/=), (||)) + BuiltinData, BuiltinString, BuiltinUnit, + Enum (fromEnum), Eq (..), Functor (fmap), Integer, + Maybe (..), Ord ((>)), Semigroup ((<>)), all, any, + check, elem, filter, find, foldMap, null, otherwise, + snd, toBuiltin, ($), (&&), (.), (/=), (||)) import Cardano.Crypto.Hash qualified as Hash import Data.ByteString qualified as BS @@ -406,7 +406,7 @@ makeIsDataIndexed ''MarloweTxInput [('Input,0),('MerkleizedTxInput,1)] -- | Compute the hash of a script. -hashScript :: CompiledCode (BuiltinData -> BuiltinData -> BuiltinData -> ()) -> ScriptHash +hashScript :: CompiledCode (BuiltinData -> BuiltinData -> BuiltinData -> BuiltinUnit) -> ScriptHash hashScript = -- FIXME: Apparently this is the wrong recipe, since its hash disagrees with `cardano-cli`. ScriptHash @@ -417,10 +417,10 @@ hashScript = -- | The validator for Marlowe semantics. -marloweValidator :: CompiledCode (BuiltinData -> BuiltinData -> BuiltinData -> ()) +marloweValidator :: CompiledCode (BuiltinData -> BuiltinData -> BuiltinData -> BuiltinUnit) marloweValidator = let - marloweValidator' :: ScriptHash -> BuiltinData -> BuiltinData -> BuiltinData -> () + marloweValidator' :: ScriptHash -> BuiltinData -> BuiltinData -> BuiltinData -> BuiltinUnit marloweValidator' rpvh d r p = check $ mkMarloweValidator rpvh diff --git a/plutus-benchmark/marlowe/test/Spec.hs b/plutus-benchmark/marlowe/test/Spec.hs index 2603e9da0e6..e3591c2f4b1 100644 --- a/plutus-benchmark/marlowe/test/Spec.hs +++ b/plutus-benchmark/marlowe/test/Spec.hs @@ -4,7 +4,7 @@ module Main (main) where import Test.Tasty -import Test.Tasty.Extras (TestNested, runTestGroupNestedGhc) +import Test.Tasty.Extras (TestNested, runTestNested, testNestedGhc) import PlutusBenchmark.Marlowe.BenchUtil (benchmarkToUPLC, rolePayoutBenchmarks, semanticsBenchmarks) @@ -30,8 +30,8 @@ mkBudgetTest validator bm@M.Benchmark{..} = -- Make a set of golden tests with results stored in a given subdirectory -- inside a subdirectory determined by the GHC version. -testGroupGhcIn :: [FilePath] -> [TestNested] -> TestTree -testGroupGhcIn path = runTestGroupNestedGhc (["marlowe", "test"] ++ path) +runTestGhc :: [FilePath] -> [TestNested] -> TestTree +runTestGhc path = runTestNested (["marlowe", "test"] ++ path) . pure . testNestedGhc main :: IO () main = do @@ -45,13 +45,13 @@ main = do let allTests :: TestTree allTests = testGroup "plutus-benchmark Marlowe tests" - [ testGroupGhcIn ["semantics"] $ + [ runTestGhc ["semantics"] $ goldenSize "semantics" marloweValidator : [ goldenUEvalBudget name [value] | bench <- semanticsMBench , let (name, value) = mkBudgetTest marloweValidator bench ] - , testGroupGhcIn ["role-payout"] $ + , runTestGhc ["role-payout"] $ goldenSize "role-payout" rolePayoutValidator : [ goldenUEvalBudget name [value] | bench <- rolePayoutMBench diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/0004000402010401030101030100040000010104020201030001000204020401.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/0004000402010401030101030100040000010104020201030001000204020401.budget.golden index 6cee7aa907a..271ff364221 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/0004000402010401030101030100040000010104020201030001000204020401.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/0004000402010401030101030100040000010104020201030001000204020401.budget.golden @@ -1,2 +1,2 @@ -({cpu: 247988561 +({cpu: 185634074 | mem: 876490}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/0100000100010000000001000100010101000101000001000000010000010000.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/0100000100010000000001000100010101000101000001000000010000010000.budget.golden index cb6af8dee63..d041940ab24 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/0100000100010000000001000100010101000101000001000000010000010000.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/0100000100010000000001000100010101000101000001000000010000010000.budget.golden @@ -1,2 +1,2 @@ -({cpu: 373215336 +({cpu: 274904136 | mem: 1373904}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/0101000100000101010000010101000100010101000001000001000000010101.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/0101000100000101010000010101000100010101000001000001000000010101.budget.golden index bd0f07c0b9d..f6a4364aed1 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/0101000100000101010000010101000100010101000001000001000000010101.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/0101000100000101010000010101000100010101000001000001000000010101.budget.golden @@ -1,2 +1,2 @@ -({cpu: 267781649 +({cpu: 200204188 | mem: 956454}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/01dcc372ea619cb9f23c45b17b9a0a8a16b7ca0e04093ef8ecce291667a99a4c.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/01dcc372ea619cb9f23c45b17b9a0a8a16b7ca0e04093ef8ecce291667a99a4c.budget.golden index 9c23a7785ba..8e682364f1e 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/01dcc372ea619cb9f23c45b17b9a0a8a16b7ca0e04093ef8ecce291667a99a4c.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/01dcc372ea619cb9f23c45b17b9a0a8a16b7ca0e04093ef8ecce291667a99a4c.budget.golden @@ -1,2 +1,2 @@ -({cpu: 213732463 +({cpu: 160863938 | mem: 747222}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/0201020201020000020000010201020001020200000002010200000101010100.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/0201020201020000020000010201020001020200000002010200000101010100.budget.golden index a76604ba2bd..17b309d2705 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/0201020201020000020000010201020001020200000002010200000101010100.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/0201020201020000020000010201020001020200000002010200000101010100.budget.golden @@ -1,2 +1,2 @@ -({cpu: 242342730 +({cpu: 181505946 | mem: 850332}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/0202010002010100020102020102020001010101020102010001010101000100.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/0202010002010100020102020102020001010101020102010001010101000100.budget.golden index c530c3987dc..7a60f5a7fde 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/0202010002010100020102020102020001010101020102010001010101000100.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/0202010002010100020102020102020001010101020102010001010101000100.budget.golden @@ -1,2 +1,2 @@ -({cpu: 223274662 +({cpu: 168188754 | mem: 778272}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/0303020000020001010201060303040208070100050401080304020801030001.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/0303020000020001010201060303040208070100050401080304020801030001.budget.golden index d512a1b92b9..8c7f741270c 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/0303020000020001010201060303040208070100050401080304020801030001.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/0303020000020001010201060303040208070100050401080304020801030001.budget.golden @@ -1,2 +1,2 @@ -({cpu: 221459085 +({cpu: 167027055 | mem: 771670}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/031d56d71454e2c4216ffaa275c4a8b3eb631109559d0e56f44ea8489f57ba97.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/031d56d71454e2c4216ffaa275c4a8b3eb631109559d0e56f44ea8489f57ba97.budget.golden index a11458bed85..5280d057a1a 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/031d56d71454e2c4216ffaa275c4a8b3eb631109559d0e56f44ea8489f57ba97.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/031d56d71454e2c4216ffaa275c4a8b3eb631109559d0e56f44ea8489f57ba97.budget.golden @@ -1,2 +1,2 @@ -({cpu: 283858963 +({cpu: 211814344 | mem: 1011576}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/03d730a62332c51c7b70c16c64da72dd1c3ea36c26b41cd1a1e00d39fda3d6cc.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/03d730a62332c51c7b70c16c64da72dd1c3ea36c26b41cd1a1e00d39fda3d6cc.budget.golden index c1ca925c54c..dbab3353d17 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/03d730a62332c51c7b70c16c64da72dd1c3ea36c26b41cd1a1e00d39fda3d6cc.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/03d730a62332c51c7b70c16c64da72dd1c3ea36c26b41cd1a1e00d39fda3d6cc.budget.golden @@ -1,2 +1,2 @@ -({cpu: 262123280 +({cpu: 195879877 | mem: 931044}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/0403020000030204010000030001000202010101000304030001040404030100.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/0403020000030204010000030001000202010101000304030001040404030100.budget.golden index 2b6491cb1da..7a5bb4dc00d 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/0403020000030204010000030001000202010101000304030001040404030100.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/0403020000030204010000030001000202010101000304030001040404030100.budget.golden @@ -1,2 +1,2 @@ -({cpu: 239288070 +({cpu: 180062226 | mem: 842410}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/0405010105020401010304080005050800040301010800080207080704020206.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/0405010105020401010304080005050800040301010800080207080704020206.budget.golden index 899d2e53906..92e76c82bce 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/0405010105020401010304080005050800040301010800080207080704020206.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/0405010105020401010304080005050800040301010800080207080704020206.budget.golden @@ -1,2 +1,2 @@ -({cpu: 268502337 +({cpu: 200758582 | mem: 953594}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/041a2c3b111139201a3a2c173c392b170e16370d300f2d28342d0f2f0e182e01.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/041a2c3b111139201a3a2c173c392b170e16370d300f2d28342d0f2f0e182e01.budget.golden index e54fa68ba11..6765b349f21 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/041a2c3b111139201a3a2c173c392b170e16370d300f2d28342d0f2f0e182e01.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/041a2c3b111139201a3a2c173c392b170e16370d300f2d28342d0f2f0e182e01.budget.golden @@ -1,2 +1,2 @@ -({cpu: 271076596 +({cpu: 202287269 | mem: 970170}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/04f592afc6e57c633b9c55246e7c82e87258f04e2fb910c37d8e2417e9db46e5.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/04f592afc6e57c633b9c55246e7c82e87258f04e2fb910c37d8e2417e9db46e5.budget.golden index aec63604cb6..12a0cb57ab2 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/04f592afc6e57c633b9c55246e7c82e87258f04e2fb910c37d8e2417e9db46e5.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/04f592afc6e57c633b9c55246e7c82e87258f04e2fb910c37d8e2417e9db46e5.budget.golden @@ -1,2 +1,2 @@ -({cpu: 325529715 +({cpu: 240745580 | mem: 1178698}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/057ebc80922f16a5f4bf13e985bf586b8cff37a2f6fe0f3ce842178c16981027.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/057ebc80922f16a5f4bf13e985bf586b8cff37a2f6fe0f3ce842178c16981027.budget.golden index 28330c1cb5a..5e9eb503780 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/057ebc80922f16a5f4bf13e985bf586b8cff37a2f6fe0f3ce842178c16981027.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/057ebc80922f16a5f4bf13e985bf586b8cff37a2f6fe0f3ce842178c16981027.budget.golden @@ -1,2 +1,2 @@ -({cpu: 218889737 +({cpu: 164932760 | mem: 766344}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/06317060a8e488b1219c9dae427f9ce27918a9e09ee8ac424afa33ca923f7954.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/06317060a8e488b1219c9dae427f9ce27918a9e09ee8ac424afa33ca923f7954.budget.golden index 4c6a1bb29d8..d50a339c7c4 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/06317060a8e488b1219c9dae427f9ce27918a9e09ee8ac424afa33ca923f7954.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/06317060a8e488b1219c9dae427f9ce27918a9e09ee8ac424afa33ca923f7954.budget.golden @@ -1,2 +1,2 @@ -({cpu: 238543475 +({cpu: 178424220 | mem: 838008}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/07658a6c898ad6d624c37df1e49e909c2e9349ba7f4c0a6be5f166fe239bfcae.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/07658a6c898ad6d624c37df1e49e909c2e9349ba7f4c0a6be5f166fe239bfcae.budget.golden index 371cd0e0cd7..77d26e97b3d 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/07658a6c898ad6d624c37df1e49e909c2e9349ba7f4c0a6be5f166fe239bfcae.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/07658a6c898ad6d624c37df1e49e909c2e9349ba7f4c0a6be5f166fe239bfcae.budget.golden @@ -1,2 +1,2 @@ -({cpu: 207887371 +({cpu: 157679050 | mem: 714766}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/0bdca1cb8fa7e38e09062557b82490714052e84e2054e913092cd84ac071b961.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/0bdca1cb8fa7e38e09062557b82490714052e84e2054e913092cd84ac071b961.budget.golden index b8e18e8b7b3..8b6ef8ed6fb 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/0bdca1cb8fa7e38e09062557b82490714052e84e2054e913092cd84ac071b961.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/0bdca1cb8fa7e38e09062557b82490714052e84e2054e913092cd84ac071b961.budget.golden @@ -1,2 +1,2 @@ -({cpu: 270456141 +({cpu: 201678300 | mem: 974642}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/0c9d3634aeae7038f839a1262d1a8bc724dc77af9426459417a56ec73240f0e0.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/0c9d3634aeae7038f839a1262d1a8bc724dc77af9426459417a56ec73240f0e0.budget.golden index a6d5380a5ee..94d7d0a2ec3 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/0c9d3634aeae7038f839a1262d1a8bc724dc77af9426459417a56ec73240f0e0.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/0c9d3634aeae7038f839a1262d1a8bc724dc77af9426459417a56ec73240f0e0.budget.golden @@ -1,2 +1,2 @@ -({cpu: 232222373 +({cpu: 174860232 | mem: 818382}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/0d0f01050a0a0a0b0b050d0404090e0d0506000d0a041003040e0f100e0a0408.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/0d0f01050a0a0a0b0b050d0404090e0d0506000d0a041003040e0f100e0a0408.budget.golden index bbab9e2093b..4a0780d101d 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/0d0f01050a0a0a0b0b050d0404090e0d0506000d0a041003040e0f100e0a0408.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/0d0f01050a0a0a0b0b050d0404090e0d0506000d0a041003040e0f100e0a0408.budget.golden @@ -1,2 +1,2 @@ -({cpu: 236806746 +({cpu: 177120969 | mem: 846810}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/0dbb692d2bf22d25eeceac461cfebf616f54003077a8473abc0457f18e025960.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/0dbb692d2bf22d25eeceac461cfebf616f54003077a8473abc0457f18e025960.budget.golden index f39eed1ce68..33758563cd7 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/0dbb692d2bf22d25eeceac461cfebf616f54003077a8473abc0457f18e025960.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/0dbb692d2bf22d25eeceac461cfebf616f54003077a8473abc0457f18e025960.budget.golden @@ -1,2 +1,2 @@ -({cpu: 275564841 +({cpu: 205776840 | mem: 991014}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/0e00171d0f1e1f14070d0a00091f07101808021d081e1b120219081312081e15.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/0e00171d0f1e1f14070d0a00091f07101808021d081e1b120219081312081e15.budget.golden index dc0b45cd071..9acb2b6e34f 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/0e00171d0f1e1f14070d0a00091f07101808021d081e1b120219081312081e15.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/0e00171d0f1e1f14070d0a00091f07101808021d081e1b120219081312081e15.budget.golden @@ -1,2 +1,2 @@ -({cpu: 225349941 +({cpu: 169575250 | mem: 794270}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/0e72f62b0f922e31a2340baccc768104025400cf7fdd7dae62fbba5fc770936d.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/0e72f62b0f922e31a2340baccc768104025400cf7fdd7dae62fbba5fc770936d.budget.golden index ab9762b2f0a..5499be8d188 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/0e72f62b0f922e31a2340baccc768104025400cf7fdd7dae62fbba5fc770936d.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/0e72f62b0f922e31a2340baccc768104025400cf7fdd7dae62fbba5fc770936d.budget.golden @@ -1,2 +1,2 @@ -({cpu: 253088299 +({cpu: 189127582 | mem: 895920}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/0e97c9d9417354d9460f2eb35018d3904b7b035af16ab299258adab93be0911a.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/0e97c9d9417354d9460f2eb35018d3904b7b035af16ab299258adab93be0911a.budget.golden index 6cee7aa907a..271ff364221 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/0e97c9d9417354d9460f2eb35018d3904b7b035af16ab299258adab93be0911a.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/0e97c9d9417354d9460f2eb35018d3904b7b035af16ab299258adab93be0911a.budget.golden @@ -1,2 +1,2 @@ -({cpu: 247988561 +({cpu: 185634074 | mem: 876490}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/0f010d040810040b10020e040f0e030b0a0d100f0c080c0c05000d04100c100f.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/0f010d040810040b10020e040f0e030b0a0d100f0c080c0c05000d04100c100f.budget.golden index e07c1fd7623..3edb04051f1 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/0f010d040810040b10020e040f0e030b0a0d100f0c080c0c05000d04100c100f.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/0f010d040810040b10020e040f0e030b0a0d100f0c080c0c05000d04100c100f.budget.golden @@ -1,2 +1,2 @@ -({cpu: 264710772 +({cpu: 197854138 | mem: 944840}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/1138a04a83edc0579053f9ffa9394b41df38230121fbecebee8c039776a88c0c.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/1138a04a83edc0579053f9ffa9394b41df38230121fbecebee8c039776a88c0c.budget.golden index 963d34d0e2b..196149569b9 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/1138a04a83edc0579053f9ffa9394b41df38230121fbecebee8c039776a88c0c.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/1138a04a83edc0579053f9ffa9394b41df38230121fbecebee8c039776a88c0c.budget.golden @@ -1,2 +1,2 @@ -({cpu: 221325583 +({cpu: 166703314 | mem: 768474}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/121a0a1b12030616111f02121a0e070716090a0e031c071419121f141409031d.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/121a0a1b12030616111f02121a0e070716090a0e031c071419121f141409031d.budget.golden index ef14f3da5da..8b48fde0fa5 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/121a0a1b12030616111f02121a0e070716090a0e031c071419121f141409031d.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/121a0a1b12030616111f02121a0e070716090a0e031c071419121f141409031d.budget.golden @@ -1,2 +1,2 @@ -({cpu: 218117512 +({cpu: 164120008 | mem: 759150}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/159e5a1bf16fe984b5569be7011b61b5e98f5d2839ca7e1b34c7f2afc7ffb58e.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/159e5a1bf16fe984b5569be7011b61b5e98f5d2839ca7e1b34c7f2afc7ffb58e.budget.golden index 905a290e288..9f26cb2b511 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/159e5a1bf16fe984b5569be7011b61b5e98f5d2839ca7e1b34c7f2afc7ffb58e.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/159e5a1bf16fe984b5569be7011b61b5e98f5d2839ca7e1b34c7f2afc7ffb58e.budget.golden @@ -1,2 +1,2 @@ -({cpu: 222686173 +({cpu: 167852372 | mem: 776970}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/195f522b596360690d04586a2563470f2214163435331a6622311f7323433f1c.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/195f522b596360690d04586a2563470f2214163435331a6622311f7323433f1c.budget.golden index c74e46c5023..43675056460 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/195f522b596360690d04586a2563470f2214163435331a6622311f7323433f1c.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/195f522b596360690d04586a2563470f2214163435331a6622311f7323433f1c.budget.golden @@ -1,2 +1,2 @@ -({cpu: 217074036 +({cpu: 163770985 | mem: 759742}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/1a20b465d48a585ffd622bd8dc26a498a3c12f930ab4feab3a5064cfb3bc536a.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/1a20b465d48a585ffd622bd8dc26a498a3c12f930ab4feab3a5064cfb3bc536a.budget.golden index 765641d123c..fe95503bf99 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/1a20b465d48a585ffd622bd8dc26a498a3c12f930ab4feab3a5064cfb3bc536a.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/1a20b465d48a585ffd622bd8dc26a498a3c12f930ab4feab3a5064cfb3bc536a.budget.golden @@ -1,2 +1,2 @@ -({cpu: 246127295 +({cpu: 184968930 | mem: 864938}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/211e1b6c10260c4620074d2e372c260d38643a3d605f63772524034f0a4a7632.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/211e1b6c10260c4620074d2e372c260d38643a3d605f63772524034f0a4a7632.budget.golden index 399e1921641..b8e0ff1f496 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/211e1b6c10260c4620074d2e372c260d38643a3d605f63772524034f0a4a7632.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/211e1b6c10260c4620074d2e372c260d38643a3d605f63772524034f0a4a7632.budget.golden @@ -1,2 +1,2 @@ -({cpu: 234208961 +({cpu: 176354135 | mem: 821422}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/21a1426fb3fb3019d5dc93f210152e90b0a6e740ef509b1cdd423395f010e0ca.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/21a1426fb3fb3019d5dc93f210152e90b0a6e740ef509b1cdd423395f010e0ca.budget.golden index c21cd17b382..066c0644282 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/21a1426fb3fb3019d5dc93f210152e90b0a6e740ef509b1cdd423395f010e0ca.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/21a1426fb3fb3019d5dc93f210152e90b0a6e740ef509b1cdd423395f010e0ca.budget.golden @@ -1,2 +1,2 @@ -({cpu: 250059635 +({cpu: 187484751 | mem: 888312}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/224ce46046fab9a17be4197622825f45cc0c59a6bd1604405148e43768c487ef.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/224ce46046fab9a17be4197622825f45cc0c59a6bd1604405148e43768c487ef.budget.golden index 963d34d0e2b..196149569b9 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/224ce46046fab9a17be4197622825f45cc0c59a6bd1604405148e43768c487ef.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/224ce46046fab9a17be4197622825f45cc0c59a6bd1604405148e43768c487ef.budget.golden @@ -1,2 +1,2 @@ -({cpu: 221325583 +({cpu: 166703314 | mem: 768474}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/332c2b1c11383d1b373e1315201f1128010e0e1518332f273f141b23243f2a07.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/332c2b1c11383d1b373e1315201f1128010e0e1518332f273f141b23243f2a07.budget.golden index 577fa1954e2..e421791788b 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/332c2b1c11383d1b373e1315201f1128010e0e1518332f273f141b23243f2a07.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/332c2b1c11383d1b373e1315201f1128010e0e1518332f273f141b23243f2a07.budget.golden @@ -1,2 +1,2 @@ -({cpu: 213277476 +({cpu: 160851297 | mem: 749116}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/3565ee025317e065e8555eef288080276716366769aad89e03389f5ec4ce26d7.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/3565ee025317e065e8555eef288080276716366769aad89e03389f5ec4ce26d7.budget.golden index cbab6f9354e..079930bb8dc 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/3565ee025317e065e8555eef288080276716366769aad89e03389f5ec4ce26d7.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/3565ee025317e065e8555eef288080276716366769aad89e03389f5ec4ce26d7.budget.golden @@ -1,2 +1,2 @@ -({cpu: 238546170 +({cpu: 178586258 | mem: 839706}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/3569299fc986f5354d02e627a9eaa48ab46d5af52722307a0af72bae87e256dc.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/3569299fc986f5354d02e627a9eaa48ab46d5af52722307a0af72bae87e256dc.budget.golden index 4d33b18f42c..1f5419f4626 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/3569299fc986f5354d02e627a9eaa48ab46d5af52722307a0af72bae87e256dc.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/3569299fc986f5354d02e627a9eaa48ab46d5af52722307a0af72bae87e256dc.budget.golden @@ -1,2 +1,2 @@ -({cpu: 218889613 +({cpu: 164932684 | mem: 766344}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/36866914aa07cf62ef36cf2cd64c7f240e3371e27bb9fff5464301678e809c40.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/36866914aa07cf62ef36cf2cd64c7f240e3371e27bb9fff5464301678e809c40.budget.golden index 4d33b18f42c..1f5419f4626 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/36866914aa07cf62ef36cf2cd64c7f240e3371e27bb9fff5464301678e809c40.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/36866914aa07cf62ef36cf2cd64c7f240e3371e27bb9fff5464301678e809c40.budget.golden @@ -1,2 +1,2 @@ -({cpu: 218889613 +({cpu: 164932684 | mem: 766344}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/371c10d2526fc0f09dbe9ed59e44dcd949270b27dc42035addd7ff9f7e0d05e7.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/371c10d2526fc0f09dbe9ed59e44dcd949270b27dc42035addd7ff9f7e0d05e7.budget.golden index 29d9f752acc..f30ed3049d1 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/371c10d2526fc0f09dbe9ed59e44dcd949270b27dc42035addd7ff9f7e0d05e7.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/371c10d2526fc0f09dbe9ed59e44dcd949270b27dc42035addd7ff9f7e0d05e7.budget.golden @@ -1,2 +1,2 @@ -({cpu: 273879438 +({cpu: 203752158 | mem: 977312}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/3897ef714bba3e6821495b706c75f8d64264c3fdaa58a3826c808b5a768c303d.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/3897ef714bba3e6821495b706c75f8d64264c3fdaa58a3826c808b5a768c303d.budget.golden index 1cb46f49fac..82dfe461696 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/3897ef714bba3e6821495b706c75f8d64264c3fdaa58a3826c808b5a768c303d.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/3897ef714bba3e6821495b706c75f8d64264c3fdaa58a3826c808b5a768c303d.budget.golden @@ -1,2 +1,2 @@ -({cpu: 228442693 +({cpu: 172163590 | mem: 802556}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/4121d88f14387d33ac5e1329618068e3848445cdd66b29e5ba382be2e02a174a.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/4121d88f14387d33ac5e1329618068e3848445cdd66b29e5ba382be2e02a174a.budget.golden index ca16596418d..d51709a5dba 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/4121d88f14387d33ac5e1329618068e3848445cdd66b29e5ba382be2e02a174a.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/4121d88f14387d33ac5e1329618068e3848445cdd66b29e5ba382be2e02a174a.budget.golden @@ -1,2 +1,2 @@ -({cpu: 271619755 +({cpu: 202483908 | mem: 977766}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/4299c7fcf093a5dbfe114c188e32ca199b571a7c25cb7f766bf49f12dab308be.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/4299c7fcf093a5dbfe114c188e32ca199b571a7c25cb7f766bf49f12dab308be.budget.golden index 6cee7aa907a..271ff364221 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/4299c7fcf093a5dbfe114c188e32ca199b571a7c25cb7f766bf49f12dab308be.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/4299c7fcf093a5dbfe114c188e32ca199b571a7c25cb7f766bf49f12dab308be.budget.golden @@ -1,2 +1,2 @@ -({cpu: 247988561 +({cpu: 185634074 | mem: 876490}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/452e17d16222a427707fa83f63ffb79f606cc25c755a18b1e3274c964ed5ec99.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/452e17d16222a427707fa83f63ffb79f606cc25c755a18b1e3274c964ed5ec99.budget.golden index 989a454b635..f909711836b 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/452e17d16222a427707fa83f63ffb79f606cc25c755a18b1e3274c964ed5ec99.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/452e17d16222a427707fa83f63ffb79f606cc25c755a18b1e3274c964ed5ec99.budget.golden @@ -1,2 +1,2 @@ -({cpu: 278213987 +({cpu: 207657854 | mem: 986750}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/46f8d00030436e4da490a86b331fa6c3251425fb8c19556080e124d75bad7bd6.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/46f8d00030436e4da490a86b331fa6c3251425fb8c19556080e124d75bad7bd6.budget.golden index 4ac3ce3f216..15589e31bab 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/46f8d00030436e4da490a86b331fa6c3251425fb8c19556080e124d75bad7bd6.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/46f8d00030436e4da490a86b331fa6c3251425fb8c19556080e124d75bad7bd6.budget.golden @@ -1,2 +1,2 @@ -({cpu: 220870596 +({cpu: 166690673 | mem: 770368}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/47364cfaf2c00f7d633283dce6cf84e4fd4e8228c0a0aa50e7c55f35c3ecaa1c.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/47364cfaf2c00f7d633283dce6cf84e4fd4e8228c0a0aa50e7c55f35c3ecaa1c.budget.golden index 4ac3ce3f216..15589e31bab 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/47364cfaf2c00f7d633283dce6cf84e4fd4e8228c0a0aa50e7c55f35c3ecaa1c.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/47364cfaf2c00f7d633283dce6cf84e4fd4e8228c0a0aa50e7c55f35c3ecaa1c.budget.golden @@ -1,2 +1,2 @@ -({cpu: 220870596 +({cpu: 166690673 | mem: 770368}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/49b8275d0cb817be40865694ab05e3cfe5fc35fb43b78e7de68c1f3519b536bd.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/49b8275d0cb817be40865694ab05e3cfe5fc35fb43b78e7de68c1f3519b536bd.budget.golden index cb213089b5a..585dfc1a52c 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/49b8275d0cb817be40865694ab05e3cfe5fc35fb43b78e7de68c1f3519b536bd.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/49b8275d0cb817be40865694ab05e3cfe5fc35fb43b78e7de68c1f3519b536bd.budget.golden @@ -1,2 +1,2 @@ -({cpu: 234749610 +({cpu: 175666570 | mem: 829080}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/4dd7755b6ca1f0c9747c1fc0ee4da799f6f1c07108e980bd9f820911ad711ff2.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/4dd7755b6ca1f0c9747c1fc0ee4da799f6f1c07108e980bd9f820911ad711ff2.budget.golden index ca67c361038..9a73b0eabeb 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/4dd7755b6ca1f0c9747c1fc0ee4da799f6f1c07108e980bd9f820911ad711ff2.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/4dd7755b6ca1f0c9747c1fc0ee4da799f6f1c07108e980bd9f820911ad711ff2.budget.golden @@ -1,2 +1,2 @@ -({cpu: 313804765 +({cpu: 233066720 | mem: 1141186}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/4fbcfdb577a56b842d6f6938187a783f71d9da7519353e3da3ef0c564e1eb344.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/4fbcfdb577a56b842d6f6938187a783f71d9da7519353e3da3ef0c564e1eb344.budget.golden index fdd5aef3b5d..505813e9e4f 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/4fbcfdb577a56b842d6f6938187a783f71d9da7519353e3da3ef0c564e1eb344.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/4fbcfdb577a56b842d6f6938187a783f71d9da7519353e3da3ef0c564e1eb344.budget.golden @@ -1,2 +1,2 @@ -({cpu: 288259153 +({cpu: 215313438 | mem: 1034872}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/5a0725d49c733130eda8bc6ed5234f7f6ff8c9dd2d201e8806125e5fbcc081f9.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/5a0725d49c733130eda8bc6ed5234f7f6ff8c9dd2d201e8806125e5fbcc081f9.budget.golden index 473172c1ecf..cfa8584e159 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/5a0725d49c733130eda8bc6ed5234f7f6ff8c9dd2d201e8806125e5fbcc081f9.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/5a0725d49c733130eda8bc6ed5234f7f6ff8c9dd2d201e8806125e5fbcc081f9.budget.golden @@ -1,2 +1,2 @@ -({cpu: 240395441 +({cpu: 179794698 | mem: 855238}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/5a2aae344e569a2c644dd9fa8c7b1f129850937eb562b7748c275f9e40bed596.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/5a2aae344e569a2c644dd9fa8c7b1f129850937eb562b7748c275f9e40bed596.budget.golden index 4ac3ce3f216..15589e31bab 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/5a2aae344e569a2c644dd9fa8c7b1f129850937eb562b7748c275f9e40bed596.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/5a2aae344e569a2c644dd9fa8c7b1f129850937eb562b7748c275f9e40bed596.budget.golden @@ -1,2 +1,2 @@ -({cpu: 220870596 +({cpu: 166690673 | mem: 770368}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/5ade103e9530dd0d572fe1b053ea65ad925c6ebbe321e873ace8b804363fa82c.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/5ade103e9530dd0d572fe1b053ea65ad925c6ebbe321e873ace8b804363fa82c.budget.golden index e74ebfa8037..1ffdd61bf3c 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/5ade103e9530dd0d572fe1b053ea65ad925c6ebbe321e873ace8b804363fa82c.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/5ade103e9530dd0d572fe1b053ea65ad925c6ebbe321e873ace8b804363fa82c.budget.golden @@ -1,2 +1,2 @@ -({cpu: 334484284 +({cpu: 246785356 | mem: 1224910}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/5d4c62a0671c65a14f6a15093e3efc4f1816d95a5a58fd92486bedaae8d9526b.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/5d4c62a0671c65a14f6a15093e3efc4f1816d95a5a58fd92486bedaae8d9526b.budget.golden index b8e18e8b7b3..8b6ef8ed6fb 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/5d4c62a0671c65a14f6a15093e3efc4f1816d95a5a58fd92486bedaae8d9526b.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/5d4c62a0671c65a14f6a15093e3efc4f1816d95a5a58fd92486bedaae8d9526b.budget.golden @@ -1,2 +1,2 @@ -({cpu: 270456141 +({cpu: 201678300 | mem: 974642}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/5efe992e306e31cc857c64a62436ad2f9325acc5b4a74a8cebccdfd853ce63d2.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/5efe992e306e31cc857c64a62436ad2f9325acc5b4a74a8cebccdfd853ce63d2.budget.golden index cb213089b5a..585dfc1a52c 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/5efe992e306e31cc857c64a62436ad2f9325acc5b4a74a8cebccdfd853ce63d2.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/5efe992e306e31cc857c64a62436ad2f9325acc5b4a74a8cebccdfd853ce63d2.budget.golden @@ -1,2 +1,2 @@ -({cpu: 234749610 +({cpu: 175666570 | mem: 829080}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/622a7f3bc611b5149253c9189da022a9ff296f60a5b7c172a6dc286faa7284fa.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/622a7f3bc611b5149253c9189da022a9ff296f60a5b7c172a6dc286faa7284fa.budget.golden index 484c5904d6a..4087b57876f 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/622a7f3bc611b5149253c9189da022a9ff296f60a5b7c172a6dc286faa7284fa.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/622a7f3bc611b5149253c9189da022a9ff296f60a5b7c172a6dc286faa7284fa.budget.golden @@ -1,2 +1,2 @@ -({cpu: 279047469 +({cpu: 207726994 | mem: 1001596}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/6621a69217f09d91f42876a9c0cecf79de0e29bdd5b16c82c6c52cf959092ec4.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/6621a69217f09d91f42876a9c0cecf79de0e29bdd5b16c82c6c52cf959092ec4.budget.golden index 8035f174e78..fd1c36d586d 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/6621a69217f09d91f42876a9c0cecf79de0e29bdd5b16c82c6c52cf959092ec4.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/6621a69217f09d91f42876a9c0cecf79de0e29bdd5b16c82c6c52cf959092ec4.budget.golden @@ -1,2 +1,2 @@ -({cpu: 251372407 +({cpu: 188190676 | mem: 893786}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/674b0577409957172ad85223c765d17e94c27714276c49c38dfae0a47a561a1e.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/674b0577409957172ad85223c765d17e94c27714276c49c38dfae0a47a561a1e.budget.golden index c74e46c5023..43675056460 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/674b0577409957172ad85223c765d17e94c27714276c49c38dfae0a47a561a1e.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/674b0577409957172ad85223c765d17e94c27714276c49c38dfae0a47a561a1e.budget.golden @@ -1,2 +1,2 @@ -({cpu: 217074036 +({cpu: 163770985 | mem: 759742}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/6b7bc2b9002a71b33cfd535d43f26334a283d0b9ad189b7cd74baac232c3b9fc.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/6b7bc2b9002a71b33cfd535d43f26334a283d0b9ad189b7cd74baac232c3b9fc.budget.golden index 371cd0e0cd7..77d26e97b3d 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/6b7bc2b9002a71b33cfd535d43f26334a283d0b9ad189b7cd74baac232c3b9fc.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/6b7bc2b9002a71b33cfd535d43f26334a283d0b9ad189b7cd74baac232c3b9fc.budget.golden @@ -1,2 +1,2 @@ -({cpu: 207887371 +({cpu: 157679050 | mem: 714766}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/6c364699767a84059ffd99cf718562a8c09d96e343f23dc481e8ffda13af424f.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/6c364699767a84059ffd99cf718562a8c09d96e343f23dc481e8ffda13af424f.budget.golden index 4ac3ce3f216..15589e31bab 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/6c364699767a84059ffd99cf718562a8c09d96e343f23dc481e8ffda13af424f.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/6c364699767a84059ffd99cf718562a8c09d96e343f23dc481e8ffda13af424f.budget.golden @@ -1,2 +1,2 @@ -({cpu: 220870596 +({cpu: 166690673 | mem: 770368}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/6d66bddb4269bdf77392d3894da5341cf019d39787522af4f83f01285991e93c.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/6d66bddb4269bdf77392d3894da5341cf019d39787522af4f83f01285991e93c.budget.golden index 905a290e288..9f26cb2b511 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/6d66bddb4269bdf77392d3894da5341cf019d39787522af4f83f01285991e93c.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/6d66bddb4269bdf77392d3894da5341cf019d39787522af4f83f01285991e93c.budget.golden @@ -1,2 +1,2 @@ -({cpu: 222686173 +({cpu: 167852372 | mem: 776970}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/73f044f34a30f26639c58bafe952047f74c7bf1eafebab5aadf5b73cfb9024ed.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/73f044f34a30f26639c58bafe952047f74c7bf1eafebab5aadf5b73cfb9024ed.budget.golden index 4ac3ce3f216..15589e31bab 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/73f044f34a30f26639c58bafe952047f74c7bf1eafebab5aadf5b73cfb9024ed.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/73f044f34a30f26639c58bafe952047f74c7bf1eafebab5aadf5b73cfb9024ed.budget.golden @@ -1,2 +1,2 @@ -({cpu: 220870596 +({cpu: 166690673 | mem: 770368}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/7b1dd76edc27f00eb382bf996378155baf74d6a7c6f3d5ec837c39d29784aade.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/7b1dd76edc27f00eb382bf996378155baf74d6a7c6f3d5ec837c39d29784aade.budget.golden index 905a290e288..9f26cb2b511 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/7b1dd76edc27f00eb382bf996378155baf74d6a7c6f3d5ec837c39d29784aade.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/7b1dd76edc27f00eb382bf996378155baf74d6a7c6f3d5ec837c39d29784aade.budget.golden @@ -1,2 +1,2 @@ -({cpu: 222686173 +({cpu: 167852372 | mem: 776970}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/803eae94d62e2afc0e835c204af8362170301bc329e2d849d5f5a47dddf479ec.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/803eae94d62e2afc0e835c204af8362170301bc329e2d849d5f5a47dddf479ec.budget.golden index 3de0401ad17..6fcefb47f77 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/803eae94d62e2afc0e835c204af8362170301bc329e2d849d5f5a47dddf479ec.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/803eae94d62e2afc0e835c204af8362170301bc329e2d849d5f5a47dddf479ec.budget.golden @@ -1,2 +1,2 @@ -({cpu: 261297873 +({cpu: 194839680 | mem: 940350}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/87167fc5469adac97c1be749326fa79a6b7862ce68aa4abcb438e3c034bd0899.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/87167fc5469adac97c1be749326fa79a6b7862ce68aa4abcb438e3c034bd0899.budget.golden index 27245d8005d..da585bfb0ed 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/87167fc5469adac97c1be749326fa79a6b7862ce68aa4abcb438e3c034bd0899.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/87167fc5469adac97c1be749326fa79a6b7862ce68aa4abcb438e3c034bd0899.budget.golden @@ -1,2 +1,2 @@ -({cpu: 275954717 +({cpu: 205138654 | mem: 993310}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/8c0fa5d9d6724c5c72c67e055d4bfc36a385ded7c3c81c08cdbd8705829af6e6.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/8c0fa5d9d6724c5c72c67e055d4bfc36a385ded7c3c81c08cdbd8705829af6e6.budget.golden index a509e3db53f..1ac81d033cc 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/8c0fa5d9d6724c5c72c67e055d4bfc36a385ded7c3c81c08cdbd8705829af6e6.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/8c0fa5d9d6724c5c72c67e055d4bfc36a385ded7c3c81c08cdbd8705829af6e6.budget.golden @@ -1,2 +1,2 @@ -({cpu: 276764886 +({cpu: 206065066 | mem: 1001104}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/962c2c658b19904372984a56409707401e64e9b03c1986647134cfd329ec5139.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/962c2c658b19904372984a56409707401e64e9b03c1986647134cfd329ec5139.budget.golden index 5307b99f5cf..cb54e12219c 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/962c2c658b19904372984a56409707401e64e9b03c1986647134cfd329ec5139.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/962c2c658b19904372984a56409707401e64e9b03c1986647134cfd329ec5139.budget.golden @@ -1,2 +1,2 @@ -({cpu: 247575847 +({cpu: 185270988 | mem: 883160}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/996804e90f2c75fe68886fc8511304b8ab9b36785f8858f5cb098e91c159dde9.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/996804e90f2c75fe68886fc8511304b8ab9b36785f8858f5cb098e91c159dde9.budget.golden index a3eeed8e7c2..b8916fddcac 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/996804e90f2c75fe68886fc8511304b8ab9b36785f8858f5cb098e91c159dde9.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/996804e90f2c75fe68886fc8511304b8ab9b36785f8858f5cb098e91c159dde9.budget.golden @@ -1,2 +1,2 @@ -({cpu: 230412401 +({cpu: 173434447 | mem: 810796}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/a004a989c005d59043f996500e110fa756ad1b85800b889d5815a0106388e1d7.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/a004a989c005d59043f996500e110fa756ad1b85800b889d5815a0106388e1d7.budget.golden index 1ac8ce799ef..8304c803843 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/a004a989c005d59043f996500e110fa756ad1b85800b889d5815a0106388e1d7.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/a004a989c005d59043f996500e110fa756ad1b85800b889d5815a0106388e1d7.budget.golden @@ -1,2 +1,2 @@ -({cpu: 238389182 +({cpu: 179179053 | mem: 838184}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/a0fba5740174b5cd24036c8b008cb1efde73f1edae097b9325c6117a0ff40d3b.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/a0fba5740174b5cd24036c8b008cb1efde73f1edae097b9325c6117a0ff40d3b.budget.golden index 6aba1971e75..1013d6df40f 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/a0fba5740174b5cd24036c8b008cb1efde73f1edae097b9325c6117a0ff40d3b.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/a0fba5740174b5cd24036c8b008cb1efde73f1edae097b9325c6117a0ff40d3b.budget.golden @@ -1,2 +1,2 @@ -({cpu: 251229839 +({cpu: 188595658 | mem: 887398}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/a1b25347409c3993feca1a60b6fcaf93d1d4bbaae19ab06fdf50cedc26cee68d.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/a1b25347409c3993feca1a60b6fcaf93d1d4bbaae19ab06fdf50cedc26cee68d.budget.golden index 7bf2bdf0803..f49c344bcef 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/a1b25347409c3993feca1a60b6fcaf93d1d4bbaae19ab06fdf50cedc26cee68d.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/a1b25347409c3993feca1a60b6fcaf93d1d4bbaae19ab06fdf50cedc26cee68d.budget.golden @@ -1,2 +1,2 @@ -({cpu: 211917072 +({cpu: 159702353 | mem: 740620}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/a27524cfad019df45e4e8316f927346d4cc39da6bdd294fb2c33c3f58e6a8994.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/a27524cfad019df45e4e8316f927346d4cc39da6bdd294fb2c33c3f58e6a8994.budget.golden index 4ac3ce3f216..15589e31bab 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/a27524cfad019df45e4e8316f927346d4cc39da6bdd294fb2c33c3f58e6a8994.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/a27524cfad019df45e4e8316f927346d4cc39da6bdd294fb2c33c3f58e6a8994.budget.golden @@ -1,2 +1,2 @@ -({cpu: 220870596 +({cpu: 166690673 | mem: 770368}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/a6664a2d2a82f370a34a36a45234f6b33120a39372331678a3b3690312560ce9.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/a6664a2d2a82f370a34a36a45234f6b33120a39372331678a3b3690312560ce9.budget.golden index 08610ca61fe..13b0ef1dd70 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/a6664a2d2a82f370a34a36a45234f6b33120a39372331678a3b3690312560ce9.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/a6664a2d2a82f370a34a36a45234f6b33120a39372331678a3b3690312560ce9.budget.golden @@ -1,2 +1,2 @@ -({cpu: 287619463 +({cpu: 213514765 | mem: 1047006}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/a6f064b83b31032ea7f25921364727224707268e472a569f584cc6b1d8c017e8.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/a6f064b83b31032ea7f25921364727224707268e472a569f584cc6b1d8c017e8.budget.golden index 905a290e288..9f26cb2b511 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/a6f064b83b31032ea7f25921364727224707268e472a569f584cc6b1d8c017e8.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/a6f064b83b31032ea7f25921364727224707268e472a569f584cc6b1d8c017e8.budget.golden @@ -1,2 +1,2 @@ -({cpu: 222686173 +({cpu: 167852372 | mem: 776970}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/a7cb09f417c3f089619fe25b7624392026382b458486129efcff18f8912bf302.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/a7cb09f417c3f089619fe25b7624392026382b458486129efcff18f8912bf302.budget.golden index 4ac3ce3f216..15589e31bab 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/a7cb09f417c3f089619fe25b7624392026382b458486129efcff18f8912bf302.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/a7cb09f417c3f089619fe25b7624392026382b458486129efcff18f8912bf302.budget.golden @@ -1,2 +1,2 @@ -({cpu: 220870596 +({cpu: 166690673 | mem: 770368}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/a92b4072cb8601fa697e1150c08463b14ffced54eb963df08d322216e27373cb.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/a92b4072cb8601fa697e1150c08463b14ffced54eb963df08d322216e27373cb.budget.golden index 905a290e288..9f26cb2b511 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/a92b4072cb8601fa697e1150c08463b14ffced54eb963df08d322216e27373cb.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/a92b4072cb8601fa697e1150c08463b14ffced54eb963df08d322216e27373cb.budget.golden @@ -1,2 +1,2 @@ -({cpu: 222686173 +({cpu: 167852372 | mem: 776970}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/af2e072b5adfaa7211e0b341e1f7319c4f4e7364a4247c9247132a927e914753.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/af2e072b5adfaa7211e0b341e1f7319c4f4e7364a4247c9247132a927e914753.budget.golden index 81c7c3fa21d..c952a2c2934 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/af2e072b5adfaa7211e0b341e1f7319c4f4e7364a4247c9247132a927e914753.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/af2e072b5adfaa7211e0b341e1f7319c4f4e7364a4247c9247132a927e914753.budget.golden @@ -1,2 +1,2 @@ -({cpu: 273290949 +({cpu: 203415776 | mem: 976010}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/b43564af5f13cc5208b92b1ad6d45369446f378d3891e5cb3e353b30d4f3fb10.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/b43564af5f13cc5208b92b1ad6d45369446f378d3891e5cb3e353b30d4f3fb10.budget.golden index 905a290e288..9f26cb2b511 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/b43564af5f13cc5208b92b1ad6d45369446f378d3891e5cb3e353b30d4f3fb10.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/b43564af5f13cc5208b92b1ad6d45369446f378d3891e5cb3e353b30d4f3fb10.budget.golden @@ -1,2 +1,2 @@ -({cpu: 222686173 +({cpu: 167852372 | mem: 776970}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/b6243a5b4c353ce4852aa41705111d57867d2783eeef76f6d59beb2360da6e90.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/b6243a5b4c353ce4852aa41705111d57867d2783eeef76f6d59beb2360da6e90.budget.golden index a682967cb65..7890669613e 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/b6243a5b4c353ce4852aa41705111d57867d2783eeef76f6d59beb2360da6e90.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/b6243a5b4c353ce4852aa41705111d57867d2783eeef76f6d59beb2360da6e90.budget.golden @@ -1,2 +1,2 @@ -({cpu: 317245847 +({cpu: 235656842 | mem: 1141082}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/b869f3928200061abb1c3060425b9354b0e08cbf4400b340b8707c14b34317cd.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/b869f3928200061abb1c3060425b9354b0e08cbf4400b340b8707c14b34317cd.budget.golden index b37dd8b6b04..15e0e1bcdc6 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/b869f3928200061abb1c3060425b9354b0e08cbf4400b340b8707c14b34317cd.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/b869f3928200061abb1c3060425b9354b0e08cbf4400b340b8707c14b34317cd.budget.golden @@ -1,2 +1,2 @@ -({cpu: 358107848 +({cpu: 264751763 | mem: 1312902}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/bcdbc576d63b0454100ad06893812edafc2e7e4934fec1b44e2d06eb34f36eb8.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/bcdbc576d63b0454100ad06893812edafc2e7e4934fec1b44e2d06eb34f36eb8.budget.golden index 905a290e288..9f26cb2b511 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/bcdbc576d63b0454100ad06893812edafc2e7e4934fec1b44e2d06eb34f36eb8.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/bcdbc576d63b0454100ad06893812edafc2e7e4934fec1b44e2d06eb34f36eb8.budget.golden @@ -1,2 +1,2 @@ -({cpu: 222686173 +({cpu: 167852372 | mem: 776970}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/bd460b7549b70c52e37b312a4242041eac18fe4a266f018bcea0c78a9085a271.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/bd460b7549b70c52e37b312a4242041eac18fe4a266f018bcea0c78a9085a271.budget.golden index b870ff7007b..b379efd97a4 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/bd460b7549b70c52e37b312a4242041eac18fe4a266f018bcea0c78a9085a271.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/bd460b7549b70c52e37b312a4242041eac18fe4a266f018bcea0c78a9085a271.budget.golden @@ -1,2 +1,2 @@ -({cpu: 265697829 +({cpu: 197576400 | mem: 954758}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/bd79f4a84db23b7c4cd219d498bd581e085cbc3437957e74a8862281a700700b.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/bd79f4a84db23b7c4cd219d498bd581e085cbc3437957e74a8862281a700700b.budget.golden index e07c1fd7623..3edb04051f1 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/bd79f4a84db23b7c4cd219d498bd581e085cbc3437957e74a8862281a700700b.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/bd79f4a84db23b7c4cd219d498bd581e085cbc3437957e74a8862281a700700b.budget.golden @@ -1,2 +1,2 @@ -({cpu: 264710772 +({cpu: 197854138 | mem: 944840}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/c11490431db3a92efdda70933ba411a0423935e73a75c856e326dbcf6672f3bf.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/c11490431db3a92efdda70933ba411a0423935e73a75c856e326dbcf6672f3bf.budget.golden index c530c3987dc..7a60f5a7fde 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/c11490431db3a92efdda70933ba411a0423935e73a75c856e326dbcf6672f3bf.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/c11490431db3a92efdda70933ba411a0423935e73a75c856e326dbcf6672f3bf.budget.golden @@ -1,2 +1,2 @@ -({cpu: 223274662 +({cpu: 168188754 | mem: 778272}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/c4d4c88c5fe378a25a034025994a0d0b1642f10c8e6e513f872327fa895bfc7e.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/c4d4c88c5fe378a25a034025994a0d0b1642f10c8e6e513f872327fa895bfc7e.budget.golden index bb0bacfd6f6..24360c3d5b9 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/c4d4c88c5fe378a25a034025994a0d0b1642f10c8e6e513f872327fa895bfc7e.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/c4d4c88c5fe378a25a034025994a0d0b1642f10c8e6e513f872327fa895bfc7e.budget.golden @@ -1,2 +1,2 @@ -({cpu: 243779287 +({cpu: 182351300 | mem: 872534}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/c78eeba7681d2ab51b4758efa4c812cc041928837c6e7563d8283cce67ce2e02.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/c78eeba7681d2ab51b4758efa4c812cc041928837c6e7563d8283cce67ce2e02.budget.golden index f7762fddb9b..e497d5899dc 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/c78eeba7681d2ab51b4758efa4c812cc041928837c6e7563d8283cce67ce2e02.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/c78eeba7681d2ab51b4758efa4c812cc041928837c6e7563d8283cce67ce2e02.budget.golden @@ -1,2 +1,2 @@ -({cpu: 242831411 +({cpu: 181565328 | mem: 857368}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/c99ecc2146ce2066ba6dffc734923264f8794815acbc2ec74c2c2c42ba272e4d.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/c99ecc2146ce2066ba6dffc734923264f8794815acbc2ec74c2c2c42ba272e4d.budget.golden index b05446402c9..ab6fd410721 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/c99ecc2146ce2066ba6dffc734923264f8794815acbc2ec74c2c2c42ba272e4d.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/c99ecc2146ce2066ba6dffc734923264f8794815acbc2ec74c2c2c42ba272e4d.budget.golden @@ -1,2 +1,2 @@ -({cpu: 288240042 +({cpu: 214123810 | mem: 1042534}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/caa409c40e39aed9b0f59214b4baa178c375526dea6026b4552b88d2cc729716.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/caa409c40e39aed9b0f59214b4baa178c375526dea6026b4552b88d2cc729716.budget.golden index 371cd0e0cd7..77d26e97b3d 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/caa409c40e39aed9b0f59214b4baa178c375526dea6026b4552b88d2cc729716.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/caa409c40e39aed9b0f59214b4baa178c375526dea6026b4552b88d2cc729716.budget.golden @@ -1,2 +1,2 @@ -({cpu: 207887371 +({cpu: 157679050 | mem: 714766}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/cb2ab8e22d1f64e8d204dece092e90e9bf1fa8b2a6e9cba5012dbe4978065832.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/cb2ab8e22d1f64e8d204dece092e90e9bf1fa8b2a6e9cba5012dbe4978065832.budget.golden index c530c3987dc..7a60f5a7fde 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/cb2ab8e22d1f64e8d204dece092e90e9bf1fa8b2a6e9cba5012dbe4978065832.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/cb2ab8e22d1f64e8d204dece092e90e9bf1fa8b2a6e9cba5012dbe4978065832.budget.golden @@ -1,2 +1,2 @@ -({cpu: 223274662 +({cpu: 168188754 | mem: 778272}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/cc1e82927f6c65b3e912200ae30588793d2066e1d4a6627c21955944ac9bd528.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/cc1e82927f6c65b3e912200ae30588793d2066e1d4a6627c21955944ac9bd528.budget.golden index eb78f66f24c..11a11e88189 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/cc1e82927f6c65b3e912200ae30588793d2066e1d4a6627c21955944ac9bd528.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/cc1e82927f6c65b3e912200ae30588793d2066e1d4a6627c21955944ac9bd528.budget.golden @@ -1,2 +1,2 @@ -({cpu: 256972672 +({cpu: 192867566 | mem: 904792}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/d5cda74eb0947e025e02fb8ed365df39d0a43e4b42cd3573ac2d8fcb29115997.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/d5cda74eb0947e025e02fb8ed365df39d0a43e4b42cd3573ac2d8fcb29115997.budget.golden index 6799f5804e5..a412752fdbf 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/d5cda74eb0947e025e02fb8ed365df39d0a43e4b42cd3573ac2d8fcb29115997.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/d5cda74eb0947e025e02fb8ed365df39d0a43e4b42cd3573ac2d8fcb29115997.budget.golden @@ -1,2 +1,2 @@ -({cpu: 249911970 +({cpu: 187680816 | mem: 882636}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/d6bc8ac4155e22300085784148bbc9d9bbfea896e1009dd396610a90e3943032.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/d6bc8ac4155e22300085784148bbc9d9bbfea896e1009dd396610a90e3943032.budget.golden index b870ff7007b..b379efd97a4 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/d6bc8ac4155e22300085784148bbc9d9bbfea896e1009dd396610a90e3943032.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/d6bc8ac4155e22300085784148bbc9d9bbfea896e1009dd396610a90e3943032.budget.golden @@ -1,2 +1,2 @@ -({cpu: 265697829 +({cpu: 197576400 | mem: 954758}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/da353bf9219801fa1bf703fc161497570954e9af7e10ffe95c911a9ef97e77bd.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/da353bf9219801fa1bf703fc161497570954e9af7e10ffe95c911a9ef97e77bd.budget.golden index e1db8577151..29507ba5834 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/da353bf9219801fa1bf703fc161497570954e9af7e10ffe95c911a9ef97e77bd.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/da353bf9219801fa1bf703fc161497570954e9af7e10ffe95c911a9ef97e77bd.budget.golden @@ -1,2 +1,2 @@ -({cpu: 234972359 +({cpu: 175464704 | mem: 827382}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/dc45c5f1b700b1334db99f50823321daaef0e6925b9b2fabbc9df7cde65af62e.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/dc45c5f1b700b1334db99f50823321daaef0e6925b9b2fabbc9df7cde65af62e.budget.golden index 6a69d7acae5..fe94171777f 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/dc45c5f1b700b1334db99f50823321daaef0e6925b9b2fabbc9df7cde65af62e.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/dc45c5f1b700b1334db99f50823321daaef0e6925b9b2fabbc9df7cde65af62e.budget.golden @@ -1,2 +1,2 @@ -({cpu: 232943061 +({cpu: 175414626 | mem: 815522}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/df487b2fd5c1583fa33644423849bc1ab5f02f37edc0c235f34ef01cb12604f6.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/df487b2fd5c1583fa33644423849bc1ab5f02f37edc0c235f34ef01cb12604f6.budget.golden index 5a924bbd848..c6158cbd61e 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/df487b2fd5c1583fa33644423849bc1ab5f02f37edc0c235f34ef01cb12604f6.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/df487b2fd5c1583fa33644423849bc1ab5f02f37edc0c235f34ef01cb12604f6.budget.golden @@ -1,2 +1,2 @@ -({cpu: 233531550 +({cpu: 175751008 | mem: 816824}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/eabeeae18131af89fa57936c0e9eb8d2c7adba534f7e1a517d75410028fa0d6c.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/eabeeae18131af89fa57936c0e9eb8d2c7adba534f7e1a517d75410028fa0d6c.budget.golden index 905a290e288..9f26cb2b511 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/eabeeae18131af89fa57936c0e9eb8d2c7adba534f7e1a517d75410028fa0d6c.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/eabeeae18131af89fa57936c0e9eb8d2c7adba534f7e1a517d75410028fa0d6c.budget.golden @@ -1,2 +1,2 @@ -({cpu: 222686173 +({cpu: 167852372 | mem: 776970}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/ec4712ee820eb959a43ebedfab6735f2325fa52994747526ffd2a4f4f84dd58e.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/ec4712ee820eb959a43ebedfab6735f2325fa52994747526ffd2a4f4f84dd58e.budget.golden index 6b56e9008ca..e0141ad35f9 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/ec4712ee820eb959a43ebedfab6735f2325fa52994747526ffd2a4f4f84dd58e.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/ec4712ee820eb959a43ebedfab6735f2325fa52994747526ffd2a4f4f84dd58e.budget.golden @@ -1,2 +1,2 @@ -({cpu: 260885691 +({cpu: 195681059 | mem: 923530}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/ee3962fbd7373360f46decef3c9bda536a0b1daf6cda3b8a4bcfd6deeb5b4c53.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/ee3962fbd7373360f46decef3c9bda536a0b1daf6cda3b8a4bcfd6deeb5b4c53.budget.golden index e07c1fd7623..3edb04051f1 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/ee3962fbd7373360f46decef3c9bda536a0b1daf6cda3b8a4bcfd6deeb5b4c53.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/ee3962fbd7373360f46decef3c9bda536a0b1daf6cda3b8a4bcfd6deeb5b4c53.budget.golden @@ -1,2 +1,2 @@ -({cpu: 264710772 +({cpu: 197854138 | mem: 944840}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/f1a1e6a487f91feca5606f72bbb1e948c71abf043c6a0ea83bfea9ec6a0f08d8.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/f1a1e6a487f91feca5606f72bbb1e948c71abf043c6a0ea83bfea9ec6a0f08d8.budget.golden index 4ac3ce3f216..15589e31bab 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/f1a1e6a487f91feca5606f72bbb1e948c71abf043c6a0ea83bfea9ec6a0f08d8.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/f1a1e6a487f91feca5606f72bbb1e948c71abf043c6a0ea83bfea9ec6a0f08d8.budget.golden @@ -1,2 +1,2 @@ -({cpu: 220870596 +({cpu: 166690673 | mem: 770368}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/f2932e4ca4bbb94b0a9ffbe95fcb7bd5639d9751d75d56d5e14efa5bbed981df.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/f2932e4ca4bbb94b0a9ffbe95fcb7bd5639d9751d75d56d5e14efa5bbed981df.budget.golden index 4d33b18f42c..1f5419f4626 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/f2932e4ca4bbb94b0a9ffbe95fcb7bd5639d9751d75d56d5e14efa5bbed981df.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/f2932e4ca4bbb94b0a9ffbe95fcb7bd5639d9751d75d56d5e14efa5bbed981df.budget.golden @@ -1,2 +1,2 @@ -({cpu: 218889613 +({cpu: 164932684 | mem: 766344}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/f53e8cafe26647ccce51e4c31db13608aea1f39034c0f52dee2e5634ef66e747.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/f53e8cafe26647ccce51e4c31db13608aea1f39034c0f52dee2e5634ef66e747.budget.golden index d87a0dc79ad..1bcbe5447d3 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/f53e8cafe26647ccce51e4c31db13608aea1f39034c0f52dee2e5634ef66e747.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/f53e8cafe26647ccce51e4c31db13608aea1f39034c0f52dee2e5634ef66e747.budget.golden @@ -1,2 +1,2 @@ -({cpu: 246627971 +({cpu: 184485016 | mem: 867994}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/f7275afb60e33a550df13a132102e7e925dd28965a4efbe510a89b077ff9417f.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/f7275afb60e33a550df13a132102e7e925dd28965a4efbe510a89b077ff9417f.budget.golden index 905a290e288..9f26cb2b511 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/f7275afb60e33a550df13a132102e7e925dd28965a4efbe510a89b077ff9417f.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/f7275afb60e33a550df13a132102e7e925dd28965a4efbe510a89b077ff9417f.budget.golden @@ -1,2 +1,2 @@ -({cpu: 222686173 +({cpu: 167852372 | mem: 776970}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/fc8c5f45ffcdb024c21e0f34b22c23de8045a94d5e1a5bda1555c45ddb059f82.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/fc8c5f45ffcdb024c21e0f34b22c23de8045a94d5e1a5bda1555c45ddb059f82.budget.golden index 399e1921641..b8e0ff1f496 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/fc8c5f45ffcdb024c21e0f34b22c23de8045a94d5e1a5bda1555c45ddb059f82.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/fc8c5f45ffcdb024c21e0f34b22c23de8045a94d5e1a5bda1555c45ddb059f82.budget.golden @@ -1,2 +1,2 @@ -({cpu: 234208961 +({cpu: 176354135 | mem: 821422}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/role-payout/9.6/ff38b1ec89952d0247630f107a90cbbeb92ecbfcd19b284f60255718e4ec7548.budget.golden b/plutus-benchmark/marlowe/test/role-payout/9.6/ff38b1ec89952d0247630f107a90cbbeb92ecbfcd19b284f60255718e4ec7548.budget.golden index ed0092008de..eeec5ba68bb 100644 --- a/plutus-benchmark/marlowe/test/role-payout/9.6/ff38b1ec89952d0247630f107a90cbbeb92ecbfcd19b284f60255718e4ec7548.budget.golden +++ b/plutus-benchmark/marlowe/test/role-payout/9.6/ff38b1ec89952d0247630f107a90cbbeb92ecbfcd19b284f60255718e4ec7548.budget.golden @@ -1,2 +1,2 @@ -({cpu: 276688733 +({cpu: 206368656 | mem: 987398}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/0000020002010200020101020201000100010001020101020201010000020102.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/0000020002010200020101020201000100010001020101020201010000020102.budget.golden index d1d4047dc15..c3358111167 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/0000020002010200020101020201000100010001020101020201010000020102.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/0000020002010200020101020201000100010001020101020201010000020102.budget.golden @@ -1,2 +1,2 @@ -({cpu: 374190171 +({cpu: 275488915 | mem: 1344765}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/0001000101000000010101000001000001010101010100000001000001010000.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/0001000101000000010101000001000001010101010100000001000001010000.budget.golden index 937fba1cee2..1ed218b1eec 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/0001000101000000010101000001000001010101010100000001000001010000.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/0001000101000000010101000001000001010101010100000001000001010000.budget.golden @@ -1,2 +1,2 @@ -({cpu: 482731769 +({cpu: 395992478 | mem: 1679228}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/0003040402030103010203030303000200000104030002040304020400000102.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/0003040402030103010203030303000200000104030002040304020400000102.budget.golden index fa79df1bb7f..e2e09ae62c6 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/0003040402030103010203030303000200000104030002040304020400000102.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/0003040402030103010203030303000200000104030002040304020400000102.budget.golden @@ -1,2 +1,2 @@ -({cpu: 1301872129 +({cpu: 947241702 | mem: 4863018}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/004025fd712d6c325ffa12c16d157064192992faf62e0b991d7310a2f91666b8.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/004025fd712d6c325ffa12c16d157064192992faf62e0b991d7310a2f91666b8.budget.golden index d46c1e8c988..09c1bed5577 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/004025fd712d6c325ffa12c16d157064192992faf62e0b991d7310a2f91666b8.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/004025fd712d6c325ffa12c16d157064192992faf62e0b991d7310a2f91666b8.budget.golden @@ -1,2 +1,2 @@ -({cpu: 921323803 +({cpu: 707938042 | mem: 3255393}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/0101010001010101010101000100010100000001010000010001000001000101.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/0101010001010101010101000100010100000001010000010001000001000101.budget.golden index e7c803f77f6..9807e6b4e66 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/0101010001010101010101000100010100000001010000010001000001000101.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/0101010001010101010101000100010100000001010000010001000001000101.budget.golden @@ -1,2 +1,2 @@ -({cpu: 804891506 +({cpu: 819993402 | mem: 2324732}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/0101020201010201010200010102000201000201010102000102010201010000.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/0101020201010201010200010102000201000201010102000102010201010000.budget.golden index 917da9184b5..dd0a1ae3c9a 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/0101020201010201010200010102000201000201010102000102010201010000.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/0101020201010201010200010102000201000201010102000102010201010000.budget.golden @@ -1,2 +1,2 @@ -({cpu: 350003822 +({cpu: 258427370 | mem: 1270523}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/0101080808040600020306010000000302050807010208060100070207080202.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/0101080808040600020306010000000302050807010208060100070207080202.budget.golden index 1777f1c42c0..36ed162af82 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/0101080808040600020306010000000302050807010208060100070207080202.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/0101080808040600020306010000000302050807010208060100070207080202.budget.golden @@ -1,2 +1,2 @@ -({cpu: 936338422 +({cpu: 708577759 | mem: 3409370}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/0104010200020000040103020102020004040300030304040400010301040303.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/0104010200020000040103020102020004040300030304040400010301040303.budget.golden index bd1b46a39f0..edf6ee37d3a 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/0104010200020000040103020102020004040300030304040400010301040303.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/0104010200020000040103020102020004040300030304040400010301040303.budget.golden @@ -1,2 +1,2 @@ -({cpu: 933475776 +({cpu: 688309036 | mem: 3398129}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/04000f0b04051006000e060f09080d0b090d0104050a0b0f0506070f0a070008.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/04000f0b04051006000e060f09080d0b090d0104050a0b0f0506070f0a070008.budget.golden index 176a2c69d1c..e5006edd477 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/04000f0b04051006000e060f09080d0b090d0104050a0b0f0506070f0a070008.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/04000f0b04051006000e060f09080d0b090d0104050a0b0f0506070f0a070008.budget.golden @@ -1,2 +1,2 @@ -({cpu: 861668796 +({cpu: 655613323 | mem: 3084963}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/0543a00ba1f63076c1db6bf94c6ff13ae7d266dd7544678743890b0e8e1add63.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/0543a00ba1f63076c1db6bf94c6ff13ae7d266dd7544678743890b0e8e1add63.budget.golden index 9809146b411..ee6939f593a 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/0543a00ba1f63076c1db6bf94c6ff13ae7d266dd7544678743890b0e8e1add63.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/0543a00ba1f63076c1db6bf94c6ff13ae7d266dd7544678743890b0e8e1add63.budget.golden @@ -1,2 +1,2 @@ -({cpu: 1269105111 +({cpu: 964649658 | mem: 4365593}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/0705030002040601010206030604080208020207000101060706050502040301.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/0705030002040601010206030604080208020207000101060706050502040301.budget.golden index 3fdb40b6985..faa456d1c65 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/0705030002040601010206030604080208020207000101060706050502040301.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/0705030002040601010206030604080208020207000101060706050502040301.budget.golden @@ -1,2 +1,2 @@ -({cpu: 1193850250 +({cpu: 938325329 | mem: 3977446}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/07070c070510030509010e050d00040907050e0a0d06030f1006030701020607.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/07070c070510030509010e050d00040907050e0a0d06030f1006030701020607.budget.golden index 8054b056988..321004b3702 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/07070c070510030509010e050d00040907050e0a0d06030f1006030701020607.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/07070c070510030509010e050d00040907050e0a0d06030f1006030701020607.budget.golden @@ -1,2 +1,2 @@ -({cpu: 1263901009 +({cpu: 930039047 | mem: 4579459}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/0bcfd9487614104ec48de2ea0b2c0979866a95115748c026f9ec129384c262c4.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/0bcfd9487614104ec48de2ea0b2c0979866a95115748c026f9ec129384c262c4.budget.golden index d7859841faa..9b525e36f6b 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/0bcfd9487614104ec48de2ea0b2c0979866a95115748c026f9ec129384c262c4.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/0bcfd9487614104ec48de2ea0b2c0979866a95115748c026f9ec129384c262c4.budget.golden @@ -1,2 +1,2 @@ -({cpu: 1390129974 +({cpu: 1029469394 | mem: 5021761}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/0be82588e4e4bf2ef428d2f44b7687bbb703031d8de696d90ec789e70d6bc1d8.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/0be82588e4e4bf2ef428d2f44b7687bbb703031d8de696d90ec789e70d6bc1d8.budget.golden index ff3f40b309d..538c0bbb482 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/0be82588e4e4bf2ef428d2f44b7687bbb703031d8de696d90ec789e70d6bc1d8.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/0be82588e4e4bf2ef428d2f44b7687bbb703031d8de696d90ec789e70d6bc1d8.budget.golden @@ -1,2 +1,2 @@ -({cpu: 1686244250 +({cpu: 1267158269 | mem: 6093810}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/0f1d0110001b121d051e15140c0c05141d151c1f1d201c040f10091b020a0e1a.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/0f1d0110001b121d051e15140c0c05141d151c1f1d201c040f10091b020a0e1a.budget.golden index e725f80d378..0bf90a9db75 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/0f1d0110001b121d051e15140c0c05141d151c1f1d201c040f10091b020a0e1a.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/0f1d0110001b121d051e15140c0c05141d151c1f1d201c040f10091b020a0e1a.budget.golden @@ -1,2 +1,2 @@ -({cpu: 570984692 +({cpu: 419725686 | mem: 2086283}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/119fbea4164e2bf21d2b53aa6c2c4e79414fe55e4096f5ce2e804735a7fbaf91.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/119fbea4164e2bf21d2b53aa6c2c4e79414fe55e4096f5ce2e804735a7fbaf91.budget.golden index b3b5a15d84f..eec584cd75d 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/119fbea4164e2bf21d2b53aa6c2c4e79414fe55e4096f5ce2e804735a7fbaf91.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/119fbea4164e2bf21d2b53aa6c2c4e79414fe55e4096f5ce2e804735a7fbaf91.budget.golden @@ -1,2 +1,2 @@ -({cpu: 886801603 +({cpu: 658830441 | mem: 3180611}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/12910f24d994d451ff379b12c9d1ecdb9239c9b87e5d7bea570087ec506935d5.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/12910f24d994d451ff379b12c9d1ecdb9239c9b87e5d7bea570087ec506935d5.budget.golden index b032772e490..a4ecbe28606 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/12910f24d994d451ff379b12c9d1ecdb9239c9b87e5d7bea570087ec506935d5.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/12910f24d994d451ff379b12c9d1ecdb9239c9b87e5d7bea570087ec506935d5.budget.golden @@ -1,2 +1,2 @@ -({cpu: 591874301 +({cpu: 437484894 | mem: 2165775}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/18cefc240debc0fcab14efdd451adfd02793093efe7bc76d6322aed6ddb582ad.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/18cefc240debc0fcab14efdd451adfd02793093efe7bc76d6322aed6ddb582ad.budget.golden index 57493870cc0..b95097545a7 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/18cefc240debc0fcab14efdd451adfd02793093efe7bc76d6322aed6ddb582ad.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/18cefc240debc0fcab14efdd451adfd02793093efe7bc76d6322aed6ddb582ad.budget.golden @@ -1,2 +1,2 @@ -({cpu: 904449868 +({cpu: 666478636 | mem: 3271683}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/1a2f2540121f09321216090b2b1f211e3f020c2c133a1a3c3f3c232a26153a04.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/1a2f2540121f09321216090b2b1f211e3f020c2c133a1a3c3f3c232a26153a04.budget.golden index 9ccd7228f2b..0ba78d17024 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/1a2f2540121f09321216090b2b1f211e3f020c2c133a1a3c3f3c232a26153a04.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/1a2f2540121f09321216090b2b1f211e3f020c2c133a1a3c3f3c232a26153a04.budget.golden @@ -1,2 +1,2 @@ -({cpu: 352623707 +({cpu: 260745310 | mem: 1276025}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/1a573aed5c46d637919ccb5548dfc22a55c9fc38298d567d15ee9f2eea69d89e.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/1a573aed5c46d637919ccb5548dfc22a55c9fc38298d567d15ee9f2eea69d89e.budget.golden index 292b247c086..e79164636fa 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/1a573aed5c46d637919ccb5548dfc22a55c9fc38298d567d15ee9f2eea69d89e.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/1a573aed5c46d637919ccb5548dfc22a55c9fc38298d567d15ee9f2eea69d89e.budget.golden @@ -1,2 +1,2 @@ -({cpu: 1099560713 +({cpu: 838674084 | mem: 3998352}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/1d56060c3b271226064c672a282663643b1b0823471c67737f0b076870331260.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/1d56060c3b271226064c672a282663643b1b0823471c67737f0b076870331260.budget.golden index bc1a075b605..b4cbf725049 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/1d56060c3b271226064c672a282663643b1b0823471c67737f0b076870331260.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/1d56060c3b271226064c672a282663643b1b0823471c67737f0b076870331260.budget.golden @@ -1,2 +1,2 @@ -({cpu: 876897606 +({cpu: 686516042 | mem: 3082809}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/1d6e3c137149a440f35e0efc685b16bfb8052ebcf66ec4ad77e51c11501381c7.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/1d6e3c137149a440f35e0efc685b16bfb8052ebcf66ec4ad77e51c11501381c7.budget.golden index 0aa6c6493a4..f5a3a15f137 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/1d6e3c137149a440f35e0efc685b16bfb8052ebcf66ec4ad77e51c11501381c7.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/1d6e3c137149a440f35e0efc685b16bfb8052ebcf66ec4ad77e51c11501381c7.budget.golden @@ -1,2 +1,2 @@ -({cpu: 352648879 +({cpu: 260799868 | mem: 1276025}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/1f0f02191604101e1f201016171604060d010d1d1c150e110a110e1006160a0d.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/1f0f02191604101e1f201016171604060d010d1d1c150e110a110e1006160a0d.budget.golden index 5de7fbbaedb..b5bc4461a8e 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/1f0f02191604101e1f201016171604060d010d1d1c150e110a110e1006160a0d.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/1f0f02191604101e1f201016171604060d010d1d1c150e110a110e1006160a0d.budget.golden @@ -1,2 +1,2 @@ -({cpu: 657936030 +({cpu: 946788104 | mem: 1217354}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/202d273721330b31193405101e0637202e2a0f1140211c3e3f171e26312b0220.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/202d273721330b31193405101e0637202e2a0f1140211c3e3f171e26312b0220.budget.golden index f52d7455100..3412063172c 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/202d273721330b31193405101e0637202e2a0f1140211c3e3f171e26312b0220.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/202d273721330b31193405101e0637202e2a0f1140211c3e3f171e26312b0220.budget.golden @@ -1,2 +1,2 @@ -({cpu: 2072000395 +({cpu: 3850890919 | mem: 1585586}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/21953bf8798b28df60cb459db24843fb46782b19ba72dc4951941fb4c20d2263.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/21953bf8798b28df60cb459db24843fb46782b19ba72dc4951941fb4c20d2263.budget.golden index aa34478621c..1dc2d16f58c 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/21953bf8798b28df60cb459db24843fb46782b19ba72dc4951941fb4c20d2263.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/21953bf8798b28df60cb459db24843fb46782b19ba72dc4951941fb4c20d2263.budget.golden @@ -1,2 +1,2 @@ -({cpu: 420018938 +({cpu: 317092681 | mem: 1541350}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/238b21364ab5bdae3ddb514d7001c8feba128b4ddcf426852b441f9a9d02c882.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/238b21364ab5bdae3ddb514d7001c8feba128b4ddcf426852b441f9a9d02c882.budget.golden index 917da9184b5..dd0a1ae3c9a 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/238b21364ab5bdae3ddb514d7001c8feba128b4ddcf426852b441f9a9d02c882.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/238b21364ab5bdae3ddb514d7001c8feba128b4ddcf426852b441f9a9d02c882.budget.golden @@ -1,2 +1,2 @@ -({cpu: 350003822 +({cpu: 258427370 | mem: 1270523}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/26e24ee631a6d927ea4fb4fac530cfd82ff7636986014de2d2aaa460ddde0bc3.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/26e24ee631a6d927ea4fb4fac530cfd82ff7636986014de2d2aaa460ddde0bc3.budget.golden index f9ac7d1a3d3..e8e0241ffbf 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/26e24ee631a6d927ea4fb4fac530cfd82ff7636986014de2d2aaa460ddde0bc3.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/26e24ee631a6d927ea4fb4fac530cfd82ff7636986014de2d2aaa460ddde0bc3.budget.golden @@ -1,2 +1,2 @@ -({cpu: 665741262 +({cpu: 488390002 | mem: 2459502}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/2797d7ac77c1b6aff8e42cf9a47fa86b1e60f22719a996871ad412cbe4de78b5.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/2797d7ac77c1b6aff8e42cf9a47fa86b1e60f22719a996871ad412cbe4de78b5.budget.golden index cf752e1189d..a68960d8702 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/2797d7ac77c1b6aff8e42cf9a47fa86b1e60f22719a996871ad412cbe4de78b5.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/2797d7ac77c1b6aff8e42cf9a47fa86b1e60f22719a996871ad412cbe4de78b5.budget.golden @@ -1,2 +1,2 @@ -({cpu: 1098042371 +({cpu: 1741090702 | mem: 1594606}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/28fdce478e179db0e38fb5f3f4105e940ece450b9ce8a0f42a6e313b752e6f2c.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/28fdce478e179db0e38fb5f3f4105e940ece450b9ce8a0f42a6e313b752e6f2c.budget.golden index a5b5e4839a2..d9ffdaed2d9 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/28fdce478e179db0e38fb5f3f4105e940ece450b9ce8a0f42a6e313b752e6f2c.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/28fdce478e179db0e38fb5f3f4105e940ece450b9ce8a0f42a6e313b752e6f2c.budget.golden @@ -1,2 +1,2 @@ -({cpu: 941684174 +({cpu: 820391320 | mem: 3032552}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/2cb21612178a2d9336b59d06cbf80488577463d209a453048a66c6eee624a695.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/2cb21612178a2d9336b59d06cbf80488577463d209a453048a66c6eee624a695.budget.golden index bc03cf1c6de..cde38ec4401 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/2cb21612178a2d9336b59d06cbf80488577463d209a453048a66c6eee624a695.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/2cb21612178a2d9336b59d06cbf80488577463d209a453048a66c6eee624a695.budget.golden @@ -1,2 +1,2 @@ -({cpu: 945209516 +({cpu: 695685728 | mem: 3439095}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/2f58c9d884813042bce9cf7c66048767dff166785e8b5183c8139db2aa7312d1.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/2f58c9d884813042bce9cf7c66048767dff166785e8b5183c8139db2aa7312d1.budget.golden index 7b5dc14b530..9a4f08926ad 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/2f58c9d884813042bce9cf7c66048767dff166785e8b5183c8139db2aa7312d1.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/2f58c9d884813042bce9cf7c66048767dff166785e8b5183c8139db2aa7312d1.budget.golden @@ -1,2 +1,2 @@ -({cpu: 892904700 +({cpu: 696261245 | mem: 3210464}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/30aa34dfbe89e0c43f569929a96c0d2b74c321d13fec0375606325eee9a34a6a.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/30aa34dfbe89e0c43f569929a96c0d2b74c321d13fec0375606325eee9a34a6a.budget.golden index e84fc9db01f..a2f9ee9849e 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/30aa34dfbe89e0c43f569929a96c0d2b74c321d13fec0375606325eee9a34a6a.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/30aa34dfbe89e0c43f569929a96c0d2b74c321d13fec0375606325eee9a34a6a.budget.golden @@ -1,2 +1,2 @@ -({cpu: 1436196425 +({cpu: 1053945807 | mem: 5306476}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/322acde099bc34a929182d5b894214fc87ec88446e2d10625119a9d17fa3ec3d.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/322acde099bc34a929182d5b894214fc87ec88446e2d10625119a9d17fa3ec3d.budget.golden index 9ccd7228f2b..0ba78d17024 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/322acde099bc34a929182d5b894214fc87ec88446e2d10625119a9d17fa3ec3d.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/322acde099bc34a929182d5b894214fc87ec88446e2d10625119a9d17fa3ec3d.budget.golden @@ -1,2 +1,2 @@ -({cpu: 352623707 +({cpu: 260745310 | mem: 1276025}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/331e4a1bb30f28d7073c54f9a13c10ae19e2e396c299a0ce101ee6bf4b2020db.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/331e4a1bb30f28d7073c54f9a13c10ae19e2e396c299a0ce101ee6bf4b2020db.budget.golden index a2822b9085f..ae72293db14 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/331e4a1bb30f28d7073c54f9a13c10ae19e2e396c299a0ce101ee6bf4b2020db.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/331e4a1bb30f28d7073c54f9a13c10ae19e2e396c299a0ce101ee6bf4b2020db.budget.golden @@ -1,2 +1,2 @@ -({cpu: 553458198 +({cpu: 407584222 | mem: 2026767}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/33c3efd79d9234a78262b52bc6bbf8124cb321a467dedb278328215167eca455.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/33c3efd79d9234a78262b52bc6bbf8124cb321a467dedb278328215167eca455.budget.golden index 9db467a08a4..92467de019f 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/33c3efd79d9234a78262b52bc6bbf8124cb321a467dedb278328215167eca455.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/33c3efd79d9234a78262b52bc6bbf8124cb321a467dedb278328215167eca455.budget.golden @@ -1,2 +1,2 @@ -({cpu: 752907065 +({cpu: 558304620 | mem: 2789688}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/383683bfcecdab0f4df507f59631c702bd11a81ca3841f47f37633e8aacbb5de.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/383683bfcecdab0f4df507f59631c702bd11a81ca3841f47f37633e8aacbb5de.budget.golden index 48595a83e39..e134c975734 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/383683bfcecdab0f4df507f59631c702bd11a81ca3841f47f37633e8aacbb5de.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/383683bfcecdab0f4df507f59631c702bd11a81ca3841f47f37633e8aacbb5de.budget.golden @@ -1,2 +1,2 @@ -({cpu: 895768639 +({cpu: 673237597 | mem: 3242436}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/3bb75b2e53eb13f718eacd3263ab4535f9137fabffc9de499a0de7cabb335479.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/3bb75b2e53eb13f718eacd3263ab4535f9137fabffc9de499a0de7cabb335479.budget.golden index 917da9184b5..dd0a1ae3c9a 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/3bb75b2e53eb13f718eacd3263ab4535f9137fabffc9de499a0de7cabb335479.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/3bb75b2e53eb13f718eacd3263ab4535f9137fabffc9de499a0de7cabb335479.budget.golden @@ -1,2 +1,2 @@ -({cpu: 350003822 +({cpu: 258427370 | mem: 1270523}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/3db496e6cd39a8b888a89d0de07dace4397878958cab3b9d9353978b08c36d8a.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/3db496e6cd39a8b888a89d0de07dace4397878958cab3b9d9353978b08c36d8a.budget.golden index dd5f9a47122..0405cd439bc 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/3db496e6cd39a8b888a89d0de07dace4397878958cab3b9d9353978b08c36d8a.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/3db496e6cd39a8b888a89d0de07dace4397878958cab3b9d9353978b08c36d8a.budget.golden @@ -1,2 +1,2 @@ -({cpu: 956799341 +({cpu: 723691900 | mem: 3392344}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/44a9e339fa25948b48637fe7e10dcfc6d1256319a7b5ce4202cb54dfef8e37e7.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/44a9e339fa25948b48637fe7e10dcfc6d1256319a7b5ce4202cb54dfef8e37e7.budget.golden index 917da9184b5..dd0a1ae3c9a 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/44a9e339fa25948b48637fe7e10dcfc6d1256319a7b5ce4202cb54dfef8e37e7.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/44a9e339fa25948b48637fe7e10dcfc6d1256319a7b5ce4202cb54dfef8e37e7.budget.golden @@ -1,2 +1,2 @@ -({cpu: 350003822 +({cpu: 258427370 | mem: 1270523}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/4c3efd13b6c69112a8a888372d56c86e60c232125976f29b1c3e21d9f537845c.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/4c3efd13b6c69112a8a888372d56c86e60c232125976f29b1c3e21d9f537845c.budget.golden index 9d2063249f9..21c7f62246b 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/4c3efd13b6c69112a8a888372d56c86e60c232125976f29b1c3e21d9f537845c.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/4c3efd13b6c69112a8a888372d56c86e60c232125976f29b1c3e21d9f537845c.budget.golden @@ -1,2 +1,2 @@ -({cpu: 1279079754 +({cpu: 939735900 | mem: 4673093}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/4d7adf91bfc93cebe95a7e054ec17cfbb912b32bd8aecb48a228b50e02b055c8.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/4d7adf91bfc93cebe95a7e054ec17cfbb912b32bd8aecb48a228b50e02b055c8.budget.golden index 9ab44d80fb7..1a527d02082 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/4d7adf91bfc93cebe95a7e054ec17cfbb912b32bd8aecb48a228b50e02b055c8.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/4d7adf91bfc93cebe95a7e054ec17cfbb912b32bd8aecb48a228b50e02b055c8.budget.golden @@ -1,2 +1,2 @@ -({cpu: 836973085 +({cpu: 617567703 | mem: 3057901}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/4f9e8d361b85e62db2350dd3ae77463540e7af0d28e1eb68faeecc45f4655f57.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/4f9e8d361b85e62db2350dd3ae77463540e7af0d28e1eb68faeecc45f4655f57.budget.golden index 6743bd315dd..9d19cf76265 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/4f9e8d361b85e62db2350dd3ae77463540e7af0d28e1eb68faeecc45f4655f57.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/4f9e8d361b85e62db2350dd3ae77463540e7af0d28e1eb68faeecc45f4655f57.budget.golden @@ -1,2 +1,2 @@ -({cpu: 443664996 +({cpu: 355029225 | mem: 1567592}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/52df7c8dfaa5f801cd837faa65f2fd333665fff00a555ce8c55e36ddc003007a.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/52df7c8dfaa5f801cd837faa65f2fd333665fff00a555ce8c55e36ddc003007a.budget.golden index 348e29a26a4..2462c4b925e 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/52df7c8dfaa5f801cd837faa65f2fd333665fff00a555ce8c55e36ddc003007a.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/52df7c8dfaa5f801cd837faa65f2fd333665fff00a555ce8c55e36ddc003007a.budget.golden @@ -1,2 +1,2 @@ -({cpu: 421359134 +({cpu: 315194631 | mem: 1507387}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/53ed4db7ab33d6f907eec91a861d1188269be5ae1892d07ee71161bfb55a7cb7.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/53ed4db7ab33d6f907eec91a861d1188269be5ae1892d07ee71161bfb55a7cb7.budget.golden index 1b487e6b067..27243977c77 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/53ed4db7ab33d6f907eec91a861d1188269be5ae1892d07ee71161bfb55a7cb7.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/53ed4db7ab33d6f907eec91a861d1188269be5ae1892d07ee71161bfb55a7cb7.budget.golden @@ -1,2 +1,2 @@ -({cpu: 431083693 +({cpu: 322098133 | mem: 1537853}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/55dfe42688ad683b638df1fa7700219f00f53b335a85a2825502ab1e0687197e.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/55dfe42688ad683b638df1fa7700219f00f53b335a85a2825502ab1e0687197e.budget.golden index 917da9184b5..dd0a1ae3c9a 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/55dfe42688ad683b638df1fa7700219f00f53b335a85a2825502ab1e0687197e.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/55dfe42688ad683b638df1fa7700219f00f53b335a85a2825502ab1e0687197e.budget.golden @@ -1,2 +1,2 @@ -({cpu: 350003822 +({cpu: 258427370 | mem: 1270523}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/56333d4e413dbf1a665463bf68067f63c118f38f7539b7ba7167d577c0c8b8ce.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/56333d4e413dbf1a665463bf68067f63c118f38f7539b7ba7167d577c0c8b8ce.budget.golden index fc0b2bd718c..a0c3660499e 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/56333d4e413dbf1a665463bf68067f63c118f38f7539b7ba7167d577c0c8b8ce.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/56333d4e413dbf1a665463bf68067f63c118f38f7539b7ba7167d577c0c8b8ce.budget.golden @@ -1,2 +1,2 @@ -({cpu: 957950384 +({cpu: 706167997 | mem: 3556760}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/57728d8b19b0e06412786f3dfed9e1894cd0ad1d2bc2bd497ec0ecb68f989d2b.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/57728d8b19b0e06412786f3dfed9e1894cd0ad1d2bc2bd497ec0ecb68f989d2b.budget.golden index 917da9184b5..dd0a1ae3c9a 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/57728d8b19b0e06412786f3dfed9e1894cd0ad1d2bc2bd497ec0ecb68f989d2b.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/57728d8b19b0e06412786f3dfed9e1894cd0ad1d2bc2bd497ec0ecb68f989d2b.budget.golden @@ -1,2 +1,2 @@ -({cpu: 350003822 +({cpu: 258427370 | mem: 1270523}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/5abae75af26f45658beccbe48f7c88e74efdfc0b8409ba1e98f95fa5b6caf999.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/5abae75af26f45658beccbe48f7c88e74efdfc0b8409ba1e98f95fa5b6caf999.budget.golden index 0f8c41be703..83cf27425cb 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/5abae75af26f45658beccbe48f7c88e74efdfc0b8409ba1e98f95fa5b6caf999.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/5abae75af26f45658beccbe48f7c88e74efdfc0b8409ba1e98f95fa5b6caf999.budget.golden @@ -1,2 +1,2 @@ -({cpu: 587663883 +({cpu: 432336366 | mem: 2146867}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/5d0a88250f13c49c20e146819357a808911c878a0e0a7d6f7fe1d4a619e06112.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/5d0a88250f13c49c20e146819357a808911c878a0e0a7d6f7fe1d4a619e06112.budget.golden index e6fbe902478..a0cb0583dd4 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/5d0a88250f13c49c20e146819357a808911c878a0e0a7d6f7fe1d4a619e06112.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/5d0a88250f13c49c20e146819357a808911c878a0e0a7d6f7fe1d4a619e06112.budget.golden @@ -1,2 +1,2 @@ -({cpu: 1256461428 +({cpu: 942672544 | mem: 4447267}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/5e274e0f593511543d41570a4b03646c1d7539062b5728182e073e5760561a66.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/5e274e0f593511543d41570a4b03646c1d7539062b5728182e073e5760561a66.budget.golden index 86ca7dd4fb8..1100119ab5c 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/5e274e0f593511543d41570a4b03646c1d7539062b5728182e073e5760561a66.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/5e274e0f593511543d41570a4b03646c1d7539062b5728182e073e5760561a66.budget.golden @@ -1,2 +1,2 @@ -({cpu: 1248726492 +({cpu: 920997440 | mem: 4481549}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/5e2c68ac9f62580d626636679679b97109109df7ac1a8ce86d3e43dfb5e4f6bc.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/5e2c68ac9f62580d626636679679b97109109df7ac1a8ce86d3e43dfb5e4f6bc.budget.golden index 81f9a264893..8c9292b78ec 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/5e2c68ac9f62580d626636679679b97109109df7ac1a8ce86d3e43dfb5e4f6bc.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/5e2c68ac9f62580d626636679679b97109109df7ac1a8ce86d3e43dfb5e4f6bc.budget.golden @@ -1,2 +1,2 @@ -({cpu: 623893369 +({cpu: 460975895 | mem: 2251605}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/5f130d19918807b60eab4c03119d67878fb6c6712c28c54f5a25792049294acc.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/5f130d19918807b60eab4c03119d67878fb6c6712c28c54f5a25792049294acc.budget.golden index 9ccd7228f2b..0ba78d17024 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/5f130d19918807b60eab4c03119d67878fb6c6712c28c54f5a25792049294acc.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/5f130d19918807b60eab4c03119d67878fb6c6712c28c54f5a25792049294acc.budget.golden @@ -1,2 +1,2 @@ -({cpu: 352623707 +({cpu: 260745310 | mem: 1276025}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/5f306b4b24ff2b39dab6cdc9ac6ca9bb442c1dc6f4e7e412eeb5a3ced42fb642.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/5f306b4b24ff2b39dab6cdc9ac6ca9bb442c1dc6f4e7e412eeb5a3ced42fb642.budget.golden index d9180fed4a1..b5c1d8f9b86 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/5f306b4b24ff2b39dab6cdc9ac6ca9bb442c1dc6f4e7e412eeb5a3ced42fb642.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/5f306b4b24ff2b39dab6cdc9ac6ca9bb442c1dc6f4e7e412eeb5a3ced42fb642.budget.golden @@ -1,2 +1,2 @@ -({cpu: 905355976 +({cpu: 671661591 | mem: 3311716}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/5f3d46c57a56cef6764f96c9de9677ac6e494dd7a4e368d1c8dd9c1f7a4309a5.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/5f3d46c57a56cef6764f96c9de9677ac6e494dd7a4e368d1c8dd9c1f7a4309a5.budget.golden index 78cc0a877a7..fd445e17909 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/5f3d46c57a56cef6764f96c9de9677ac6e494dd7a4e368d1c8dd9c1f7a4309a5.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/5f3d46c57a56cef6764f96c9de9677ac6e494dd7a4e368d1c8dd9c1f7a4309a5.budget.golden @@ -1,2 +1,2 @@ -({cpu: 589998467 +({cpu: 434157536 | mem: 2155059}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/64c3d5b43f005855ffc4d0950a02fd159aa1575294ea39061b81a194ebb9eaae.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/64c3d5b43f005855ffc4d0950a02fd159aa1575294ea39061b81a194ebb9eaae.budget.golden index c8e2c28951b..6e820a70569 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/64c3d5b43f005855ffc4d0950a02fd159aa1575294ea39061b81a194ebb9eaae.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/64c3d5b43f005855ffc4d0950a02fd159aa1575294ea39061b81a194ebb9eaae.budget.golden @@ -1,2 +1,2 @@ -({cpu: 800955659 +({cpu: 593961030 | mem: 2950646}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/65bc4b69b46d18fdff0fadbf00dd5ec2b3e03805fac9d5fb4ff2d3066e53fc7e.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/65bc4b69b46d18fdff0fadbf00dd5ec2b3e03805fac9d5fb4ff2d3066e53fc7e.budget.golden index 84dd295c9d9..6345a55d65d 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/65bc4b69b46d18fdff0fadbf00dd5ec2b3e03805fac9d5fb4ff2d3066e53fc7e.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/65bc4b69b46d18fdff0fadbf00dd5ec2b3e03805fac9d5fb4ff2d3066e53fc7e.budget.golden @@ -1,2 +1,2 @@ -({cpu: 1306622053 +({cpu: 2126444779 | mem: 1744890}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/66af9e473d75e3f464971f6879cc0f2ef84bafcb38fbfa1dbc31ac2053628a38.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/66af9e473d75e3f464971f6879cc0f2ef84bafcb38fbfa1dbc31ac2053628a38.budget.golden index 8eeb0c9532a..b78996ce7b9 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/66af9e473d75e3f464971f6879cc0f2ef84bafcb38fbfa1dbc31ac2053628a38.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/66af9e473d75e3f464971f6879cc0f2ef84bafcb38fbfa1dbc31ac2053628a38.budget.golden @@ -1,2 +1,2 @@ -({cpu: 1428124291 +({cpu: 1152097473 | mem: 4718530}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/675d63836cad11b547d1b4cddd498f04c919d4342612accf40913f9ae9419fac.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/675d63836cad11b547d1b4cddd498f04c919d4342612accf40913f9ae9419fac.budget.golden index 859074f5138..8404e6426f6 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/675d63836cad11b547d1b4cddd498f04c919d4342612accf40913f9ae9419fac.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/675d63836cad11b547d1b4cddd498f04c919d4342612accf40913f9ae9419fac.budget.golden @@ -1,2 +1,2 @@ -({cpu: 1292092280 +({cpu: 951961101 | mem: 4698853}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/67ba5a9a0245ee3aff4f34852b9889b8c810fccd3dce2a23910bddd35c503b71.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/67ba5a9a0245ee3aff4f34852b9889b8c810fccd3dce2a23910bddd35c503b71.budget.golden index f52d7455100..3412063172c 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/67ba5a9a0245ee3aff4f34852b9889b8c810fccd3dce2a23910bddd35c503b71.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/67ba5a9a0245ee3aff4f34852b9889b8c810fccd3dce2a23910bddd35c503b71.budget.golden @@ -1,2 +1,2 @@ -({cpu: 2072000395 +({cpu: 3850890919 | mem: 1585586}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/6d88f7294dd2b5ce02c3dc609bc7715bd508009738401d264bf9b3eb7c6f49c1.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/6d88f7294dd2b5ce02c3dc609bc7715bd508009738401d264bf9b3eb7c6f49c1.budget.golden index d8b62b5dae5..e848c0b9fee 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/6d88f7294dd2b5ce02c3dc609bc7715bd508009738401d264bf9b3eb7c6f49c1.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/6d88f7294dd2b5ce02c3dc609bc7715bd508009738401d264bf9b3eb7c6f49c1.budget.golden @@ -1,2 +1,2 @@ -({cpu: 590258782 +({cpu: 434599862 | mem: 2152369}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/70f65b21b77ddb451f3df9d9fb403ced3d10e1e953867cc4900cc25e5b9dec47.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/70f65b21b77ddb451f3df9d9fb403ced3d10e1e953867cc4900cc25e5b9dec47.budget.golden index 1886416e4db..a882c9c3ab3 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/70f65b21b77ddb451f3df9d9fb403ced3d10e1e953867cc4900cc25e5b9dec47.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/70f65b21b77ddb451f3df9d9fb403ced3d10e1e953867cc4900cc25e5b9dec47.budget.golden @@ -1,2 +1,2 @@ -({cpu: 905980712 +({cpu: 680830628 | mem: 3235511}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/71965c9ccae31f1ffc1d85aa20a356d4ed97a420954018d8301ec4f9783be0d7.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/71965c9ccae31f1ffc1d85aa20a356d4ed97a420954018d8301ec4f9783be0d7.budget.golden index 881dc4fe44d..55ab0084c4d 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/71965c9ccae31f1ffc1d85aa20a356d4ed97a420954018d8301ec4f9783be0d7.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/71965c9ccae31f1ffc1d85aa20a356d4ed97a420954018d8301ec4f9783be0d7.budget.golden @@ -1,2 +1,2 @@ -({cpu: 573629749 +({cpu: 422098184 | mem: 2091785}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/74c67f2f182b9a0a66c62b95d6fac5ace3f7e71ea3abfc52ffbe3ecb93436ea2.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/74c67f2f182b9a0a66c62b95d6fac5ace3f7e71ea3abfc52ffbe3ecb93436ea2.budget.golden index 8b803ffbad3..b070315cb6a 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/74c67f2f182b9a0a66c62b95d6fac5ace3f7e71ea3abfc52ffbe3ecb93436ea2.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/74c67f2f182b9a0a66c62b95d6fac5ace3f7e71ea3abfc52ffbe3ecb93436ea2.budget.golden @@ -1,2 +1,2 @@ -({cpu: 966385178 +({cpu: 721208627 | mem: 3553442}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/7529b206a78becb793da74b78c04d9d33a2540a1abd79718e681228f4057403a.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/7529b206a78becb793da74b78c04d9d33a2540a1abd79718e681228f4057403a.budget.golden index 260e564f370..fdd877dfad6 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/7529b206a78becb793da74b78c04d9d33a2540a1abd79718e681228f4057403a.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/7529b206a78becb793da74b78c04d9d33a2540a1abd79718e681228f4057403a.budget.golden @@ -1,2 +1,2 @@ -({cpu: 987704804 +({cpu: 726782449 | mem: 3671436}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/75a8bb183688bce447e00f435a144c835435e40a5defc6f3b9be68b70b4a3db6.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/75a8bb183688bce447e00f435a144c835435e40a5defc6f3b9be68b70b4a3db6.budget.golden index b6cd06ecc38..d36a49151fe 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/75a8bb183688bce447e00f435a144c835435e40a5defc6f3b9be68b70b4a3db6.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/75a8bb183688bce447e00f435a144c835435e40a5defc6f3b9be68b70b4a3db6.budget.golden @@ -1,2 +1,2 @@ -({cpu: 833917760 +({cpu: 615225451 | mem: 3044625}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/7a758e17486d1a30462c32a5d5309bd1e98322a9dcbe277c143ed3aede9d265f.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/7a758e17486d1a30462c32a5d5309bd1e98322a9dcbe277c143ed3aede9d265f.budget.golden index b1ed690440a..42d78dda9d6 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/7a758e17486d1a30462c32a5d5309bd1e98322a9dcbe277c143ed3aede9d265f.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/7a758e17486d1a30462c32a5d5309bd1e98322a9dcbe277c143ed3aede9d265f.budget.golden @@ -1,2 +1,2 @@ -({cpu: 575282461 +({cpu: 428611998 | mem: 2003306}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/7cbc5644b745f4ea635aca42cce5e4a4b9d2e61afdb3ac18128e1688c07071ba.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/7cbc5644b745f4ea635aca42cce5e4a4b9d2e61afdb3ac18128e1688c07071ba.budget.golden index 66844d5eab6..d083b9f927c 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/7cbc5644b745f4ea635aca42cce5e4a4b9d2e61afdb3ac18128e1688c07071ba.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/7cbc5644b745f4ea635aca42cce5e4a4b9d2e61afdb3ac18128e1688c07071ba.budget.golden @@ -1,2 +1,2 @@ -({cpu: 564996271 +({cpu: 432834103 | mem: 2066746}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/82213dfdb6a812b40446438767c61a388d2c0cfd0cbf7fd4a372b0dc59fa17e1.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/82213dfdb6a812b40446438767c61a388d2c0cfd0cbf7fd4a372b0dc59fa17e1.budget.golden index 6041dc11d29..6e0549ee378 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/82213dfdb6a812b40446438767c61a388d2c0cfd0cbf7fd4a372b0dc59fa17e1.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/82213dfdb6a812b40446438767c61a388d2c0cfd0cbf7fd4a372b0dc59fa17e1.budget.golden @@ -1,2 +1,2 @@ -({cpu: 1405854160 +({cpu: 1147504944 | mem: 4623492}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/8c7fdc3da6822b5112074380003524f50fb3a1ce6db4e501df1086773c6c0201.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/8c7fdc3da6822b5112074380003524f50fb3a1ce6db4e501df1086773c6c0201.budget.golden index 6fa7f832cb5..36faad29b33 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/8c7fdc3da6822b5112074380003524f50fb3a1ce6db4e501df1086773c6c0201.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/8c7fdc3da6822b5112074380003524f50fb3a1ce6db4e501df1086773c6c0201.budget.golden @@ -1,2 +1,2 @@ -({cpu: 1414989218 +({cpu: 1048876029 | mem: 5176296}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/8d9ae67656a2911ab15a8e5301c960c69aa2517055197aff6b60a87ff718d66c.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/8d9ae67656a2911ab15a8e5301c960c69aa2517055197aff6b60a87ff718d66c.budget.golden index aa34478621c..1dc2d16f58c 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/8d9ae67656a2911ab15a8e5301c960c69aa2517055197aff6b60a87ff718d66c.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/8d9ae67656a2911ab15a8e5301c960c69aa2517055197aff6b60a87ff718d66c.budget.golden @@ -1,2 +1,2 @@ -({cpu: 420018938 +({cpu: 317092681 | mem: 1541350}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/96e1a2fa3ceb9a402f2a5841a0b645f87b4e8e75beb636692478ec39f74ee221.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/96e1a2fa3ceb9a402f2a5841a0b645f87b4e8e75beb636692478ec39f74ee221.budget.golden index 9ccd7228f2b..0ba78d17024 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/96e1a2fa3ceb9a402f2a5841a0b645f87b4e8e75beb636692478ec39f74ee221.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/96e1a2fa3ceb9a402f2a5841a0b645f87b4e8e75beb636692478ec39f74ee221.budget.golden @@ -1,2 +1,2 @@ -({cpu: 352623707 +({cpu: 260745310 | mem: 1276025}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/9fabc4fc3440cdb776b28c9bb1dd49c9a5b1605fe1490aa3f4f64a3fa8881b25.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/9fabc4fc3440cdb776b28c9bb1dd49c9a5b1605fe1490aa3f4f64a3fa8881b25.budget.golden index 995058b2115..6b47c53c287 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/9fabc4fc3440cdb776b28c9bb1dd49c9a5b1605fe1490aa3f4f64a3fa8881b25.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/9fabc4fc3440cdb776b28c9bb1dd49c9a5b1605fe1490aa3f4f64a3fa8881b25.budget.golden @@ -1,2 +1,2 @@ -({cpu: 1279201390 +({cpu: 972863014 | mem: 4392699}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/a85173a832db3ea944fafc406dfe3fa3235254897d6d1d0e21bc380147687bd5.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/a85173a832db3ea944fafc406dfe3fa3235254897d6d1d0e21bc380147687bd5.budget.golden index 1b487e6b067..27243977c77 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/a85173a832db3ea944fafc406dfe3fa3235254897d6d1d0e21bc380147687bd5.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/a85173a832db3ea944fafc406dfe3fa3235254897d6d1d0e21bc380147687bd5.budget.golden @@ -1,2 +1,2 @@ -({cpu: 431083693 +({cpu: 322098133 | mem: 1537853}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/a9a853b6d083551f4ed2995551af287880ef42aee239a2d9bc5314d127cce592.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/a9a853b6d083551f4ed2995551af287880ef42aee239a2d9bc5314d127cce592.budget.golden index b1ed690440a..42d78dda9d6 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/a9a853b6d083551f4ed2995551af287880ef42aee239a2d9bc5314d127cce592.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/a9a853b6d083551f4ed2995551af287880ef42aee239a2d9bc5314d127cce592.budget.golden @@ -1,2 +1,2 @@ -({cpu: 575282461 +({cpu: 428611998 | mem: 2003306}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/acb9c83c2b78dabef8674319ad69ba54912cd9997bdf2d8b2998c6bfeef3b122.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/acb9c83c2b78dabef8674319ad69ba54912cd9997bdf2d8b2998c6bfeef3b122.budget.golden index e86b1feacfc..9305250c7db 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/acb9c83c2b78dabef8674319ad69ba54912cd9997bdf2d8b2998c6bfeef3b122.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/acb9c83c2b78dabef8674319ad69ba54912cd9997bdf2d8b2998c6bfeef3b122.budget.golden @@ -1,2 +1,2 @@ -({cpu: 776451351 +({cpu: 583200829 | mem: 2862870}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/acce04815e8fd51be93322888250060da173eccf3df3a605bd6bc6a456cde871.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/acce04815e8fd51be93322888250060da173eccf3df3a605bd6bc6a456cde871.budget.golden index 9f533ddde5d..c184ecbba81 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/acce04815e8fd51be93322888250060da173eccf3df3a605bd6bc6a456cde871.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/acce04815e8fd51be93322888250060da173eccf3df3a605bd6bc6a456cde871.budget.golden @@ -1,2 +1,2 @@ -({cpu: 359137160 +({cpu: 271094329 | mem: 1247395}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/ad6db94ed69b7161c7604568f44358e1cc11e81fea90e41afebd669e51bb60c8.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/ad6db94ed69b7161c7604568f44358e1cc11e81fea90e41afebd669e51bb60c8.budget.golden index 167f3ab8960..d96cc7b42a4 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/ad6db94ed69b7161c7604568f44358e1cc11e81fea90e41afebd669e51bb60c8.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/ad6db94ed69b7161c7604568f44358e1cc11e81fea90e41afebd669e51bb60c8.budget.golden @@ -1,2 +1,2 @@ -({cpu: 697900473 +({cpu: 518311898 | mem: 2564002}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/b21a4df3b0266ad3481a26d3e3d848aad2fcde89510b29cccce81971e38e0835.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/b21a4df3b0266ad3481a26d3e3d848aad2fcde89510b29cccce81971e38e0835.budget.golden index 067f5297926..e723734f454 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/b21a4df3b0266ad3481a26d3e3d848aad2fcde89510b29cccce81971e38e0835.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/b21a4df3b0266ad3481a26d3e3d848aad2fcde89510b29cccce81971e38e0835.budget.golden @@ -1,2 +1,2 @@ -({cpu: 1663709462 +({cpu: 1252480131 | mem: 5996652}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/b50170cea48ee84b80558c02b15c6df52faf884e504d2c410ad63ba46d8ca35c.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/b50170cea48ee84b80558c02b15c6df52faf884e504d2c410ad63ba46d8ca35c.budget.golden index fb3d50333f5..d7f703e4f26 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/b50170cea48ee84b80558c02b15c6df52faf884e504d2c410ad63ba46d8ca35c.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/b50170cea48ee84b80558c02b15c6df52faf884e504d2c410ad63ba46d8ca35c.budget.golden @@ -1,2 +1,2 @@ -({cpu: 932471718 +({cpu: 692654429 | mem: 3447340}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/bb5345bfbbc460af84e784b900ec270df1948bb1d1e29eacecd022eeb168b315.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/bb5345bfbbc460af84e784b900ec270df1948bb1d1e29eacecd022eeb168b315.budget.golden index 0ac930dabde..4d68effc569 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/bb5345bfbbc460af84e784b900ec270df1948bb1d1e29eacecd022eeb168b315.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/bb5345bfbbc460af84e784b900ec270df1948bb1d1e29eacecd022eeb168b315.budget.golden @@ -1,2 +1,2 @@ -({cpu: 1179501667 +({cpu: 863667786 | mem: 4318836}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/c4bb185380df6e9b66fc1ee0564f09a8d1253a51a0c0c7890f2214df9ac19274.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/c4bb185380df6e9b66fc1ee0564f09a8d1253a51a0c0c7890f2214df9ac19274.budget.golden index 7b89f61a46b..eac3dcf99ff 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/c4bb185380df6e9b66fc1ee0564f09a8d1253a51a0c0c7890f2214df9ac19274.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/c4bb185380df6e9b66fc1ee0564f09a8d1253a51a0c0c7890f2214df9ac19274.budget.golden @@ -1,2 +1,2 @@ -({cpu: 897826676 +({cpu: 659861186 | mem: 3301867}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/c9efcb705ee057791f7c18a1de79c49f6e40ba143ce0579f1602fd780cabf153.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/c9efcb705ee057791f7c18a1de79c49f6e40ba143ce0579f1602fd780cabf153.budget.golden index fe771a50dd0..cee565e7996 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/c9efcb705ee057791f7c18a1de79c49f6e40ba143ce0579f1602fd780cabf153.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/c9efcb705ee057791f7c18a1de79c49f6e40ba143ce0579f1602fd780cabf153.budget.golden @@ -1,2 +1,2 @@ -({cpu: 995446172 +({cpu: 740504265 | mem: 3674360}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/ccab11ce1a8774135d0e3c9e635631b68af9e276b5dabc66ff669d5650d0be1c.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/ccab11ce1a8774135d0e3c9e635631b68af9e276b5dabc66ff669d5650d0be1c.budget.golden index e8257479cd9..dbcc9576b7f 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/ccab11ce1a8774135d0e3c9e635631b68af9e276b5dabc66ff669d5650d0be1c.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/ccab11ce1a8774135d0e3c9e635631b68af9e276b5dabc66ff669d5650d0be1c.budget.golden @@ -1,2 +1,2 @@ -({cpu: 648409561 +({cpu: 940692459 | mem: 1186210}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/cdb9d5c233b288a5a9dcfbd8d5c1831a0bb46eec7a26fa31b80ae69d44805efc.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/cdb9d5c233b288a5a9dcfbd8d5c1831a0bb46eec7a26fa31b80ae69d44805efc.budget.golden index f1eedf481e6..4ececd9f4a8 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/cdb9d5c233b288a5a9dcfbd8d5c1831a0bb46eec7a26fa31b80ae69d44805efc.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/cdb9d5c233b288a5a9dcfbd8d5c1831a0bb46eec7a26fa31b80ae69d44805efc.budget.golden @@ -1,2 +1,2 @@ -({cpu: 1102449085 +({cpu: 819924942 | mem: 4063420}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/ced1ea04649e093a501e43f8568ac3e6b37cd3eccec8cac9c70a4857b88a5eb8.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/ced1ea04649e093a501e43f8568ac3e6b37cd3eccec8cac9c70a4857b88a5eb8.budget.golden index 0be0cc70190..283f8e69644 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/ced1ea04649e093a501e43f8568ac3e6b37cd3eccec8cac9c70a4857b88a5eb8.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/ced1ea04649e093a501e43f8568ac3e6b37cd3eccec8cac9c70a4857b88a5eb8.budget.golden @@ -1,2 +1,2 @@ -({cpu: 1029697453 +({cpu: 769997962 | mem: 3783192}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/cf542b7df466b228ca2197c2aaa89238a8122f3330fe5b77b3222f570395d9f5.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/cf542b7df466b228ca2197c2aaa89238a8122f3330fe5b77b3222f570395d9f5.budget.golden index 917545ae744..c1eb8bc1658 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/cf542b7df466b228ca2197c2aaa89238a8122f3330fe5b77b3222f570395d9f5.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/cf542b7df466b228ca2197c2aaa89238a8122f3330fe5b77b3222f570395d9f5.budget.golden @@ -1,2 +1,2 @@ -({cpu: 593323561 +({cpu: 437588618 | mem: 2166003}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/d1ab832dfab25688f8845bec9387e46ee3f00ba5822197ade7dd540489ec5e95.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/d1ab832dfab25688f8845bec9387e46ee3f00ba5822197ade7dd540489ec5e95.budget.golden index e0186140834..7f6873668a1 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/d1ab832dfab25688f8845bec9387e46ee3f00ba5822197ade7dd540489ec5e95.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/d1ab832dfab25688f8845bec9387e46ee3f00ba5822197ade7dd540489ec5e95.budget.golden @@ -1,2 +1,2 @@ -({cpu: 8409365442 +({cpu: 17810617738 | mem: 1060142}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/d1c03759810747b7cab38c4296593b38567e11195d161b5bb0a2b58f89b2c65a.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/d1c03759810747b7cab38c4296593b38567e11195d161b5bb0a2b58f89b2c65a.budget.golden index 2c738b371af..0fb65a9babe 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/d1c03759810747b7cab38c4296593b38567e11195d161b5bb0a2b58f89b2c65a.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/d1c03759810747b7cab38c4296593b38567e11195d161b5bb0a2b58f89b2c65a.budget.golden @@ -1,2 +1,2 @@ -({cpu: 1280533490 +({cpu: 939238761 | mem: 4693769}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/d64607eb8a1448595081547ea8780886fcbd9e06036460eea3705c88ea867e33.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/d64607eb8a1448595081547ea8780886fcbd9e06036460eea3705c88ea867e33.budget.golden index 917da9184b5..dd0a1ae3c9a 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/d64607eb8a1448595081547ea8780886fcbd9e06036460eea3705c88ea867e33.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/d64607eb8a1448595081547ea8780886fcbd9e06036460eea3705c88ea867e33.budget.golden @@ -1,2 +1,2 @@ -({cpu: 350003822 +({cpu: 258427370 | mem: 1270523}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/dc241ac6ad1e04fb056d555d6a4f2d08a45d054c6f7f34355fcfeefebef479f3.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/dc241ac6ad1e04fb056d555d6a4f2d08a45d054c6f7f34355fcfeefebef479f3.budget.golden index ce0d6e6c924..b98701b545f 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/dc241ac6ad1e04fb056d555d6a4f2d08a45d054c6f7f34355fcfeefebef479f3.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/dc241ac6ad1e04fb056d555d6a4f2d08a45d054c6f7f34355fcfeefebef479f3.budget.golden @@ -1,2 +1,2 @@ -({cpu: 556078083 +({cpu: 409902162 | mem: 2032269}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/dd11ae574eaeab0e9925319768989313a93913fdc347c704ddaa27042757d990.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/dd11ae574eaeab0e9925319768989313a93913fdc347c704ddaa27042757d990.budget.golden index 5a1ae9a8077..4be25f79833 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/dd11ae574eaeab0e9925319768989313a93913fdc347c704ddaa27042757d990.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/dd11ae574eaeab0e9925319768989313a93913fdc347c704ddaa27042757d990.budget.golden @@ -1,2 +1,2 @@ -({cpu: 929705961 +({cpu: 687879970 | mem: 3444834}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/e26c1cddba16e05fd10c34cbdb16ea6acdbac7c8323256c31c90c520ee6a1080.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/e26c1cddba16e05fd10c34cbdb16ea6acdbac7c8323256c31c90c520ee6a1080.budget.golden index 0355d754da4..e19d40b7c0f 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/e26c1cddba16e05fd10c34cbdb16ea6acdbac7c8323256c31c90c520ee6a1080.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/e26c1cddba16e05fd10c34cbdb16ea6acdbac7c8323256c31c90c520ee6a1080.budget.golden @@ -1,2 +1,2 @@ -({cpu: 417350365 +({cpu: 327354335 | mem: 1494188}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/e34b48f80d49360e88c612f4016f7d68cb5678dd8cd5ddb981375a028b3a40a5.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/e34b48f80d49360e88c612f4016f7d68cb5678dd8cd5ddb981375a028b3a40a5.budget.golden index 0f422ccb69b..266fb5ca4e3 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/e34b48f80d49360e88c612f4016f7d68cb5678dd8cd5ddb981375a028b3a40a5.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/e34b48f80d49360e88c612f4016f7d68cb5678dd8cd5ddb981375a028b3a40a5.budget.golden @@ -1,2 +1,2 @@ -({cpu: 464073868 +({cpu: 347518633 | mem: 1699968}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/e3afd22d01ff12f381cf915fd32358634e6c413f979f2492cf3339319d8cc079.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/e3afd22d01ff12f381cf915fd32358634e6c413f979f2492cf3339319d8cc079.budget.golden index 9ccd7228f2b..0ba78d17024 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/e3afd22d01ff12f381cf915fd32358634e6c413f979f2492cf3339319d8cc079.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/e3afd22d01ff12f381cf915fd32358634e6c413f979f2492cf3339319d8cc079.budget.golden @@ -1,2 +1,2 @@ -({cpu: 352623707 +({cpu: 260745310 | mem: 1276025}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/e9234d2671760874f3f660aae5d3416d18ce6dfd7af4231bdd41b9ec268bc7e1.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/e9234d2671760874f3f660aae5d3416d18ce6dfd7af4231bdd41b9ec268bc7e1.budget.golden index c97d5204dd3..cb4eecb0417 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/e9234d2671760874f3f660aae5d3416d18ce6dfd7af4231bdd41b9ec268bc7e1.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/e9234d2671760874f3f660aae5d3416d18ce6dfd7af4231bdd41b9ec268bc7e1.budget.golden @@ -1,2 +1,2 @@ -({cpu: 839191645 +({cpu: 848275409 | mem: 2423754}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/eb4a605ed3a64961e9e66ad9631c2813dadf7131740212762ae4483ec749fe1d.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/eb4a605ed3a64961e9e66ad9631c2813dadf7131740212762ae4483ec749fe1d.budget.golden index 917da9184b5..dd0a1ae3c9a 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/eb4a605ed3a64961e9e66ad9631c2813dadf7131740212762ae4483ec749fe1d.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/eb4a605ed3a64961e9e66ad9631c2813dadf7131740212762ae4483ec749fe1d.budget.golden @@ -1,2 +1,2 @@ -({cpu: 350003822 +({cpu: 258427370 | mem: 1270523}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/ecb5e8308b57724e0f8533921693f111eba942123cf8660aac2b5bac21ec28f0.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/ecb5e8308b57724e0f8533921693f111eba942123cf8660aac2b5bac21ec28f0.budget.golden index 3ba91433763..2d2a95559c0 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/ecb5e8308b57724e0f8533921693f111eba942123cf8660aac2b5bac21ec28f0.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/ecb5e8308b57724e0f8533921693f111eba942123cf8660aac2b5bac21ec28f0.budget.golden @@ -1,2 +1,2 @@ -({cpu: 767434986 +({cpu: 584792691 | mem: 2761906}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/f2a8fd2014922f0d8e01541205d47e9bb2d4e54333bdd408cbe7c47c55e73ae4.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/f2a8fd2014922f0d8e01541205d47e9bb2d4e54333bdd408cbe7c47c55e73ae4.budget.golden index 9eb8dc50701..7adeace4cc2 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/f2a8fd2014922f0d8e01541205d47e9bb2d4e54333bdd408cbe7c47c55e73ae4.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/f2a8fd2014922f0d8e01541205d47e9bb2d4e54333bdd408cbe7c47c55e73ae4.budget.golden @@ -1,2 +1,2 @@ -({cpu: 812987603 +({cpu: 668700030 | mem: 2685874}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/f339f59bdf92495ed2b14e2e4d3705972b4dda59aa929cffe0f1ff5355db8d79.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/f339f59bdf92495ed2b14e2e4d3705972b4dda59aa929cffe0f1ff5355db8d79.budget.golden index 8fb83d0a0d2..1446ccd4e39 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/f339f59bdf92495ed2b14e2e4d3705972b4dda59aa929cffe0f1ff5355db8d79.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/f339f59bdf92495ed2b14e2e4d3705972b4dda59aa929cffe0f1ff5355db8d79.budget.golden @@ -1,2 +1,2 @@ -({cpu: 1933123173 +({cpu: 3744597278 | mem: 1133546}) \ No newline at end of file diff --git a/plutus-benchmark/marlowe/test/semantics/9.6/ffdd68a33afd86f8844c9f5e45b2bda5b035aa02274161b23d57709c0f8b8de6.budget.golden b/plutus-benchmark/marlowe/test/semantics/9.6/ffdd68a33afd86f8844c9f5e45b2bda5b035aa02274161b23d57709c0f8b8de6.budget.golden index a55e17a303a..bf614ace6a6 100644 --- a/plutus-benchmark/marlowe/test/semantics/9.6/ffdd68a33afd86f8844c9f5e45b2bda5b035aa02274161b23d57709c0f8b8de6.budget.golden +++ b/plutus-benchmark/marlowe/test/semantics/9.6/ffdd68a33afd86f8844c9f5e45b2bda5b035aa02274161b23d57709c0f8b8de6.budget.golden @@ -1,2 +1,2 @@ -({cpu: 1147580837 +({cpu: 861827231 | mem: 4183754}) \ No newline at end of file diff --git a/plutus-benchmark/nofib/bench/BenchCek.hs b/plutus-benchmark/nofib/bench/BenchCek.hs index 920d64e8971..4ea23a143fa 100644 --- a/plutus-benchmark/nofib/bench/BenchCek.hs +++ b/plutus-benchmark/nofib/bench/BenchCek.hs @@ -3,11 +3,12 @@ {- | Plutus benchmarks for the CEK machine based on some nofib examples. -} module Main where -import Shared (benchTermCek, benchWith, mkEvalCtx) +import PlutusBenchmark.Common (mkMostRecentEvalCtx) +import Shared (benchTermCek, benchWith) import Control.Exception (evaluate) main :: IO () main = do - evalCtx <- evaluate mkEvalCtx + evalCtx <- evaluate mkMostRecentEvalCtx benchWith $ benchTermCek evalCtx diff --git a/plutus-benchmark/nofib/bench/Shared.hs b/plutus-benchmark/nofib/bench/Shared.hs index 0d34fa0e7b7..631818c8eca 100644 --- a/plutus-benchmark/nofib/bench/Shared.hs +++ b/plutus-benchmark/nofib/bench/Shared.hs @@ -2,11 +2,10 @@ module Shared ( benchWith , mkBenchMarks - , mkEvalCtx , benchTermCek ) where -import PlutusBenchmark.Common (Term, benchTermCek, getConfig, mkEvalCtx) +import PlutusBenchmark.Common (Term, benchTermCek, getConfig) import PlutusBenchmark.NoFib.Clausify qualified as Clausify import PlutusBenchmark.NoFib.Knights qualified as Knights diff --git a/plutus-benchmark/nofib/exe/Main.hs b/plutus-benchmark/nofib/exe/Main.hs index ca88a42c653..06a8403ac18 100644 --- a/plutus-benchmark/nofib/exe/Main.hs +++ b/plutus-benchmark/nofib/exe/Main.hs @@ -201,8 +201,13 @@ options = hsubparser ---------------- Evaluation ---------------- -evaluateWithCek :: UPLC.Term UPLC.NamedDeBruijn DefaultUni DefaultFun () -> UPLC.EvaluationResult (UPLC.Term UPLC.NamedDeBruijn DefaultUni DefaultFun ()) -evaluateWithCek = UPLC.unsafeExtractEvaluationResult . (\(fstT,_,_) -> fstT) . UPLC.runCekDeBruijn PLC.defaultCekParameters UPLC.restrictingEnormous UPLC.noEmitter +evaluateWithCek + :: UPLC.Term UPLC.NamedDeBruijn DefaultUni DefaultFun () + -> UPLC.EvaluationResult (UPLC.Term UPLC.NamedDeBruijn DefaultUni DefaultFun ()) +evaluateWithCek = + UPLC.unsafeToEvaluationResult + . (\(fstT,_,_) -> fstT) + . UPLC.runCekDeBruijn PLC.defaultCekParametersForTesting UPLC.restrictingEnormous UPLC.noEmitter writeFlatNamed :: UPLC.Program UPLC.NamedDeBruijn DefaultUni DefaultFun () -> IO () writeFlatNamed prog = BS.putStr . Flat.flat . UPLC.UnrestrictedProgram $ prog @@ -249,7 +254,7 @@ measureBudget compiledCode = in case programE of Left _ -> (-1,-1) -- Something has gone wrong but I don't care. Right program -> - let (_, UPLC.TallyingSt _ budget) = UPLC.runCekNoEmit PLC.defaultCekParameters UPLC.tallying $ program ^. UPLC.progTerm + let (_, UPLC.TallyingSt _ budget) = UPLC.runCekNoEmit PLC.defaultCekParametersForTesting UPLC.tallying $ program ^. UPLC.progTerm ExCPU cpu = exBudgetCPU budget ExMemory mem = exBudgetMemory budget in (fromSatInt cpu, fromSatInt mem) diff --git a/plutus-benchmark/nofib/test/9.6/clausify-F5.budget.golden b/plutus-benchmark/nofib/test/9.6/clausify-F5.budget.golden index ad83b3d78f4..fa618da4cce 100644 --- a/plutus-benchmark/nofib/test/9.6/clausify-F5.budget.golden +++ b/plutus-benchmark/nofib/test/9.6/clausify-F5.budget.golden @@ -1,2 +1,2 @@ -({cpu: 85264318650 +({cpu: 57191251160 | mem: 337215080}) \ No newline at end of file diff --git a/plutus-benchmark/nofib/test/9.6/knights10-4x4.budget.golden b/plutus-benchmark/nofib/test/9.6/knights10-4x4.budget.golden index 9e3d8de1d9f..977d0679283 100644 --- a/plutus-benchmark/nofib/test/9.6/knights10-4x4.budget.golden +++ b/plutus-benchmark/nofib/test/9.6/knights10-4x4.budget.golden @@ -1,2 +1,2 @@ -({cpu: 2340321234 +({cpu: 1474894000 | mem: 7526812}) \ No newline at end of file diff --git a/plutus-benchmark/nofib/test/9.6/queens4-bt.budget.golden b/plutus-benchmark/nofib/test/9.6/queens4-bt.budget.golden index d134eb4a4f1..7592267b573 100644 --- a/plutus-benchmark/nofib/test/9.6/queens4-bt.budget.golden +++ b/plutus-benchmark/nofib/test/9.6/queens4-bt.budget.golden @@ -1,2 +1,2 @@ -({cpu: 7723581773 +({cpu: 5027790267 | mem: 27514030}) \ No newline at end of file diff --git a/plutus-benchmark/nofib/test/9.6/queens5-fc.budget.golden b/plutus-benchmark/nofib/test/9.6/queens5-fc.budget.golden index 291ee3a9278..fd06e1a429e 100644 --- a/plutus-benchmark/nofib/test/9.6/queens5-fc.budget.golden +++ b/plutus-benchmark/nofib/test/9.6/queens5-fc.budget.golden @@ -1,2 +1,2 @@ -({cpu: 270371340581 +({cpu: 179464942621 | mem: 1024779566}) \ No newline at end of file diff --git a/plutus-benchmark/nofib/test/Spec.hs b/plutus-benchmark/nofib/test/Spec.hs index 3a2d81c828a..d7722d27ad9 100644 --- a/plutus-benchmark/nofib/test/Spec.hs +++ b/plutus-benchmark/nofib/test/Spec.hs @@ -8,7 +8,7 @@ run to completion. -} module Main where import Test.Tasty -import Test.Tasty.Extras (TestNested, runTestGroupNestedGhc) +import Test.Tasty.Extras (TestNested, runTestNested, testNestedGhc) import Test.Tasty.HUnit import Test.Tasty.QuickCheck @@ -26,8 +26,8 @@ import PlutusTx.Test qualified as Tx -- Make a set of golden tests with results stored in subdirectories determined -- by the GHC version. -testGroupGhc :: [TestNested] -> TestTree -testGroupGhc = runTestGroupNestedGhc ["nofib", "test"] +runTestGhc :: [TestNested] -> TestTree +runTestGhc = runTestNested ["nofib", "test"] . pure . testNestedGhc -- Unit tests comparing PLC and Haskell computations on given inputs @@ -47,7 +47,7 @@ testClausify = testGroup "clausify" , testCase "formula3" $ mkClausifyTest Clausify.F3 , testCase "formula4" $ mkClausifyTest Clausify.F4 , testCase "formula5" $ mkClausifyTest Clausify.F5 - , testGroupGhc + , runTestGhc [ Tx.goldenPirReadable "clausify-F5" formula5example , Tx.goldenSize "clausify-F5" formula5example , Tx.goldenBudget "clausify-F5" formula5example @@ -70,7 +70,7 @@ testKnights = testGroup "knights" -- Odd sizes call "error" because there are n , testCase "depth 100, 4x4" $ mkKnightsTest 100 4 , testCase "depth 100, 6x6" $ mkKnightsTest 100 6 , testCase "depth 100, 8x8" $ mkKnightsTest 100 8 - , testGroupGhc + , runTestGhc [ Tx.goldenPirReadable "knights10-4x4" knightsExample , Tx.goldenSize "knights10-4x4" knightsExample , Tx.goldenBudget "knights10-4x4" knightsExample @@ -93,7 +93,7 @@ testQueens = testGroup "queens" , testCase "Bjbt1" $ mkQueensTest 4 Queens.Bjbt1 , testCase "Bjbt2" $ mkQueensTest 4 Queens.Bjbt2 , testCase "Fc" $ mkQueensTest 4 Queens.Fc - , testGroupGhc + , runTestGhc [ Tx.goldenPirReadable "queens4-bt" queens4btExample , Tx.goldenSize "queens4-bt" queens4btExample , Tx.goldenBudget "queens4-bt" queens4btExample @@ -106,7 +106,7 @@ testQueens = testGroup "queens" , testCase "Bjbt1" $ mkQueensTest 5 Queens.Bjbt1 , testCase "Bjbt2" $ mkQueensTest 5 Queens.Bjbt2 , testCase "Fc" $ mkQueensTest 5 Queens.Fc - , testGroupGhc + , runTestGhc [ Tx.goldenPirReadable "queens5-fc" queens5fcExample , Tx.goldenSize "queens5-fc" queens5fcExample , Tx.goldenBudget "queens5-fc" queens5fcExample diff --git a/plutus-benchmark/plutus-benchmark.cabal b/plutus-benchmark/plutus-benchmark.cabal index 7631eed7d28..34702828fb1 100644 --- a/plutus-benchmark/plutus-benchmark.cabal +++ b/plutus-benchmark/plutus-benchmark.cabal @@ -8,8 +8,8 @@ license-files: maintainer: michael.peyton-jones@iohk.io author: Plutus Core Team -homepage: https://github.com/iohk/plutus#readme -bug-reports: https://github.com/iohk/plutus/issues +homepage: https://github.com/IntersectMBO/plutus +bug-reports: https://github.com/IntersectMBO/plutus/issues description: Please see the README on GitHub at <https://github.com/IntersectMBO/plutus#readme> @@ -22,7 +22,7 @@ data-files: source-repository head type: git - location: https://github.com/iohk/plutus + location: https://github.com/IntersectMBO/plutus -- Any files that use a `$$(...)` splice from the plugin should mention -- `PlutusTx.Plugin()` somewhere, even if it's just `import PlutusTx.Plugin()`. @@ -83,20 +83,19 @@ library plutus-benchmark-common other-modules: Paths_plutus_benchmark build-depends: - , base >=4.9 && <5 + , base >=4.9 && <5 , bytestring , criterion , deepseq , directory , filepath - , flat ^>=0.6 - , plutus-core ^>=1.28 - , plutus-ledger-api ^>=1.28 - , plutus-tx ^>=1.28 + , flat ^>=0.6 + , plutus-core ^>=1.29 + , plutus-ledger-api ^>=1.29 + , plutus-tx-test-util , tasty , tasty-golden , temporary - , text ---------------- nofib ---------------- @@ -119,9 +118,9 @@ library nofib-internal , base >=4.9 && <5 , deepseq , plutus-benchmark-common - , plutus-core ^>=1.28 - , plutus-tx ^>=1.28 - , plutus-tx-plugin ^>=1.28 + , plutus-core ^>=1.29 + , plutus-tx ^>=1.29 + , plutus-tx-plugin ^>=1.29 executable nofib-exe import: lang, ghc-version-support @@ -135,8 +134,8 @@ executable nofib-exe , nofib-internal , optparse-applicative , plutus-benchmark-common - , plutus-core ^>=1.28 - , plutus-tx ^>=1.28 + , plutus-core ^>=1.29 + , plutus-tx ^>=1.29 , prettyprinter , transformers @@ -174,8 +173,8 @@ test-suite plutus-benchmark-nofib-tests , base >=4.9 && <5 , nofib-internal , plutus-benchmark-common - , plutus-core:{plutus-core, plutus-core-testlib} ^>=1.28 - , plutus-tx:{plutus-tx, plutus-tx-testlib} ^>=1.28 + , plutus-core:{plutus-core, plutus-core-testlib} ^>=1.29 + , plutus-tx:{plutus-tx, plutus-tx-testlib} ^>=1.29 , tasty , tasty-hunit , tasty-quickcheck @@ -201,9 +200,9 @@ library lists-internal , base >=4.9 && <5 , mtl , plutus-benchmark-common - , plutus-core ^>=1.28 - , plutus-tx ^>=1.28 - , plutus-tx-plugin ^>=1.28 + , plutus-core ^>=1.29 + , plutus-tx ^>=1.29 + , plutus-tx-plugin ^>=1.29 executable list-sort-exe import: lang, ghc-version-support @@ -214,7 +213,7 @@ executable list-sort-exe , lists-internal , monoidal-containers , plutus-benchmark-common - , plutus-core ^>=1.28 + , plutus-core ^>=1.29 benchmark lists import: lang, ghc-version-support @@ -226,7 +225,7 @@ benchmark lists , criterion >=1.5.9.0 , lists-internal , plutus-benchmark-common - , plutus-ledger-api ^>=1.28 + , plutus-ledger-api ^>=1.29 test-suite plutus-benchmark-lists-tests import: lang, ghc-version-support @@ -243,8 +242,8 @@ test-suite plutus-benchmark-lists-tests , base >=4.9 && <5 , lists-internal , plutus-benchmark-common - , plutus-core:plutus-core-testlib ^>=1.28 - , plutus-tx:plutus-tx-testlib ^>=1.28 + , plutus-core:plutus-core-testlib ^>=1.29 + , plutus-tx:plutus-tx-testlib ^>=1.29 , tasty , tasty-quickcheck @@ -265,7 +264,8 @@ benchmark validation , flat ^>=0.6 , optparse-applicative , plutus-benchmark-common - , plutus-core ^>=1.28 + , plutus-core ^>=1.29 + , plutus-ledger-api ^>=1.29 ---------------- validation-decode ---------------- @@ -285,8 +285,8 @@ benchmark validation-decode , flat ^>=0.6 , optparse-applicative , plutus-benchmark-common - , plutus-core ^>=1.28 - , plutus-ledger-api ^>=1.28 + , plutus-core ^>=1.29 + , plutus-ledger-api ^>=1.29 ---------------- validation-full ---------------- @@ -306,8 +306,8 @@ benchmark validation-full , flat ^>=0.6 , optparse-applicative , plutus-benchmark-common - , plutus-core ^>=1.28 - , plutus-ledger-api ^>=1.28 + , plutus-core ^>=1.29 + , plutus-ledger-api ^>=1.29 ---------------- Cek cost model calibration ---------------- @@ -323,10 +323,10 @@ benchmark cek-calibration , lens , mtl , plutus-benchmark-common - , plutus-core ^>=1.28 - , plutus-ledger-api ^>=1.28 - , plutus-tx ^>=1.28 - , plutus-tx-plugin ^>=1.28 + , plutus-core ^>=1.29 + , plutus-ledger-api ^>=1.29 + , plutus-tx ^>=1.29 + , plutus-tx-plugin ^>=1.29 ---------------- Signature verification throughput ---------------- @@ -342,9 +342,9 @@ executable ed25519-costs , cardano-crypto-class , hedgehog , plutus-benchmark-common - , plutus-core ^>=1.28 - , plutus-tx ^>=1.28 - , plutus-tx-plugin ^>=1.28 + , plutus-core ^>=1.29 + , plutus-tx ^>=1.29 + , plutus-tx-plugin ^>=1.29 -- Calculate the predicted costs of sequences of ed25519 signature verification -- operations and compare them with a golden file. @@ -361,9 +361,9 @@ test-suite ed25519-costs-test , cardano-crypto-class , hedgehog , plutus-benchmark-common - , plutus-core:{plutus-core, plutus-core-testlib} ^>=1.28 - , plutus-tx ^>=1.28 - , plutus-tx-plugin ^>=1.28 + , plutus-core:{plutus-core, plutus-core-testlib} ^>=1.29 + , plutus-tx ^>=1.29 + , plutus-tx-plugin ^>=1.29 ---------------- BLS12-381 experiments ---------------- @@ -381,10 +381,10 @@ library bls12-381lib-internal , bytestring , hedgehog , plutus-benchmark-common - , plutus-core ^>=1.28 - , plutus-ledger-api ^>=1.28 - , plutus-tx ^>=1.28 - , plutus-tx-plugin ^>=1.28 + , plutus-core ^>=1.29 + , plutus-ledger-api ^>=1.29 + , plutus-tx ^>=1.29 + , plutus-tx-plugin ^>=1.29 -- Print out predicted costs of various scripts involving BLS12-381 operations executable bls12-381-costs @@ -408,7 +408,7 @@ test-suite bls12-381-costs-test , base >=4.9 && <5 , bls12-381lib-internal , plutus-benchmark-common - , plutus-core:plutus-core-testlib ^>=1.28 + , plutus-core:plutus-core-testlib ^>=1.29 -- Run benchmarks for various scripts involving BLS12-381 operations benchmark bls12-381-benchmarks @@ -422,8 +422,8 @@ benchmark bls12-381-benchmarks , bytestring , criterion >=1.5.9.0 , plutus-benchmark-common - , plutus-ledger-api ^>=1.28 - , plutus-tx ^>=1.28 + , plutus-ledger-api ^>=1.29 + , plutus-tx ^>=1.29 ---------------- script contexts ---------------- @@ -433,9 +433,9 @@ library script-contexts-internal exposed-modules: PlutusBenchmark.ScriptContexts build-depends: , base >=4.9 && <5 - , plutus-ledger-api ^>=1.28 - , plutus-tx ^>=1.28 - , plutus-tx-plugin ^>=1.28 + , plutus-ledger-api ^>=1.29 + , plutus-tx ^>=1.29 + , plutus-tx-plugin ^>=1.29 test-suite plutus-benchmark-script-contexts-tests import: lang, ghc-version-support @@ -447,8 +447,8 @@ test-suite plutus-benchmark-script-contexts-tests build-depends: , base >=4.9 && <5 , plutus-benchmark-common - , plutus-core:{plutus-core, plutus-core-testlib} ^>=1.28 - , plutus-tx:plutus-tx-testlib ^>=1.28 + , plutus-core:{plutus-core, plutus-core-testlib} ^>=1.29 + , plutus-tx:plutus-tx-testlib ^>=1.29 , script-contexts-internal , tasty , tasty-hunit @@ -477,10 +477,10 @@ library marlowe-internal , mtl , newtype-generics , plutus-benchmark-common - , plutus-core:{plutus-core, plutus-core-execlib} ^>=1.28 - , plutus-ledger-api ^>=1.28 - , plutus-tx ^>=1.28 - , plutus-tx-plugin ^>=1.28 + , plutus-core:{plutus-core, plutus-core-execlib} ^>=1.29 + , plutus-ledger-api ^>=1.29 + , plutus-tx ^>=1.29 + , plutus-tx-plugin ^>=1.29 , serialise executable marlowe-validators @@ -500,8 +500,8 @@ executable marlowe-validators , cardano-binary , marlowe-internal , plutus-benchmark-common - , plutus-ledger-api ^>=1.28 - , plutus-tx ^>=1.28 + , plutus-ledger-api ^>=1.29 + , plutus-tx ^>=1.29 , serialise benchmark marlowe @@ -515,8 +515,8 @@ benchmark marlowe , criterion , marlowe-internal , plutus-benchmark-common - , plutus-ledger-api ^>=1.28 - , plutus-tx ^>=1.28 + , plutus-ledger-api ^>=1.29 + , plutus-tx ^>=1.29 test-suite plutus-benchmark-marlowe-tests import: lang, ghc-version-support @@ -528,9 +528,9 @@ test-suite plutus-benchmark-marlowe-tests build-depends: , base >=4.9 && <5 , marlowe-internal - , plutus-core:{plutus-core, plutus-core-testlib} ^>=1.28 - , plutus-ledger-api ^>=1.28 - , plutus-tx:{plutus-tx, plutus-tx-testlib} ^>=1.28 + , plutus-core:{plutus-core, plutus-core-testlib} ^>=1.29 + , plutus-ledger-api ^>=1.29 + , plutus-tx:{plutus-tx, plutus-tx-testlib} ^>=1.29 , tasty ---------------- agda evaluators ---------------- @@ -544,7 +544,7 @@ library agda-internal build-depends: , base >=4.9 && <5 , criterion - , plutus-core ^>=1.28 + , plutus-core ^>=1.29 , plutus-metatheory benchmark validation-agda-cek @@ -564,7 +564,7 @@ benchmark validation-agda-cek , flat ^>=0.6 , optparse-applicative , plutus-benchmark-common - , plutus-core ^>=1.28 + , plutus-core ^>=1.29 benchmark nofib-agda-cek import: lang, ghc-version-support @@ -591,5 +591,5 @@ benchmark marlowe-agda-cek , criterion , marlowe-internal , plutus-benchmark-common - , plutus-ledger-api ^>=1.28 - , plutus-tx ^>=1.28 + , plutus-ledger-api ^>=1.29 + , plutus-tx ^>=1.29 diff --git a/plutus-benchmark/script-contexts/src/PlutusBenchmark/ScriptContexts.hs b/plutus-benchmark/script-contexts/src/PlutusBenchmark/ScriptContexts.hs index 37318d3fcc0..e281a11ff60 100644 --- a/plutus-benchmark/script-contexts/src/PlutusBenchmark/ScriptContexts.hs +++ b/plutus-benchmark/script-contexts/src/PlutusBenchmark/ScriptContexts.hs @@ -7,9 +7,9 @@ module PlutusBenchmark.ScriptContexts where import PlutusLedgerApi.V1.Address import PlutusLedgerApi.V1.Value -import PlutusLedgerApi.V3 (OutputDatum (NoOutputDatum), PubKeyHash (..), ScriptContext (..), - ScriptPurpose (Spending), TxId (..), TxInfo (..), TxOut (..), - TxOutRef (..), always) +import PlutusLedgerApi.V3 (OutputDatum (NoOutputDatum), PubKeyHash (..), Redeemer (..), + ScriptContext (..), ScriptInfo (SpendingScript), TxId (..), TxInfo (..), + TxOut (..), TxOutRef (..), always) import PlutusTx qualified import PlutusTx.AssocMap qualified as Map import PlutusTx.Builtins qualified as PlutusTx @@ -19,7 +19,12 @@ import PlutusTx.Prelude qualified as PlutusTx -- | A very crude deterministic generator for 'ScriptContext's with size -- approximately proportional to the input integer. mkScriptContext :: Int -> ScriptContext -mkScriptContext i = ScriptContext (mkTxInfo i) (Spending (TxOutRef (TxId "") 0)) +mkScriptContext i = + ScriptContext + (mkTxInfo i) + (Redeemer (PlutusTx.toBuiltinData (1 :: Integer))) + (SpendingScript (TxOutRef (TxId "") 0) Nothing) + mkTxInfo :: Int -> TxInfo mkTxInfo i = TxInfo { @@ -62,7 +67,7 @@ checkScriptContext1 d = -- Bang pattern to ensure this is forced, probably not necesssary -- since we do use it later let !sc = PlutusTx.unsafeFromBuiltinData d - (ScriptContext txi _) = sc + ScriptContext txi _ _ = sc in if PlutusTx.length (txInfoOutputs txi) `PlutusTx.modInteger` 2 PlutusTx.== 0 then () diff --git a/plutus-benchmark/script-contexts/test/9.6/checkScriptContext1-20.budget.golden b/plutus-benchmark/script-contexts/test/9.6/checkScriptContext1-20.budget.golden index ca8199e1f77..fc170714183 100644 --- a/plutus-benchmark/script-contexts/test/9.6/checkScriptContext1-20.budget.golden +++ b/plutus-benchmark/script-contexts/test/9.6/checkScriptContext1-20.budget.golden @@ -1,2 +1,2 @@ -({cpu: 354035173 -| mem: 1059503}) \ No newline at end of file +({cpu: 287382695 +| mem: 1064729}) \ No newline at end of file diff --git a/plutus-benchmark/script-contexts/test/9.6/checkScriptContext1-4.budget.golden b/plutus-benchmark/script-contexts/test/9.6/checkScriptContext1-4.budget.golden index 83106694e83..a9d1cfda45d 100644 --- a/plutus-benchmark/script-contexts/test/9.6/checkScriptContext1-4.budget.golden +++ b/plutus-benchmark/script-contexts/test/9.6/checkScriptContext1-4.budget.golden @@ -1,2 +1,2 @@ -({cpu: 106503941 -| mem: 324879}) \ No newline at end of file +({cpu: 86156279 +| mem: 330105}) \ No newline at end of file diff --git a/plutus-benchmark/script-contexts/test/9.6/checkScriptContext1.pir.golden b/plutus-benchmark/script-contexts/test/9.6/checkScriptContext1.pir.golden index 20c1ed0da1e..4a69e3c9acb 100644 --- a/plutus-benchmark/script-contexts/test/9.6/checkScriptContext1.pir.golden +++ b/plutus-benchmark/script-contexts/test/9.6/checkScriptContext1.pir.golden @@ -803,77 +803,6 @@ (unIData (headList {data} (tailList {data} args)))) (/\dead -> traceError {TxOutRef} "PT1") {all dead. dead} - data ScriptPurpose | ScriptPurpose_match where - Certifying : integer -> TxCert -> ScriptPurpose - Minting : bytestring -> ScriptPurpose - Proposing : integer -> ProposalProcedure -> ScriptPurpose - Rewarding : Credential -> ScriptPurpose - Spending : TxOutRef -> ScriptPurpose - Voting : Voter -> ScriptPurpose - !`$fUnsafeFromDataScriptContext_$cunsafeFromBuiltinData` : - data -> ScriptPurpose - = \(d : data) -> - let - !tup : pair integer (list data) = unConstrData d - !index : integer = fstPair {integer} {list data} tup - !args : list data = sndPair {integer} {list data} tup - in - ifThenElse - {all dead. ScriptPurpose} - (equalsInteger 0 index) - (/\dead -> Minting (unBData (headList {data} args))) - (/\dead -> - ifThenElse - {all dead. ScriptPurpose} - (equalsInteger 1 index) - (/\dead -> - Spending - (`$fUnsafeFromDataTxOutRef_$cunsafeFromBuiltinData` - (headList {data} args))) - (/\dead -> - ifThenElse - {all dead. ScriptPurpose} - (equalsInteger 2 index) - (/\dead -> - Rewarding - (`$fUnsafeFromDataCredential_$cunsafeFromBuiltinData` - (headList {data} args))) - (/\dead -> - ifThenElse - {all dead. ScriptPurpose} - (equalsInteger 3 index) - (/\dead -> - Certifying - (unIData (headList {data} args)) - (`$fUnsafeFromDataScriptContext_$cunsafeFromBuiltinData` - (headList {data} (tailList {data} args)))) - (/\dead -> - ifThenElse - {all dead. ScriptPurpose} - (equalsInteger 4 index) - (/\dead -> - Voting - (`$fUnsafeFromDataScriptContext_$cunsafeFromBuiltinData` - (headList {data} args))) - (/\dead -> - ifThenElse - {all dead. ScriptPurpose} - (equalsInteger 5 index) - (/\dead -> - Proposing - (unIData (headList {data} args)) - (`$fUnsafeFromDataProposalProcedure_$cunsafeFromBuiltinData` - (headList - {data} - (tailList {data} args)))) - (/\dead -> - traceError {ScriptPurpose} "PT1") - {all dead. dead}) - {all dead. dead}) - {all dead. dead}) - {all dead. dead}) - {all dead. dead}) - {all dead. dead} ~`$fUnsafeFromDataValue` : data -> (\k v -> List (Tuple2 k v)) bytestring integer = `$fUnsafeFromDataMap_$cunsafeFromBuiltinData` @@ -1007,12 +936,26 @@ (headList {data} (tailList {data} args)))) (/\dead -> traceError {TxInInfo} "PT1") {all dead. dead} + data ScriptInfo | ScriptInfo_match where + CertifyingScript : integer -> TxCert -> ScriptInfo + MintingScript : bytestring -> ScriptInfo + ProposingScript : integer -> ProposalProcedure -> ScriptInfo + RewardingScript : Credential -> ScriptInfo + SpendingScript : TxOutRef -> Maybe data -> ScriptInfo + VotingScript : Voter -> ScriptInfo data (LowerBound :: * -> *) a | LowerBound_match where LowerBound : Extended a -> Bool -> LowerBound a data (UpperBound :: * -> *) a | UpperBound_match where UpperBound : Extended a -> Bool -> UpperBound a data (Interval :: * -> *) a | Interval_match where Interval : LowerBound a -> UpperBound a -> Interval a + data ScriptPurpose | ScriptPurpose_match where + Certifying : integer -> TxCert -> ScriptPurpose + Minting : bytestring -> ScriptPurpose + Proposing : integer -> ProposalProcedure -> ScriptPurpose + Rewarding : Credential -> ScriptPurpose + Spending : TxOutRef -> ScriptPurpose + Voting : Voter -> ScriptPurpose data Vote | Vote_match where Abstain : Vote VoteNo : Vote @@ -1041,7 +984,7 @@ Maybe integer -> TxInfo data ScriptContext | ScriptContext_match where - ScriptContext : TxInfo -> ScriptPurpose -> ScriptContext + ScriptContext : TxInfo -> data -> ScriptInfo -> ScriptContext in \(d : data) -> ScriptContext_match @@ -1054,6 +997,9 @@ {all dead. ScriptContext} (equalsInteger 0 index) (/\dead -> + let + !l : list data = tailList {data} args + in ScriptContext (let !tup : pair integer (list data) @@ -1177,7 +1123,78 @@ (`$fUnsafeFromDataMap_$cunsafeFromBuiltinData` {ScriptPurpose} {data} - `$fUnsafeFromDataScriptContext_$cunsafeFromBuiltinData` + (\(d : data) -> + let + !tup : pair integer (list data) = unConstrData d + !index : integer = fstPair {integer} {list data} tup + !args : list data + = sndPair {integer} {list data} tup + in + ifThenElse + {all dead. ScriptPurpose} + (equalsInteger 0 index) + (/\dead -> Minting (unBData (headList {data} args))) + (/\dead -> + ifThenElse + {all dead. ScriptPurpose} + (equalsInteger 1 index) + (/\dead -> + Spending + (`$fUnsafeFromDataTxOutRef_$cunsafeFromBuiltinData` + (headList {data} args))) + (/\dead -> + ifThenElse + {all dead. ScriptPurpose} + (equalsInteger 2 index) + (/\dead -> + Rewarding + (`$fUnsafeFromDataCredential_$cunsafeFromBuiltinData` + (headList {data} args))) + (/\dead -> + ifThenElse + {all dead. ScriptPurpose} + (equalsInteger 3 index) + (/\dead -> + Certifying + (unIData (headList {data} args)) + (`$fUnsafeFromDataScriptContext_$cunsafeFromBuiltinData` + (headList + {data} + (tailList {data} args)))) + (/\dead -> + ifThenElse + {all dead. ScriptPurpose} + (equalsInteger 4 index) + (/\dead -> + Voting + (`$fUnsafeFromDataScriptContext_$cunsafeFromBuiltinData` + (headList {data} args))) + (/\dead -> + ifThenElse + {all dead. ScriptPurpose} + (equalsInteger 5 index) + (/\dead -> + Proposing + (unIData + (headList + {data} + args)) + (`$fUnsafeFromDataProposalProcedure_$cunsafeFromBuiltinData` + (headList + {data} + (tailList + {data} + args)))) + (/\dead -> + traceError + {ScriptPurpose} + "PT1") + {all dead. dead}) + {all dead. dead}) + {all dead. dead}) + {all dead. dead}) + {all dead. dead}) + {all dead. dead}) `$fUnsafeFromDataBuiltinData_$cunsafeFromBuiltinData` (headList {data} l)) (`$fUnsafeFromDataMap_$cunsafeFromBuiltinData` @@ -1236,12 +1253,77 @@ (headList {data} (tailList {data} l)))) (/\dead -> traceError {TxInfo} "PT1") {all dead. dead}) - (`$fUnsafeFromDataScriptContext_$cunsafeFromBuiltinData` - (headList {data} (tailList {data} args)))) + (headList {data} l) + (let + !tup : pair integer (list data) + = unConstrData (headList {data} (tailList {data} l)) + !index : integer = fstPair {integer} {list data} tup + !args : list data = sndPair {integer} {list data} tup + in + ifThenElse + {all dead. ScriptInfo} + (equalsInteger 0 index) + (/\dead -> MintingScript (unBData (headList {data} args))) + (/\dead -> + ifThenElse + {all dead. ScriptInfo} + (equalsInteger 1 index) + (/\dead -> + SpendingScript + (`$fUnsafeFromDataTxOutRef_$cunsafeFromBuiltinData` + (headList {data} args)) + (`$fUnsafeFromDataMaybe_$cunsafeFromBuiltinData` + {data} + `$fUnsafeFromDataBuiltinData_$cunsafeFromBuiltinData` + (headList {data} (tailList {data} args)))) + (/\dead -> + ifThenElse + {all dead. ScriptInfo} + (equalsInteger 2 index) + (/\dead -> + RewardingScript + (`$fUnsafeFromDataCredential_$cunsafeFromBuiltinData` + (headList {data} args))) + (/\dead -> + ifThenElse + {all dead. ScriptInfo} + (equalsInteger 3 index) + (/\dead -> + CertifyingScript + (unIData (headList {data} args)) + (`$fUnsafeFromDataScriptContext_$cunsafeFromBuiltinData` + (headList {data} (tailList {data} args)))) + (/\dead -> + ifThenElse + {all dead. ScriptInfo} + (equalsInteger 4 index) + (/\dead -> + VotingScript + (`$fUnsafeFromDataScriptContext_$cunsafeFromBuiltinData` + (headList {data} args))) + (/\dead -> + ifThenElse + {all dead. ScriptInfo} + (equalsInteger 5 index) + (/\dead -> + ProposingScript + (unIData (headList {data} args)) + (`$fUnsafeFromDataProposalProcedure_$cunsafeFromBuiltinData` + (headList + {data} + (tailList {data} args)))) + (/\dead -> + traceError {ScriptInfo} "PT1") + {all dead. dead}) + {all dead. dead}) + {all dead. dead}) + {all dead. dead}) + {all dead. dead}) + {all dead. dead})) (/\dead -> traceError {ScriptContext} "PT1") {all dead. dead}) {Unit} - (\(ipv : TxInfo) (ipv : ScriptPurpose) -> + (\(ipv : TxInfo) (ipv : data) (ipv : ScriptInfo) -> ifThenElse {all dead. Unit} (equalsInteger @@ -1305,4 +1387,5 @@ , List [] , Constr 1 [] , Constr 1 [] ] - , Constr 1 [Constr 0 [B #, I 0]] ]) \ No newline at end of file + , I 1 + , Constr 1 [Constr 0 [B #, I 0], Constr 1 []] ]) \ No newline at end of file diff --git a/plutus-benchmark/script-contexts/test/9.6/checkScriptContext1.size.golden b/plutus-benchmark/script-contexts/test/9.6/checkScriptContext1.size.golden index 3a6cf076ee6..138cc8ecdca 100644 --- a/plutus-benchmark/script-contexts/test/9.6/checkScriptContext1.size.golden +++ b/plutus-benchmark/script-contexts/test/9.6/checkScriptContext1.size.golden @@ -1 +1 @@ -2785 \ No newline at end of file +2961 \ No newline at end of file diff --git a/plutus-benchmark/script-contexts/test/9.6/checkScriptContext2-20.budget.golden b/plutus-benchmark/script-contexts/test/9.6/checkScriptContext2-20.budget.golden index 7a309b10a9e..aa87b78f58f 100644 --- a/plutus-benchmark/script-contexts/test/9.6/checkScriptContext2-20.budget.golden +++ b/plutus-benchmark/script-contexts/test/9.6/checkScriptContext2-20.budget.golden @@ -1,2 +1,2 @@ -({cpu: 337708684 -| mem: 1009660}) \ No newline at end of file +({cpu: 277114223 +| mem: 1014786}) \ No newline at end of file diff --git a/plutus-benchmark/script-contexts/test/9.6/checkScriptContext2-4.budget.golden b/plutus-benchmark/script-contexts/test/9.6/checkScriptContext2-4.budget.golden index 5dc8381fa86..ba95e91bad6 100644 --- a/plutus-benchmark/script-contexts/test/9.6/checkScriptContext2-4.budget.golden +++ b/plutus-benchmark/script-contexts/test/9.6/checkScriptContext2-4.budget.golden @@ -1,2 +1,2 @@ -({cpu: 101577084 -| mem: 310268}) \ No newline at end of file +({cpu: 83139135 +| mem: 315394}) \ No newline at end of file diff --git a/plutus-benchmark/script-contexts/test/9.6/checkScriptContext2.pir.golden b/plutus-benchmark/script-contexts/test/9.6/checkScriptContext2.pir.golden index dcacc9bd6fa..8bb37946a00 100644 --- a/plutus-benchmark/script-contexts/test/9.6/checkScriptContext2.pir.golden +++ b/plutus-benchmark/script-contexts/test/9.6/checkScriptContext2.pir.golden @@ -772,77 +772,6 @@ (unIData (headList {data} (tailList {data} args)))) (/\dead -> traceError {TxOutRef} "PT1") {all dead. dead} - data ScriptPurpose | ScriptPurpose_match where - Certifying : integer -> TxCert -> ScriptPurpose - Minting : bytestring -> ScriptPurpose - Proposing : integer -> ProposalProcedure -> ScriptPurpose - Rewarding : Credential -> ScriptPurpose - Spending : TxOutRef -> ScriptPurpose - Voting : Voter -> ScriptPurpose - !`$fUnsafeFromDataScriptContext_$cunsafeFromBuiltinData` : - data -> ScriptPurpose - = \(d : data) -> - let - !tup : pair integer (list data) = unConstrData d - !index : integer = fstPair {integer} {list data} tup - !args : list data = sndPair {integer} {list data} tup - in - ifThenElse - {all dead. ScriptPurpose} - (equalsInteger 0 index) - (/\dead -> Minting (unBData (headList {data} args))) - (/\dead -> - ifThenElse - {all dead. ScriptPurpose} - (equalsInteger 1 index) - (/\dead -> - Spending - (`$fUnsafeFromDataTxOutRef_$cunsafeFromBuiltinData` - (headList {data} args))) - (/\dead -> - ifThenElse - {all dead. ScriptPurpose} - (equalsInteger 2 index) - (/\dead -> - Rewarding - (`$fUnsafeFromDataCredential_$cunsafeFromBuiltinData` - (headList {data} args))) - (/\dead -> - ifThenElse - {all dead. ScriptPurpose} - (equalsInteger 3 index) - (/\dead -> - Certifying - (unIData (headList {data} args)) - (`$fUnsafeFromDataScriptContext_$cunsafeFromBuiltinData` - (headList {data} (tailList {data} args)))) - (/\dead -> - ifThenElse - {all dead. ScriptPurpose} - (equalsInteger 4 index) - (/\dead -> - Voting - (`$fUnsafeFromDataScriptContext_$cunsafeFromBuiltinData` - (headList {data} args))) - (/\dead -> - ifThenElse - {all dead. ScriptPurpose} - (equalsInteger 5 index) - (/\dead -> - Proposing - (unIData (headList {data} args)) - (`$fUnsafeFromDataProposalProcedure_$cunsafeFromBuiltinData` - (headList - {data} - (tailList {data} args)))) - (/\dead -> - traceError {ScriptPurpose} "PT1") - {all dead. dead}) - {all dead. dead}) - {all dead. dead}) - {all dead. dead}) - {all dead. dead}) - {all dead. dead} ~`$fUnsafeFromDataValue` : data -> (\k v -> List (Tuple2 k v)) bytestring integer = `$fUnsafeFromDataMap_$cunsafeFromBuiltinData` @@ -994,12 +923,26 @@ (headList {data} (tailList {data} args)))) (/\dead -> traceError {TxInInfo} "PT1") {all dead. dead} + data ScriptInfo | ScriptInfo_match where + CertifyingScript : integer -> TxCert -> ScriptInfo + MintingScript : bytestring -> ScriptInfo + ProposingScript : integer -> ProposalProcedure -> ScriptInfo + RewardingScript : Credential -> ScriptInfo + SpendingScript : TxOutRef -> Maybe data -> ScriptInfo + VotingScript : Voter -> ScriptInfo data (LowerBound :: * -> *) a | LowerBound_match where LowerBound : Extended a -> Bool -> LowerBound a data (UpperBound :: * -> *) a | UpperBound_match where UpperBound : Extended a -> Bool -> UpperBound a data (Interval :: * -> *) a | Interval_match where Interval : LowerBound a -> UpperBound a -> Interval a + data ScriptPurpose | ScriptPurpose_match where + Certifying : integer -> TxCert -> ScriptPurpose + Minting : bytestring -> ScriptPurpose + Proposing : integer -> ProposalProcedure -> ScriptPurpose + Rewarding : Credential -> ScriptPurpose + Spending : TxOutRef -> ScriptPurpose + Voting : Voter -> ScriptPurpose data Vote | Vote_match where Abstain : Vote VoteNo : Vote @@ -1028,7 +971,7 @@ Maybe integer -> TxInfo data ScriptContext | ScriptContext_match where - ScriptContext : TxInfo -> ScriptPurpose -> ScriptContext + ScriptContext : TxInfo -> data -> ScriptInfo -> ScriptContext in \(d : data) -> let @@ -1043,6 +986,9 @@ {all dead. ScriptContext} (equalsInteger 0 index) (/\dead -> + let + !l : list data = tailList {data} args + in ScriptContext (let !tup : pair integer (list data) @@ -1170,7 +1116,85 @@ (`$fUnsafeFromDataMap_$cunsafeFromBuiltinData` {ScriptPurpose} {data} - `$fUnsafeFromDataScriptContext_$cunsafeFromBuiltinData` + (\(d : data) -> + let + !tup : pair integer (list data) = unConstrData d + !index : integer + = fstPair {integer} {list data} tup + !args : list data + = sndPair {integer} {list data} tup + in + ifThenElse + {all dead. ScriptPurpose} + (equalsInteger 0 index) + (/\dead -> + Minting (unBData (headList {data} args))) + (/\dead -> + ifThenElse + {all dead. ScriptPurpose} + (equalsInteger 1 index) + (/\dead -> + Spending + (`$fUnsafeFromDataTxOutRef_$cunsafeFromBuiltinData` + (headList {data} args))) + (/\dead -> + ifThenElse + {all dead. ScriptPurpose} + (equalsInteger 2 index) + (/\dead -> + Rewarding + (`$fUnsafeFromDataCredential_$cunsafeFromBuiltinData` + (headList {data} args))) + (/\dead -> + ifThenElse + {all dead. ScriptPurpose} + (equalsInteger 3 index) + (/\dead -> + Certifying + (unIData + (headList {data} args)) + (`$fUnsafeFromDataScriptContext_$cunsafeFromBuiltinData` + (headList + {data} + (tailList + {data} + args)))) + (/\dead -> + ifThenElse + {all dead. ScriptPurpose} + (equalsInteger 4 index) + (/\dead -> + Voting + (`$fUnsafeFromDataScriptContext_$cunsafeFromBuiltinData` + (headList + {data} + args))) + (/\dead -> + ifThenElse + {all dead. ScriptPurpose} + (equalsInteger 5 index) + (/\dead -> + Proposing + (unIData + (headList + {data} + args)) + (`$fUnsafeFromDataProposalProcedure_$cunsafeFromBuiltinData` + (headList + {data} + (tailList + {data} + args)))) + (/\dead -> + traceError + {ScriptPurpose} + "PT1") + {all dead. dead}) + {all dead. dead}) + {all dead. dead}) + {all dead. dead}) + {all dead. dead}) + {all dead. dead}) `$fUnsafeFromDataBuiltinData_$cunsafeFromBuiltinData` (headList {data} l)) (`$fUnsafeFromDataMap_$cunsafeFromBuiltinData` @@ -1230,8 +1254,75 @@ (headList {data} (tailList {data} l)))) (/\dead -> traceError {TxInfo} "PT1") {all dead. dead}) - (`$fUnsafeFromDataScriptContext_$cunsafeFromBuiltinData` - (headList {data} (tailList {data} args)))) + (headList {data} l) + (let + !tup : pair integer (list data) + = unConstrData (headList {data} (tailList {data} l)) + !index : integer = fstPair {integer} {list data} tup + !args : list data = sndPair {integer} {list data} tup + in + ifThenElse + {all dead. ScriptInfo} + (equalsInteger 0 index) + (/\dead -> MintingScript (unBData (headList {data} args))) + (/\dead -> + ifThenElse + {all dead. ScriptInfo} + (equalsInteger 1 index) + (/\dead -> + SpendingScript + (`$fUnsafeFromDataTxOutRef_$cunsafeFromBuiltinData` + (headList {data} args)) + (`$fUnsafeFromDataMaybe_$cunsafeFromBuiltinData` + {data} + `$fUnsafeFromDataBuiltinData_$cunsafeFromBuiltinData` + (headList {data} (tailList {data} args)))) + (/\dead -> + ifThenElse + {all dead. ScriptInfo} + (equalsInteger 2 index) + (/\dead -> + RewardingScript + (`$fUnsafeFromDataCredential_$cunsafeFromBuiltinData` + (headList {data} args))) + (/\dead -> + ifThenElse + {all dead. ScriptInfo} + (equalsInteger 3 index) + (/\dead -> + CertifyingScript + (unIData (headList {data} args)) + (`$fUnsafeFromDataScriptContext_$cunsafeFromBuiltinData` + (headList + {data} + (tailList {data} args)))) + (/\dead -> + ifThenElse + {all dead. ScriptInfo} + (equalsInteger 4 index) + (/\dead -> + VotingScript + (`$fUnsafeFromDataScriptContext_$cunsafeFromBuiltinData` + (headList {data} args))) + (/\dead -> + ifThenElse + {all dead. ScriptInfo} + (equalsInteger 5 index) + (/\dead -> + ProposingScript + (unIData (headList {data} args)) + (`$fUnsafeFromDataProposalProcedure_$cunsafeFromBuiltinData` + (headList + {data} + (tailList {data} args)))) + (/\dead -> + traceError {ScriptInfo} "PT1") + {all dead. dead}) + {all dead. dead}) + {all dead. dead}) + {all dead. dead}) + {all dead. dead}) + {all dead. dead})) (/\dead -> traceError {ScriptContext} "PT1") {all dead. dead} in @@ -1261,4 +1352,5 @@ , List [] , Constr 1 [] , Constr 1 [] ] - , Constr 1 [Constr 0 [B #, I 0]] ]) \ No newline at end of file + , I 1 + , Constr 1 [Constr 0 [B #, I 0], Constr 1 []] ]) \ No newline at end of file diff --git a/plutus-benchmark/script-contexts/test/9.6/checkScriptContext2.size.golden b/plutus-benchmark/script-contexts/test/9.6/checkScriptContext2.size.golden index 186421f118a..7b34ebbf282 100644 --- a/plutus-benchmark/script-contexts/test/9.6/checkScriptContext2.size.golden +++ b/plutus-benchmark/script-contexts/test/9.6/checkScriptContext2.size.golden @@ -1 +1 @@ -2725 \ No newline at end of file +2900 \ No newline at end of file diff --git a/plutus-benchmark/script-contexts/test/9.6/checkScriptContextEqualityData-20.budget.golden b/plutus-benchmark/script-contexts/test/9.6/checkScriptContextEqualityData-20.budget.golden index 207ddeeae54..ee3add8cf1e 100644 --- a/plutus-benchmark/script-contexts/test/9.6/checkScriptContextEqualityData-20.budget.golden +++ b/plutus-benchmark/script-contexts/test/9.6/checkScriptContextEqualityData-20.budget.golden @@ -1,2 +1,2 @@ -({cpu: 65025439 -| mem: 214602}) \ No newline at end of file +({cpu: 67266332 +| mem: 215802}) \ No newline at end of file diff --git a/plutus-benchmark/script-contexts/test/9.6/checkScriptContextEqualityOverhead-20.budget.golden b/plutus-benchmark/script-contexts/test/9.6/checkScriptContextEqualityOverhead-20.budget.golden index d3ea9804fee..4c75f3957c9 100644 --- a/plutus-benchmark/script-contexts/test/9.6/checkScriptContextEqualityOverhead-20.budget.golden +++ b/plutus-benchmark/script-contexts/test/9.6/checkScriptContextEqualityOverhead-20.budget.golden @@ -1,2 +1,2 @@ -({cpu: 49036100 -| mem: 213300}) \ No newline at end of file +({cpu: 34304100 +| mem: 214500}) \ No newline at end of file diff --git a/plutus-benchmark/script-contexts/test/9.6/checkScriptContextEqualityTerm-20.budget.golden b/plutus-benchmark/script-contexts/test/9.6/checkScriptContextEqualityTerm-20.budget.golden index 41cd901a200..2e284ed406f 100644 --- a/plutus-benchmark/script-contexts/test/9.6/checkScriptContextEqualityTerm-20.budget.golden +++ b/plutus-benchmark/script-contexts/test/9.6/checkScriptContextEqualityTerm-20.budget.golden @@ -1,2 +1,2 @@ -({cpu: 298875100 -| mem: 1191868}) \ No newline at end of file +({cpu: 201713366 +| mem: 1195470}) \ No newline at end of file diff --git a/plutus-benchmark/script-contexts/test/Spec.hs b/plutus-benchmark/script-contexts/test/Spec.hs index fad9a3815b0..62557c4ccb5 100644 --- a/plutus-benchmark/script-contexts/test/Spec.hs +++ b/plutus-benchmark/script-contexts/test/Spec.hs @@ -5,7 +5,7 @@ module Main (main) where import Data.Text qualified as Text import Test.Tasty -import Test.Tasty.Extras (TestNested, runTestGroupNestedGhc) +import Test.Tasty.Extras (TestNested, runTestNested, testNestedGhc) import Test.Tasty.HUnit import PlutusBenchmark.Common (Term, compiledCodeToTerm, runTermCek, unsafeRunTermCek) @@ -17,8 +17,8 @@ import PlutusTx.Test qualified as Tx -- Make a set of golden tests with results stored in subdirectories determined -- by the GHC version. -testGroupGhc :: [TestNested] -> TestTree -testGroupGhc = runTestGroupNestedGhc ["script-contexts", "test"] +runTestGhc :: [TestNested] -> TestTree +runTestGhc = runTestNested ["script-contexts", "test"] . pure . testNestedGhc assertSucceeded :: Term -> Assertion assertSucceeded t = @@ -43,7 +43,7 @@ testCheckSc1 = testGroup "checkScriptContext1" compiledCodeToTerm $ mkCheckScriptContext1Code (mkScriptContext 4) , testCase "fails on 5" . assertFailed $ compiledCodeToTerm $ mkCheckScriptContext1Code (mkScriptContext 5) - , testGroupGhc [ Tx.goldenSize "checkScriptContext1" $ + , runTestGhc [ Tx.goldenSize "checkScriptContext1" $ mkCheckScriptContext1Code (mkScriptContext 1) , Tx.goldenPirReadable "checkScriptContext1" $ mkCheckScriptContext1Code (mkScriptContext 1) @@ -64,7 +64,7 @@ testCheckSc2 = testGroup "checkScriptContext2" compiledCodeToTerm $ mkCheckScriptContext2Code (mkScriptContext 4) , testCase "succeed on 5" . assertSucceeded $ compiledCodeToTerm $ mkCheckScriptContext2Code (mkScriptContext 5) - , testGroupGhc [ Tx.goldenSize "checkScriptContext2" $ + , runTestGhc [ Tx.goldenSize "checkScriptContext2" $ mkCheckScriptContext2Code (mkScriptContext 1) , Tx.goldenPirReadable "checkScriptContext2" $ mkCheckScriptContext2Code (mkScriptContext 1) @@ -81,7 +81,7 @@ testCheckSc2 = testGroup "checkScriptContext2" testCheckScEquality :: TestTree testCheckScEquality = testGroup "checkScriptContextEquality" - [ testGroupGhc [ Tx.goldenBudget "checkScriptContextEqualityData-20" $ + [ runTestGhc [ Tx.goldenBudget "checkScriptContextEqualityData-20" $ mkScriptContextEqualityDataCode (mkScriptContext 20) , Tx.goldenEvalCekCatch "checkScriptContextEqualityData-20" $ [mkScriptContextEqualityDataCode (mkScriptContext 20)] diff --git a/plutus-benchmark/validation/bench/BenchCek.hs b/plutus-benchmark/validation/bench/BenchCek.hs index 3bcae15800a..35fc8299065 100644 --- a/plutus-benchmark/validation/bench/BenchCek.hs +++ b/plutus-benchmark/validation/bench/BenchCek.hs @@ -4,6 +4,8 @@ module Main where import Common (benchTermCek, benchWith, mkEvalCtx, unsafeUnflat) import Control.Exception (evaluate) import PlutusBenchmark.Common (toNamedDeBruijnTerm) +import PlutusCore.Default (BuiltinSemanticsVariant (DefaultFunSemanticsVariantA)) +import PlutusLedgerApi.Common (PlutusLedgerLanguage (PlutusV1)) import UntypedPlutusCore as UPLC {-| @@ -16,7 +18,9 @@ import UntypedPlutusCore as UPLC -} main :: IO () main = do - evalCtx <- evaluate mkEvalCtx + -- The validation benchmarks were all created with PlutusV1, so let's make + -- sure that the evaluation context matches. + evalCtx <- evaluate $ mkEvalCtx PlutusV1 DefaultFunSemanticsVariantA let mkCekBM file program = benchTermCek evalCtx . toNamedDeBruijnTerm . UPLC._progTerm $ unsafeUnflat file program benchWith mkCekBM diff --git a/plutus-benchmark/validation/bench/BenchFull.hs b/plutus-benchmark/validation/bench/BenchFull.hs index 85cb1ae77dc..bc385e0a626 100644 --- a/plutus-benchmark/validation/bench/BenchFull.hs +++ b/plutus-benchmark/validation/bench/BenchFull.hs @@ -1,6 +1,7 @@ {-# LANGUAGE BangPatterns #-} module Main where +import PlutusCore.Default (BuiltinSemanticsVariant (DefaultFunSemanticsVariantA)) import PlutusCore.Evaluation.Machine.ExBudget import PlutusLedgerApi.Common.Versions import PlutusLedgerApi.V1 @@ -23,28 +24,30 @@ the whole time taken from script deserialization to script execution result. -} main :: IO () main = do - evalCtx <- evaluate mkEvalCtx - let mkFullBM :: FilePath -> BS.ByteString -> Benchmarkable - mkFullBM file bsFlat = - let UPLC.Program () ver body = unsafeUnflat file bsFlat - -- We make some effort to mimic what happens on-chain, including the provision of - -- the script arguments. However, the inputs we have are *fully applied*. So we try - -- and reverse that by stripping off the arguments here. Conveniently, we know that - -- they will be Data constants. Annoyingly we can't just assume it's the first 3 - -- arguments, since some of them are policy scripts with only 2. - (term, args) = peelDataArguments body + -- The validation benchmarks were all created with PlutusV1, so let's make + -- sure that the evaluation context matches. + evalCtx <- evaluate $ mkEvalCtx PlutusV1 DefaultFunSemanticsVariantA + let mkFullBM :: FilePath -> BS.ByteString -> Benchmarkable + mkFullBM file bsFlat = + let UPLC.Program () ver body = unsafeUnflat file bsFlat + -- We make some effort to mimic what happens on-chain, including the provision of + -- the script arguments. However, the inputs we have are *fully applied*. So we try + -- and reverse that by stripping off the arguments here. Conveniently, we know that + -- they will be Data constants. Annoyingly we can't just assume it's the first 3 + -- arguments, since some of them are policy scripts with only 2. + (term, args) = peelDataArguments body -- strictify and "short" the result cbor to create a real `SerialisedScript` - !benchScript = force . serialiseUPLC $ UPLC.Program () ver term - eval script = - either (error . show) (\_ -> ()) . snd $ evaluateScriptRestricting - futurePV - -- no logs - Quiet - evalCtx - -- uses restricting(enormous) instead of counting to include the periodic - -- budget-overspent check - (unExRestrictingBudget enormousBudget) - (either (error . show) id $ deserialiseScript futurePV script) - args - in whnf eval benchScript - benchWith mkFullBM + !benchScript = force . serialiseUPLC $ UPLC.Program () ver term + eval script = + either (error . show) (\_ -> ()) . snd $ evaluateScriptRestricting + futurePV + -- no logs + Quiet + evalCtx + -- uses restricting(enormous) instead of counting to include the periodic + -- budget-overspent check + (unExRestrictingBudget enormousBudget) + (either (error . show) id $ deserialiseScript futurePV script) + args + in whnf eval benchScript + benchWith mkFullBM diff --git a/plutus-conformance/agda/Spec.hs b/plutus-conformance/agda/Spec.hs index 81e03332e5a..b0cab2ff946 100644 --- a/plutus-conformance/agda/Spec.hs +++ b/plutus-conformance/agda/Spec.hs @@ -13,7 +13,7 @@ import PlutusCore.Default (DefaultFun, DefaultUni) import PlutusCore.Evaluation.Machine.CostModelInterface (CekMachineCosts, CostModelParams, applyCostModelParams) import PlutusCore.Evaluation.Machine.ExBudget (ExBudget (..)) -import PlutusCore.Evaluation.Machine.ExBudgetingDefaults (defaultCekCostModel) +import PlutusCore.Evaluation.Machine.ExBudgetingDefaults (defaultCekCostModelForTesting) import PlutusCore.Evaluation.Machine.ExMemory (ExCPU (..), ExMemory (..)) import PlutusCore.Evaluation.Machine.MachineParameters (CostModel (..)) import PlutusCore.Evaluation.Machine.SimpleBuiltinCostModel (BuiltinCostKeyMap, BuiltinCostMap, @@ -42,7 +42,7 @@ type RawCostModel = (CekMachineCosts, BuiltinCostMap) toRawCostModel :: CostModelParams -> RawCostModel toRawCostModel params = let CostModel machineCosts builtinCosts = - case applyCostModelParams defaultCekCostModel params of + case applyCostModelParams defaultCekCostModelForTesting params of Left e -> error $ show e Right r -> r diff --git a/plutus-conformance/haskell-steppable/Spec.hs b/plutus-conformance/haskell-steppable/Spec.hs index 87b7adff103..b6bfcad3fe3 100644 --- a/plutus-conformance/haskell-steppable/Spec.hs +++ b/plutus-conformance/haskell-steppable/Spec.hs @@ -3,7 +3,7 @@ module Main (main) where import PlutusConformance.Common -import PlutusCore.Evaluation.Machine.ExBudgetingDefaults (defaultCekParameters) +import PlutusCore.Evaluation.Machine.ExBudgetingDefaults (defaultCekParametersForTesting) import UntypedPlutusCore as UPLC import UntypedPlutusCore.Evaluation.Machine.SteppableCek qualified as SCek @@ -20,7 +20,7 @@ evalSteppableUplcProg = UplcEvaluatorWithoutCosting $ traverseOf UPLC.progTerm $ case UPLC.deBruijnTerm t of Left (_ :: UPLC.FreeVariableError) -> Nothing Right _ -> Just () - case SCek.evaluateCekNoEmit defaultCekParameters t of + case SCek.evaluateCekNoEmit defaultCekParametersForTesting t of Left _ -> Nothing Right prog -> Just prog diff --git a/plutus-conformance/plutus-conformance.cabal b/plutus-conformance/plutus-conformance.cabal index 5a4fc9420d6..3f1100db8da 100644 --- a/plutus-conformance/plutus-conformance.cabal +++ b/plutus-conformance/plutus-conformance.cabal @@ -1,19 +1,18 @@ -cabal-version: 3.0 -name: plutus-conformance -version: 1.0.0.0 -license: Apache-2.0 +cabal-version: 3.0 +name: plutus-conformance +version: 1.0.0.0 +license: Apache-2.0 license-files: LICENSE NOTICE -maintainer: marty.stumpf@iohk.io -author: Plutus Core Team -synopsis: Conformance Test Suite for Plutus Core -description: Comprehensive Conformance Test Suite for Plutus Core. -category: Language, Plutus, Conformance -build-type: Simple -extra-doc-files: README.md -extra-source-files: +maintainer: marty.stumpf@iohk.io +author: Plutus Core Team +synopsis: Conformance Test Suite for Plutus Core +description: Comprehensive Conformance Test Suite for Plutus Core. +category: Language, Plutus, Conformance +build-type: Simple +extra-doc-files: README.md source-repository head type: git @@ -49,7 +48,7 @@ library , base , directory , filepath - , plutus-core:{plutus-core, plutus-core-testlib} ^>=1.28 + , plutus-core:{plutus-core, plutus-core-testlib} ^>=1.29 , tasty , tasty-expected-failure , tasty-golden @@ -72,7 +71,7 @@ test-suite haskell-conformance build-depends: , base >=4.9 && <5 , plutus-conformance - , plutus-core ^>=1.28 + , plutus-core ^>=1.29 test-suite haskell-steppable-conformance import: lang @@ -85,7 +84,7 @@ test-suite haskell-steppable-conformance , base >=4.9 && <5 , lens , plutus-conformance - , plutus-core ^>=1.28 + , plutus-core ^>=1.29 test-suite agda-conformance import: lang @@ -98,6 +97,6 @@ test-suite agda-conformance , aeson , base >=4.9 && <5 , plutus-conformance - , plutus-core ^>=1.28 + , plutus-core ^>=1.29 , plutus-metatheory , transformers diff --git a/plutus-conformance/src/PlutusConformance/Common.hs b/plutus-conformance/src/PlutusConformance/Common.hs index 1e95c92ac52..dbf19163fda 100644 --- a/plutus-conformance/src/PlutusConformance/Common.hs +++ b/plutus-conformance/src/PlutusConformance/Common.hs @@ -10,7 +10,7 @@ import PlutusCore.Default (DefaultFun, DefaultUni) import PlutusCore.Error (ParserErrorBundle) import PlutusCore.Evaluation.Machine.CostModelInterface import PlutusCore.Evaluation.Machine.ExBudget -import PlutusCore.Evaluation.Machine.ExBudgetingDefaults (defaultCostModelParams) +import PlutusCore.Evaluation.Machine.ExBudgetingDefaults (defaultCostModelParamsForTesting) import PlutusCore.Name.Unique (Name) import PlutusCore.Quote (runQuoteT) import PlutusPrelude (Pretty (pretty), display, void) @@ -219,7 +219,7 @@ runUplcEvalTests :: -- whether it should labelled as `ExpectedFailure`. -> IO () runUplcEvalTests eval expectedFailTests = do - let params = fromJust defaultCostModelParams + let params = fromJust defaultCostModelParamsForTesting tests <- discoverTests eval diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/bls12-381/G1/on-curve-bit3-clear/on-curve-bit3-clear.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/bls12-381/G1/on-curve-bit3-clear/on-curve-bit3-clear.uplc.budget.expected index c5fb80b1cd0..d9531fb66be 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/bls12-381/G1/on-curve-bit3-clear/on-curve-bit3-clear.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/bls12-381/G1/on-curve-bit3-clear/on-curve-bit3-clear.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 23100 +({cpu: 16100 | mem: 200}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/bls12-381/G1/on-curve-bit3-set/on-curve-bit3-set.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/bls12-381/G1/on-curve-bit3-set/on-curve-bit3-set.uplc.budget.expected index c5fb80b1cd0..d9531fb66be 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/bls12-381/G1/on-curve-bit3-set/on-curve-bit3-set.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/bls12-381/G1/on-curve-bit3-set/on-curve-bit3-set.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 23100 +({cpu: 16100 | mem: 200}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/bls12-381/G1/zero/zero.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/bls12-381/G1/zero/zero.uplc.budget.expected index c5fb80b1cd0..d9531fb66be 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/bls12-381/G1/zero/zero.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/bls12-381/G1/zero/zero.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 23100 +({cpu: 16100 | mem: 200}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/bls12-381/G2/on-curve-bit3-clear/on-curve-bit3-clear.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/bls12-381/G2/on-curve-bit3-clear/on-curve-bit3-clear.uplc.budget.expected index c5fb80b1cd0..d9531fb66be 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/bls12-381/G2/on-curve-bit3-clear/on-curve-bit3-clear.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/bls12-381/G2/on-curve-bit3-clear/on-curve-bit3-clear.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 23100 +({cpu: 16100 | mem: 200}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/bls12-381/G2/on-curve-bit3-set/on-curve-bit3-set.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/bls12-381/G2/on-curve-bit3-set/on-curve-bit3-set.uplc.budget.expected index c5fb80b1cd0..d9531fb66be 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/bls12-381/G2/on-curve-bit3-set/on-curve-bit3-set.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/bls12-381/G2/on-curve-bit3-set/on-curve-bit3-set.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 23100 +({cpu: 16100 | mem: 200}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/bls12-381/G2/zero/zero.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/bls12-381/G2/zero/zero.uplc.budget.expected index c5fb80b1cd0..d9531fb66be 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/bls12-381/G2/zero/zero.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/bls12-381/G2/zero/zero.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 23100 +({cpu: 16100 | mem: 200}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/bool/False/False.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/bool/False/False.uplc.budget.expected index c5fb80b1cd0..d9531fb66be 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/bool/False/False.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/bool/False/False.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 23100 +({cpu: 16100 | mem: 200}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/bool/True/True.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/bool/True/True.uplc.budget.expected index c5fb80b1cd0..d9531fb66be 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/bool/True/True.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/bool/True/True.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 23100 +({cpu: 16100 | mem: 200}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/bytestring/bytestring1/bytestring1.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/bytestring/bytestring1/bytestring1.uplc.budget.expected index c5fb80b1cd0..d9531fb66be 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/bytestring/bytestring1/bytestring1.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/bytestring/bytestring1/bytestring1.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 23100 +({cpu: 16100 | mem: 200}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/bytestring/bytestring2/bytestring2.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/bytestring/bytestring2/bytestring2.uplc.budget.expected index c5fb80b1cd0..d9531fb66be 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/bytestring/bytestring2/bytestring2.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/bytestring/bytestring2/bytestring2.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 23100 +({cpu: 16100 | mem: 200}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/bytestring/bytestring3/bytestring3.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/bytestring/bytestring3/bytestring3.uplc.budget.expected index c5fb80b1cd0..d9531fb66be 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/bytestring/bytestring3/bytestring3.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/bytestring/bytestring3/bytestring3.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 23100 +({cpu: 16100 | mem: 200}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/data/dataByteString/dataByteString.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/data/dataByteString/dataByteString.uplc.budget.expected index c5fb80b1cd0..d9531fb66be 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/data/dataByteString/dataByteString.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/data/dataByteString/dataByteString.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 23100 +({cpu: 16100 | mem: 200}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/data/dataConstr/dataConstr.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/data/dataConstr/dataConstr.uplc.budget.expected index c5fb80b1cd0..d9531fb66be 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/data/dataConstr/dataConstr.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/data/dataConstr/dataConstr.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 23100 +({cpu: 16100 | mem: 200}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/data/dataInteger/dataInteger.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/data/dataInteger/dataInteger.uplc.budget.expected index c5fb80b1cd0..d9531fb66be 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/data/dataInteger/dataInteger.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/data/dataInteger/dataInteger.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 23100 +({cpu: 16100 | mem: 200}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/data/dataList/dataList.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/data/dataList/dataList.uplc.budget.expected index c5fb80b1cd0..d9531fb66be 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/data/dataList/dataList.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/data/dataList/dataList.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 23100 +({cpu: 16100 | mem: 200}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/data/dataMap/dataMap.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/data/dataMap/dataMap.uplc.budget.expected index c5fb80b1cd0..d9531fb66be 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/data/dataMap/dataMap.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/data/dataMap/dataMap.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 23100 +({cpu: 16100 | mem: 200}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/integer/integer1/integer1.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/integer/integer1/integer1.uplc.budget.expected index c5fb80b1cd0..d9531fb66be 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/integer/integer1/integer1.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/integer/integer1/integer1.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 23100 +({cpu: 16100 | mem: 200}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/integer/integer2/integer2.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/integer/integer2/integer2.uplc.budget.expected index c5fb80b1cd0..d9531fb66be 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/integer/integer2/integer2.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/integer/integer2/integer2.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 23100 +({cpu: 16100 | mem: 200}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/integer/integer3/integer3.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/integer/integer3/integer3.uplc.budget.expected index c5fb80b1cd0..d9531fb66be 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/integer/integer3/integer3.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/integer/integer3/integer3.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 23100 +({cpu: 16100 | mem: 200}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/integer/integer4/integer4.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/integer/integer4/integer4.uplc.budget.expected index c5fb80b1cd0..d9531fb66be 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/integer/integer4/integer4.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/integer/integer4/integer4.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 23100 +({cpu: 16100 | mem: 200}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/integer/integer5/integer5.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/integer/integer5/integer5.uplc.budget.expected index c5fb80b1cd0..d9531fb66be 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/integer/integer5/integer5.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/integer/integer5/integer5.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 23100 +({cpu: 16100 | mem: 200}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/integer/integer6/integer6.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/integer/integer6/integer6.uplc.budget.expected index c5fb80b1cd0..d9531fb66be 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/integer/integer6/integer6.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/integer/integer6/integer6.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 23100 +({cpu: 16100 | mem: 200}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/integer/integer7/integer7.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/integer/integer7/integer7.uplc.budget.expected index c5fb80b1cd0..d9531fb66be 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/integer/integer7/integer7.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/integer/integer7/integer7.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 23100 +({cpu: 16100 | mem: 200}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/integer/integer8/integer8.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/integer/integer8/integer8.uplc.budget.expected index c5fb80b1cd0..d9531fb66be 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/integer/integer8/integer8.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/integer/integer8/integer8.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 23100 +({cpu: 16100 | mem: 200}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/list/emptyList/emptyList.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/list/emptyList/emptyList.uplc.budget.expected index c5fb80b1cd0..d9531fb66be 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/list/emptyList/emptyList.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/list/emptyList/emptyList.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 23100 +({cpu: 16100 | mem: 200}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/pair/nestedPair/nestedPair.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/pair/nestedPair/nestedPair.uplc.budget.expected index c5fb80b1cd0..d9531fb66be 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/pair/nestedPair/nestedPair.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/pair/nestedPair/nestedPair.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 23100 +({cpu: 16100 | mem: 200}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/pair/simplePair/simplePair.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/pair/simplePair/simplePair.uplc.budget.expected index c5fb80b1cd0..d9531fb66be 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/pair/simplePair/simplePair.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/pair/simplePair/simplePair.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 23100 +({cpu: 16100 | mem: 200}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/string/string1/string1.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/string/string1/string1.uplc.budget.expected index c5fb80b1cd0..d9531fb66be 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/string/string1/string1.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/string/string1/string1.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 23100 +({cpu: 16100 | mem: 200}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/string/string2/string2.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/string/string2/string2.uplc.budget.expected index c5fb80b1cd0..d9531fb66be 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/string/string2/string2.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/string/string2/string2.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 23100 +({cpu: 16100 | mem: 200}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/string/string3/string3.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/string/string3/string3.uplc.budget.expected index c5fb80b1cd0..d9531fb66be 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/string/string3/string3.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/string/string3/string3.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 23100 +({cpu: 16100 | mem: 200}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/string/string4/string4.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/string/string4/string4.uplc.budget.expected index c5fb80b1cd0..d9531fb66be 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/string/string4/string4.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/string/string4/string4.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 23100 +({cpu: 16100 | mem: 200}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/string/string5/string5.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/string/string5/string5.uplc.budget.expected index c5fb80b1cd0..d9531fb66be 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/string/string5/string5.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/string/string5/string5.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 23100 +({cpu: 16100 | mem: 200}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/unit/unit.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/unit/unit.uplc.budget.expected index c5fb80b1cd0..d9531fb66be 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/unit/unit.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/constant/unit/unit.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 23100 +({cpu: 16100 | mem: 200}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/interleaving/ite/ite.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/interleaving/ite/ite.uplc.budget.expected index c5fb80b1cd0..d9531fb66be 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/interleaving/ite/ite.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/interleaving/ite/ite.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 23100 +({cpu: 16100 | mem: 200}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/interleaving/iteAtIntegerArrowIntegerApplied1/iteAtIntegerArrowIntegerApplied1.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/interleaving/iteAtIntegerArrowIntegerApplied1/iteAtIntegerArrowIntegerApplied1.uplc.budget.expected index 2bac461c352..aad41aadc07 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/interleaving/iteAtIntegerArrowIntegerApplied1/iteAtIntegerArrowIntegerApplied1.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/interleaving/iteAtIntegerArrowIntegerApplied1/iteAtIntegerArrowIntegerApplied1.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 654053 +({cpu: 375986 | mem: 1702}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/interleaving/iteAtIntegerArrowIntegerApplied2/iteAtIntegerArrowIntegerApplied2.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/interleaving/iteAtIntegerArrowIntegerApplied2/iteAtIntegerArrowIntegerApplied2.uplc.budget.expected index cd63e2c76ce..6dd0d41ef26 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/interleaving/iteAtIntegerArrowIntegerApplied2/iteAtIntegerArrowIntegerApplied2.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/interleaving/iteAtIntegerArrowIntegerApplied2/iteAtIntegerArrowIntegerApplied2.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 562053 +({cpu: 311986 | mem: 1302}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/interleaving/iteAtIntegerArrowIntegerAppliedApplied/iteAtIntegerArrowIntegerAppliedApplied.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/interleaving/iteAtIntegerArrowIntegerAppliedApplied/iteAtIntegerArrowIntegerAppliedApplied.uplc.budget.expected index bb611d33270..bc03a7e98fa 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/interleaving/iteAtIntegerArrowIntegerAppliedApplied/iteAtIntegerArrowIntegerAppliedApplied.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/interleaving/iteAtIntegerArrowIntegerAppliedApplied/iteAtIntegerArrowIntegerAppliedApplied.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 792949 +({cpu: 498939 | mem: 1904}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/interleaving/iteAtIntegerArrowIntegerWithCond/iteAtIntegerArrowIntegerWithCond.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/interleaving/iteAtIntegerArrowIntegerWithCond/iteAtIntegerArrowIntegerWithCond.uplc.budget.expected index d942a011279..c99a757d4c8 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/interleaving/iteAtIntegerArrowIntegerWithCond/iteAtIntegerArrowIntegerWithCond.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/interleaving/iteAtIntegerArrowIntegerWithCond/iteAtIntegerArrowIntegerWithCond.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 389497 +({cpu: 171937 | mem: 901}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/interleaving/iteForced/iteForced.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/interleaving/iteForced/iteForced.uplc.budget.expected index d0d58f03406..9aec697a86c 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/interleaving/iteForced/iteForced.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/interleaving/iteForced/iteForced.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 46100 +({cpu: 32100 | mem: 300}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/interleaving/iteForcedWithIntegerAndString/iteForcedWithIntegerAndString.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/interleaving/iteForcedWithIntegerAndString/iteForcedWithIntegerAndString.uplc.budget.expected index cd63e2c76ce..6dd0d41ef26 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/interleaving/iteForcedWithIntegerAndString/iteForcedWithIntegerAndString.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/interleaving/iteForcedWithIntegerAndString/iteForcedWithIntegerAndString.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 562053 +({cpu: 311986 | mem: 1302}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/interleaving/iteStringInteger/iteStringInteger.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/interleaving/iteStringInteger/iteStringInteger.uplc.budget.expected index cd63e2c76ce..6dd0d41ef26 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/interleaving/iteStringInteger/iteStringInteger.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/interleaving/iteStringInteger/iteStringInteger.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 562053 +({cpu: 311986 | mem: 1302}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/interleaving/iteStringString/iteStringString.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/interleaving/iteStringString/iteStringString.uplc.budget.expected index cd63e2c76ce..6dd0d41ef26 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/interleaving/iteStringString/iteStringString.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/interleaving/iteStringString/iteStringString.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 562053 +({cpu: 311986 | mem: 1302}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/interleaving/iteWrongCondTypePartiallyApplied/iteWrongCondTypePartiallyApplied.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/interleaving/iteWrongCondTypePartiallyApplied/iteWrongCondTypePartiallyApplied.uplc.budget.expected index 323b1fcd0a8..1014595b716 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/interleaving/iteWrongCondTypePartiallyApplied/iteWrongCondTypePartiallyApplied.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/interleaving/iteWrongCondTypePartiallyApplied/iteWrongCondTypePartiallyApplied.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 138100 +({cpu: 96100 | mem: 700}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/addInteger/addInteger-uncurried/addInteger-uncurried.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/addInteger/addInteger-uncurried/addInteger-uncurried.uplc.budget.expected index 850417a55e3..b9fdce3df89 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/addInteger/addInteger-uncurried/addInteger-uncurried.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/addInteger/addInteger-uncurried/addInteger-uncurried.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 321577 +({cpu: 181308 | mem: 602}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/addInteger/addInteger1/addInteger1.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/addInteger/addInteger1/addInteger1.uplc.budget.expected index 850417a55e3..b9fdce3df89 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/addInteger/addInteger1/addInteger1.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/addInteger/addInteger1/addInteger1.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 321577 +({cpu: 181308 | mem: 602}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/addInteger/addInteger2/addInteger2.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/addInteger/addInteger2/addInteger2.uplc.budget.expected index 134cee68d52..18f2a4a0d69 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/addInteger/addInteger2/addInteger2.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/addInteger/addInteger2/addInteger2.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 322389 +({cpu: 181728 | mem: 603}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/addInteger/addInteger3/addInteger3.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/addInteger/addInteger3/addInteger3.uplc.budget.expected index c4f138046ab..85330367557 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/addInteger/addInteger3/addInteger3.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/addInteger/addInteger3/addInteger3.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 324013 +({cpu: 182568 | mem: 605}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/addInteger/addInteger4/addInteger4.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/addInteger/addInteger4/addInteger4.uplc.budget.expected index a81ca4609d9..47bdb6d3ed9 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/addInteger/addInteger4/addInteger4.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/addInteger/addInteger4/addInteger4.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 323201 +({cpu: 182148 | mem: 604}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/appendByteString/appendByteString1/appendByteString1.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/appendByteString/appendByteString1/appendByteString1.uplc.budget.expected index 2fc5b992f38..9421acd7f84 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/appendByteString/appendByteString1/appendByteString1.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/appendByteString/appendByteString1/appendByteString1.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 117242 +({cpu: 81446 | mem: 602}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/appendByteString/appendByteString2/appendByteString2.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/appendByteString/appendByteString2/appendByteString2.uplc.budget.expected index 2fc5b992f38..9421acd7f84 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/appendByteString/appendByteString2/appendByteString2.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/appendByteString/appendByteString2/appendByteString2.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 117242 +({cpu: 81446 | mem: 602}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/appendByteString/appendByteString3/appendByteString3.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/appendByteString/appendByteString3/appendByteString3.uplc.budget.expected index 2fc5b992f38..9421acd7f84 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/appendByteString/appendByteString3/appendByteString3.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/appendByteString/appendByteString3/appendByteString3.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 117242 +({cpu: 81446 | mem: 602}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/appendString/appendString.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/appendString/appendString.uplc.budget.expected index 95b363bc93c..ab254feb7cb 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/appendString/appendString.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/appendString/appendString.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 357870 +({cpu: 680670 | mem: 614}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bData/bData.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bData/bData.uplc.budget.expected index da1804c146d..16b0be2201d 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bData/bData.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bData/bData.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 70100 +({cpu: 59283 | mem: 432}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/blake2b_224/blake2b_224-empty/blake2b_224-empty.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/blake2b_224/blake2b_224-empty/blake2b_224-empty.uplc.budget.expected index ca0c0ba68b1..d69e333f72d 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/blake2b_224/blake2b_224-empty/blake2b_224-empty.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/blake2b_224/blake2b_224-empty/blake2b_224-empty.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 505962 +({cpu: 357676 | mem: 805}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/blake2b_224/blake2b_224-length-200/blake2b_224-length-200.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/blake2b_224/blake2b_224-length-200/blake2b_224-length-200.uplc.budget.expected index 127002e7f92..38545e03510 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/blake2b_224/blake2b_224-length-200/blake2b_224-length-200.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/blake2b_224/blake2b_224-length-200/blake2b_224-length-200.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 537387 +({cpu: 382606 | mem: 805}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/blake2b_256/blake2b_256-empty/blake2b_256-empty.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/blake2b_256/blake2b_256-empty/blake2b_256-empty.uplc.budget.expected index ca0c0ba68b1..a616120eff2 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/blake2b_256/blake2b_256-empty/blake2b_256-empty.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/blake2b_256/blake2b_256-empty/blake2b_256-empty.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 505962 +({cpu: 351411 | mem: 805}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/blake2b_256/blake2b_256-length-200/blake2b_256-length-200.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/blake2b_256/blake2b_256-length-200/blake2b_256-length-200.uplc.budget.expected index 127002e7f92..7923c6efca0 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/blake2b_256/blake2b_256-length-200/blake2b_256-length-200.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/blake2b_256/blake2b_256-length-200/blake2b_256-length-200.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 537387 +({cpu: 376479 | mem: 805}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/add/add.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/add/add.uplc.budget.expected index 3fd442c016d..ff89093a5e4 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/add/add.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/add/add.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 34303537 +({cpu: 107508687 | mem: 1455}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/neg/neg.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/neg/neg.uplc.budget.expected index 5854a7420ed..d3075265e53 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/neg/neg.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/neg/neg.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 17072882 +({cpu: 53802159 | mem: 1037}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/scalarMul/scalarMul.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/scalarMul/scalarMul.uplc.budget.expected index 4d5cb685885..b41af3b6740 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/scalarMul/scalarMul.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G1/arith/scalarMul/scalarMul.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 111746287 +({cpu: 130034708 | mem: 1237}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/add/add.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/add/add.uplc.budget.expected index c2095f484fb..c47bdb63400 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/add/add.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/add/add.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 69359649 +({cpu: 152501902 | mem: 1509}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/neg/neg.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/neg/neg.uplc.budget.expected index 94604f0a30b..507711f176a 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/neg/neg.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/neg/neg.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 34238152 +({cpu: 76028140 | mem: 1073}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/scalarMul/scalarMul.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/scalarMul/scalarMul.uplc.budget.expected index b54e373d84c..d09ddd56592 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/scalarMul/scalarMul.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/G2/arith/scalarMul/scalarMul.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 224476385 +({cpu: 234103104 | mem: 1273}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/balanced/balanced.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/balanced/balanced.uplc.budget.expected index 86dd033a1a8..b6c2e2d1bcf 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/balanced/balanced.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/balanced/balanced.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 1291563888 +({cpu: 1097491548 | mem: 2453}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/left-additive/left-additive.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/left-additive/left-additive.uplc.budget.expected index 1691dd900d6..b0cb7d4f4ee 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/left-additive/left-additive.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/left-additive/left-additive.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 1745489981 +({cpu: 1481510453 | mem: 3851}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/left-multiplicative/left-multiplicative.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/left-multiplicative/left-multiplicative.uplc.budget.expected index 86dd033a1a8..b6c2e2d1bcf 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/left-multiplicative/left-multiplicative.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/left-multiplicative/left-multiplicative.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 1291563888 +({cpu: 1097491548 | mem: 2453}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/right-additive/right-additive.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/right-additive/right-additive.uplc.budget.expected index 1691dd900d6..b0cb7d4f4ee 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/right-additive/right-additive.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/right-additive/right-additive.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 1745489981 +({cpu: 1481510453 | mem: 3851}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/right-multiplicative/right-multiplicative.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/right-multiplicative/right-multiplicative.uplc.budget.expected index 86dd033a1a8..b6c2e2d1bcf 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/right-multiplicative/right-multiplicative.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/right-multiplicative/right-multiplicative.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 1291563888 +({cpu: 1097491548 | mem: 2453}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/swap-scalars/swap-scalars.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/swap-scalars/swap-scalars.uplc.budget.expected index 86dd033a1a8..b6c2e2d1bcf 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/swap-scalars/swap-scalars.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/pairing/swap-scalars/swap-scalars.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 1291563888 +({cpu: 1097491548 | mem: 2453}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/signature/augmented/augmented.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/signature/augmented/augmented.uplc.budget.expected index 4fae647d534..61775e810da 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/signature/augmented/augmented.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/signature/augmented/augmented.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 1341416062 +({cpu: 1097202228 | mem: 3060}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/signature/large-dst/large-dst.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/signature/large-dst/large-dst.uplc.budget.expected index 087148f2d7e..b9e77b91eb4 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/signature/large-dst/large-dst.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381-cardano-crypto-tests/signature/large-dst/large-dst.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 85253296 +({cpu: 107393818 | mem: 1882}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_add/add-associative/add-associative.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_add/add-associative/add-associative.uplc.budget.expected index b34b91cbbb7..32ffec68fa4 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_add/add-associative/add-associative.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_add/add-associative/add-associative.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 4145783 +({cpu: 4627448 | mem: 2273}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_add/add-commutative/add-commutative.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_add/add-commutative/add-commutative.uplc.budget.expected index 3f34f5d016b..1fb9099f54e 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_add/add-commutative/add-commutative.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_add/add-commutative/add-commutative.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 2296167 +({cpu: 2574778 | mem: 1437}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_add/add-zero/add-zero.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_add/add-zero/add-zero.uplc.budget.expected index 8e0863c6a84..9f7b5788800 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_add/add-zero/add-zero.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_add/add-zero/add-zero.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 947908 +({cpu: 1042435 | mem: 618}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_add/add/add.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_add/add/add.uplc.budget.expected index 8e0863c6a84..9f7b5788800 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_add/add/add.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_add/add/add.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 947908 +({cpu: 1042435 | mem: 618}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_compress/compress/compress.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_compress/compress/compress.uplc.budget.expected index 4ecef6922a4..5be86b19a8b 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_compress/compress/compress.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_compress/compress/compress.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 3278194 +({cpu: 2828778 | mem: 406}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_equal/equal-false/equal-false.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_equal/equal-false/equal-false.uplc.budget.expected index 294acf274d1..08bc3365d3f 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_equal/equal-false/equal-false.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_equal/equal-false/equal-false.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 446551 +({cpu: 522108 | mem: 601}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_equal/equal-true/equal-true.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_equal/equal-true/equal-true.uplc.budget.expected index 294acf274d1..08bc3365d3f 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_equal/equal-true/equal-true.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_equal/equal-true/equal-true.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 446551 +({cpu: 522108 | mem: 601}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_hashToGroup/hash-different-msg-same-dst/hash-different-msg-same-dst.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_hashToGroup/hash-different-msg-same-dst/hash-different-msg-same-dst.uplc.budget.expected index ae885b24d06..54762c05ce1 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_hashToGroup/hash-different-msg-same-dst/hash-different-msg-same-dst.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_hashToGroup/hash-different-msg-same-dst/hash-different-msg-same-dst.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 132658113 +({cpu: 105733730 | mem: 1437}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_hashToGroup/hash-dst-len-255/hash-dst-len-255.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_hashToGroup/hash-dst-len-255/hash-dst-len-255.uplc.budget.expected index 64944c37e81..f1b55d9e262 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_hashToGroup/hash-dst-len-255/hash-dst-len-255.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_hashToGroup/hash-dst-len-255/hash-dst-len-255.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 66128881 +({cpu: 52621911 | mem: 618}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_hashToGroup/hash-empty-dst/hash-empty-dst.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_hashToGroup/hash-empty-dst/hash-empty-dst.uplc.budget.expected index 64944c37e81..f1b55d9e262 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_hashToGroup/hash-empty-dst/hash-empty-dst.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_hashToGroup/hash-empty-dst/hash-empty-dst.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 66128881 +({cpu: 52621911 | mem: 618}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_hashToGroup/hash-same-msg-different-dst/hash-same-msg-different-dst.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_hashToGroup/hash-same-msg-different-dst/hash-same-msg-different-dst.uplc.budget.expected index ae885b24d06..54762c05ce1 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_hashToGroup/hash-same-msg-different-dst/hash-same-msg-different-dst.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_hashToGroup/hash-same-msg-different-dst/hash-same-msg-different-dst.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 132658113 +({cpu: 105733730 | mem: 1437}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_hashToGroup/hash/hash.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_hashToGroup/hash/hash.uplc.budget.expected index 64944c37e81..f1b55d9e262 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_hashToGroup/hash/hash.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_hashToGroup/hash/hash.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 66128881 +({cpu: 52621911 | mem: 618}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_neg/add-neg/add-neg.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_neg/add-neg/add-neg.uplc.budget.expected index 42386660a02..6aac7dde979 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_neg/add-neg/add-neg.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_neg/add-neg/add-neg.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 1108150 +({cpu: 1342364 | mem: 836}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_neg/neg-zero/neg-zero.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_neg/neg-zero/neg-zero.uplc.budget.expected index fd1490da346..c4afa95744a 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_neg/neg-zero/neg-zero.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_neg/neg-zero/neg-zero.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 183342 +({cpu: 316029 | mem: 418}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_neg/neg/neg.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_neg/neg/neg.uplc.budget.expected index fd1490da346..c4afa95744a 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_neg/neg/neg.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_neg/neg/neg.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 183342 +({cpu: 316029 | mem: 418}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_scalarMul/addmul/addmul.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_scalarMul/addmul/addmul.uplc.budget.expected index ae47e90c0d0..db0a0d061ea 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_scalarMul/addmul/addmul.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_scalarMul/addmul/addmul.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 190092842 +({cpu: 154054183 | mem: 1454}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mul0/mul0.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mul0/mul0.uplc.budget.expected index 48e61e63e51..1f875e2ed21 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mul0/mul0.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mul0/mul0.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 94595567 +({cpu: 76521974 | mem: 618}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mul1/mul1.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mul1/mul1.uplc.budget.expected index 48e61e63e51..1f875e2ed21 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mul1/mul1.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mul1/mul1.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 94595567 +({cpu: 76521974 | mem: 618}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mul19+25/mul19+25.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mul19+25/mul19+25.uplc.budget.expected index ae47e90c0d0..db0a0d061ea 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mul19+25/mul19+25.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mul19+25/mul19+25.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 190092842 +({cpu: 154054183 | mem: 1454}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mul44/mul44.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mul44/mul44.uplc.budget.expected index 48e61e63e51..1f875e2ed21 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mul44/mul44.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mul44/mul44.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 94595567 +({cpu: 76521974 | mem: 618}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mul4x11/mul4x11.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mul4x11/mul4x11.uplc.budget.expected index 02497a5e0d4..aebe792f1df 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mul4x11/mul4x11.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mul4x11/mul4x11.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 189168034 +({cpu: 153027848 | mem: 1036}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_scalarMul/muladd/muladd.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_scalarMul/muladd/muladd.uplc.budget.expected index 50a0526658b..e76d6336eb3 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_scalarMul/muladd/muladd.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_scalarMul/muladd/muladd.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 95520375 +({cpu: 77548309 | mem: 1036}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mulneg1/mulneg1.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mulneg1/mulneg1.uplc.budget.expected index 48e61e63e51..1f875e2ed21 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mulneg1/mulneg1.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mulneg1/mulneg1.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 94595567 +({cpu: 76521974 | mem: 618}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mulneg44/mulneg44.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mulneg44/mulneg44.uplc.budget.expected index 48e61e63e51..1f875e2ed21 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mulneg44/mulneg44.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mulneg44/mulneg44.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 94595567 +({cpu: 76521974 | mem: 618}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic1/mulperiodic1.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic1/mulperiodic1.uplc.budget.expected index b20e703c951..c9db227f017 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic1/mulperiodic1.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic1/mulperiodic1.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 95280198 +({cpu: 77054586 | mem: 1019}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic2/mulperiodic2.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic2/mulperiodic2.uplc.budget.expected index 39c04916007..4c923a3d878 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic2/mulperiodic2.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic2/mulperiodic2.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 190153578 +({cpu: 153726928 | mem: 1842}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic3/mulperiodic3.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic3/mulperiodic3.uplc.budget.expected index 57b8e288495..b0c23c98fd9 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic3/mulperiodic3.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic3/mulperiodic3.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 190461407 +({cpu: 153892726 | mem: 2248}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic4/mulperiodic4.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic4/mulperiodic4.uplc.budget.expected index 57b8e288495..b0c23c98fd9 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic4/mulperiodic4.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_scalarMul/mulperiodic4/mulperiodic4.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 190461407 +({cpu: 153892726 | mem: 2248}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_uncompress/on-curve-bit3-clear/on-curve-bit3-clear.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_uncompress/on-curve-bit3-clear/on-curve-bit3-clear.uplc.budget.expected index 4da7228c454..848dd609e8d 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_uncompress/on-curve-bit3-clear/on-curve-bit3-clear.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_uncompress/on-curve-bit3-clear/on-curve-bit3-clear.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 16489189 +({cpu: 52996222 | mem: 418}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_uncompress/on-curve-bit3-set/on-curve-bit3-set.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_uncompress/on-curve-bit3-set/on-curve-bit3-set.uplc.budget.expected index 4da7228c454..848dd609e8d 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_uncompress/on-curve-bit3-set/on-curve-bit3-set.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_uncompress/on-curve-bit3-set/on-curve-bit3-set.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 16489189 +({cpu: 52996222 | mem: 418}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_uncompress/zero/zero.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_uncompress/zero/zero.uplc.budget.expected index 4da7228c454..848dd609e8d 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_uncompress/zero/zero.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_uncompress/zero/zero.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 16489189 +({cpu: 52996222 | mem: 418}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_add/add-associative/add-associative.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_add/add-associative/add-associative.uplc.budget.expected index b0a27554679..a882afdf833 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_add/add-associative/add-associative.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_add/add-associative/add-associative.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 9955315 +({cpu: 9220466 | mem: 2345}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_add/add-commutative/add-commutative.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_add/add-commutative/add-commutative.uplc.budget.expected index 0f4f9acde10..0b800edfb6d 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_add/add-commutative/add-commutative.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_add/add-commutative/add-commutative.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 5479719 +({cpu: 5100794 | mem: 1473}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_add/add-zero/add-zero.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_add/add-zero/add-zero.uplc.budget.expected index 55c1a1eb061..cfcaf783f75 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_add/add-zero/add-zero.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_add/add-zero/add-zero.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 2260898 +({cpu: 2075936 | mem: 636}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_add/add/add.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_add/add/add.uplc.budget.expected index 55c1a1eb061..cfcaf783f75 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_add/add/add.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_add/add/add.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 2260898 +({cpu: 2075936 | mem: 636}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_compress/compress/compress.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_compress/compress/compress.uplc.budget.expected index 532528d3a40..6283d4dc708 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_compress/compress/compress.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_compress/compress/compress.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 3864445 +({cpu: 3276019 | mem: 412}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_equal/equal-false/equal-false.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_equal/equal-false/equal-false.uplc.budget.expected index 3654e4fb5d0..b8020c3ec20 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_equal/equal-false/equal-false.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_equal/equal-false/equal-false.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 1004123 +({cpu: 981122 | mem: 601}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_equal/equal-true/equal-true.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_equal/equal-true/equal-true.uplc.budget.expected index 3654e4fb5d0..b8020c3ec20 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_equal/equal-true/equal-true.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_equal/equal-true/equal-true.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 1004123 +({cpu: 981122 | mem: 601}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_hashToGroup/hash-different-msg-same-dst/hash-different-msg-same-dst.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_hashToGroup/hash-different-msg-same-dst/hash-different-msg-same-dst.uplc.budget.expected index 2c9839a4469..110e767afed 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_hashToGroup/hash-different-msg-same-dst/hash-different-msg-same-dst.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_hashToGroup/hash-different-msg-same-dst/hash-different-msg-same-dst.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 409709229 +({cpu: 334953422 | mem: 1473}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_hashToGroup/hash-dst-len-255/hash-dst-len-255.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_hashToGroup/hash-dst-len-255/hash-dst-len-255.uplc.budget.expected index 2717f95b40b..49dfc05610f 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_hashToGroup/hash-dst-len-255/hash-dst-len-255.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_hashToGroup/hash-dst-len-255/hash-dst-len-255.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 204375653 +({cpu: 167002250 | mem: 636}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_hashToGroup/hash-empty-dst/hash-empty-dst.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_hashToGroup/hash-empty-dst/hash-empty-dst.uplc.budget.expected index 2717f95b40b..49dfc05610f 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_hashToGroup/hash-empty-dst/hash-empty-dst.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_hashToGroup/hash-empty-dst/hash-empty-dst.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 204375653 +({cpu: 167002250 | mem: 636}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_hashToGroup/hash-same-msg-different-dst/hash-same-msg-different-dst.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_hashToGroup/hash-same-msg-different-dst/hash-same-msg-different-dst.uplc.budget.expected index 2c9839a4469..110e767afed 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_hashToGroup/hash-same-msg-different-dst/hash-same-msg-different-dst.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_hashToGroup/hash-same-msg-different-dst/hash-same-msg-different-dst.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 409709229 +({cpu: 334953422 | mem: 1473}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_hashToGroup/hash/hash.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_hashToGroup/hash/hash.uplc.budget.expected index 2717f95b40b..49dfc05610f 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_hashToGroup/hash/hash.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_hashToGroup/hash/hash.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 204375653 +({cpu: 167002250 | mem: 636}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_neg/add-neg/add-neg.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_neg/add-neg/add-neg.uplc.budget.expected index 59663996e26..ccb1290a979 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_neg/add-neg/add-neg.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_neg/add-neg/add-neg.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 2436063 +({cpu: 2392482 | mem: 872}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_neg/neg-zero/neg-zero.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_neg/neg-zero/neg-zero.uplc.budget.expected index 223d5debc08..47508a54fd7 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_neg/neg-zero/neg-zero.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_neg/neg-zero/neg-zero.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 198265 +({cpu: 332646 | mem: 436}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_neg/neg/neg.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_neg/neg/neg.uplc.budget.expected index 223d5debc08..47508a54fd7 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_neg/neg/neg.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_neg/neg/neg.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 198265 +({cpu: 332646 | mem: 436}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_scalarMul/addmul/addmul.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_scalarMul/addmul/addmul.uplc.budget.expected index e37ac2bef50..8bb4bcff63d 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_scalarMul/addmul/addmul.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_scalarMul/addmul/addmul.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 382572282 +({cpu: 318699662 | mem: 1508}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mul0/mul0.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mul0/mul0.uplc.budget.expected index e7f348ee4fe..faf47777a26 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mul0/mul0.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mul0/mul0.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 190178792 +({cpu: 158327963 | mem: 636}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mul1/mul1.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mul1/mul1.uplc.budget.expected index e7f348ee4fe..faf47777a26 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mul1/mul1.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mul1/mul1.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 190178792 +({cpu: 158327963 | mem: 636}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mul19+25/mul19+25.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mul19+25/mul19+25.uplc.budget.expected index e37ac2bef50..8bb4bcff63d 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mul19+25/mul19+25.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mul19+25/mul19+25.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 382572282 +({cpu: 318699662 | mem: 1508}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mul44/mul44.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mul44/mul44.uplc.budget.expected index e7f348ee4fe..faf47777a26 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mul44/mul44.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mul44/mul44.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 190178792 +({cpu: 158327963 | mem: 636}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mul4x11/mul4x11.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mul4x11/mul4x11.uplc.budget.expected index bedd4843bb1..ab0d8622075 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mul4x11/mul4x11.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mul4x11/mul4x11.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 380334484 +({cpu: 316639826 | mem: 1072}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_scalarMul/muladd/muladd.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_scalarMul/muladd/muladd.uplc.budget.expected index 57e556dbeee..30aea4fb1ff 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_scalarMul/muladd/muladd.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_scalarMul/muladd/muladd.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 192416590 +({cpu: 160387799 | mem: 1072}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mulneg1/mulneg1.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mulneg1/mulneg1.uplc.budget.expected index e7f348ee4fe..faf47777a26 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mulneg1/mulneg1.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mulneg1/mulneg1.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 190178792 +({cpu: 158327963 | mem: 636}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mulneg44/mulneg44.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mulneg44/mulneg44.uplc.budget.expected index e7f348ee4fe..faf47777a26 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mulneg44/mulneg44.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mulneg44/mulneg44.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 190178792 +({cpu: 158327963 | mem: 636}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic1/mulperiodic1.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic1/mulperiodic1.uplc.budget.expected index badc03eb9b0..50c357f3280 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic1/mulperiodic1.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic1/mulperiodic1.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 191417521 +({cpu: 159372632 | mem: 1037}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic2/mulperiodic2.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic2/mulperiodic2.uplc.budget.expected index 3d9e3a567ff..8f5ab7a5956 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic2/mulperiodic2.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic2/mulperiodic2.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 381874126 +({cpu: 317850963 | mem: 1878}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic3/mulperiodic3.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic3/mulperiodic3.uplc.budget.expected index 6089a8ff09b..d51fb79942d 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic3/mulperiodic3.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic3/mulperiodic3.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 382180797 +({cpu: 318034442 | mem: 2284}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic4/mulperiodic4.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic4/mulperiodic4.uplc.budget.expected index 6089a8ff09b..d51fb79942d 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic4/mulperiodic4.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_scalarMul/mulperiodic4/mulperiodic4.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 382180797 +({cpu: 318034442 | mem: 2284}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_uncompress/on-curve-bit3-clear/on-curve-bit3-clear.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_uncompress/on-curve-bit3-clear/on-curve-bit3-clear.uplc.budget.expected index c9a1626e3a3..c5985a867c7 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_uncompress/on-curve-bit3-clear/on-curve-bit3-clear.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_uncompress/on-curve-bit3-clear/on-curve-bit3-clear.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 33081964 +({cpu: 74746572 | mem: 436}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_uncompress/on-curve-bit3-set/on-curve-bit3-set.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_uncompress/on-curve-bit3-set/on-curve-bit3-set.uplc.budget.expected index c9a1626e3a3..c5985a867c7 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_uncompress/on-curve-bit3-set/on-curve-bit3-set.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_uncompress/on-curve-bit3-set/on-curve-bit3-set.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 33081964 +({cpu: 74746572 | mem: 436}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_uncompress/zero/zero.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_uncompress/zero/zero.uplc.budget.expected index c9a1626e3a3..c5985a867c7 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_uncompress/zero/zero.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_uncompress/zero/zero.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 33081964 +({cpu: 74746572 | mem: 436}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_millerLoop/balanced/balanced.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_millerLoop/balanced/balanced.uplc.budget.expected index a49846bb87e..eacc6214793 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_millerLoop/balanced/balanced.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_millerLoop/balanced/balanced.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 1477242141 +({cpu: 1076888097 | mem: 2399}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_millerLoop/equal-pairing/equal-pairing.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_millerLoop/equal-pairing/equal-pairing.uplc.budget.expected index 7342cac2f15..3784137b139 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_millerLoop/equal-pairing/equal-pairing.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_millerLoop/equal-pairing/equal-pairing.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 1192513982 +({cpu: 842070360 | mem: 1545}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_millerLoop/left-additive/left-additive.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_millerLoop/left-additive/left-additive.uplc.budget.expected index afb33cfbe1b..eb52f054ebd 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_millerLoop/left-additive/left-additive.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_millerLoop/left-additive/left-additive.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 1597839930 +({cpu: 1099405006 | mem: 2907}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_millerLoop/random-pairing/random-pairing.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_millerLoop/random-pairing/random-pairing.uplc.budget.expected index 7342cac2f15..3784137b139 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_millerLoop/random-pairing/random-pairing.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_millerLoop/random-pairing/random-pairing.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 1192513982 +({cpu: 842070360 | mem: 1545}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_millerLoop/right-additive/right-additive.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_millerLoop/right-additive/right-additive.uplc.budget.expected index 9c7bf063d68..2245b18230b 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_millerLoop/right-additive/right-additive.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_millerLoop/right-additive/right-additive.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 1599152920 +({cpu: 1100438507 | mem: 2925}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/byteStringToInteger/big-endian/all-zeros/all-zeros.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/byteStringToInteger/big-endian/all-zeros/all-zeros.uplc.budget.expected index 2c8d28f2f01..217de75a27f 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/byteStringToInteger/big-endian/all-zeros/all-zeros.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/byteStringToInteger/big-endian/all-zeros/all-zeros.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 1151407 +({cpu: 1174391 | mem: 602}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/byteStringToInteger/big-endian/correct-output/correct-output.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/byteStringToInteger/big-endian/correct-output/correct-output.uplc.budget.expected index 2ad2ab665ce..cb121597fe5 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/byteStringToInteger/big-endian/correct-output/correct-output.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/byteStringToInteger/big-endian/correct-output/correct-output.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 1101095 +({cpu: 1130015 | mem: 601}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/byteStringToInteger/big-endian/empty/empty.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/byteStringToInteger/big-endian/empty/empty.uplc.budget.expected index 2ad2ab665ce..cb121597fe5 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/byteStringToInteger/big-endian/empty/empty.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/byteStringToInteger/big-endian/empty/empty.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 1101095 +({cpu: 1130015 | mem: 601}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/byteStringToInteger/big-endian/leading-zeros/leading-zeros.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/byteStringToInteger/big-endian/leading-zeros/leading-zeros.uplc.budget.expected index 6e5ace36376..0f70adc0215 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/byteStringToInteger/big-endian/leading-zeros/leading-zeros.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/byteStringToInteger/big-endian/leading-zeros/leading-zeros.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 2530335 +({cpu: 2404639 | mem: 1404}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/byteStringToInteger/both-endian/both-endian.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/byteStringToInteger/both-endian/both-endian.uplc.budget.expected index 1215037ccd7..067abb99ad9 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/byteStringToInteger/both-endian/both-endian.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/byteStringToInteger/both-endian/both-endian.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 2581068 +({cpu: 2449573 | mem: 1405}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/byteStringToInteger/little-endian/all-zeros/all-zeros.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/byteStringToInteger/little-endian/all-zeros/all-zeros.uplc.budget.expected index 2c8d28f2f01..217de75a27f 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/byteStringToInteger/little-endian/all-zeros/all-zeros.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/byteStringToInteger/little-endian/all-zeros/all-zeros.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 1151407 +({cpu: 1174391 | mem: 602}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/byteStringToInteger/little-endian/correct-output/correct-output.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/byteStringToInteger/little-endian/correct-output/correct-output.uplc.budget.expected index 2ad2ab665ce..cb121597fe5 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/byteStringToInteger/little-endian/correct-output/correct-output.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/byteStringToInteger/little-endian/correct-output/correct-output.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 1101095 +({cpu: 1130015 | mem: 601}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/byteStringToInteger/little-endian/empty/empty.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/byteStringToInteger/little-endian/empty/empty.uplc.budget.expected index 2ad2ab665ce..cb121597fe5 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/byteStringToInteger/little-endian/empty/empty.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/byteStringToInteger/little-endian/empty/empty.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 1101095 +({cpu: 1130015 | mem: 601}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/byteStringToInteger/little-endian/trailing-zeros/trailing-zeros.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/byteStringToInteger/little-endian/trailing-zeros/trailing-zeros.uplc.budget.expected index 6e5ace36376..0f70adc0215 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/byteStringToInteger/little-endian/trailing-zeros/trailing-zeros.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/byteStringToInteger/little-endian/trailing-zeros/trailing-zeros.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 2530335 +({cpu: 2404639 | mem: 1404}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/chooseDataByteString/chooseDataByteString.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/chooseDataByteString/chooseDataByteString.uplc.budget.expected index 652cc2dec12..7e885532760 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/chooseDataByteString/chooseDataByteString.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/chooseDataByteString/chooseDataByteString.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 341637 +({cpu: 318475 | mem: 1532}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/chooseDataConstr/chooseDataConstr.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/chooseDataConstr/chooseDataConstr.uplc.budget.expected index 652cc2dec12..7e885532760 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/chooseDataConstr/chooseDataConstr.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/chooseDataConstr/chooseDataConstr.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 341637 +({cpu: 318475 | mem: 1532}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/chooseDataInteger/chooseDataInteger.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/chooseDataInteger/chooseDataInteger.uplc.budget.expected index 652cc2dec12..7e885532760 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/chooseDataInteger/chooseDataInteger.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/chooseDataInteger/chooseDataInteger.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 341637 +({cpu: 318475 | mem: 1532}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/chooseDataList/chooseDataList.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/chooseDataList/chooseDataList.uplc.budget.expected index 652cc2dec12..7e885532760 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/chooseDataList/chooseDataList.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/chooseDataList/chooseDataList.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 341637 +({cpu: 318475 | mem: 1532}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/chooseDataMap/chooseDataMap.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/chooseDataMap/chooseDataMap.uplc.budget.expected index 652cc2dec12..7e885532760 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/chooseDataMap/chooseDataMap.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/chooseDataMap/chooseDataMap.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 341637 +({cpu: 318475 | mem: 1532}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/chooseList/chooseList1/chooseList1.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/chooseList/chooseList1/chooseList1.uplc.budget.expected index c2cbc1fb0dd..f38c4c1dafb 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/chooseList/chooseList1/chooseList1.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/chooseList/chooseList1/chooseList1.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 382454 +({cpu: 277094 | mem: 1032}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/chooseList/chooseList2/chooseList2.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/chooseList/chooseList2/chooseList2.uplc.budget.expected index c2cbc1fb0dd..f38c4c1dafb 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/chooseList/chooseList2/chooseList2.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/chooseList/chooseList2/chooseList2.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 382454 +({cpu: 277094 | mem: 1032}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/chooseList/chooseList3/chooseList3.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/chooseList/chooseList3/chooseList3.uplc.budget.expected index c2cbc1fb0dd..f38c4c1dafb 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/chooseList/chooseList3/chooseList3.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/chooseList/chooseList3/chooseList3.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 382454 +({cpu: 277094 | mem: 1032}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/chooseList/chooseList4/chooseList4.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/chooseList/chooseList4/chooseList4.uplc.budget.expected index c2cbc1fb0dd..f38c4c1dafb 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/chooseList/chooseList4/chooseList4.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/chooseList/chooseList4/chooseList4.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 382454 +({cpu: 277094 | mem: 1032}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/chooseUnit/chooseUnit.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/chooseUnit/chooseUnit.uplc.budget.expected index 9286df88ae1..856bfa04e37 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/chooseUnit/chooseUnit.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/chooseUnit/chooseUnit.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 184517 +({cpu: 157562 | mem: 704}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/chooseUnit2/chooseUnit2.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/chooseUnit2/chooseUnit2.uplc.budget.expected index 9286df88ae1..856bfa04e37 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/chooseUnit2/chooseUnit2.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/chooseUnit2/chooseUnit2.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 184517 +({cpu: 157562 | mem: 704}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/consByteString/consByteString3/consByteString3.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/consByteString/consByteString3/consByteString3.uplc.budget.expected index b9afb9b3ece..01e0d07bcba 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/consByteString/consByteString3/consByteString3.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/consByteString/consByteString3/consByteString3.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 338095 +({cpu: 152466 | mem: 603}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/decodeUtf8/decodeUtf8-ok/decodeUtf8-ok.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/decodeUtf8/decodeUtf8-ok/decodeUtf8-ok.uplc.budget.expected index b62bbe5af1c..8e15c4e4934 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/decodeUtf8/decodeUtf8-ok/decodeUtf8-ok.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/decodeUtf8/decodeUtf8-ok/decodeUtf8-ok.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 580693 +({cpu: 140058 | mem: 406}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/divideInteger/divideInteger-neg-neg/divideInteger-neg-neg.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/divideInteger/divideInteger-neg-neg/divideInteger-neg-neg.uplc.budget.expected index 06436c9501a..f432423f159 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/divideInteger/divideInteger-neg-neg/divideInteger-neg-neg.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/divideInteger/divideInteger-neg-neg/divideInteger-neg-neg.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 568560 +({cpu: 212030 | mem: 601}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/divideInteger/divideInteger-neg-pos/divideInteger-neg-pos.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/divideInteger/divideInteger-neg-pos/divideInteger-neg-pos.uplc.budget.expected index 06436c9501a..f432423f159 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/divideInteger/divideInteger-neg-pos/divideInteger-neg-pos.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/divideInteger/divideInteger-neg-pos/divideInteger-neg-pos.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 568560 +({cpu: 212030 | mem: 601}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/divideInteger/divideInteger-pos-neg/divideInteger-pos-neg.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/divideInteger/divideInteger-pos-neg/divideInteger-pos-neg.uplc.budget.expected index 06436c9501a..f432423f159 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/divideInteger/divideInteger-pos-neg/divideInteger-pos-neg.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/divideInteger/divideInteger-pos-neg/divideInteger-pos-neg.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 568560 +({cpu: 212030 | mem: 601}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/divideInteger/divideInteger-pos-pos/divideInteger-pos-pos.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/divideInteger/divideInteger-pos-pos/divideInteger-pos-pos.uplc.budget.expected index 06436c9501a..f432423f159 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/divideInteger/divideInteger-pos-pos/divideInteger-pos-pos.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/divideInteger/divideInteger-pos-pos/divideInteger-pos-pos.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 568560 +({cpu: 212030 | mem: 601}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/divideInteger/divideInteger1/divideInteger1.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/divideInteger/divideInteger1/divideInteger1.uplc.budget.expected index 06436c9501a..f432423f159 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/divideInteger/divideInteger1/divideInteger1.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/divideInteger/divideInteger1/divideInteger1.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 568560 +({cpu: 212030 | mem: 601}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/encodeUtf8/encodeUtf8.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/encodeUtf8/encodeUtf8.uplc.budget.expected index a6ff90aa8ef..312c47a56d8 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/encodeUtf8/encodeUtf8.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/encodeUtf8/encodeUtf8.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 156086 +({cpu: 177863 | mem: 410}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/equalsByteString/equalsByteString/equalsByteString.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/equalsByteString/equalsByteString/equalsByteString.uplc.budget.expected index 4cda00cdb32..c76e86146fd 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/equalsByteString/equalsByteString/equalsByteString.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/equalsByteString/equalsByteString/equalsByteString.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 331935 +({cpu: 109636 | mem: 601}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/equalsByteString/equalsByteString1/equalsByteString1.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/equalsByteString/equalsByteString1/equalsByteString1.uplc.budget.expected index 17eafe37f39..56d04b0b1a8 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/equalsByteString/equalsByteString1/equalsByteString1.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/equalsByteString/equalsByteString1/equalsByteString1.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 70100 +({cpu: 70200 | mem: 410}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/equalsByteString/equalsByteString2/equalsByteString2.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/equalsByteString/equalsByteString2/equalsByteString2.uplc.budget.expected index 5b14c543c66..4822eaf1e5e 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/equalsByteString/equalsByteString2/equalsByteString2.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/equalsByteString/equalsByteString2/equalsByteString2.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 331997 +({cpu: 109674 | mem: 601}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/equalsInteger/equalsInteger1/equalsInteger1.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/equalsInteger/equalsInteger1/equalsInteger1.uplc.budget.expected index acf960ea198..2ac14b2d225 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/equalsInteger/equalsInteger1/equalsInteger1.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/equalsInteger/equalsInteger1/equalsInteger1.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 324033 +({cpu: 132433 | mem: 601}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/equalsInteger/equalsInteger2/equalsInteger2.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/equalsInteger/equalsInteger2/equalsInteger2.uplc.budget.expected index a1dcc6c6358..603524d4a87 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/equalsInteger/equalsInteger2/equalsInteger2.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/equalsInteger/equalsInteger2/equalsInteger2.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 324454 +({cpu: 132991 | mem: 601}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/equalsInteger/equalsInteger3/equalsInteger3.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/equalsInteger/equalsInteger3/equalsInteger3.uplc.budget.expected index a1dcc6c6358..603524d4a87 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/equalsInteger/equalsInteger3/equalsInteger3.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/equalsInteger/equalsInteger3/equalsInteger3.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 324454 +({cpu: 132991 | mem: 601}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/equalsString/equalsString1/equalsString1.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/equalsString/equalsString1/equalsString1.uplc.budget.expected index bde8303f313..4a1b4c1a8ae 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/equalsString/equalsString1/equalsString1.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/equalsString/equalsString1/equalsString1.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 302100 +({cpu: 119284 | mem: 601}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/equalsString/equalsString2/equalsString2.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/equalsString/equalsString2/equalsString2.uplc.budget.expected index d4340ad7370..e8dc4ba79ed 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/equalsString/equalsString2/equalsString2.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/equalsString/equalsString2/equalsString2.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 275094 +({cpu: 262882 | mem: 601}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/fstPairOfPairAndList/fstPairOfPairAndList.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/fstPairOfPairAndList/fstPairOfPairAndList.uplc.budget.expected index e4cfbd968f0..f5265eee9b1 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/fstPairOfPairAndList/fstPairOfPairAndList.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/fstPairOfPairAndList/fstPairOfPairAndList.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 195536 +({cpu: 221995 | mem: 632}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/headList/headList1/headList1.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/headList/headList1/headList1.uplc.budget.expected index a5338021884..cee9c8bc77d 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/headList/headList1/headList1.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/headList/headList1/headList1.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 135349 +({cpu: 147250 | mem: 532}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/headList/headList3/headList3.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/headList/headList3/headList3.uplc.budget.expected index a5338021884..cee9c8bc77d 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/headList/headList3/headList3.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/headList/headList3/headList3.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 135349 +({cpu: 147250 | mem: 532}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/iData/iData.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/iData/iData.uplc.budget.expected index da1804c146d..79bd360fbbc 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/iData/iData.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/iData/iData.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 70100 +({cpu: 63399 | mem: 432}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/ifThenElse/ifThenElse-1/ifThenElse-1.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/ifThenElse/ifThenElse-1/ifThenElse-1.uplc.budget.expected index 829c702064d..bf107ddea05 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/ifThenElse/ifThenElse-1/ifThenElse-1.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/ifThenElse/ifThenElse-1/ifThenElse-1.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 264656 +({cpu: 204149 | mem: 901}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/ifThenElse/ifThenElse-2/ifThenElse-2.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/ifThenElse/ifThenElse-2/ifThenElse-2.uplc.budget.expected index 829c702064d..bf107ddea05 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/ifThenElse/ifThenElse-2/ifThenElse-2.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/ifThenElse/ifThenElse-2/ifThenElse-2.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 264656 +({cpu: 204149 | mem: 901}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/ifThenElse/ifThenElse-3/ifThenElse-3.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/ifThenElse/ifThenElse-3/ifThenElse-3.uplc.budget.expected index 829c702064d..bf107ddea05 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/ifThenElse/ifThenElse-3/ifThenElse-3.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/ifThenElse/ifThenElse-3/ifThenElse-3.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 264656 +({cpu: 204149 | mem: 901}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/indexByteString/indexByteString1/indexByteString1.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/indexByteString/indexByteString1/indexByteString1.uplc.budget.expected index 2c2f8eba90d..9958a61e04c 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/indexByteString/indexByteString1/indexByteString1.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/indexByteString/indexByteString1/indexByteString1.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 172767 +({cpu: 93269 | mem: 604}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/correct-output-exact-width/correct-output-exact-width.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/correct-output-exact-width/correct-output-exact-width.uplc.budget.expected index 3feae7c5f6d..0bc43be78cc 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/correct-output-exact-width/correct-output-exact-width.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/correct-output-exact-width/correct-output-exact-width.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 1477718 +({cpu: 1434707 | mem: 801}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/correct-output-extra-width/correct-output-extra-width.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/correct-output-extra-width/correct-output-extra-width.uplc.budget.expected index 49ea2f62594..3023f636706 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/correct-output-extra-width/correct-output-extra-width.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/correct-output-extra-width/correct-output-extra-width.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 1477718 +({cpu: 1434707 | mem: 802}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/max-input-fits-max-width/max-input-fits-max-width.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/max-input-fits-max-width/max-input-fits-max-width.uplc.budget.expected index 6b15197c568..c8818e2d70e 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/max-input-fits-max-width/max-input-fits-max-width.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/max-input-fits-max-width/max-input-fits-max-width.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 104104055 +({cpu: 96871400 | mem: 1824}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/maximum-width-zero/maximum-width-zero.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/maximum-width-zero/maximum-width-zero.uplc.budget.expected index 2a47af877f2..cd8150c52e2 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/maximum-width-zero/maximum-width-zero.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/maximum-width-zero/maximum-width-zero.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 1477718 +({cpu: 1434707 | mem: 1824}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/zero/zero.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/zero/zero.uplc.budget.expected index 49ea2f62594..3023f636706 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/zero/zero.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/integerToByteString/big-endian/bounded/zero/zero.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 1477718 +({cpu: 1434707 | mem: 802}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/integerToByteString/big-endian/unbounded/correct-output/correct-output.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/integerToByteString/big-endian/unbounded/correct-output/correct-output.uplc.budget.expected index 3feae7c5f6d..0bc43be78cc 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/integerToByteString/big-endian/unbounded/correct-output/correct-output.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/integerToByteString/big-endian/unbounded/correct-output/correct-output.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 1477718 +({cpu: 1434707 | mem: 801}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/integerToByteString/big-endian/unbounded/maximum-input/maximum-input.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/integerToByteString/big-endian/unbounded/maximum-input/maximum-input.uplc.budget.expected index 6b15197c568..c8818e2d70e 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/integerToByteString/big-endian/unbounded/maximum-input/maximum-input.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/integerToByteString/big-endian/unbounded/maximum-input/maximum-input.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 104104055 +({cpu: 96871400 | mem: 1824}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/integerToByteString/big-endian/unbounded/zero/zero.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/integerToByteString/big-endian/unbounded/zero/zero.uplc.budget.expected index 3feae7c5f6d..0bc43be78cc 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/integerToByteString/big-endian/unbounded/zero/zero.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/integerToByteString/big-endian/unbounded/zero/zero.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 1477718 +({cpu: 1434707 | mem: 801}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/correct-output-exact-width/correct-output-exact-width.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/correct-output-exact-width/correct-output-exact-width.uplc.budget.expected index 3feae7c5f6d..0bc43be78cc 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/correct-output-exact-width/correct-output-exact-width.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/correct-output-exact-width/correct-output-exact-width.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 1477718 +({cpu: 1434707 | mem: 801}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/correct-output-extra-width/correct-output-extra-width.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/correct-output-extra-width/correct-output-extra-width.uplc.budget.expected index 49ea2f62594..3023f636706 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/correct-output-extra-width/correct-output-extra-width.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/correct-output-extra-width/correct-output-extra-width.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 1477718 +({cpu: 1434707 | mem: 802}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/max-input-fits-max-width/max-input-fits-max-width.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/max-input-fits-max-width/max-input-fits-max-width.uplc.budget.expected index 6b15197c568..c8818e2d70e 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/max-input-fits-max-width/max-input-fits-max-width.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/max-input-fits-max-width/max-input-fits-max-width.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 104104055 +({cpu: 96871400 | mem: 1824}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/maximum-width-zero/maximum-width-zero.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/maximum-width-zero/maximum-width-zero.uplc.budget.expected index 2a47af877f2..cd8150c52e2 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/maximum-width-zero/maximum-width-zero.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/maximum-width-zero/maximum-width-zero.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 1477718 +({cpu: 1434707 | mem: 1824}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/zero/zero.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/zero/zero.uplc.budget.expected index 49ea2f62594..3023f636706 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/zero/zero.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/integerToByteString/little-endian/bounded/zero/zero.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 1477718 +({cpu: 1434707 | mem: 802}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/integerToByteString/little-endian/unbounded/correct-output/correct-output.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/integerToByteString/little-endian/unbounded/correct-output/correct-output.uplc.budget.expected index 3feae7c5f6d..0bc43be78cc 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/integerToByteString/little-endian/unbounded/correct-output/correct-output.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/integerToByteString/little-endian/unbounded/correct-output/correct-output.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 1477718 +({cpu: 1434707 | mem: 801}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/integerToByteString/little-endian/unbounded/maximum-input/maximum-input.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/integerToByteString/little-endian/unbounded/maximum-input/maximum-input.uplc.budget.expected index 6b15197c568..c8818e2d70e 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/integerToByteString/little-endian/unbounded/maximum-input/maximum-input.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/integerToByteString/little-endian/unbounded/maximum-input/maximum-input.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 104104055 +({cpu: 96871400 | mem: 1824}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/integerToByteString/little-endian/unbounded/zero/zero.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/integerToByteString/little-endian/unbounded/zero/zero.uplc.budget.expected index 3feae7c5f6d..0bc43be78cc 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/integerToByteString/little-endian/unbounded/zero/zero.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/integerToByteString/little-endian/unbounded/zero/zero.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 1477718 +({cpu: 1434707 | mem: 801}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/keccak_256/keccak_256-empty/keccak_256-empty.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/keccak_256/keccak_256-empty/keccak_256-empty.uplc.budget.expected index dcca3797188..0431f3fe87b 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/keccak_256/keccak_256-empty/keccak_256-empty.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/keccak_256/keccak_256-empty/keccak_256-empty.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 2388570 +({cpu: 2467639 | mem: 805}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/keccak_256/keccak_256-length-200/keccak_256-length-200.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/keccak_256/keccak_256-length-200/keccak_256-length-200.uplc.budget.expected index 586ffca1cce..4a6c2b5343e 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/keccak_256/keccak_256-length-200/keccak_256-length-200.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/keccak_256/keccak_256-length-200/keccak_256-length-200.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 2636139 +({cpu: 2661352 | mem: 805}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lengthOfByteString/lengthOfByteString.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lengthOfByteString/lengthOfByteString.uplc.budget.expected index 17eafe37f39..56d04b0b1a8 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lengthOfByteString/lengthOfByteString.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lengthOfByteString/lengthOfByteString.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 70100 +({cpu: 70200 | mem: 410}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanByteString/lessThanByteString0/lessThanByteString0.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanByteString/lessThanByteString0/lessThanByteString0.uplc.budget.expected index d8a8d10f10b..7b79a6ebf09 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanByteString/lessThanByteString0/lessThanByteString0.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanByteString/lessThanByteString0/lessThanByteString0.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 312401 +({cpu: 109173 | mem: 601}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanByteString/lessThanByteString1/lessThanByteString1.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanByteString/lessThanByteString1/lessThanByteString1.uplc.budget.expected index 5b14c543c66..4822eaf1e5e 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanByteString/lessThanByteString1/lessThanByteString1.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanByteString/lessThanByteString1/lessThanByteString1.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 331997 +({cpu: 109674 | mem: 601}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanByteString/lessThanByteString2/lessThanByteString2.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanByteString/lessThanByteString2/lessThanByteString2.uplc.budget.expected index fde8bf065cb..054025fc753 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanByteString/lessThanByteString2/lessThanByteString2.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanByteString/lessThanByteString2/lessThanByteString2.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 312557 +({cpu: 109247 | mem: 601}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanByteString/lessThanByteString3/lessThanByteString3.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanByteString/lessThanByteString3/lessThanByteString3.uplc.budget.expected index fde8bf065cb..054025fc753 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanByteString/lessThanByteString3/lessThanByteString3.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanByteString/lessThanByteString3/lessThanByteString3.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 312557 +({cpu: 109247 | mem: 601}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanByteString/lessThanByteString4/lessThanByteString4.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanByteString/lessThanByteString4/lessThanByteString4.uplc.budget.expected index fde8bf065cb..054025fc753 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanByteString/lessThanByteString4/lessThanByteString4.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanByteString/lessThanByteString4/lessThanByteString4.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 312557 +({cpu: 109247 | mem: 601}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanByteString/lessThanByteString5/lessThanByteString5.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanByteString/lessThanByteString5/lessThanByteString5.uplc.budget.expected index fde8bf065cb..054025fc753 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanByteString/lessThanByteString5/lessThanByteString5.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanByteString/lessThanByteString5/lessThanByteString5.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 312557 +({cpu: 109247 | mem: 601}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString0/lessThanEqualsByteString0.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString0/lessThanEqualsByteString0.uplc.budget.expected index d8a8d10f10b..7b79a6ebf09 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString0/lessThanEqualsByteString0.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString0/lessThanEqualsByteString0.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 312401 +({cpu: 109173 | mem: 601}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString1/lessThanEqualsByteString1.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString1/lessThanEqualsByteString1.uplc.budget.expected index fde8bf065cb..054025fc753 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString1/lessThanEqualsByteString1.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString1/lessThanEqualsByteString1.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 312557 +({cpu: 109247 | mem: 601}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString2/lessThanEqualsByteString2.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString2/lessThanEqualsByteString2.uplc.budget.expected index fde8bf065cb..054025fc753 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString2/lessThanEqualsByteString2.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString2/lessThanEqualsByteString2.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 312557 +({cpu: 109247 | mem: 601}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString3/lessThanEqualsByteString3.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString3/lessThanEqualsByteString3.uplc.budget.expected index fde8bf065cb..054025fc753 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString3/lessThanEqualsByteString3.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanEqualsByteString/lessThanEqualsByteString3/lessThanEqualsByteString3.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 312557 +({cpu: 109247 | mem: 601}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger1/lessThanEqualsInteger1.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger1/lessThanEqualsInteger1.uplc.budget.expected index fcf5c49ec13..ea3cb9baf2d 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger1/lessThanEqualsInteger1.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger1/lessThanEqualsInteger1.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 320497 +({cpu: 123937 | mem: 601}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger2/lessThanEqualsInteger2.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger2/lessThanEqualsInteger2.uplc.budget.expected index fcf5c49ec13..ea3cb9baf2d 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger2/lessThanEqualsInteger2.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger2/lessThanEqualsInteger2.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 320497 +({cpu: 123937 | mem: 601}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger3/lessThanEqualsInteger3.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger3/lessThanEqualsInteger3.uplc.budget.expected index fcf5c49ec13..ea3cb9baf2d 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger3/lessThanEqualsInteger3.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger3/lessThanEqualsInteger3.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 320497 +({cpu: 123937 | mem: 601}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger4/lessThanEqualsInteger4.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger4/lessThanEqualsInteger4.uplc.budget.expected index fcf5c49ec13..ea3cb9baf2d 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger4/lessThanEqualsInteger4.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger4/lessThanEqualsInteger4.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 320497 +({cpu: 123937 | mem: 601}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger5/lessThanEqualsInteger5.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger5/lessThanEqualsInteger5.uplc.budget.expected index 37f865b467c..c766e0cae44 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger5/lessThanEqualsInteger5.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanEqualsInteger/lessThanEqualsInteger5/lessThanEqualsInteger5.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 321443 +({cpu: 125041 | mem: 601}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanInteger/lessThanInteger1/lessThanInteger1.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanInteger/lessThanInteger1/lessThanInteger1.uplc.budget.expected index 1ac2b543ae8..4de75a09894 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanInteger/lessThanInteger1/lessThanInteger1.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanInteger/lessThanInteger1/lessThanInteger1.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 324507 +({cpu: 125390 | mem: 601}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanInteger/lessThanInteger2/lessThanInteger2.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanInteger/lessThanInteger2/lessThanInteger2.uplc.budget.expected index 1ac2b543ae8..4de75a09894 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanInteger/lessThanInteger2/lessThanInteger2.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanInteger/lessThanInteger2/lessThanInteger2.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 324507 +({cpu: 125390 | mem: 601}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanInteger/lessThanInteger3/lessThanInteger3.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanInteger/lessThanInteger3/lessThanInteger3.uplc.budget.expected index 1ac2b543ae8..4de75a09894 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanInteger/lessThanInteger3/lessThanInteger3.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanInteger/lessThanInteger3/lessThanInteger3.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 324507 +({cpu: 125390 | mem: 601}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanInteger/lessThanInteger4/lessThanInteger4.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanInteger/lessThanInteger4/lessThanInteger4.uplc.budget.expected index 1ac2b543ae8..4de75a09894 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanInteger/lessThanInteger4/lessThanInteger4.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanInteger/lessThanInteger4/lessThanInteger4.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 324507 +({cpu: 125390 | mem: 601}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanInteger/lessThanInteger5/lessThanInteger5.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanInteger/lessThanInteger5/lessThanInteger5.uplc.budget.expected index 0ec3ef00955..7d82843aa5e 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanInteger/lessThanInteger5/lessThanInteger5.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/lessThanInteger/lessThanInteger5/lessThanInteger5.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 325529 +({cpu: 126472 | mem: 601}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/mkCons/mkCons1/mkCons1.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/mkCons/mkCons1/mkCons1.uplc.budget.expected index 5558e758f0c..105c994ce1c 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/mkCons/mkCons1/mkCons1.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/mkCons/mkCons1/mkCons1.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 203593 +({cpu: 168462 | mem: 732}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/mkCons/mkCons2/mkCons2.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/mkCons/mkCons2/mkCons2.uplc.budget.expected index 5558e758f0c..105c994ce1c 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/mkCons/mkCons2/mkCons2.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/mkCons/mkCons2/mkCons2.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 203593 +({cpu: 168462 | mem: 732}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/mkNilData/mkNilData.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/mkNilData/mkNilData.uplc.budget.expected index 54f78452311..7c0996950ee 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/mkNilData/mkNilData.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/mkNilData/mkNilData.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 91658 +({cpu: 55343 | mem: 432}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/mkNilPairData/mkNilPairData.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/mkNilPairData/mkNilPairData.uplc.budget.expected index 3e68297af90..bb34b2bad73 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/mkNilPairData/mkNilPairData.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/mkNilPairData/mkNilPairData.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 85663 +({cpu: 55491 | mem: 432}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/modInteger/modInteger-neg-neg/modInteger-neg-neg.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/modInteger/modInteger-neg-neg/modInteger-neg-neg.uplc.budget.expected index 06436c9501a..f432423f159 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/modInteger/modInteger-neg-neg/modInteger-neg-neg.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/modInteger/modInteger-neg-neg/modInteger-neg-neg.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 568560 +({cpu: 212030 | mem: 601}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/modInteger/modInteger-neg-pos/modInteger-neg-pos.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/modInteger/modInteger-neg-pos/modInteger-neg-pos.uplc.budget.expected index 06436c9501a..f432423f159 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/modInteger/modInteger-neg-pos/modInteger-neg-pos.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/modInteger/modInteger-neg-pos/modInteger-neg-pos.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 568560 +({cpu: 212030 | mem: 601}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/modInteger/modInteger-pos-neg/modInteger-pos-neg.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/modInteger/modInteger-pos-neg/modInteger-pos-neg.uplc.budget.expected index 06436c9501a..f432423f159 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/modInteger/modInteger-pos-neg/modInteger-pos-neg.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/modInteger/modInteger-pos-neg/modInteger-pos-neg.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 568560 +({cpu: 212030 | mem: 601}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/modInteger/modInteger-pos-pos/modInteger-pos-pos.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/modInteger/modInteger-pos-pos/modInteger-pos-pos.uplc.budget.expected index 06436c9501a..f432423f159 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/modInteger/modInteger-pos-pos/modInteger-pos-pos.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/modInteger/modInteger-pos-pos/modInteger-pos-pos.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 568560 +({cpu: 212030 | mem: 601}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/modInteger/modInteger1/modInteger1.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/modInteger/modInteger1/modInteger1.uplc.budget.expected index 06436c9501a..f432423f159 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/modInteger/modInteger1/modInteger1.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/modInteger/modInteger1/modInteger1.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 568560 +({cpu: 212030 | mem: 601}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/multiplyInteger/multiplyInteger1/multiplyInteger1.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/multiplyInteger/multiplyInteger1/multiplyInteger1.uplc.budget.expected index d8cc3127e8e..d02d7b210d1 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/multiplyInteger/multiplyInteger1/multiplyInteger1.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/multiplyInteger/multiplyInteger1/multiplyInteger1.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 207996 +({cpu: 171053 | mem: 602}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/multiplyInteger/multiplyInteger2/multiplyInteger2.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/multiplyInteger/multiplyInteger2/multiplyInteger2.uplc.budget.expected index 5e29d9d8322..32f432fdb3f 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/multiplyInteger/multiplyInteger2/multiplyInteger2.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/multiplyInteger/multiplyInteger2/multiplyInteger2.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 219683 +({cpu: 171572 | mem: 603}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/multiplyInteger/multiplyInteger3/multiplyInteger3.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/multiplyInteger/multiplyInteger3/multiplyInteger3.uplc.budget.expected index d8cc3127e8e..d02d7b210d1 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/multiplyInteger/multiplyInteger3/multiplyInteger3.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/multiplyInteger/multiplyInteger3/multiplyInteger3.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 207996 +({cpu: 171053 | mem: 602}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/multiplyInteger/multiplyInteger4/multiplyInteger4.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/multiplyInteger/multiplyInteger4/multiplyInteger4.uplc.budget.expected index d8cc3127e8e..d02d7b210d1 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/multiplyInteger/multiplyInteger4/multiplyInteger4.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/multiplyInteger/multiplyInteger4/multiplyInteger4.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 207996 +({cpu: 171053 | mem: 602}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/multiplyInteger/multiplyInteger5/multiplyInteger5.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/multiplyInteger/multiplyInteger5/multiplyInteger5.uplc.budget.expected index d8cc3127e8e..d02d7b210d1 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/multiplyInteger/multiplyInteger5/multiplyInteger5.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/multiplyInteger/multiplyInteger5/multiplyInteger5.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 207996 +({cpu: 171053 | mem: 602}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/multiplyInteger/multiplyInteger6/multiplyInteger6.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/multiplyInteger/multiplyInteger6/multiplyInteger6.uplc.budget.expected index d8cc3127e8e..d02d7b210d1 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/multiplyInteger/multiplyInteger6/multiplyInteger6.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/multiplyInteger/multiplyInteger6/multiplyInteger6.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 207996 +({cpu: 171053 | mem: 602}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/nullList/nullList.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/nullList/nullList.uplc.budget.expected index ffc8741c520..58da4587798 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/nullList/nullList.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/nullList/nullList.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 152191 +({cpu: 138533 | mem: 532}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/nullList2/nullList2.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/nullList2/nullList2.uplc.budget.expected index ffc8741c520..58da4587798 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/nullList2/nullList2.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/nullList2/nullList2.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 152191 +({cpu: 138533 | mem: 532}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/pairOfPairAndList/pairOfPairAndList.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/pairOfPairAndList/pairOfPairAndList.uplc.budget.expected index c5fb80b1cd0..d9531fb66be 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/pairOfPairAndList/pairOfPairAndList.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/pairOfPairAndList/pairOfPairAndList.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 23100 +({cpu: 16100 | mem: 200}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/quotientInteger/quotientInteger-neg-neg/quotientInteger-neg-neg.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/quotientInteger/quotientInteger-neg-neg/quotientInteger-neg-neg.uplc.budget.expected index 6b7acaf0ffa..6949f2ea1a4 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/quotientInteger/quotientInteger-neg-neg/quotientInteger-neg-neg.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/quotientInteger/quotientInteger-neg-neg/quotientInteger-neg-neg.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 568780 +({cpu: 214466 | mem: 601}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/quotientInteger/quotientInteger-neg-pos/quotientInteger-neg-pos.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/quotientInteger/quotientInteger-neg-pos/quotientInteger-neg-pos.uplc.budget.expected index 6b7acaf0ffa..6949f2ea1a4 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/quotientInteger/quotientInteger-neg-pos/quotientInteger-neg-pos.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/quotientInteger/quotientInteger-neg-pos/quotientInteger-neg-pos.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 568780 +({cpu: 214466 | mem: 601}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/quotientInteger/quotientInteger-pos-neg/quotientInteger-pos-neg.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/quotientInteger/quotientInteger-pos-neg/quotientInteger-pos-neg.uplc.budget.expected index 6b7acaf0ffa..6949f2ea1a4 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/quotientInteger/quotientInteger-pos-neg/quotientInteger-pos-neg.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/quotientInteger/quotientInteger-pos-neg/quotientInteger-pos-neg.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 568780 +({cpu: 214466 | mem: 601}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/quotientInteger/quotientInteger-pos-pos/quotientInteger-pos-pos.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/quotientInteger/quotientInteger-pos-pos/quotientInteger-pos-pos.uplc.budget.expected index 6b7acaf0ffa..6949f2ea1a4 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/quotientInteger/quotientInteger-pos-pos/quotientInteger-pos-pos.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/quotientInteger/quotientInteger-pos-pos/quotientInteger-pos-pos.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 568780 +({cpu: 214466 | mem: 601}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/quotientInteger/quotientInteger1/quotientInteger1.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/quotientInteger/quotientInteger1/quotientInteger1.uplc.budget.expected index 06436c9501a..f432423f159 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/quotientInteger/quotientInteger1/quotientInteger1.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/quotientInteger/quotientInteger1/quotientInteger1.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 568560 +({cpu: 212030 | mem: 601}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/remainderInteger/remainderInteger-neg-neg/remainderInteger-neg-neg.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/remainderInteger/remainderInteger-neg-neg/remainderInteger-neg-neg.uplc.budget.expected index 06436c9501a..f432423f159 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/remainderInteger/remainderInteger-neg-neg/remainderInteger-neg-neg.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/remainderInteger/remainderInteger-neg-neg/remainderInteger-neg-neg.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 568560 +({cpu: 212030 | mem: 601}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/remainderInteger/remainderInteger-neg-pos/remainderInteger-neg-pos.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/remainderInteger/remainderInteger-neg-pos/remainderInteger-neg-pos.uplc.budget.expected index 06436c9501a..f432423f159 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/remainderInteger/remainderInteger-neg-pos/remainderInteger-neg-pos.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/remainderInteger/remainderInteger-neg-pos/remainderInteger-neg-pos.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 568560 +({cpu: 212030 | mem: 601}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/remainderInteger/remainderInteger-pos-neg/remainderInteger-pos-neg.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/remainderInteger/remainderInteger-pos-neg/remainderInteger-pos-neg.uplc.budget.expected index 06436c9501a..f432423f159 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/remainderInteger/remainderInteger-pos-neg/remainderInteger-pos-neg.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/remainderInteger/remainderInteger-pos-neg/remainderInteger-pos-neg.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 568560 +({cpu: 212030 | mem: 601}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/remainderInteger/remainderInteger-pos-pos/remainderInteger-pos-pos.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/remainderInteger/remainderInteger-pos-pos/remainderInteger-pos-pos.uplc.budget.expected index 06436c9501a..f432423f159 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/remainderInteger/remainderInteger-pos-pos/remainderInteger-pos-pos.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/remainderInteger/remainderInteger-pos-pos/remainderInteger-pos-pos.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 568560 +({cpu: 212030 | mem: 601}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/remainderInteger/remainderInteger1/remainderInteger1.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/remainderInteger/remainderInteger1/remainderInteger1.uplc.budget.expected index 06436c9501a..f432423f159 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/remainderInteger/remainderInteger1/remainderInteger1.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/remainderInteger/remainderInteger1/remainderInteger1.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 568560 +({cpu: 212030 | mem: 601}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/sha2_256/sha2_256-empty/sha2_256-empty.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/sha2_256/sha2_256-empty/sha2_256-empty.uplc.budget.expected index 862378bc9a5..764a05d302c 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/sha2_256/sha2_256-empty/sha2_256-empty.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/sha2_256/sha2_256-empty/sha2_256-empty.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 1215593 +({cpu: 434990 | mem: 805}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/sha2_256/sha2_256-length-200/sha2_256-length-200.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/sha2_256/sha2_256-length-200/sha2_256-length-200.uplc.budget.expected index d61a99ba741..a4f3e3e4dfa 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/sha2_256/sha2_256-length-200/sha2_256-length-200.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/sha2_256/sha2_256-length-200/sha2_256-length-200.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 1307039 +({cpu: 502754 | mem: 805}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/sha3_256/sha3_256-empty/sha3_256-empty.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/sha3_256/sha3_256-empty/sha3_256-empty.uplc.budget.expected index dcca3797188..8280d7d1d6e 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/sha3_256/sha3_256-empty/sha3_256-empty.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/sha3_256/sha3_256-empty/sha3_256-empty.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 2388570 +({cpu: 1663641 | mem: 805}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/sha3_256/sha3_256-length-200/sha3_256-length-200.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/sha3_256/sha3_256-length-200/sha3_256-length-200.uplc.budget.expected index 586ffca1cce..398bbe70657 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/sha3_256/sha3_256-length-200/sha3_256-length-200.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/sha3_256/sha3_256-length-200/sha3_256-length-200.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 2636139 +({cpu: 1857339 | mem: 805}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/sliceByteString/sliceByteString1/sliceByteString1.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/sliceByteString/sliceByteString1/sliceByteString1.uplc.budget.expected index 7408c7020a3..4d0cc151bab 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/sliceByteString/sliceByteString1/sliceByteString1.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/sliceByteString/sliceByteString1/sliceByteString1.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 426418 +({cpu: 132569 | mem: 804}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/sliceByteString/sliceByteString2/sliceByteString2.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/sliceByteString/sliceByteString2/sliceByteString2.uplc.budget.expected index 7408c7020a3..4d0cc151bab 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/sliceByteString/sliceByteString2/sliceByteString2.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/sliceByteString/sliceByteString2/sliceByteString2.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 426418 +({cpu: 132569 | mem: 804}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/sliceByteString/sliceByteString3/sliceByteString3.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/sliceByteString/sliceByteString3/sliceByteString3.uplc.budget.expected index 7408c7020a3..4d0cc151bab 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/sliceByteString/sliceByteString3/sliceByteString3.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/sliceByteString/sliceByteString3/sliceByteString3.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 426418 +({cpu: 132569 | mem: 804}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/sliceByteString/sliceByteString4/sliceByteString4.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/sliceByteString/sliceByteString4/sliceByteString4.uplc.budget.expected index 7408c7020a3..4d0cc151bab 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/sliceByteString/sliceByteString4/sliceByteString4.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/sliceByteString/sliceByteString4/sliceByteString4.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 426418 +({cpu: 132569 | mem: 804}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/sliceByteString/sliceByteString5/sliceByteString5.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/sliceByteString/sliceByteString5/sliceByteString5.uplc.budget.expected index 7408c7020a3..4d0cc151bab 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/sliceByteString/sliceByteString5/sliceByteString5.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/sliceByteString/sliceByteString5/sliceByteString5.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 426418 +({cpu: 132569 | mem: 804}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/subtractInteger-non-iter/subtractInteger-non-iter.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/subtractInteger-non-iter/subtractInteger-non-iter.uplc.budget.expected index 850417a55e3..b9fdce3df89 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/subtractInteger-non-iter/subtractInteger-non-iter.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/subtractInteger-non-iter/subtractInteger-non-iter.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 321577 +({cpu: 181308 | mem: 602}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/subtractInteger/subtractInteger1/subtractInteger1.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/subtractInteger/subtractInteger1/subtractInteger1.uplc.budget.expected index 850417a55e3..b9fdce3df89 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/subtractInteger/subtractInteger1/subtractInteger1.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/subtractInteger/subtractInteger1/subtractInteger1.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 321577 +({cpu: 181308 | mem: 602}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/subtractInteger/subtractInteger2/subtractInteger2.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/subtractInteger/subtractInteger2/subtractInteger2.uplc.budget.expected index 850417a55e3..b9fdce3df89 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/subtractInteger/subtractInteger2/subtractInteger2.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/subtractInteger/subtractInteger2/subtractInteger2.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 321577 +({cpu: 181308 | mem: 602}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/subtractInteger/subtractInteger3/subtractInteger3.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/subtractInteger/subtractInteger3/subtractInteger3.uplc.budget.expected index 134cee68d52..18f2a4a0d69 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/subtractInteger/subtractInteger3/subtractInteger3.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/subtractInteger/subtractInteger3/subtractInteger3.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 322389 +({cpu: 181728 | mem: 603}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/subtractInteger/subtractInteger4/subtractInteger4.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/subtractInteger/subtractInteger4/subtractInteger4.uplc.budget.expected index 134cee68d52..18f2a4a0d69 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/subtractInteger/subtractInteger4/subtractInteger4.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/subtractInteger/subtractInteger4/subtractInteger4.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 322389 +({cpu: 181728 | mem: 603}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/trace/trace.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/trace/trace.uplc.budget.expected index 776bd97484a..9c66c433e9b 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/trace/trace.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/trace/trace.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 350442 +({cpu: 155598 | mem: 732}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature1/verifyEd25519Signature1.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature1/verifyEd25519Signature1.uplc.budget.expected index a73490565e9..37620dba007 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature1/verifyEd25519Signature1.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature1/verifyEd25519Signature1.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 58309847 +({cpu: 53510544 | mem: 810}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature10/verifyEd25519Signature10.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature10/verifyEd25519Signature10.uplc.budget.expected index a73490565e9..a9f85a17efc 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature10/verifyEd25519Signature10.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature10/verifyEd25519Signature10.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 58309847 +({cpu: 53524877 | mem: 810}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature11/verifyEd25519Signature11.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature11/verifyEd25519Signature11.uplc.budget.expected index a73490565e9..a9f85a17efc 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature11/verifyEd25519Signature11.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature11/verifyEd25519Signature11.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 58309847 +({cpu: 53524877 | mem: 810}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature12/verifyEd25519Signature12.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature12/verifyEd25519Signature12.uplc.budget.expected index a73490565e9..a9f85a17efc 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature12/verifyEd25519Signature12.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature12/verifyEd25519Signature12.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 58309847 +({cpu: 53524877 | mem: 810}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature13/verifyEd25519Signature13.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature13/verifyEd25519Signature13.uplc.budget.expected index a73490565e9..a9f85a17efc 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature13/verifyEd25519Signature13.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature13/verifyEd25519Signature13.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 58309847 +({cpu: 53524877 | mem: 810}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature14/verifyEd25519Signature14.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature14/verifyEd25519Signature14.uplc.budget.expected index a73490565e9..a9f85a17efc 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature14/verifyEd25519Signature14.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature14/verifyEd25519Signature14.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 58309847 +({cpu: 53524877 | mem: 810}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature15/verifyEd25519Signature15.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature15/verifyEd25519Signature15.uplc.budget.expected index a73490565e9..a9f85a17efc 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature15/verifyEd25519Signature15.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature15/verifyEd25519Signature15.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 58309847 +({cpu: 53524877 | mem: 810}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature16/verifyEd25519Signature16.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature16/verifyEd25519Signature16.uplc.budget.expected index a73490565e9..a9f85a17efc 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature16/verifyEd25519Signature16.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature16/verifyEd25519Signature16.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 58309847 +({cpu: 53524877 | mem: 810}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature17/verifyEd25519Signature17.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature17/verifyEd25519Signature17.uplc.budget.expected index a73490565e9..a9f85a17efc 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature17/verifyEd25519Signature17.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature17/verifyEd25519Signature17.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 58309847 +({cpu: 53524877 | mem: 810}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature18/verifyEd25519Signature18.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature18/verifyEd25519Signature18.uplc.budget.expected index a73490565e9..c5f7b892e15 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature18/verifyEd25519Signature18.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature18/verifyEd25519Signature18.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 58309847 +({cpu: 53539210 | mem: 810}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature19/verifyEd25519Signature19.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature19/verifyEd25519Signature19.uplc.budget.expected index a73490565e9..c5f7b892e15 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature19/verifyEd25519Signature19.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature19/verifyEd25519Signature19.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 58309847 +({cpu: 53539210 | mem: 810}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature2/verifyEd25519Signature2.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature2/verifyEd25519Signature2.uplc.budget.expected index a73490565e9..37620dba007 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature2/verifyEd25519Signature2.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature2/verifyEd25519Signature2.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 58309847 +({cpu: 53510544 | mem: 810}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature20/verifyEd25519Signature20.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature20/verifyEd25519Signature20.uplc.budget.expected index a73490565e9..c5f7b892e15 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature20/verifyEd25519Signature20.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature20/verifyEd25519Signature20.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 58309847 +({cpu: 53539210 | mem: 810}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature21/verifyEd25519Signature21.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature21/verifyEd25519Signature21.uplc.budget.expected index a73490565e9..c5f7b892e15 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature21/verifyEd25519Signature21.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature21/verifyEd25519Signature21.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 58309847 +({cpu: 53539210 | mem: 810}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature22/verifyEd25519Signature22.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature22/verifyEd25519Signature22.uplc.budget.expected index a73490565e9..c5f7b892e15 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature22/verifyEd25519Signature22.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature22/verifyEd25519Signature22.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 58309847 +({cpu: 53539210 | mem: 810}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature23/verifyEd25519Signature23.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature23/verifyEd25519Signature23.uplc.budget.expected index a73490565e9..c5f7b892e15 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature23/verifyEd25519Signature23.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature23/verifyEd25519Signature23.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 58309847 +({cpu: 53539210 | mem: 810}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature24/verifyEd25519Signature24.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature24/verifyEd25519Signature24.uplc.budget.expected index a73490565e9..c5f7b892e15 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature24/verifyEd25519Signature24.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature24/verifyEd25519Signature24.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 58309847 +({cpu: 53539210 | mem: 810}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature25/verifyEd25519Signature25.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature25/verifyEd25519Signature25.uplc.budget.expected index a73490565e9..c5f7b892e15 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature25/verifyEd25519Signature25.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature25/verifyEd25519Signature25.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 58309847 +({cpu: 53539210 | mem: 810}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature26/verifyEd25519Signature26.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature26/verifyEd25519Signature26.uplc.budget.expected index a73490565e9..d29b7f2b32f 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature26/verifyEd25519Signature26.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature26/verifyEd25519Signature26.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 58309847 +({cpu: 53553543 | mem: 810}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature27/verifyEd25519Signature27.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature27/verifyEd25519Signature27.uplc.budget.expected index a73490565e9..d29b7f2b32f 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature27/verifyEd25519Signature27.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature27/verifyEd25519Signature27.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 58309847 +({cpu: 53553543 | mem: 810}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature28/verifyEd25519Signature28.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature28/verifyEd25519Signature28.uplc.budget.expected index a73490565e9..d29b7f2b32f 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature28/verifyEd25519Signature28.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature28/verifyEd25519Signature28.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 58309847 +({cpu: 53553543 | mem: 810}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature29/verifyEd25519Signature29.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature29/verifyEd25519Signature29.uplc.budget.expected index a73490565e9..d29b7f2b32f 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature29/verifyEd25519Signature29.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature29/verifyEd25519Signature29.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 58309847 +({cpu: 53553543 | mem: 810}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature3/verifyEd25519Signature3.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature3/verifyEd25519Signature3.uplc.budget.expected index a73490565e9..37620dba007 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature3/verifyEd25519Signature3.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature3/verifyEd25519Signature3.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 58309847 +({cpu: 53510544 | mem: 810}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature30/verifyEd25519Signature30.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature30/verifyEd25519Signature30.uplc.budget.expected index a73490565e9..d29b7f2b32f 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature30/verifyEd25519Signature30.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature30/verifyEd25519Signature30.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 58309847 +({cpu: 53553543 | mem: 810}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature31/verifyEd25519Signature31.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature31/verifyEd25519Signature31.uplc.budget.expected index a73490565e9..d29b7f2b32f 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature31/verifyEd25519Signature31.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature31/verifyEd25519Signature31.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 58309847 +({cpu: 53553543 | mem: 810}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature4/verifyEd25519Signature4.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature4/verifyEd25519Signature4.uplc.budget.expected index a73490565e9..37620dba007 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature4/verifyEd25519Signature4.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature4/verifyEd25519Signature4.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 58309847 +({cpu: 53510544 | mem: 810}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature5/verifyEd25519Signature5.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature5/verifyEd25519Signature5.uplc.budget.expected index a73490565e9..37620dba007 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature5/verifyEd25519Signature5.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature5/verifyEd25519Signature5.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 58309847 +({cpu: 53510544 | mem: 810}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature6/verifyEd25519Signature6.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature6/verifyEd25519Signature6.uplc.budget.expected index a73490565e9..37620dba007 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature6/verifyEd25519Signature6.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature6/verifyEd25519Signature6.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 58309847 +({cpu: 53510544 | mem: 810}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature7/verifyEd25519Signature7.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature7/verifyEd25519Signature7.uplc.budget.expected index a73490565e9..37620dba007 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature7/verifyEd25519Signature7.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature7/verifyEd25519Signature7.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 58309847 +({cpu: 53510544 | mem: 810}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature8/verifyEd25519Signature8.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature8/verifyEd25519Signature8.uplc.budget.expected index a73490565e9..37620dba007 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature8/verifyEd25519Signature8.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature8/verifyEd25519Signature8.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 58309847 +({cpu: 53510544 | mem: 810}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature9/verifyEd25519Signature9.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature9/verifyEd25519Signature9.uplc.budget.expected index a73490565e9..37620dba007 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature9/verifyEd25519Signature9.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/verifyEd25519Signature/verifyEd25519Signature9/verifyEd25519Signature9.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 58309847 +({cpu: 53510544 | mem: 810}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/example/ApplyAdd1/ApplyAdd1.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/example/ApplyAdd1/ApplyAdd1.uplc.budget.expected index 517af94a6db..0c7fc1e56b2 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/example/ApplyAdd1/ApplyAdd1.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/example/ApplyAdd1/ApplyAdd1.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 8288591 +({cpu: 5284166 | mem: 11045}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/example/ApplyAdd2/ApplyAdd2.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/example/ApplyAdd2/ApplyAdd2.uplc.budget.expected index 6bb7f8836d8..0911db66b9c 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/example/ApplyAdd2/ApplyAdd2.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/example/ApplyAdd2/ApplyAdd2.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 7910799 +({cpu: 4605022 | mem: 13251}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/example/IfIntegers/IfIntegers.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/example/IfIntegers/IfIntegers.uplc.budget.expected index eb14042d0a3..3ea9f721de1 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/example/IfIntegers/IfIntegers.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/example/IfIntegers/IfIntegers.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 13663363 +({cpu: 8967710 | mem: 9642}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/example/NatRoundTrip/NatRoundTrip.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/example/NatRoundTrip/NatRoundTrip.uplc.budget.expected index 4ed16ef3237..977a5f2f958 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/example/NatRoundTrip/NatRoundTrip.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/example/NatRoundTrip/NatRoundTrip.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 2207577 +({cpu: 1493308 | mem: 8802}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/example/ScottListSum/ScottListSum.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/example/ScottListSum/ScottListSum.uplc.budget.expected index 8e4d607a312..e6c178754a4 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/example/ScottListSum/ScottListSum.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/example/ScottListSum/ScottListSum.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 1219100 +({cpu: 848100 | mem: 5400}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/example/churchSucc/churchSucc.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/example/churchSucc/churchSucc.uplc.budget.expected index c5fb80b1cd0..d9531fb66be 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/example/churchSucc/churchSucc.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/example/churchSucc/churchSucc.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 23100 +({cpu: 16100 | mem: 200}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/example/churchZero/churchZero.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/example/churchZero/churchZero.uplc.budget.expected index c5fb80b1cd0..d9531fb66be 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/example/churchZero/churchZero.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/example/churchZero/churchZero.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 23100 +({cpu: 16100 | mem: 200}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/example/even2/even2.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/example/even2/even2.uplc.budget.expected index 8dae1f2dec4..3e537fec1c9 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/example/even2/even2.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/example/even2/even2.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 6256100 +({cpu: 4352100 | mem: 27300}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/example/even3/even3.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/example/even3/even3.uplc.budget.expected index 95f883613b9..33cd71bc70c 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/example/even3/even3.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/example/even3/even3.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 7843100 +({cpu: 5456100 | mem: 34200}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/example/evenList/evenList.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/example/evenList/evenList.uplc.budget.expected index b386dc61bae..0fa6fea2945 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/example/evenList/evenList.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/example/evenList/evenList.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 19362962 +({cpu: 13215348 | mem: 78912}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/example/factorial/factorial.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/example/factorial/factorial.uplc.budget.expected index 39f0b23a6ef..b9736f6f9a9 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/example/factorial/factorial.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/example/factorial/factorial.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 14104357 +({cpu: 9352174 | mem: 50026}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/example/fibonacci/fibonacci.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/example/fibonacci/fibonacci.uplc.budget.expected index 9ba6ba932d4..6784f96d4b6 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/example/fibonacci/fibonacci.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/example/fibonacci/fibonacci.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 1689053 +({cpu: 1095986 | mem: 6202}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/example/force-lam/force-lam.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/example/force-lam/force-lam.uplc.budget.expected index c5fb80b1cd0..d9531fb66be 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/example/force-lam/force-lam.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/example/force-lam/force-lam.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 23100 +({cpu: 16100 | mem: 200}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/example/overapplication/overapplication.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/example/overapplication/overapplication.uplc.budget.expected index d9e949bd89b..cbd8834ba26 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/example/overapplication/overapplication.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/example/overapplication/overapplication.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 864540 +({cpu: 478647 | mem: 1704}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/example/succInteger/succInteger.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/example/succInteger/succInteger.uplc.budget.expected index c5fb80b1cd0..d9531fb66be 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/example/succInteger/succInteger.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/example/succInteger/succInteger.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 23100 +({cpu: 16100 | mem: 200}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/term/app/app-1/app-1.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/term/app/app-1/app-1.uplc.budget.expected index b34fbc34cb7..a0079bcaedc 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/term/app/app-1/app-1.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/term/app/app-1/app-1.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 92100 +({cpu: 64100 | mem: 500}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/term/app/app-2/app-2.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/term/app/app-2/app-2.uplc.budget.expected index b34fbc34cb7..a0079bcaedc 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/term/app/app-2/app-2.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/term/app/app-2/app-2.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 92100 +({cpu: 64100 | mem: 500}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/term/app/app-3/app-3.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/term/app/app-3/app-3.uplc.budget.expected index b34fbc34cb7..a0079bcaedc 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/term/app/app-3/app-3.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/term/app/app-3/app-3.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 92100 +({cpu: 64100 | mem: 500}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/term/app/app-4/app-4.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/term/app/app-4/app-4.uplc.budget.expected index b34fbc34cb7..a0079bcaedc 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/term/app/app-4/app-4.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/term/app/app-4/app-4.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 92100 +({cpu: 64100 | mem: 500}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/term/app/app-5/app-5.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/term/app/app-5/app-5.uplc.budget.expected index 830b7dbebf6..5538712881b 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/term/app/app-5/app-5.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/term/app/app-5/app-5.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 161100 +({cpu: 112100 | mem: 800}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/term/app/app-6/app-6.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/term/app/app-6/app-6.uplc.budget.expected index b34fbc34cb7..a0079bcaedc 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/term/app/app-6/app-6.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/term/app/app-6/app-6.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 92100 +({cpu: 64100 | mem: 500}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/term/app/app-7/app-7.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/term/app/app-7/app-7.uplc.budget.expected index b34fbc34cb7..a0079bcaedc 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/term/app/app-7/app-7.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/term/app/app-7/app-7.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 92100 +({cpu: 64100 | mem: 500}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/term/app/app-8/app-8.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/term/app/app-8/app-8.uplc.budget.expected index 830b7dbebf6..5538712881b 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/term/app/app-8/app-8.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/term/app/app-8/app-8.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 161100 +({cpu: 112100 | mem: 800}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/term/app/app-9/app-9.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/term/app/app-9/app-9.uplc.budget.expected index e24a3d32808..c3346b6e71e 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/term/app/app-9/app-9.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/term/app/app-9/app-9.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 368100 +({cpu: 256100 | mem: 1700}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/term/case/case-1/case-1.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/term/case/case-1/case-1.uplc.budget.expected index 71e43512e85..c4132f656d0 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/term/case/case-1/case-1.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/term/case/case-1/case-1.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 115100 +({cpu: 80100 | mem: 600}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/term/case/case-2/case-2.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/term/case/case-2/case-2.uplc.budget.expected index 71e43512e85..c4132f656d0 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/term/case/case-2/case-2.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/term/case/case-2/case-2.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 115100 +({cpu: 80100 | mem: 600}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/term/case/case-3/case-3.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/term/case/case-3/case-3.uplc.budget.expected index 94d9e17a6c6..2d4f813d0fc 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/term/case/case-3/case-3.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/term/case/case-3/case-3.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 459577 +({cpu: 277308 | mem: 1202}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/term/case/case-4/case-4.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/term/case/case-4/case-4.uplc.budget.expected index 94d9e17a6c6..2d4f813d0fc 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/term/case/case-4/case-4.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/term/case/case-4/case-4.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 459577 +({cpu: 277308 | mem: 1202}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/term/case/case-8/case-8.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/term/case/case-8/case-8.uplc.budget.expected index 06854ae51c2..f736fb48118 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/term/case/case-8/case-8.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/term/case/case-8/case-8.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 69100 +({cpu: 48100 | mem: 400}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/term/closure/closure.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/term/closure/closure.uplc.budget.expected index b34fbc34cb7..a0079bcaedc 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/term/closure/closure.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/term/closure/closure.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 92100 +({cpu: 64100 | mem: 500}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/term/constr/constr-1/constr-1.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/term/constr/constr-1/constr-1.uplc.budget.expected index c5fb80b1cd0..d9531fb66be 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/term/constr/constr-1/constr-1.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/term/constr/constr-1/constr-1.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 23100 +({cpu: 16100 | mem: 200}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/term/constr/constr-2/constr-2.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/term/constr/constr-2/constr-2.uplc.budget.expected index d0d58f03406..9aec697a86c 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/term/constr/constr-2/constr-2.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/term/constr/constr-2/constr-2.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 46100 +({cpu: 32100 | mem: 300}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/term/constr/constr-3/constr-3.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/term/constr/constr-3/constr-3.uplc.budget.expected index 71e43512e85..c4132f656d0 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/term/constr/constr-3/constr-3.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/term/constr/constr-3/constr-3.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 115100 +({cpu: 80100 | mem: 600}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/term/delay/delay-error-1/delay-error-1.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/term/delay/delay-error-1/delay-error-1.uplc.budget.expected index b34fbc34cb7..a0079bcaedc 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/term/delay/delay-error-1/delay-error-1.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/term/delay/delay-error-1/delay-error-1.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 92100 +({cpu: 64100 | mem: 500}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/term/delay/delay-error-2/delay-error-2.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/term/delay/delay-error-2/delay-error-2.uplc.budget.expected index b34fbc34cb7..a0079bcaedc 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/term/delay/delay-error-2/delay-error-2.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/term/delay/delay-error-2/delay-error-2.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 92100 +({cpu: 64100 | mem: 500}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/term/delay/delay-lam/delay-lam.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/term/delay/delay-lam/delay-lam.uplc.budget.expected index c5fb80b1cd0..d9531fb66be 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/term/delay/delay-lam/delay-lam.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/term/delay/delay-lam/delay-lam.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 23100 +({cpu: 16100 | mem: 200}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/term/force/force-2/force-2.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/term/force/force-2/force-2.uplc.budget.expected index 323b1fcd0a8..1014595b716 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/term/force/force-2/force-2.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/term/force/force-2/force-2.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 138100 +({cpu: 96100 | mem: 700}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/term/force/force-3/force-3.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/term/force/force-3/force-3.uplc.budget.expected index 7fe94cb7e29..cd6e984bb75 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/term/force/force-3/force-3.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/term/force/force-3/force-3.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 207100 +({cpu: 144100 | mem: 1000}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/term/lam/lam-1/lam-1.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/term/lam/lam-1/lam-1.uplc.budget.expected index c5fb80b1cd0..d9531fb66be 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/term/lam/lam-1/lam-1.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/term/lam/lam-1/lam-1.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 23100 +({cpu: 16100 | mem: 200}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/term/lam/lam-2/lam-2.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/term/lam/lam-2/lam-2.uplc.budget.expected index c5fb80b1cd0..d9531fb66be 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/term/lam/lam-2/lam-2.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/term/lam/lam-2/lam-2.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 23100 +({cpu: 16100 | mem: 200}) \ No newline at end of file diff --git a/plutus-conformance/test-cases/uplc/evaluation/term/unlifting-unsat/unlifting-unsat.uplc.budget.expected b/plutus-conformance/test-cases/uplc/evaluation/term/unlifting-unsat/unlifting-unsat.uplc.budget.expected index 06854ae51c2..f736fb48118 100644 --- a/plutus-conformance/test-cases/uplc/evaluation/term/unlifting-unsat/unlifting-unsat.uplc.budget.expected +++ b/plutus-conformance/test-cases/uplc/evaluation/term/unlifting-unsat/unlifting-unsat.uplc.budget.expected @@ -1,2 +1,2 @@ -({cpu: 69100 +({cpu: 48100 | mem: 400}) \ No newline at end of file diff --git a/plutus-core/CHANGELOG.md b/plutus-core/CHANGELOG.md index df365e8b8cf..94d57f2d885 100644 --- a/plutus-core/CHANGELOG.md +++ b/plutus-core/CHANGELOG.md @@ -1,4 +1,32 @@ +<a id='changelog-1.29.0.0'></a> +# 1.29.0.0 — 2024-06-04 + +## Removed + +- `unsafeRunCekNoEmit` and all `unsafeEvaluate*` functions in #6043. To replace e.g. `unsafeEvaluateCek` you can use `evaluateCek` in combination with `unsafeToEvaluationResult`. + +- `UnknownBuiltin` and `UnknownBuiltinType` in #6064. + +## Added + +- Primitives `integerToByteString` and `byteStringToInteger` are added to PlutusV2, + enabled at protocol version 10. + +- A new cost model for PlutusV3. + +- Missing `KnownTypeAst`, `ReadKnownIn` and `MakeKnownIn` for integral types (`Int8`, `Word16` etc) in #6036 + +## Changed + +- Renamed `unsafeExtractEvaluationResult` to `unsafeToEvaluationResult`. + +- We now have configurable cost models which allow different costs for different Plutus language versions and protocol versions. + +- Made unlifting errors a bit more flexible by allowing operational unlifting errors in #6036 + +- CPU charges reduced for PlutusV1 and PlutusV2 scripts in the Conway era. + <a id='changelog-1.28.0.0'></a> # 1.28.0.0 — 2024-05-15 diff --git a/plutus-core/changelog.d/20240517_094957_unsafeFixIO_v2_new_prims.md b/plutus-core/changelog.d/20240517_094957_unsafeFixIO_v2_new_prims.md deleted file mode 100644 index 1cd71254e72..00000000000 --- a/plutus-core/changelog.d/20240517_094957_unsafeFixIO_v2_new_prims.md +++ /dev/null @@ -1,5 +0,0 @@ - -### Added - -- Primitives `integerToByteString` and `byteStringToInteger` are added to PlutusV2, - enabled at protocol version 10. diff --git a/plutus-core/changelog.d/20240520_192738_effectfully_remove_UnknownBuiltin.md b/plutus-core/changelog.d/20240520_192738_effectfully_remove_UnknownBuiltin.md deleted file mode 100644 index 5fe160f9919..00000000000 --- a/plutus-core/changelog.d/20240520_192738_effectfully_remove_UnknownBuiltin.md +++ /dev/null @@ -1,3 +0,0 @@ -### Removed - -- `UnknownBuiltin` and `UnknownBuiltinType` in #6064. diff --git a/plutus-core/cost-model/budgeting-bench/Benchmarks/Nops.hs b/plutus-core/cost-model/budgeting-bench/Benchmarks/Nops.hs index feeaa4cf3b6..213960ccd23 100644 --- a/plutus-core/cost-model/budgeting-bench/Benchmarks/Nops.hs +++ b/plutus-core/cost-model/budgeting-bench/Benchmarks/Nops.hs @@ -123,7 +123,7 @@ nopCostModel = nopCostParameters :: MachineParameters CekMachineCosts NopFun (CekValue DefaultUni NopFun ()) nopCostParameters = mkMachineParameters def $ - CostModel defaultCekMachineCosts nopCostModel + CostModel defaultCekMachineCostsForTesting nopCostModel -- This is just to avoid some deeply nested case expressions for the NopNc -- functions below. There is a Monad instance for EvaluationResult, but that @@ -153,7 +153,7 @@ n >: k = instance uni ~ DefaultUni => ToBuiltinMeaning uni NopFun where type CostingPart uni NopFun = NopCostModel - data BuiltinSemanticsVariant NopFun = NopFunSemanticsVariant1 + data BuiltinSemanticsVariant NopFun = NopFunSemanticsVariantX -- Built-in Bools toBuiltinMeaning @@ -287,7 +287,7 @@ instance uni ~ DefaultUni => ToBuiltinMeaning uni NopFun where (runCostingFunSixArguments . paramNop6) instance Default (BuiltinSemanticsVariant NopFun) where - def = NopFunSemanticsVariant1 + def = NopFunSemanticsVariantX ---------------- Benchmarks ---------------- diff --git a/plutus-core/cost-model/budgeting-bench/Common.hs b/plutus-core/cost-model/budgeting-bench/Common.hs index a314102ffda..f352ed3c496 100644 --- a/plutus-core/cost-model/budgeting-bench/Common.hs +++ b/plutus-core/cost-model/budgeting-bench/Common.hs @@ -78,16 +78,15 @@ benchWith -> String -> PlainTerm DefaultUni fun -> Benchmark -benchWith params name term = bench name $ whnf (unsafeEvaluateCekNoEmit params) term -{- ^ Note that to get sensible results with whnf, we must use an evaluation - function that looks at the result, so eg unsafeEvaluateCek won't work - properly because it returns a pair whose components won't be evaluated by - whnf. We can't use nf because it does too much work: for instance if it gets - back a 'Data' value it'll traverse all of it. --} +-- Note that to get sensible results with 'whnf', we must use an evaluation function that looks at +-- the result, so e.g. 'evaluateCek' won't work properly because it returns a pair whose components +-- won't be evaluated by 'whnf'. We can't use 'nf' because it does too much work: for instance if it +-- gets back a 'Data' value it'll traverse all of it. +benchWith params name term = bench name $ whnf (evaluateCekNoEmit params) term +{- Benchmark with the most recent CekParameters -} benchDefault :: String -> PlainTerm DefaultUni DefaultFun -> Benchmark -benchDefault = benchWith defaultCekParameters +benchDefault = benchWith defaultCekParametersForTesting ---------------- Constructing Polymorphic PLC terms for benchmarking ---------------- diff --git a/plutus-core/cost-model/create-cost-model/BuiltinMemoryModels.hs b/plutus-core/cost-model/create-cost-model/BuiltinMemoryModels.hs index 74f5e3b48dd..f796c7aa4c4 100644 --- a/plutus-core/cost-model/create-cost-model/BuiltinMemoryModels.hs +++ b/plutus-core/cost-model/create-cost-model/BuiltinMemoryModels.hs @@ -72,8 +72,8 @@ builtinMemoryModels = BuiltinCostModelBase , paramMultiplyInteger = Id $ ModelTwoArgumentsAddedSizes $ OneVariableLinearFunction 0 1 , paramDivideInteger = Id $ ModelTwoArgumentsSubtractedSizes $ ModelSubtractedSizes 0 1 1 , paramQuotientInteger = Id $ ModelTwoArgumentsSubtractedSizes $ ModelSubtractedSizes 0 1 1 - , paramRemainderInteger = Id $ ModelTwoArgumentsSubtractedSizes $ ModelSubtractedSizes 0 1 1 - , paramModInteger = Id $ ModelTwoArgumentsSubtractedSizes $ ModelSubtractedSizes 0 1 1 + , paramRemainderInteger = Id $ ModelTwoArgumentsLinearInY $ OneVariableLinearFunction 0 1 + , paramModInteger = Id $ ModelTwoArgumentsLinearInY $ OneVariableLinearFunction 0 1 , paramEqualsInteger = Id $ boolMemModel , paramLessThanInteger = Id $ boolMemModel , paramLessThanEqualsInteger = Id $ boolMemModel diff --git a/plutus-core/cost-model/create-cost-model/CreateBuiltinCostModel.hs b/plutus-core/cost-model/create-cost-model/CreateBuiltinCostModel.hs index 776ef174ed6..4b09e138fc2 100644 --- a/plutus-core/cost-model/create-cost-model/CreateBuiltinCostModel.hs +++ b/plutus-core/cost-model/create-cost-model/CreateBuiltinCostModel.hs @@ -289,13 +289,12 @@ readOneVariableFunConstOr e = do nonConstantPart <- readCF1AtType subtype e pure $ ModelConstantOrOneArgument constantPart nonConstantPart --- | A costing function of the form a+sx. readOneVariableQuadraticFunction :: MonadR m => String -> SomeSEXP (Region m) -> m OneVariableQuadraticFunction readOneVariableQuadraticFunction var e = do - coeff0 <- Coefficient0 <$> getCoeff "(Intercept)" e - coeff1 <- Coefficient1 <$> getCoeff (printf "I(%s)" var) e - coeff2 <- Coefficient2 <$> getCoeff (printf "I(%s^2)" var) e - pure $ OneVariableQuadraticFunction coeff0 coeff1 coeff2 + c0 <- Coefficient0 <$> getCoeff "(Intercept)" e + c1 <- Coefficient1 <$> getCoeff (printf "I(%s)" var) e + c2 <- Coefficient2 <$> getCoeff (printf "I(%s^2)" var) e + pure $ OneVariableQuadraticFunction c0 c1 c2 readTwoVariableFunLinearOnDiagonal :: MonadR m => String -> SomeSEXP (Region m) -> m ModelConstantOrLinear readTwoVariableFunLinearOnDiagonal var e = do @@ -312,6 +311,17 @@ readTwoVariableLinearFunction var1 var2 e = do slopeY <- Slope <$> getCoeff var2 e pure $ TwoVariableLinearFunction intercept slopeX slopeY +readTwoVariableQuadraticFunction :: MonadR m => String -> String -> SomeSEXP (Region m) -> m TwoVariableQuadraticFunction +readTwoVariableQuadraticFunction var1 var2 e = do + minVal <- getExtraParam "minimum" e + c00 <- Coefficient00 <$> getCoeff "(Intercept)" e + c10 <- Coefficient10 <$> getCoeff (printf "I(%s)" var1) e + c01 <- Coefficient01 <$> getCoeff (printf "I(%s)" var2) e + c20 <- Coefficient20 <$> getCoeff (printf "I(%s^2)" var1) e + c11 <- Coefficient11 <$> getCoeff (printf "I(%s * %s)" var1 var2) e + c02 <- Coefficient02 <$> getCoeff (printf "I(%s^2)" var2) e + pure $ TwoVariableQuadraticFunction minVal c00 c10 c01 c20 c11 c02 + -- | A two-variable costing function which is constant on one region of the -- plane and something else elsewhere. readTwoVariableFunConstOr :: MonadR m => SomeSEXP (Region m) -> m ModelConstantOrTwoArguments @@ -361,6 +371,7 @@ readCF2AtType ty e = do "const_above_diagonal" -> ModelTwoArgumentsConstAboveDiagonal <$> readTwoVariableFunConstOr e "const_off_diagonal" -> ModelTwoArgumentsConstOffDiagonal <$> readOneVariableFunConstOr e "quadratic_in_y" -> ModelTwoArgumentsQuadraticInY <$> readOneVariableQuadraticFunction "y_mem" e + "quadratic_in_x_and_y" -> ModelTwoArgumentsQuadraticInXAndY <$> readTwoVariableQuadraticFunction "x_mem" "y_mem" e _ -> error $ "Unknown two-variable model type: " ++ ty readCF2 :: MonadR m => SomeSEXP (Region m) -> m ModelTwoArguments diff --git a/plutus-core/cost-model/create-cost-model/Main.hs b/plutus-core/cost-model/create-cost-model/Main.hs index c2b84783904..5ee2312cfd2 100644 --- a/plutus-core/cost-model/create-cost-model/Main.hs +++ b/plutus-core/cost-model/create-cost-model/Main.hs @@ -52,6 +52,7 @@ benchmarkFile = namedBenchmarkFile <|> pure defaultBenchmarkFile namedBenchmarkFile :: Parser BenchmarkFile namedBenchmarkFile = BenchmarkFile <$> strOption ( long "csv" + <> short 'i' <> metavar "FILENAME" <> help "CSV file containing built-in function benchmark results") diff --git a/plutus-core/cost-model/data/benching-conway.csv b/plutus-core/cost-model/data/benching-conway.csv new file mode 100644 index 00000000000..046ffba5219 --- /dev/null +++ b/plutus-core/cost-model/data/benching-conway.csv @@ -0,0 +1,9632 @@ +# Plutus Core cost model benchmark results for cost model update for Conway HF. +# Started at 2024-03-02 14:12:35.114650233 UTC +benchmark,t,t.mean.lb,t.mean.ub,t.sd,t.sd.lb,t.sd.ub +ByteStringToInteger/1/1,8.701587151485845e-7,8.695992197020948e-7,8.706219082340251e-7,1.786553365358892e-9,1.5068895435919598e-9,2.16859356505665e-9 +ByteStringToInteger/1/2,9.708934718963369e-7,9.701902571801776e-7,9.718905799319766e-7,2.8668300379969556e-9,1.9571787651307196e-9,4.1324353426257444e-9 +ByteStringToInteger/1/3,1.0292950300397873e-6,1.0286588237683457e-6,1.0299614588145776e-6,2.141935522210625e-9,1.8085743464522427e-9,2.7015456159373413e-9 +ByteStringToInteger/1/4,1.0838440184403118e-6,1.0831432083840037e-6,1.0845187653263503e-6,2.319709751289899e-9,1.9536363490737607e-9,2.803246325306796e-9 +ByteStringToInteger/1/5,1.1411794575279867e-6,1.1402639508251524e-6,1.141859309638091e-6,2.653524473976193e-9,2.130419777469873e-9,3.461311062743688e-9 +ByteStringToInteger/1/6,1.1949526948362669e-6,1.1937707818761615e-6,1.1960429063653014e-6,4.034283098437127e-9,3.5230117906140812e-9,4.8490300962834144e-9 +ByteStringToInteger/1/7,1.2605070324856713e-6,1.2579043648294191e-6,1.2627620662753844e-6,8.237166757573043e-9,7.415447450171269e-9,9.225171217068829e-9 +ByteStringToInteger/1/8,1.2979273296447537e-6,1.2971285371594346e-6,1.2989393807971623e-6,2.9179265984527974e-9,2.2092628270975455e-9,3.7763519474649585e-9 +ByteStringToInteger/1/9,1.3569316794041835e-6,1.355800053720981e-6,1.3582686877642924e-6,4.0664394111327824e-9,2.973273924563507e-9,5.3116155029284375e-9 +ByteStringToInteger/1/10,1.4181447682707617e-6,1.4166171136027466e-6,1.420029008535551e-6,5.4981150513688624e-9,4.501017331311014e-9,6.762532816191708e-9 +ByteStringToInteger/1/11,1.4662282096494146e-6,1.4654399455690254e-6,1.4670445358334541e-6,2.7000549507999928e-9,2.3286150323457495e-9,3.1997561173302405e-9 +ByteStringToInteger/1/12,1.5348350550335435e-6,1.5337681226363509e-6,1.5359123134476223e-6,3.5605125800216544e-9,3.0562111039641283e-9,4.166951018325455e-9 +ByteStringToInteger/1/13,1.604991339869393e-6,1.6044010798094501e-6,1.6055602491184561e-6,1.9931843124742328e-9,1.6664713068807505e-9,2.4137593898300335e-9 +ByteStringToInteger/1/14,1.6427448849303002e-6,1.6418808812210865e-6,1.6438246786979278e-6,3.2739157037148326e-9,2.6883841968382145e-9,4.60993204472238e-9 +ByteStringToInteger/1/15,1.6981657855799416e-6,1.696155646564107e-6,1.6997079342324769e-6,5.604091891279577e-9,4.5287977051230526e-9,7.085674294657377e-9 +ByteStringToInteger/1/16,1.7567492344157292e-6,1.7551206502529544e-6,1.758167301048441e-6,5.141506879339973e-9,4.407501543522512e-9,6.3733471940335976e-9 +ByteStringToInteger/1/17,1.8318183668754936e-6,1.8297108409982768e-6,1.8346602073006613e-6,8.161190273392588e-9,5.929636476475529e-9,1.1177393629003225e-8 +ByteStringToInteger/1/18,1.8861410924142303e-6,1.8853496851979655e-6,1.8870073425720592e-6,2.7600030944387888e-9,2.36579769428604e-9,3.385986636764579e-9 +ByteStringToInteger/1/19,1.941084404234559e-6,1.9400112430480605e-6,1.9425785791512345e-6,4.191950412346946e-9,3.412229886572053e-9,5.353740993792639e-9 +ByteStringToInteger/1/20,2.019203645268539e-6,2.017076240443324e-6,2.021740016958948e-6,7.930818111211396e-9,6.77388179732799e-9,9.66035550212999e-9 +ByteStringToInteger/1/21,2.0712228644326997e-6,2.070369421239098e-6,2.0722106372994484e-6,3.0871339539577923e-9,2.413310316371181e-9,4.6336821982267696e-9 +ByteStringToInteger/1/22,2.167004546256689e-6,2.1623528026063336e-6,2.1715174062318364e-6,1.5592372522339147e-8,1.3467236812354603e-8,1.7969038415165856e-8 +ByteStringToInteger/1/23,2.1850342242374825e-6,2.1837813236584685e-6,2.186198524823925e-6,4.399035271253751e-9,3.3760162315640675e-9,5.500923824602462e-9 +ByteStringToInteger/1/24,2.234051199696886e-6,2.233422036117021e-6,2.2345182459215167e-6,1.8747164006221573e-9,1.4015578827821868e-9,2.632792177202182e-9 +ByteStringToInteger/1/25,2.2976089594298784e-6,2.2965635668430645e-6,2.2987949959005176e-6,3.611809177928258e-9,2.887410964256446e-9,4.533178214855923e-9 +ByteStringToInteger/1/26,2.4012799760698353e-6,2.392898208589152e-6,2.4064166399683364e-6,2.2322302939354906e-8,1.607612050885263e-8,2.9091063939440585e-8 +ByteStringToInteger/1/27,2.4080451037174465e-6,2.4070449219221756e-6,2.4095285729613835e-6,3.909757550778401e-9,2.8922139326824713e-9,6.096859453287539e-9 +ByteStringToInteger/1/28,2.4614279660352254e-6,2.460242111129191e-6,2.4627680853044877e-6,4.041561591893301e-9,3.059372981461266e-9,5.236403528139054e-9 +ByteStringToInteger/1/29,2.5373128845686297e-6,2.5367259663798957e-6,2.5378267265645994e-6,1.756259851486162e-9,1.4349199192342345e-9,2.2269354694455566e-9 +ByteStringToInteger/1/30,2.6508470856345383e-6,2.648785096108944e-6,2.6525133466835377e-6,5.996466125902071e-9,4.5217288606436525e-9,7.507333094386075e-9 +ByteStringToInteger/1/31,2.7014950789296843e-6,2.6980307687109707e-6,2.7042878096669332e-6,1.057730206177681e-8,8.164795170387756e-9,1.4384960261303766e-8 +ByteStringToInteger/1/32,2.7022063379738996e-6,2.7004108512822632e-6,2.7046610536461644e-6,7.507576416983895e-9,5.817796723889046e-9,8.990320192246385e-9 +ByteStringToInteger/1/33,2.7743244685583155e-6,2.7731882291235287e-6,2.775400859507621e-6,3.801328770166313e-9,3.1289693974527676e-9,4.914156358983955e-9 +ByteStringToInteger/1/34,2.8656392883334e-6,2.857882775714016e-6,2.8744936875157146e-6,2.7819136046915467e-8,2.6632756751967898e-8,2.9257527462854653e-8 +ByteStringToInteger/1/35,2.9126170624255685e-6,2.9112788370320943e-6,2.913779766497784e-6,4.3324956593356865e-9,3.5409800658411675e-9,5.807421015220281e-9 +ByteStringToInteger/1/36,2.9403340248323977e-6,2.938948329182225e-6,2.942384346413237e-6,5.417751204410087e-9,3.9567774697456496e-9,7.400487800478822e-9 +ByteStringToInteger/1/37,3.0371657968865173e-6,3.0359920393114145e-6,3.0379744381959295e-6,3.1926903206055523e-9,2.0904465617946018e-9,4.824366332500749e-9 +ByteStringToInteger/1/38,3.1038435111150718e-6,3.1022068752972067e-6,3.105293712006911e-6,5.179828455879284e-9,4.3275610619875476e-9,6.438080148908786e-9 +ByteStringToInteger/1/39,3.153215147989156e-6,3.151967510301594e-6,3.154709111565791e-6,4.267139194013316e-9,3.307312254462408e-9,6.014796664921011e-9 +ByteStringToInteger/1/40,3.2104724653931605e-6,3.208674321704639e-6,3.212862233633637e-6,6.572532480001521e-9,5.5187558356831915e-9,8.006232401196558e-9 +ByteStringToInteger/1/41,3.2385485672454453e-6,3.2348419401512204e-6,3.2415714442567918e-6,1.170201774866398e-8,9.458121637231633e-9,1.4137316505052804e-8 +ByteStringToInteger/1/42,3.324127628088958e-6,3.322583854274647e-6,3.3256335524475118e-6,5.085873412835164e-9,4.324927821229293e-9,6.0755955802208685e-9 +ByteStringToInteger/1/43,3.4183502477207274e-6,3.41714869449614e-6,3.4194161464443303e-6,3.845367070673906e-9,3.091265752425899e-9,5.059250120364244e-9 +ByteStringToInteger/1/44,3.501047933294049e-6,3.4941219222228106e-6,3.5095800365833514e-6,2.617841010720543e-8,2.2950450243311324e-8,2.8495311271460095e-8 +ByteStringToInteger/1/45,3.536368924340032e-6,3.534456391216447e-6,3.539198245218573e-6,7.839031728831225e-9,5.091750180414684e-9,1.4014843854738417e-8 +ByteStringToInteger/1/46,3.6098637712290673e-6,3.60886686071955e-6,3.611111337820483e-6,3.6501001119264382e-9,2.8905108616746283e-9,4.675635765447376e-9 +ByteStringToInteger/1/47,3.6303244790989544e-6,3.627744732821216e-6,3.6336576095086504e-6,9.8416860738614e-9,7.573730809351062e-9,1.517615304180607e-8 +ByteStringToInteger/1/48,3.7454517333314217e-6,3.7439026985552433e-6,3.7473746599608958e-6,5.897564342370854e-9,4.793750489118193e-9,7.4213441599667096e-9 +ByteStringToInteger/1/49,3.7962160922746404e-6,3.793944447793181e-6,3.7979816413743993e-6,6.773209885797533e-9,5.404995980472014e-9,8.575213221289075e-9 +ByteStringToInteger/1/50,3.859373935267334e-6,3.8580897868388866e-6,3.8608430699077e-6,4.723872695057115e-9,3.751494162241635e-9,5.948661476580333e-9 +ByteStringToInteger/1/51,3.919680601025825e-6,3.918857673033675e-6,3.9204739469676e-6,2.6352341947241266e-9,2.170979607596329e-9,3.821266896668395e-9 +ByteStringToInteger/1/52,3.957234570281064e-6,3.955656727422172e-6,3.959074665549957e-6,5.660025220267881e-9,4.882263661396652e-9,6.719942974510785e-9 +ByteStringToInteger/1/53,4.079905395559247e-6,4.076113661865789e-6,4.0862744564742205e-6,1.6021451491226646e-8,1.0024355320185737e-8,2.378831101612724e-8 +ByteStringToInteger/1/54,4.166451209041821e-6,4.165031835519214e-6,4.167978228083898e-6,5.070323258168801e-9,4.345752678695904e-9,6.325882995220893e-9 +ByteStringToInteger/1/55,4.262172285737381e-6,4.259586310504431e-6,4.264171950915132e-6,7.66315195921036e-9,6.126375891221002e-9,9.484229839811365e-9 +ByteStringToInteger/1/56,4.299718648909159e-6,4.293738217276982e-6,4.3037723305983834e-6,1.652570595238387e-8,1.1865955381448024e-8,2.1240421861587033e-8 +ByteStringToInteger/1/57,4.365936790011541e-6,4.364040804854903e-6,4.368275389249978e-6,6.746620134947526e-9,5.3580818616430315e-9,9.163919984581996e-9 +ByteStringToInteger/1/58,4.427650672940692e-6,4.425688107271096e-6,4.42987741895137e-6,6.776642903135996e-9,5.760753491849373e-9,8.395163144945443e-9 +ByteStringToInteger/1/59,4.485720195902662e-6,4.480447466696392e-6,4.489137806883476e-6,1.4346058342047363e-8,9.70622440054816e-9,1.9815314119015064e-8 +ByteStringToInteger/1/60,4.480782068381201e-6,4.4793874055817225e-6,4.482411637083984e-6,5.191498902888023e-9,4.269874466263033e-9,6.417744009589131e-9 +ByteStringToInteger/1/61,4.602735813529388e-6,4.601513681372648e-6,4.604291207140338e-6,4.81018462966641e-9,3.827186179489192e-9,6.9963018147066224e-9 +ByteStringToInteger/1/62,4.713227616071596e-6,4.712089021487761e-6,4.714438433075854e-6,4.127816209592224e-9,3.430344389055369e-9,4.9010536497425864e-9 +ByteStringToInteger/1/63,4.720617892668961e-6,4.718384039205889e-6,4.722767640856608e-6,7.175743681331328e-9,6.037802755017757e-9,8.992910996682476e-9 +ByteStringToInteger/1/64,4.762286072693932e-6,4.76017921454797e-6,4.764952392464582e-6,7.732014429176808e-9,6.0868155297678696e-9,9.890532561756403e-9 +ByteStringToInteger/1/65,4.958581943538028e-6,4.9569538549033325e-6,4.960850654693472e-6,6.087540667603599e-9,4.676218612868796e-9,8.258776815768254e-9 +ByteStringToInteger/1/66,5.007685205358401e-6,5.005350099710236e-6,5.0105570701261345e-6,8.788482023498013e-9,6.7927787166482545e-9,1.3496396642645238e-8 +ByteStringToInteger/1/67,5.011854120174594e-6,5.010812292942613e-6,5.013078781300698e-6,3.812493362918126e-9,3.142731324755533e-9,4.917838896905991e-9 +ByteStringToInteger/1/68,5.154493551454997e-6,5.152898985512906e-6,5.15615779955835e-6,5.605180099367219e-9,4.442633065757025e-9,7.287394972094902e-9 +ByteStringToInteger/1/69,5.2398705264341955e-6,5.238243214059951e-6,5.2417975243754985e-6,6.013401897497869e-9,4.724257007073888e-9,8.271151365830648e-9 +ByteStringToInteger/1/70,5.224702864008995e-6,5.219845227628325e-6,5.2289617253707415e-6,1.6050085460177213e-8,1.4338630778405244e-8,1.9067467066942378e-8 +ByteStringToInteger/1/71,5.3077307505565735e-6,5.303214630530692e-6,5.311492600051818e-6,1.3829557537057293e-8,1.1944952557464843e-8,1.639065856984999e-8 +ByteStringToInteger/1/72,5.476772450582687e-6,5.474930137979595e-6,5.478005674293209e-6,5.253875536972167e-9,4.1122664989622345e-9,7.623203415766953e-9 +ByteStringToInteger/1/73,5.55039951950468e-6,5.54894723852152e-6,5.551338915389443e-6,3.796941189420479e-9,2.9290045883948756e-9,6.386864165341861e-9 +ByteStringToInteger/1/74,5.54319433807622e-6,5.539849904457457e-6,5.547002663005078e-6,1.247354342332617e-8,1.0574227817136247e-8,1.4752080685140444e-8 +ByteStringToInteger/1/75,5.709644228172476e-6,5.706948076154347e-6,5.712718981747581e-6,9.246499893628062e-9,7.53280827361716e-9,1.13976966024079e-8 +ByteStringToInteger/1/76,5.7055843956656894e-6,5.696771776142357e-6,5.717500223831573e-6,3.552301316416517e-8,2.2543547817977703e-8,4.799120635108228e-8 +ByteStringToInteger/1/77,5.72830621882687e-6,5.726280982749564e-6,5.730185711711874e-6,6.695716934855627e-9,5.5676709814004386e-9,8.560146697820264e-9 +ByteStringToInteger/1/78,5.880582072394368e-6,5.876318861420429e-6,5.88436136200686e-6,1.3270291027150158e-8,1.0810474496609595e-8,1.654240491911821e-8 +ByteStringToInteger/1/79,5.916010226265329e-6,5.914064992600638e-6,5.918099669263838e-6,6.87094951152035e-9,5.3497623845920764e-9,8.667301611794104e-9 +ByteStringToInteger/1/80,5.9866294438470335e-6,5.982546639225229e-6,5.990936485366711e-6,1.423782661283247e-8,1.2791676145532732e-8,1.6139340646386167e-8 +ByteStringToInteger/1/81,6.161453437682233e-6,6.15879310700913e-6,6.1640537210135205e-6,8.974159593963606e-9,7.695502050710843e-9,1.0675264686487407e-8 +ByteStringToInteger/1/82,6.13231449055197e-6,6.130487525944511e-6,6.133896626589046e-6,5.601648650964924e-9,4.672702040867451e-9,7.124585681216722e-9 +ByteStringToInteger/1/83,6.235594508267311e-6,6.227437621851912e-6,6.251873038159582e-6,3.794365163949151e-8,2.1045841823995376e-8,5.818669646531168e-8 +ByteStringToInteger/1/84,6.455695438504022e-6,6.454216643919012e-6,6.457062315584142e-6,4.690301448655994e-9,3.938013741020189e-9,5.740678575017454e-9 +ByteStringToInteger/1/85,6.41548644050769e-6,6.410644940958215e-6,6.42022605666139e-6,1.6117774905600713e-8,1.3877551127455403e-8,1.898527411360327e-8 +ByteStringToInteger/1/86,6.5946363118667625e-6,6.59137135651608e-6,6.597711187445094e-6,1.0972266586704393e-8,8.961152932496512e-9,1.3011146359972878e-8 +ByteStringToInteger/1/87,6.72378259120103e-6,6.721801242438729e-6,6.725871078321162e-6,7.274146842800285e-9,6.083478514692846e-9,9.010824533933775e-9 +ByteStringToInteger/1/88,6.841698407900233e-6,6.824980014081484e-6,6.864362161356001e-6,6.264021398842625e-8,4.803669676067521e-8,7.184866442547138e-8 +ByteStringToInteger/1/89,6.8877381535077005e-6,6.885015390665695e-6,6.8900592667123815e-6,8.649156497936125e-9,7.69268245762726e-9,1.0059597609062969e-8 +ByteStringToInteger/1/90,6.7737324122444074e-6,6.771213077234737e-6,6.776030810160459e-6,8.492859030864706e-9,6.975576712359838e-9,1.0252693929567789e-8 +ByteStringToInteger/1/91,7.061368053263889e-6,7.056461956164971e-6,7.067160723261062e-6,1.755617885468223e-8,1.481599057852532e-8,2.072898119144265e-8 +ByteStringToInteger/1/92,7.30872274346941e-6,7.28203423111715e-6,7.325519900638242e-6,6.730521343773113e-8,4.4603476786823673e-8,9.175888230110868e-8 +ByteStringToInteger/1/93,7.252683958330407e-6,7.246637498928314e-6,7.2572462519946665e-6,1.6356782527695364e-8,1.1869292006900075e-8,2.6739143848533418e-8 +ByteStringToInteger/1/94,7.326314594451296e-6,7.323981051241021e-6,7.328829503401538e-6,8.127825818623562e-9,6.6245150706603585e-9,1.0204369644589454e-8 +ByteStringToInteger/1/95,7.2330090074450305e-6,7.230633892278062e-6,7.235409198730418e-6,7.965943040525825e-9,6.514450429299033e-9,9.531779475283142e-9 +ByteStringToInteger/1/96,7.536351574374901e-6,7.51033117743901e-6,7.5583713825008735e-6,8.424597641701918e-8,7.836571000070219e-8,8.92033870856113e-8 +ByteStringToInteger/1/97,7.3966362029903216e-6,7.395297747796694e-6,7.398033680845506e-6,4.436292924288011e-9,3.395585413312484e-9,5.840599000896361e-9 +ByteStringToInteger/1/98,7.706378918524667e-6,7.677724216901202e-6,7.739712104431228e-6,9.796338204240411e-8,8.740980111585073e-8,1.0240154523086984e-7 +ByteStringToInteger/1/99,7.751194656586113e-6,7.736971319247876e-6,7.764350786921343e-6,4.849766758554365e-8,4.1577796575906215e-8,5.221677836335338e-8 +ByteStringToInteger/1/100,7.577194213463947e-6,7.57534056218818e-6,7.579309926712827e-6,6.880089208314028e-9,5.123131649071511e-9,9.591131309545506e-9 +ByteStringToInteger/1/101,7.880018518321776e-6,7.877826063519459e-6,7.881932581091137e-6,7.294897552415491e-9,6.411872163365441e-9,8.47278232360828e-9 +ByteStringToInteger/1/102,7.93582049428903e-6,7.932989885367817e-6,7.939050077866416e-6,9.675044233045898e-9,8.375577835756018e-9,1.2028112259125598e-8 +ByteStringToInteger/1/103,8.200290158382447e-6,8.195489061819898e-6,8.205910620474429e-6,1.741862458167932e-8,1.4746113033944051e-8,2.0350184517226653e-8 +ByteStringToInteger/1/104,8.166457234042796e-6,8.16451148418277e-6,8.168890752884598e-6,7.13456587563408e-9,5.966158926901858e-9,9.18015828410086e-9 +ByteStringToInteger/1/105,8.299121868235262e-6,8.289266001064777e-6,8.311407779382305e-6,3.661568321463068e-8,2.992384894151392e-8,5.707108392223225e-8 +ByteStringToInteger/1/106,8.28047643588687e-6,8.278903089368254e-6,8.282425250679318e-6,5.902199710630823e-9,4.152921527078204e-9,8.281411984288888e-9 +ByteStringToInteger/1/107,8.56799486134418e-6,8.565357102192396e-6,8.571578022317118e-6,1.006995649256923e-8,7.573943126373252e-9,1.4801840390541284e-8 +ByteStringToInteger/1/108,8.479634321181494e-6,8.47774887168059e-6,8.481847083880225e-6,7.643551152488482e-9,6.1297381818419175e-9,9.822605928957732e-9 +ByteStringToInteger/1/109,8.795484961122204e-6,8.79349160734309e-6,8.7990650762346e-6,8.859167314470298e-9,5.962544497196457e-9,1.5352630068531298e-8 +ByteStringToInteger/1/110,8.688528273494045e-6,8.686534384905502e-6,8.691079311633924e-6,7.535371875865206e-9,5.822982102443789e-9,1.02194409136631e-8 +ByteStringToInteger/1/111,8.977423838498326e-6,8.964380670354321e-6,8.99343667755621e-6,4.578436348379305e-8,3.351284415084522e-8,5.363846503434702e-8 +ByteStringToInteger/1/112,8.956993014504928e-6,8.954165677836616e-6,8.959987464772137e-6,9.572761467611985e-9,8.313949527788972e-9,1.1815149726048217e-8 +ByteStringToInteger/1/113,9.301372859279548e-6,9.273921153778532e-6,9.319918287210095e-6,7.673696681913501e-8,6.230924591303088e-8,8.805633723584781e-8 +ByteStringToInteger/1/114,9.147712664146794e-6,9.129651978029724e-6,9.167690355573367e-6,6.569709147175607e-8,5.5422892122180113e-8,7.69296756449991e-8 +ByteStringToInteger/1/115,9.40814377363994e-6,9.40593423512072e-6,9.411063081158586e-6,8.79906920553898e-9,7.30460649620491e-9,1.157954670651926e-8 +ByteStringToInteger/1/116,9.206919485545186e-6,9.195837289956924e-6,9.217302900328868e-6,3.69303067045618e-8,3.305419135954795e-8,4.078968910604744e-8 +ByteStringToInteger/1/117,9.583060558624658e-6,9.574958796055608e-6,9.596173003404506e-6,3.429061359331167e-8,2.3582356274938573e-8,4.572355342043411e-8 +ByteStringToInteger/1/118,9.61665226738628e-6,9.613808374809446e-6,9.61997646985451e-6,9.552796820882185e-9,8.267651672244388e-9,1.1431300713199321e-8 +ByteStringToInteger/1/119,9.887320090078028e-6,9.86919439070777e-6,9.90255912670151e-6,5.782161638111696e-8,4.8539619776683676e-8,6.46277474828728e-8 +ByteStringToInteger/1/120,9.748190290699893e-6,9.733879592368557e-6,9.763254523073094e-6,5.115783108851084e-8,4.885098761368412e-8,5.3564174959696077e-8 +ByteStringToInteger/1/121,1.011652578969166e-5,1.011335224101882e-5,1.0121276060393036e-5,1.2361851899464334e-8,7.85721174329016e-9,1.7688251662498237e-8 +ByteStringToInteger/1/122,9.926114342167573e-6,9.915983279682396e-6,9.934646956009625e-6,3.160949709963694e-8,2.72250326704799e-8,3.7778883660676444e-8 +ByteStringToInteger/1/123,1.0217011558533738e-5,1.019070204436008e-5,1.0240134053474132e-5,8.429454553010427e-8,7.628682787224271e-8,9.594410799552795e-8 +ByteStringToInteger/1/124,1.0084368240608022e-5,1.0068893957830166e-5,1.010015740580337e-5,5.518772593763505e-8,4.46901232323276e-8,6.892398665769233e-8 +ByteStringToInteger/1/125,1.0541384946095277e-5,1.0539384031408652e-5,1.0543378148318747e-5,6.485578294534729e-9,5.363823022614669e-9,8.166611983850926e-9 +ByteStringToInteger/1/126,1.0354612790599484e-5,1.035244284784026e-5,1.0356935986396603e-5,6.970911154837714e-9,5.789490009743062e-9,8.903845103281249e-9 +ByteStringToInteger/1/127,1.073181805683293e-5,1.0682593536152415e-5,1.0771543940017964e-5,1.4177153280127388e-7,1.0626537843124116e-7,1.6540973277517274e-7 +ByteStringToInteger/1/128,1.085208144624914e-5,1.083900185580729e-5,1.0862274137986409e-5,3.74751369736579e-8,3.161079143917776e-8,4.375965222228724e-8 +ByteStringToInteger/1/129,1.0684103505538067e-5,1.068081527937191e-5,1.0688394050865776e-5,1.2425183566529529e-8,9.578355953765492e-9,1.7154333700157672e-8 +ByteStringToInteger/1/130,1.0887888791312572e-5,1.0884794290549892e-5,1.0893830683029535e-5,1.3910951564433564e-8,8.720529452966791e-9,2.4041837719298204e-8 +ByteStringToInteger/1/131,1.1167091032175323e-5,1.1164502891028016e-5,1.1170437275812051e-5,9.91401205753596e-9,8.0082390463302e-9,1.2136867156794507e-8 +ByteStringToInteger/1/132,1.1029438467296693e-5,1.102525876748661e-5,1.1034793257708428e-5,1.6463704849167695e-8,1.3100252212804393e-8,2.0268652268836802e-8 +ByteStringToInteger/1/133,1.1223203134555979e-5,1.1218586767848516e-5,1.1227229350250691e-5,1.4915132535744224e-8,1.2409067123886518e-8,1.795684142994269e-8 +ByteStringToInteger/1/134,1.1799962823160787e-5,1.1783625376153236e-5,1.1810434201583419e-5,4.3158995411137694e-8,2.3862887426378373e-8,6.147058150175492e-8 +ByteStringToInteger/1/135,1.147943077460655e-5,1.1450840738441817e-5,1.1501555136555567e-5,8.84027465581514e-8,6.855520944501233e-8,1.0127886826015509e-7 +ByteStringToInteger/1/136,1.1530758002857774e-5,1.1526289256211563e-5,1.153463389858376e-5,1.3657423547624769e-8,1.1098614633342362e-8,1.7108713474516786e-8 +ByteStringToInteger/1/137,1.1933613608381427e-5,1.193109466503274e-5,1.1936810360609835e-5,9.709802933088607e-9,7.441219354100237e-9,1.3002361908542775e-8 +ByteStringToInteger/1/138,1.1632495212720255e-5,1.1629631458007336e-5,1.1635807773936229e-5,1.0574871889529967e-8,8.554679238983422e-9,1.4741910595157941e-8 +ByteStringToInteger/1/139,1.1850601811961872e-5,1.1847945410919437e-5,1.185319967025315e-5,8.95387553433706e-9,7.253375812835769e-9,1.1215001362572205e-8 +ByteStringToInteger/1/140,1.2437712273899263e-5,1.2405466862205153e-5,1.2470026706423976e-5,1.0651297685626391e-7,1.0306850904971048e-7,1.1000202266225507e-7 +ByteStringToInteger/1/141,1.2115821258784989e-5,1.2099362107969991e-5,1.2143351204019644e-5,7.19640652241863e-8,4.695884602503797e-8,9.578072792213128e-8 +ByteStringToInteger/1/142,1.2221596439751716e-5,1.2217156316114248e-5,1.2225909586098196e-5,1.4602486723865145e-8,1.1558855845408746e-8,1.9001917224533267e-8 +ByteStringToInteger/1/143,1.2612721648342746e-5,1.2609259202935028e-5,1.2617236576316217e-5,1.3515668618908302e-8,9.462612963694471e-9,1.942324506600038e-8 +ByteStringToInteger/1/144,1.2321979026328666e-5,1.2319054212661555e-5,1.2325506974211753e-5,1.0570947726126724e-8,8.526077447409299e-9,1.5708562914929343e-8 +ByteStringToInteger/1/145,1.2602773491074358e-5,1.2597742165951879e-5,1.2607641289804583e-5,1.7421754973791818e-8,1.4613813801206294e-8,2.0914779143046763e-8 +ByteStringToInteger/1/146,1.2788832146153527e-5,1.2757933138400185e-5,1.2823706305207584e-5,1.0412328863746825e-7,9.0253931241059e-8,1.1287880247384039e-7 +ByteStringToInteger/1/147,1.2499365679355539e-5,1.2494144521338672e-5,1.250563611568448e-5,1.8897239463935556e-8,1.3695392379227729e-8,2.842869646854055e-8 +ByteStringToInteger/1/148,1.282030461602394e-5,1.2815352931077709e-5,1.2825644274886306e-5,1.740738569702641e-8,1.4240392015560693e-8,2.3720745338337804e-8 +ByteStringToInteger/1/149,1.339160678315441e-5,1.3381259448841191e-5,1.3403364400396299e-5,3.6847976329262756e-8,3.232279971634181e-8,4.337911578804706e-8 +ByteStringToInteger/1/150,1.305313402739812e-5,1.3048213749046213e-5,1.3058192306710836e-5,1.6816982679479605e-8,1.416041790606484e-8,2.0062202404955513e-8 +IntegerToByteString/1/1/1,1.2479065465574002e-6,1.2468809231539123e-6,1.2489548206965188e-6,3.620002687541051e-9,3.1173746024738236e-9,4.3633691021252356e-9 +IntegerToByteString/1/2/2,1.30824964037409e-6,1.3064695091207311e-6,1.3097935245154976e-6,5.4119309214358605e-9,4.67399863190629e-9,6.4705550048574445e-9 +IntegerToByteString/1/3/3,1.3428239470788306e-6,1.3421715720760717e-6,1.3436277996335219e-6,2.5695518195212638e-9,2.095486611523959e-9,3.2350414894228007e-9 +IntegerToByteString/1/4/4,1.36297700208322e-6,1.3618598547485894e-6,1.3641842097607063e-6,3.9108440894317165e-9,3.371401297064048e-9,4.725164580417199e-9 +IntegerToByteString/1/5/5,1.4207489345457495e-6,1.419425050794591e-6,1.422134232587363e-6,4.530970732748354e-9,3.79389411779906e-9,5.522973602838248e-9 +IntegerToByteString/1/6/6,1.4421039191650461e-6,1.4406965787695526e-6,1.4434614855143114e-6,4.542549079019623e-9,3.854245501674908e-9,5.7063364841873256e-9 +IntegerToByteString/1/7/7,1.4642488017047784e-6,1.4627278331535781e-6,1.4657961114096099e-6,5.153843613574758e-9,4.4105935858515844e-9,6.250545964990656e-9 +IntegerToByteString/1/8/8,1.5193940063345957e-6,1.5184667413982773e-6,1.5202812646024781e-6,3.0674417967657127e-9,2.6069144355833233e-9,3.98454438858682e-9 +IntegerToByteString/1/9/9,1.5338473620763557e-6,1.5322121251534906e-6,1.5355204929267302e-6,5.533380527059138e-9,4.846090361519734e-9,6.391476056943295e-9 +IntegerToByteString/1/10/10,1.5735671616903073e-6,1.5725503087746444e-6,1.5745144816003575e-6,3.4987453179914115e-9,2.745209999628681e-9,4.632132309068634e-9 +IntegerToByteString/1/11/11,1.6075884098842842e-6,1.606434300397943e-6,1.6089419614927178e-6,4.325598375938803e-9,3.743144591388319e-9,5.1383924098848145e-9 +IntegerToByteString/1/12/12,1.6359486433869152e-6,1.634890279016869e-6,1.6372058346703747e-6,3.786703283572332e-9,3.0680105397565855e-9,4.757455683245981e-9 +IntegerToByteString/1/13/13,1.6808457887638445e-6,1.6785128078227384e-6,1.682804446794648e-6,7.506933775112375e-9,6.258344790260099e-9,8.740768091356448e-9 +IntegerToByteString/1/14/14,1.7080944947781585e-6,1.707301470242534e-6,1.7089370058259706e-6,2.7462505302613264e-9,2.3498169302726845e-9,3.2292269775425306e-9 +IntegerToByteString/1/15/15,1.7438399849960592e-6,1.742395315004362e-6,1.7452652635001413e-6,4.867049123836509e-9,4.3445990225177255e-9,5.741813683228017e-9 +IntegerToByteString/1/16/16,1.7628405377519387e-6,1.76158379234422e-6,1.7641098919008722e-6,4.3180873919008165e-9,3.631981165633402e-9,5.1752664429712716e-9 +IntegerToByteString/1/17/17,1.8110642307793812e-6,1.810314388763343e-6,1.8116987439252176e-6,2.3985880568462793e-9,1.9311660707599396e-9,3.063266543325942e-9 +IntegerToByteString/1/18/18,1.835351016585262e-6,1.8341737411137759e-6,1.8364501159624775e-6,3.768045635952278e-9,3.078112981328003e-9,4.6599893433909766e-9 +IntegerToByteString/1/19/19,1.8658403430869042e-6,1.8649222914547146e-6,1.8669808723741897e-6,3.454152859147014e-9,2.6796000890986216e-9,4.8505052509948205e-9 +IntegerToByteString/1/20/20,1.8906589573957772e-6,1.8896574580783708e-6,1.891775276557832e-6,3.512095486023715e-9,3.0017321680050857e-9,4.090428545471758e-9 +IntegerToByteString/1/21/21,1.9335422446044005e-6,1.9322288982603473e-6,1.934612037552528e-6,3.961504458397122e-9,3.052257600335248e-9,5.5563935532840915e-9 +IntegerToByteString/1/22/22,1.9701755279304988e-6,1.9685843421683023e-6,1.9715839459624e-6,5.072291907163977e-9,4.335735351004025e-9,6.6889524245356e-9 +IntegerToByteString/1/23/23,1.9994760744115398e-6,1.998592225119887e-6,2.000557194666345e-6,3.483916443305747e-9,2.856189553803956e-9,4.3601011620246086e-9 +IntegerToByteString/1/24/24,2.0377435342421914e-6,2.0369268168617707e-6,2.0385459942751127e-6,2.6940471029492175e-9,2.21472654146561e-9,3.3613433688489168e-9 +IntegerToByteString/1/25/25,2.0671157297120954e-6,2.0646641574967685e-6,2.068736043437266e-6,6.588058979692977e-9,4.995972480957358e-9,9.401979690705447e-9 +IntegerToByteString/1/26/26,2.0979363000308335e-6,2.096472802814344e-6,2.0998016733852626e-6,5.253424388518523e-9,4.219665019418798e-9,6.533063431999193e-9 +IntegerToByteString/1/27/27,2.1284025496867587e-6,2.127638213471397e-6,2.1292685995279313e-6,2.8542292965402982e-9,2.290592653541308e-9,3.6189665139012124e-9 +IntegerToByteString/1/28/28,2.1618882020906907e-6,2.1607310185554584e-6,2.162895497779194e-6,3.670108951427085e-9,3.191685831551191e-9,4.361277503017456e-9 +IntegerToByteString/1/29/29,2.190238774694947e-6,2.188525137787801e-6,2.191934719475901e-6,5.659785000705016e-9,4.8433430215509435e-9,6.505529445682263e-9 +IntegerToByteString/1/30/30,2.2286725837543965e-6,2.2241119840186913e-6,2.232921932287303e-6,1.4225379592357242e-8,1.3108324074346667e-8,1.591846506726027e-8 +IntegerToByteString/1/31/31,2.25649294583499e-6,2.2554800485296013e-6,2.257323420276508e-6,2.8756561231446343e-9,2.3700704367700005e-9,3.6820845511145994e-9 +IntegerToByteString/1/32/32,2.277365088818695e-6,2.2754055044787522e-6,2.278926226293756e-6,5.690968916040991e-9,4.877722391112737e-9,6.880861555675011e-9 +IntegerToByteString/1/33/33,2.2956614521704775e-6,2.2935717649168314e-6,2.297222480273479e-6,6.0082997621851905e-9,4.956122301137702e-9,7.924378149193452e-9 +IntegerToByteString/1/34/34,2.318273948998985e-6,2.316056906207717e-6,2.3204382230654093e-6,6.99921088559818e-9,6.093577688845395e-9,8.152921730654905e-9 +IntegerToByteString/1/35/35,2.395114762660074e-6,2.394206388939997e-6,2.3962263637079006e-6,3.3569263050916556e-9,2.9105200893360926e-9,4.313910061451907e-9 +IntegerToByteString/1/36/36,2.424939250255861e-6,2.422763664608877e-6,2.426916469457708e-6,7.174056061013113e-9,6.115260149377998e-9,8.460109881727302e-9 +IntegerToByteString/1/37/37,2.4546652988615004e-6,2.4528669628932073e-6,2.4565450867503174e-6,5.845693369029065e-9,5.126947950104329e-9,6.843525973612505e-9 +IntegerToByteString/1/38/38,2.481108801478971e-6,2.4791618031140593e-6,2.483344973739306e-6,7.302317224073848e-9,6.266497776834459e-9,8.804454946899111e-9 +IntegerToByteString/1/39/39,2.5084140921303388e-6,2.5063559341913785e-6,2.5108030260281337e-6,7.473298704415357e-9,6.473131156502869e-9,8.907188767073826e-9 +IntegerToByteString/1/40/40,2.555595007030685e-6,2.554201684649119e-6,2.5574157055976995e-6,5.373964763579693e-9,4.219327659398115e-9,7.281107314946811e-9 +IntegerToByteString/1/41/41,2.598646134265114e-6,2.597876444155091e-6,2.5997361557264356e-6,3.0320681669389683e-9,2.2903670611160585e-9,4.697849007099839e-9 +IntegerToByteString/1/42/42,2.641392588291512e-6,2.6400317442306675e-6,2.6427370189328263e-6,4.600344787287451e-9,3.905083112962057e-9,5.531090123704063e-9 +IntegerToByteString/1/43/43,2.6474644037150493e-6,2.6457703001002815e-6,2.648746442913937e-6,5.051931894123128e-9,4.301255255609014e-9,6.0392363193281474e-9 +IntegerToByteString/1/44/44,2.7007673381575633e-6,2.6994888387282032e-6,2.7019532504917447e-6,3.9851841322340255e-9,3.2933412514726513e-9,4.88870822148791e-9 +IntegerToByteString/1/45/45,2.752280651408491e-6,2.7508413992526665e-6,2.753686976059955e-6,4.767232101707312e-9,3.896011340190828e-9,5.79889278082864e-9 +IntegerToByteString/1/46/46,2.7720871641279567e-6,2.7711174807156682e-6,2.773190970969737e-6,3.4976261429525656e-9,2.9318083851543488e-9,4.236313498126796e-9 +IntegerToByteString/1/47/47,2.7992376657219223e-6,2.796735756484564e-6,2.801650362145135e-6,8.440817657809253e-9,6.8740022171337815e-9,1.0551084638275846e-8 +IntegerToByteString/1/48/48,2.8287988219189085e-6,2.8279095013415462e-6,2.8296913682166166e-6,3.1103183723811466e-9,2.622454657752447e-9,3.998915182047631e-9 +IntegerToByteString/1/49/49,2.8815005253792408e-6,2.8805865280235685e-6,2.882699605477545e-6,3.51295962460229e-9,2.6665953672225795e-9,4.732928590585924e-9 +IntegerToByteString/1/50/50,2.8964608153732556e-6,2.894523788979621e-6,2.8978201334360078e-6,5.0132753520915155e-9,3.6727640798566897e-9,8.097086783656055e-9 +IntegerToByteString/1/51/51,2.9338352345810624e-6,2.9326443046760605e-6,2.934885440377638e-6,3.595603451569159e-9,3.0130505444283887e-9,4.781123165619435e-9 +IntegerToByteString/1/52/52,2.974673526012143e-6,2.972812134811883e-6,2.9770895824330655e-6,6.900294797620283e-9,5.0619103081426465e-9,8.902010217781625e-9 +IntegerToByteString/1/53/53,3.000429033030394e-6,2.999059907795393e-6,3.002050367716072e-6,5.014539713339836e-9,4.299264812272659e-9,6.446290215712894e-9 +IntegerToByteString/1/54/54,3.0533684229973837e-6,3.051909837497548e-6,3.054878476461048e-6,4.581802248330714e-9,3.9107360247458695e-9,5.693060921434532e-9 +IntegerToByteString/1/55/55,3.0708354140475908e-6,3.0693588256293152e-6,3.072079271569716e-6,4.819196771034945e-9,3.990623675153727e-9,6.172213794185251e-9 +IntegerToByteString/1/56/56,3.1407171990109124e-6,3.139740000884925e-6,3.141541408437881e-6,3.1142564927030735e-9,2.509090265265479e-9,4.006297002302788e-9 +IntegerToByteString/1/57/57,3.1537264470269952e-6,3.152364380236346e-6,3.1555758415410146e-6,5.64748829539366e-9,3.793956116702008e-9,9.82419876648598e-9 +IntegerToByteString/1/58/58,3.1784256635717713e-6,3.1770126422815213e-6,3.180112097585014e-6,5.168410294398456e-9,4.161356916409835e-9,7.544159094398616e-9 +IntegerToByteString/1/59/59,3.2015527882120088e-6,3.1991358038362675e-6,3.2049832592208344e-6,9.96605092456714e-9,7.37356646948478e-9,1.6541638543282807e-8 +IntegerToByteString/1/60/60,3.2357737659185166e-6,3.2326713317057015e-6,3.23860704171311e-6,1.03345941480829e-8,8.746742755019238e-9,1.2630583843734424e-8 +IntegerToByteString/1/61/61,3.238805113948728e-6,3.2365216896090888e-6,3.2408570723010405e-6,7.673458749290167e-9,6.295759221804186e-9,9.530162150107378e-9 +IntegerToByteString/1/62/62,3.330504481130041e-6,3.327966018451742e-6,3.332747613754256e-6,8.183344030354276e-9,6.917199067535218e-9,9.868007119269933e-9 +IntegerToByteString/1/63/63,3.371760277037699e-6,3.37068406339537e-6,3.3727891713032657e-6,3.6327141428053125e-9,3.1835805324760973e-9,4.257385494984346e-9 +IntegerToByteString/1/64/64,3.407110464236947e-6,3.405613974394993e-6,3.4086658610457396e-6,5.061340235021778e-9,4.451839187295586e-9,5.917817029553714e-9 +IntegerToByteString/1/65/65,3.4441005084317318e-6,3.4426812943985246e-6,3.4454614089643e-6,4.55149769240723e-9,3.899194438834188e-9,5.457505644862865e-9 +IntegerToByteString/1/66/66,3.4843137296352594e-6,3.482991483604808e-6,3.486007664631794e-6,5.083567307730567e-9,4.139077121452812e-9,6.243689192597839e-9 +IntegerToByteString/1/67/67,3.5201533813621383e-6,3.517735493597322e-6,3.5236181305071656e-6,9.711577484343131e-9,7.472740462446057e-9,1.4538845686316008e-8 +IntegerToByteString/1/68/68,3.5383376077900473e-6,3.5347001153723573e-6,3.5419410514863746e-6,1.2351091715195374e-8,1.1008916912894475e-8,1.4601193021813388e-8 +IntegerToByteString/1/69/69,3.569895545983454e-6,3.5678040369761947e-6,3.5718619731418967e-6,6.915651270443228e-9,5.670264980292813e-9,8.433673235691445e-9 +IntegerToByteString/1/70/70,3.610270012802226e-6,3.608121923804706e-6,3.612011672962874e-6,6.811210027654897e-9,5.572690947109398e-9,8.273925006962089e-9 +IntegerToByteString/1/71/71,3.6553017172620938e-6,3.653633533747028e-6,3.6572325851888213e-6,6.028860551430258e-9,5.227931812421297e-9,7.076348823916807e-9 +IntegerToByteString/1/72/72,3.696706761694064e-6,3.6935391281258063e-6,3.700205237300596e-6,1.1237338735019322e-8,9.258610652941125e-9,1.469850826891609e-8 +IntegerToByteString/1/73/73,3.7359536724881578e-6,3.7341134231642694e-6,3.737867629151749e-6,6.483807863142272e-9,5.448721937155565e-9,7.843449681136148e-9 +IntegerToByteString/1/74/74,3.7592691640413895e-6,3.74897968666659e-6,3.7699000412975463e-6,3.4792157306293875e-8,3.063205273280613e-8,4.11923098366029e-8 +IntegerToByteString/1/75/75,3.873428604464893e-6,3.869764872367945e-6,3.876450076449412e-6,1.1130828971287906e-8,1.0070788124010987e-8,1.2768455833501429e-8 +IntegerToByteString/1/76/76,3.93453909717907e-6,3.93341026410779e-6,3.936625379671175e-6,4.980001133322727e-9,2.9425928063806487e-9,8.933586535491532e-9 +IntegerToByteString/1/77/77,3.967914581090439e-6,3.9667742808178795e-6,3.969356328618467e-6,4.5032566775297816e-9,3.713058465858562e-9,5.667404509756312e-9 +IntegerToByteString/1/78/78,3.981954923673109e-6,3.980868332567544e-6,3.983030092187157e-6,3.6478186521566053e-9,3.0952384093294765e-9,4.385674297389747e-9 +IntegerToByteString/1/79/79,4.009437443532556e-6,4.0000573841147e-6,4.016545569560491e-6,2.5757264788234506e-8,2.0795850205953247e-8,3.5784674896760036e-8 +IntegerToByteString/1/80/80,3.963658700800798e-6,3.958589402412844e-6,3.969101231398414e-6,1.7377608444619432e-8,1.51455232323092e-8,2.0431862835771538e-8 +IntegerToByteString/1/81/81,4.02925612242393e-6,4.026662598879544e-6,4.032573657555799e-6,1.0178913753701916e-8,8.754244570717143e-9,1.2498132517578387e-8 +IntegerToByteString/1/82/82,4.071071221840426e-6,4.069497257502354e-6,4.072930313373612e-6,5.688789784272398e-9,4.839792165255095e-9,7.036206847361746e-9 +IntegerToByteString/1/83/83,4.0985168000471075e-6,4.096755032107443e-6,4.100072830792835e-6,5.289938519082305e-9,4.389335950186374e-9,6.328563326094922e-9 +IntegerToByteString/1/84/84,4.136581385866146e-6,4.134503361890169e-6,4.139062844539311e-6,7.130963613854107e-9,5.6991136969379256e-9,9.695766416587502e-9 +IntegerToByteString/1/85/85,4.139825749115195e-6,4.129131866548152e-6,4.153674961310287e-6,4.16310694655757e-8,3.2631473677283447e-8,4.836543765720543e-8 +IntegerToByteString/1/86/86,4.1993695449285036e-6,4.196960193357211e-6,4.202619516026994e-6,9.638178322955892e-9,7.735744311297922e-9,1.1748925589610249e-8 +IntegerToByteString/1/87/87,4.205134699876245e-6,4.201490824265263e-6,4.209197207698846e-6,1.338039794120563e-8,1.1439324187258915e-8,1.674208075186022e-8 +IntegerToByteString/1/88/88,4.269911132408855e-6,4.265906159258458e-6,4.277469130969723e-6,1.7715595289269502e-8,1.1126299470669591e-8,3.4038919602321015e-8 +IntegerToByteString/1/89/89,4.346490534802258e-6,4.34392372858077e-6,4.349985228322912e-6,9.956527081007444e-9,7.92450467964042e-9,1.2109679938824454e-8 +IntegerToByteString/1/90/90,4.382570856264043e-6,4.381666836594926e-6,4.384629278922658e-6,4.46197252544076e-9,2.4618344848288878e-9,8.092411832802113e-9 +IntegerToByteString/1/91/91,4.412084627813175e-6,4.411023548412217e-6,4.413482486423181e-6,4.044882158547406e-9,3.198539793364077e-9,6.084365720204452e-9 +IntegerToByteString/1/92/92,4.467693706737072e-6,4.465428502177247e-6,4.469329979970037e-6,6.380304315402966e-9,4.958311134520793e-9,8.497200235582596e-9 +IntegerToByteString/1/93/93,4.463927244866817e-6,4.4623754519368945e-6,4.465610369577334e-6,5.790532811074524e-9,4.745959387232173e-9,7.473959268351952e-9 +IntegerToByteString/1/94/94,4.552266540470697e-6,4.549980385125168e-6,4.55445485739894e-6,7.3722863309340536e-9,6.125818847037335e-9,9.048207446570862e-9 +IntegerToByteString/1/95/95,4.5799921737288164e-6,4.5785691087095144e-6,4.582613096480873e-6,6.231123407946053e-9,3.795983373901499e-9,1.1744108483534982e-8 +IntegerToByteString/1/96/96,4.610464550445691e-6,4.608059189151316e-6,4.612848703022207e-6,7.905584990431534e-9,6.809329244261415e-9,9.560313509288514e-9 +IntegerToByteString/1/97/97,4.663223625464802e-6,4.661664205597688e-6,4.666057123994794e-6,6.946805809570596e-9,5.261621249109297e-9,9.744388624626005e-9 +IntegerToByteString/1/98/98,4.679500567995114e-6,4.677803649703511e-6,4.681465508585205e-6,6.2086140765904534e-9,4.996154807245495e-9,7.810679232859148e-9 +IntegerToByteString/1/99/99,4.7499386997041215e-6,4.747925869010435e-6,4.752321749591474e-6,7.63759517316896e-9,6.380438886383205e-9,9.294074791295282e-9 +IntegerToByteString/1/100/100,4.702805778310864e-6,4.6995375533700516e-6,4.707012974879381e-6,1.2740585920899813e-8,1.0467194969902366e-8,1.8034859674091832e-8 +IntegerToByteString/1/101/101,4.7298197906885565e-6,4.7260553891544025e-6,4.734557173232053e-6,1.3757842807355192e-8,1.1165540799714571e-8,1.7532585024651143e-8 +IntegerToByteString/1/102/102,4.865934752628999e-6,4.864523693078882e-6,4.867352004411887e-6,4.9065847610410626e-9,4.187839423230537e-9,5.934297058259534e-9 +IntegerToByteString/1/103/103,4.91511228098561e-6,4.913907681359764e-6,4.916984150592141e-6,4.840358675315679e-9,3.2805754108808227e-9,7.872971996260315e-9 +IntegerToByteString/1/104/104,4.97169562555214e-6,4.970371792661347e-6,4.973069740450919e-6,4.6267427040251e-9,3.5714333498657285e-9,6.496319764178239e-9 +IntegerToByteString/1/105/105,4.952307899228532e-6,4.950853114439753e-6,4.95423405292334e-6,5.360776640005898e-9,4.093895145892085e-9,8.169070474133463e-9 +IntegerToByteString/1/106/106,5.005053449630031e-6,5.0030197320706826e-6,5.007109543622979e-6,6.790901439079817e-9,5.897131789441064e-9,8.291036925992073e-9 +IntegerToByteString/1/107/107,5.0195998728681644e-6,5.013675612946902e-6,5.026487442137829e-6,2.1192140589616164e-8,1.768869275447943e-8,2.6446997073438456e-8 +IntegerToByteString/1/108/108,5.120301065997442e-6,5.118211247374302e-6,5.1225950746675784e-6,7.540240270475635e-9,6.587434374564385e-9,8.669493178559415e-9 +IntegerToByteString/1/109/109,5.1262953287368165e-6,5.124593677578363e-6,5.127898605437065e-6,5.5134922967807074e-9,4.726624687756357e-9,6.431607025769773e-9 +IntegerToByteString/1/110/110,5.175567070520231e-6,5.174262226248957e-6,5.176974275785049e-6,4.567371612484112e-9,3.5484030921573414e-9,6.7700435772179845e-9 +IntegerToByteString/1/111/111,5.242797330950858e-6,5.240929389334627e-6,5.245070353234334e-6,7.105177827628682e-9,5.314432939089071e-9,9.734128616327714e-9 +IntegerToByteString/1/112/112,5.281792615752149e-6,5.2803954660885435e-6,5.2836631144105795e-6,5.128963395109723e-9,4.09510219418579e-9,6.78077749271772e-9 +IntegerToByteString/1/113/113,5.271815328319793e-6,5.269403917247156e-6,5.274274097252727e-6,8.07713049446625e-9,6.979691987444745e-9,9.435179515989907e-9 +IntegerToByteString/1/114/114,5.292866614010391e-6,5.290675047657621e-6,5.2962859042921714e-6,8.746048598032544e-9,6.177239135313394e-9,1.2311109406598574e-8 +IntegerToByteString/1/115/115,5.418408179669217e-6,5.4160377848208894e-6,5.420698320876365e-6,7.965290646377994e-9,6.712368787464271e-9,9.818173814187815e-9 +IntegerToByteString/1/116/116,5.462056404375054e-6,5.460375659364055e-6,5.4633755475740965e-6,4.852853691894786e-9,3.914049098954019e-9,6.142312696853573e-9 +IntegerToByteString/1/117/117,5.4965995930378324e-6,5.495165084158004e-6,5.498597627466786e-6,5.512288635893332e-9,4.222126174182751e-9,7.917872582899026e-9 +IntegerToByteString/1/118/118,5.560809025609637e-6,5.55901522283091e-6,5.5634110084410755e-6,7.3518480514276846e-9,5.4297448150646565e-9,9.357871250616914e-9 +IntegerToByteString/1/119/119,5.57963676240437e-6,5.578372473383026e-6,5.581676870878874e-6,5.051360396729725e-9,3.715620524983234e-9,7.821773136996701e-9 +IntegerToByteString/1/120/120,5.621488672109606e-6,5.61985822334954e-6,5.6232949898694475e-6,6.08640027911666e-9,4.9467252052823014e-9,7.899507838531312e-9 +IntegerToByteString/1/121/121,5.54900420762234e-6,5.5426918074832525e-6,5.555793273525299e-6,2.1608315074279888e-8,1.852025443821008e-8,2.5426304174760327e-8 +IntegerToByteString/1/122/122,5.70542543542628e-6,5.7024789911946665e-6,5.7103951573489925e-6,1.2717900128135126e-8,9.208215501383198e-9,1.8272869437422226e-8 +IntegerToByteString/1/123/123,5.751266602191931e-6,5.7501049805063665e-6,5.752913463223548e-6,4.687148077079858e-9,3.968558832702138e-9,6.312578409898845e-9 +IntegerToByteString/1/124/124,5.812720159608868e-6,5.811646025712422e-6,5.814426196324072e-6,4.523336720921547e-9,3.395377429616951e-9,7.088830498318625e-9 +IntegerToByteString/1/125/125,5.825520987365933e-6,5.8244790139518455e-6,5.826694966949495e-6,3.849126840063589e-9,3.238547728460931e-9,4.7972540617163754e-9 +IntegerToByteString/1/126/126,5.8927055233986935e-6,5.89127854484196e-6,5.8941186439320395e-6,4.8230244964404755e-9,3.946940470025605e-9,6.3607084128765894e-9 +IntegerToByteString/1/127/127,5.893238151175809e-6,5.891467315634518e-6,5.894830580402222e-6,5.8535296042721046e-9,4.5624799322763035e-9,7.817564075727893e-9 +IntegerToByteString/1/128/128,5.983684078514688e-6,5.982495821863746e-6,5.985182094764514e-6,4.606389092134393e-9,3.3199483804795027e-9,6.886517227982432e-9 +IntegerToByteString/1/129/129,6.008338122707356e-6,6.007028953762186e-6,6.010012795243567e-6,5.21199099450017e-9,4.172775211226498e-9,7.108204846025557e-9 +IntegerToByteString/1/130/130,6.017819202295685e-6,6.014005235069912e-6,6.020968216850652e-6,1.107511523435149e-8,9.568975870339844e-9,1.3390488900237957e-8 +IntegerToByteString/1/131/131,6.153231997157474e-6,6.1516260640017155e-6,6.155368619200517e-6,6.06857227101038e-9,4.756934614452586e-9,8.663965427975375e-9 +IntegerToByteString/1/132/132,6.161203730440997e-6,6.159273669975544e-6,6.163500934281968e-6,7.461265916984658e-9,5.6257179877124765e-9,9.18221139029821e-9 +IntegerToByteString/1/133/133,6.196863950194993e-6,6.195336792880575e-6,6.198929099573383e-6,5.98859213325012e-9,4.463945666051409e-9,8.255035242903085e-9 +IntegerToByteString/1/134/134,6.218592076171021e-6,6.216732917969195e-6,6.220402095834698e-6,6.345355284675042e-9,5.316624304366324e-9,7.962422444545283e-9 +IntegerToByteString/1/135/135,6.304159150982787e-6,6.302720784488571e-6,6.308101766124238e-6,7.758079654788114e-9,4.123765747963288e-9,1.497496013935284e-8 +IntegerToByteString/1/136/136,6.372488953462389e-6,6.371230331066959e-6,6.374286049411423e-6,5.0531536751904554e-9,4.2347621008478525e-9,6.784336687309451e-9 +IntegerToByteString/1/137/137,6.421555542973609e-6,6.419985801435445e-6,6.42307856868336e-6,5.42590204438403e-9,4.6495510416853445e-9,6.772180370707568e-9 +IntegerToByteString/1/138/138,6.436591228598658e-6,6.4350171064744e-6,6.438527178232447e-6,6.062245775557328e-9,4.486552293811751e-9,1.0258238639927758e-8 +IntegerToByteString/1/139/139,6.478800199345058e-6,6.477464114297424e-6,6.480725889661412e-6,5.582056775661819e-9,4.319094452126782e-9,7.487051513750674e-9 +IntegerToByteString/1/140/140,6.5294378235567795e-6,6.5271859497717035e-6,6.53351629697209e-6,1.0033213197910927e-8,6.55565679988917e-9,1.5906599908530444e-8 +IntegerToByteString/1/141/141,6.54355884937352e-6,6.541809443383759e-6,6.5457483856316404e-6,6.67203372501996e-9,4.9033473881919455e-9,1.013890083232236e-8 +IntegerToByteString/1/142/142,6.746857917224943e-6,6.745811934195755e-6,6.747946246111164e-6,3.6998212838438145e-9,2.8575161758928438e-9,5.027540816890923e-9 +IntegerToByteString/1/143/143,6.739279205232513e-6,6.736488900789373e-6,6.742664316575953e-6,1.0379114781117136e-8,7.868037610494982e-9,1.54956137984809e-8 +IntegerToByteString/1/144/144,6.722904549255837e-6,6.711719126830637e-6,6.73182145151747e-6,3.549151485065078e-8,2.3764362292290017e-8,4.624832349103037e-8 +IntegerToByteString/1/145/145,6.703656443276486e-6,6.701467776899904e-6,6.707382812079001e-6,9.248887810473198e-9,5.780647621921494e-9,1.2656839136676949e-8 +IntegerToByteString/1/146/146,7.029247653614864e-6,7.004659531971662e-6,7.056783164163904e-6,8.6846155354275e-8,7.982689655935819e-8,9.391446212602202e-8 +IntegerToByteString/1/147/147,6.917507296298588e-6,6.916315435288098e-6,6.919121014842262e-6,4.812606037249841e-9,3.873039314231595e-9,7.243171890890291e-9 +IntegerToByteString/1/148/148,6.985394347044349e-6,6.982420437287656e-6,6.98742159145809e-6,8.09135057775006e-9,6.264304798764584e-9,1.0709479688286938e-8 +IntegerToByteString/1/149/149,7.007046138208899e-6,7.004497584658355e-6,7.009557117907913e-6,8.478670579745032e-9,7.142544572951651e-9,1.0279975505676944e-8 +IntegerToByteString/1/150/150,7.059444577783703e-6,7.0581237401653895e-6,7.060818833837886e-6,4.425034286191613e-9,3.495212114978699e-9,5.752178628277981e-9 +IfThenElse/100/100,1.0482372678144105e-6,1.047967404468712e-6,1.048506115873842e-6,9.194722729172903e-10,7.653320245991075e-10,1.1878050251045061e-9 +IfThenElse/100/500,1.045962246660351e-6,1.0455905808302692e-6,1.0463540750660614e-6,1.3812357614664035e-9,1.1424324747373943e-9,1.7029589180090625e-9 +IfThenElse/100/1000,1.044533388811948e-6,1.0440069111320472e-6,1.045060464705166e-6,1.7081196319087872e-9,1.3976427361067923e-9,2.0487878775497247e-9 +IfThenElse/100/2000,1.0439381099905245e-6,1.043446928817829e-6,1.044380370377673e-6,1.511914315061842e-9,1.285561021106431e-9,1.8714550187946335e-9 +IfThenElse/100/5000,1.0511520538881454e-6,1.0504477454683413e-6,1.0519494627970221e-6,2.427980852015882e-9,2.011367853349795e-9,3.0156410150182466e-9 +IfThenElse/100/10000,1.0413618337645457e-6,1.0408952353412707e-6,1.0418090068923702e-6,1.559650975524021e-9,1.2284257149260307e-9,2.089809300703741e-9 +IfThenElse/100/20000,1.040566544088841e-6,1.0394564507993538e-6,1.0413649483403908e-6,2.976958565670805e-9,2.5118403537110933e-9,3.597488194357241e-9 +IfThenElse/500/100,1.0435699270227055e-6,1.0430695570110193e-6,1.0440326712666628e-6,1.6098231746673137e-9,1.3414840578046778e-9,1.9321603780572333e-9 +IfThenElse/500/500,1.0428640316779915e-6,1.0424005482375784e-6,1.0432543335669576e-6,1.4347684925899868e-9,1.1923361879646237e-9,1.7596854087573511e-9 +IfThenElse/500/1000,1.0467778951257199e-6,1.0462219468028547e-6,1.0474114578988956e-6,2.03440156703384e-9,1.6345131377689937e-9,2.462393374885283e-9 +IfThenElse/500/2000,1.046024436614395e-6,1.0455702386026616e-6,1.0465036503089222e-6,1.6038788827116867e-9,1.3386439485021017e-9,1.931710065087412e-9 +IfThenElse/500/5000,1.045668420145778e-6,1.0449407345863318e-6,1.0464746264941448e-6,2.431872345408112e-9,1.9959972200797735e-9,2.9779424332781648e-9 +IfThenElse/500/10000,1.0435003125060456e-6,1.0430946812760668e-6,1.0438936471783265e-6,1.3087686196947983e-9,1.0696871478097568e-9,1.8310152268788312e-9 +IfThenElse/500/20000,1.0482088661873933e-6,1.0474415679596852e-6,1.0489910148500787e-6,2.7531828089537746e-9,2.287655334839866e-9,3.489752801186971e-9 +IfThenElse/1000/100,1.0421778709088415e-6,1.0413980323512493e-6,1.0429949107701954e-6,2.4961232980315853e-9,2.152463818089157e-9,2.914982333681182e-9 +IfThenElse/1000/500,1.0413518903564038e-6,1.0402417071766898e-6,1.042322347343093e-6,3.4696392592744936e-9,3.0875695978680638e-9,3.952848317006659e-9 +IfThenElse/1000/1000,1.0420876627159034e-6,1.0416871579707106e-6,1.0424020583012697e-6,1.1792841901397471e-9,9.348550258130597e-10,1.4154353609451465e-9 +IfThenElse/1000/2000,1.0427579000378522e-6,1.042146101389798e-6,1.043268481015742e-6,1.8085528769198459e-9,1.5618834644055128e-9,2.2505969280550674e-9 +IfThenElse/1000/5000,1.0437235038878992e-6,1.0432211399676406e-6,1.0442418770831588e-6,1.6864756731932459e-9,1.43513940022405e-9,2.005538411943055e-9 +IfThenElse/1000/10000,1.0455508167851647e-6,1.0448685216963144e-6,1.0461668047611765e-6,2.2247545062199958e-9,1.808999546340625e-9,2.72651385243071e-9 +IfThenElse/1000/20000,1.0425467330286121e-6,1.04167093599312e-6,1.0433269927526844e-6,2.757755592968301e-9,2.3781574142168247e-9,3.404308198458669e-9 +IfThenElse/2000/100,1.043094632871557e-6,1.0425719388135326e-6,1.0435979097869315e-6,1.7891074694171894e-9,1.4889042936535749e-9,2.2709413733239146e-9 +IfThenElse/2000/500,1.0468531832886047e-6,1.0459488263224276e-6,1.047748612533062e-6,2.944710107527194e-9,2.6499748879668275e-9,3.2914841674257387e-9 +IfThenElse/2000/1000,1.0419032960873232e-6,1.0415208215360964e-6,1.0422692646672395e-6,1.2012216249097019e-9,9.877185314797118e-10,1.5081947760518485e-9 +IfThenElse/2000/2000,1.0429006980169862e-6,1.0422985217968577e-6,1.0434793248805562e-6,1.9430005894112223e-9,1.59977865663386e-9,2.3985726408079864e-9 +IfThenElse/2000/5000,1.0426207843365234e-6,1.0421052257937789e-6,1.043107471593116e-6,1.7147419285606126e-9,1.4724642354928845e-9,1.997689687376472e-9 +IfThenElse/2000/10000,1.0432031908096724e-6,1.0427595413698403e-6,1.0435642980611972e-6,1.3497910645304328e-9,1.105358710785018e-9,1.6630413129217023e-9 +IfThenElse/2000/20000,1.0441451151547586e-6,1.0435778871662973e-6,1.0446112457544401e-6,1.6714769513102774e-9,1.4264924726868685e-9,2.045728810465687e-9 +IfThenElse/5000/100,1.0436577174733463e-6,1.0431551757689892e-6,1.0441653999154273e-6,1.7186316472593476e-9,1.4338026663067633e-9,2.081976033834723e-9 +IfThenElse/5000/500,1.0435694285827677e-6,1.0431934926046345e-6,1.0439113765501585e-6,1.1623768493773825e-9,9.573391805366022e-10,1.5705081422880469e-9 +IfThenElse/5000/1000,1.0433851511676505e-6,1.0427406697755703e-6,1.0440995030853946e-6,2.2533921624343205e-9,1.9662773110269883e-9,2.60612816906944e-9 +IfThenElse/5000/2000,1.0436443356442474e-6,1.042850477499856e-6,1.0442556722745355e-6,2.3724160219476964e-9,1.8844348796527613e-9,3.063855624704688e-9 +IfThenElse/5000/5000,1.04568273586576e-6,1.0451109979355014e-6,1.046180405737613e-6,1.7708343391740032e-9,1.5135101119683087e-9,2.168955185062776e-9 +IfThenElse/5000/10000,1.0440930558262057e-6,1.0434598535958133e-6,1.0448067461470625e-6,2.4220998759761076e-9,2.0813657497417188e-9,2.8332455618330905e-9 +IfThenElse/5000/20000,1.0456154073770452e-6,1.0451925115568344e-6,1.0459857857253152e-6,1.2975488893466102e-9,1.0143998972519192e-9,1.736547560713828e-9 +IfThenElse/10000/100,1.0419618315875756e-6,1.0413571877294249e-6,1.0425402911612868e-6,2.065592123048893e-9,1.7139123438063142e-9,2.5463996569948362e-9 +IfThenElse/10000/500,1.045055167122836e-6,1.0445794890638186e-6,1.0455567444394684e-6,1.6241082882049682e-9,1.3829529149574791e-9,1.893316307655821e-9 +IfThenElse/10000/1000,1.0450577601797743e-6,1.0445038169638996e-6,1.0454405543789893e-6,1.52844131552991e-9,1.09158171344806e-9,2.11197276630684e-9 +IfThenElse/10000/2000,1.049061628761373e-6,1.0481083205022387e-6,1.049851301939127e-6,3.0058730481726e-9,2.600497739467638e-9,3.45862832846453e-9 +IfThenElse/10000/5000,1.0450880839933278e-6,1.044457221456594e-6,1.0455846957068116e-6,1.794136015475766e-9,1.2861546745834517e-9,2.496940143786216e-9 +IfThenElse/10000/10000,1.0462146983185818e-6,1.0457057205632377e-6,1.0467888736979622e-6,1.7217862972742614e-9,1.4890840767956826e-9,2.1286621093736486e-9 +IfThenElse/10000/20000,1.04474948477278e-6,1.0441706776971542e-6,1.0452938395652985e-6,1.9828561823606153e-9,1.6353202995569556e-9,2.3862319108613514e-9 +IfThenElse/20000/100,1.0394671286834477e-6,1.0389409939174759e-6,1.0399110719855334e-6,1.6116306540932124e-9,1.3265727430103945e-9,2.031154129762268e-9 +IfThenElse/20000/500,1.0405448197977211e-6,1.039944472682769e-6,1.0410928837621244e-6,1.916314096032381e-9,1.6534931151117446e-9,2.2883436740215044e-9 +IfThenElse/20000/1000,1.0434563606451343e-6,1.0430086922417381e-6,1.043790635809253e-6,1.3640220716854795e-9,1.0569943815918228e-9,1.8822970710540167e-9 +IfThenElse/20000/2000,1.0527965232628603e-6,1.0516032366265269e-6,1.0537130442355108e-6,3.455540378332666e-9,2.9280999791556915e-9,3.973024567224029e-9 +IfThenElse/20000/5000,1.0451395321078582e-6,1.0448806957780937e-6,1.045416102606809e-6,9.381155946877254e-10,7.606203848238187e-10,1.228704112357879e-9 +IfThenElse/20000/10000,1.0432639593980545e-6,1.0427505011639717e-6,1.043881246998251e-6,1.8539312599049551e-9,1.536026734120419e-9,2.2504070232911654e-9 +IfThenElse/20000/20000,1.0456431292301976e-6,1.0453662832702102e-6,1.0459600269864807e-6,1.0082214801220278e-9,8.027233252535245e-10,1.2960091183096012e-9 +IfThenElse/100/100,1.0479497182126376e-6,1.0473803165094487e-6,1.0486530895885937e-6,2.1228112192017026e-9,1.6363949335533427e-9,2.7957595684381207e-9 +IfThenElse/100/500,1.0469772287490396e-6,1.0464915403466553e-6,1.0476097599728447e-6,1.864327261610261e-9,1.596543855049983e-9,2.2534666422880337e-9 +IfThenElse/100/1000,1.0433236279193188e-6,1.042636159516762e-6,1.0439042709290572e-6,2.103575225846089e-9,1.6063134796917528e-9,2.6592095879820486e-9 +IfThenElse/100/2000,1.044896732777306e-6,1.0442893460925815e-6,1.045477021770958e-6,1.913721787090574e-9,1.5608713060726547e-9,2.3296856085364505e-9 +IfThenElse/100/5000,1.044781093173249e-6,1.0441529291299132e-6,1.0454439276555376e-6,2.1387837986155407e-9,1.7919106113914515e-9,2.5545377189400805e-9 +IfThenElse/100/10000,1.0466968903376365e-6,1.0459208350866365e-6,1.0474369786636006e-6,2.5314678463089533e-9,2.0363681524464784e-9,3.1374911288683867e-9 +IfThenElse/100/20000,1.0434692105261097e-6,1.042986198889516e-6,1.044063029875595e-6,1.8554727728324514e-9,1.4328038197327101e-9,2.404658430213431e-9 +IfThenElse/500/100,1.0441401621456787e-6,1.0433264743748935e-6,1.0450018474277107e-6,2.8369281013531296e-9,2.522001554042465e-9,3.207573386594401e-9 +IfThenElse/500/500,1.0458181328747313e-6,1.0452704482753799e-6,1.0463688516847262e-6,1.802515345716791e-9,1.5154093916978604e-9,2.1077651447630817e-9 +IfThenElse/500/1000,1.0435395167138339e-6,1.0426877454275984e-6,1.0442155372309548e-6,2.6253494006996245e-9,2.3264164988357892e-9,3.073296982696518e-9 +IfThenElse/500/2000,1.0424321800945471e-6,1.0416268656354844e-6,1.0433433014001177e-6,3.1274433306955107e-9,2.4932133701008203e-9,3.872392744945023e-9 +IfThenElse/500/5000,1.0436759909280048e-6,1.043160404765066e-6,1.0442798087389328e-6,1.9155345363066384e-9,1.629685648897797e-9,2.3373623792872893e-9 +IfThenElse/500/10000,1.0429929878204379e-6,1.0421619894383205e-6,1.043830321098108e-6,2.8144811771334625e-9,2.3445464238749593e-9,3.763597153551307e-9 +IfThenElse/500/20000,1.0445415436279942e-6,1.04379329520751e-6,1.045596512544807e-6,2.96712256122022e-9,2.4809971578643543e-9,3.5444937909824893e-9 +IfThenElse/1000/100,1.0426393245139454e-6,1.0418908911205519e-6,1.043574803340477e-6,2.8252500583131324e-9,2.4468484371229614e-9,3.269011107412349e-9 +IfThenElse/1000/500,1.0454172646296806e-6,1.0442896323010749e-6,1.0463230729853112e-6,3.4396575054568403e-9,2.662730760609159e-9,4.395773157028799e-9 +IfThenElse/1000/1000,1.0421632463382453e-6,1.0414760046347463e-6,1.042740141257534e-6,2.0203162253916915e-9,1.6012207163234066e-9,2.6083951750044295e-9 +IfThenElse/1000/2000,1.0451668780443075e-6,1.0446578155010396e-6,1.045704558929915e-6,1.8586365590455917e-9,1.577928910981605e-9,2.191235482435673e-9 +IfThenElse/1000/5000,1.0446815857890986e-6,1.0437432015838466e-6,1.0457590254806937e-6,3.616112474380531e-9,3.164108572254461e-9,4.380420396034865e-9 +IfThenElse/1000/10000,1.0444563211487781e-6,1.0440762804604152e-6,1.0448644769653243e-6,1.3653359009200102e-9,1.115894675221295e-9,1.7283730979564322e-9 +IfThenElse/1000/20000,1.0473789656495673e-6,1.0467428847515668e-6,1.0479732667548192e-6,2.1318969509077297e-9,1.7801575832574438e-9,2.927273404328254e-9 +IfThenElse/2000/100,1.0441190081227715e-6,1.0433438962571963e-6,1.044860391073853e-6,2.501898362061095e-9,2.0789864648113345e-9,3.0206291247318304e-9 +IfThenElse/2000/500,1.041055508046419e-6,1.0405392025359484e-6,1.041600203920548e-6,1.7979538123812586e-9,1.4767008192399232e-9,2.1894941963336706e-9 +IfThenElse/2000/1000,1.045923808159094e-6,1.0454682894401321e-6,1.0464657693941552e-6,1.5979635570161836e-9,1.2267689783817513e-9,2.1166025470291824e-9 +IfThenElse/2000/2000,1.0456952236160277e-6,1.0450155896306205e-6,1.0463036990170948e-6,2.1746043706353e-9,1.8247525574499694e-9,2.617942369613063e-9 +IfThenElse/2000/5000,1.045140193947603e-6,1.044340060310727e-6,1.0461585702066164e-6,3.0814131440746296e-9,2.6907380395356813e-9,3.5762478764789395e-9 +IfThenElse/2000/10000,1.0415902138522438e-6,1.040665220967304e-6,1.042547687135147e-6,3.2561995629842547e-9,2.789130197729114e-9,3.811173616091693e-9 +IfThenElse/2000/20000,1.04065115283981e-6,1.0400131041360067e-6,1.0412184434102364e-6,2.029894384845523e-9,1.7164693948580433e-9,2.4213969376373695e-9 +IfThenElse/5000/100,1.0413824146563364e-6,1.0405765431753803e-6,1.0421105536623046e-6,2.541538175367716e-9,2.194189250792519e-9,3.0056265925212717e-9 +IfThenElse/5000/500,1.0395942488827035e-6,1.0386753552344403e-6,1.0405161643772263e-6,3.0335959871559844e-9,2.5923002811022486e-9,3.6066410394035465e-9 +IfThenElse/5000/1000,1.044629712645263e-6,1.044194963922333e-6,1.0450940759485926e-6,1.4778500747290773e-9,1.2477389733020312e-9,1.8574863219116995e-9 +IfThenElse/5000/2000,1.046866891018772e-6,1.0462751465689282e-6,1.047395475878858e-6,1.8132168719068786e-9,1.5007261932826272e-9,2.2568384063131443e-9 +IfThenElse/5000/5000,1.0468619737345723e-6,1.046423287471574e-6,1.0474302675946585e-6,1.6680583172952893e-9,1.4087805207840266e-9,2.068755308574006e-9 +IfThenElse/5000/10000,1.046009707987818e-6,1.0452903585229744e-6,1.0467450996481868e-6,2.461425262811759e-9,2.1190755051961996e-9,2.9457158780304543e-9 +IfThenElse/5000/20000,1.0441118914368085e-6,1.043524097203367e-6,1.0446070296490728e-6,1.9411291321124215e-9,1.5035595479999598e-9,2.4899476044228885e-9 +IfThenElse/10000/100,1.045424501276016e-6,1.0448576545221406e-6,1.0459315661803216e-6,1.8141381049234246e-9,1.4946234142996338e-9,2.2256450171797693e-9 +IfThenElse/10000/500,1.0449880046978072e-6,1.0443105186867071e-6,1.0456499593193867e-6,2.1632778408479593e-9,1.8213922680807874e-9,2.707423349651216e-9 +IfThenElse/10000/1000,1.0459974716980297e-6,1.0454772838596447e-6,1.0465720274355722e-6,1.8537936772856303e-9,1.5800298551489225e-9,2.2917967395763915e-9 +IfThenElse/10000/2000,1.052012595211857e-6,1.0510591692681588e-6,1.0527402048898497e-6,2.8614058550235583e-9,2.261560639705579e-9,3.5737720626401304e-9 +IfThenElse/10000/5000,1.0468396356782199e-6,1.0462054745974754e-6,1.0474319948014811e-6,2.039399315813698e-9,1.6654554200855764e-9,2.5694019468644003e-9 +IfThenElse/10000/10000,1.0457649763952472e-6,1.045491884134421e-6,1.0459822427615374e-6,8.081858372528114e-10,6.121529406823672e-10,1.0488101141152292e-9 +IfThenElse/10000/20000,1.044534565840324e-6,1.0440609685818995e-6,1.0448594326234846e-6,1.270729258744894e-9,9.664641639415025e-10,2.0075258333678227e-9 +IfThenElse/20000/100,1.0474049657232976e-6,1.046890615003359e-6,1.047884202588523e-6,1.6543867535305128e-9,1.3358878848202311e-9,2.205495247712311e-9 +IfThenElse/20000/500,1.0423465190609737e-6,1.0413881730734908e-6,1.043438359269145e-6,3.5914905883924943e-9,2.8673361218279904e-9,4.502291327631717e-9 +IfThenElse/20000/1000,1.0414261002159973e-6,1.0407172981521764e-6,1.0421741099920358e-6,2.4101714429502864e-9,1.9958310361844373e-9,2.9485289164253594e-9 +IfThenElse/20000/2000,1.0421319300486014e-6,1.041659378567891e-6,1.042688917558734e-6,1.6874655916919537e-9,1.4347887554150773e-9,2.08300930222042e-9 +IfThenElse/20000/5000,1.0445954031925158e-6,1.0439936924614018e-6,1.0451940278406417e-6,1.9122493939239234e-9,1.6577156919059848e-9,2.281587712691517e-9 +IfThenElse/20000/10000,1.0440798744965186e-6,1.0435711622335897e-6,1.0445608869128458e-6,1.6744388927930983e-9,1.4150556111829483e-9,1.9863787542260946e-9 +IfThenElse/20000/20000,1.0430664958083243e-6,1.042504024597084e-6,1.04365200048908e-6,1.9147875781046957e-9,1.67971648693605e-9,2.2053543688443533e-9 +AppendByteString/1/1,8.654173751618703e-7,8.65059909099946e-7,8.65790745827826e-7,1.2220850967229852e-9,1.0307790260059628e-9,1.4968809280369986e-9 +AppendByteString/1/250,8.666012304665988e-7,8.661112580025473e-7,8.671367835589224e-7,1.7819689334150646e-9,1.5131681817817326e-9,2.124265400935068e-9 +AppendByteString/1/500,8.66186699116723e-7,8.657646180423378e-7,8.665963348064929e-7,1.3177762175004216e-9,1.128286810581618e-9,1.5850426851535061e-9 +AppendByteString/1/750,8.673158782027229e-7,8.668939070012743e-7,8.677555060397798e-7,1.4696386646889396e-9,1.246874928122585e-9,1.800491126990663e-9 +AppendByteString/1/1000,8.677602710008145e-7,8.671631005212438e-7,8.682251362099627e-7,1.7846124725786966e-9,1.4698493491051776e-9,2.1979583596432265e-9 +AppendByteString/1/1250,8.701326505205158e-7,8.698567664134444e-7,8.704472131953617e-7,9.540902928624742e-10,8.151142838160413e-10,1.137277189651879e-9 +AppendByteString/1/1500,8.668445273757906e-7,8.665238142976985e-7,8.672113066065477e-7,1.1011874110976857e-9,9.422774032400166e-10,1.287328240224893e-9 +AppendByteString/1/1750,8.704222808910761e-7,8.700326160519646e-7,8.709692709151742e-7,1.5675194284441086e-9,1.1826720608375273e-9,2.137359843963095e-9 +AppendByteString/1/2000,8.664330317603464e-7,8.660318752068302e-7,8.667897503624502e-7,1.2436041802960071e-9,1.0111703031733184e-9,1.5875707445025061e-9 +AppendByteString/1/2250,8.6251431435987e-7,8.620711268662004e-7,8.630444984419785e-7,1.7180387174402715e-9,1.4004540661951797e-9,2.140324479020807e-9 +AppendByteString/1/2500,8.689246896067467e-7,8.683902898223906e-7,8.694503730766292e-7,1.744167587939547e-9,1.5079730020095049e-9,2.069648498163903e-9 +AppendByteString/1/2750,8.67594376409562e-7,8.669442188221739e-7,8.682770771733606e-7,2.3392899067402073e-9,2.0083961361156835e-9,2.6513549734419973e-9 +AppendByteString/1/3000,8.682698160887887e-7,8.676643018854858e-7,8.689783247183596e-7,2.1931480949876505e-9,1.940323904405121e-9,2.5494779603815612e-9 +AppendByteString/1/3250,8.676380701223897e-7,8.671802241951821e-7,8.680437189396021e-7,1.4294135612307687e-9,1.2129754012125037e-9,1.8186221356437237e-9 +AppendByteString/1/3500,8.672402847702538e-7,8.666216852679871e-7,8.678267852445443e-7,2.1248914969459364e-9,1.8088741748901623e-9,2.5231335559690276e-9 +AppendByteString/1/3750,8.685560009211805e-7,8.681850700198648e-7,8.689210983036997e-7,1.2385473493412187e-9,1.04124531733426e-9,1.5057144621578944e-9 +AppendByteString/1/4000,8.671978407929435e-7,8.667778817585993e-7,8.677187105839939e-7,1.6087306993436832e-9,1.3477785628873867e-9,1.950330647057961e-9 +AppendByteString/1/4250,8.725594494323762e-7,8.720717714512103e-7,8.731008680815845e-7,1.6539313761891473e-9,1.4047990289657368e-9,1.9530243879770445e-9 +AppendByteString/1/4500,8.662625852452516e-7,8.655799566188045e-7,8.671166517256886e-7,2.6777227610768353e-9,2.3455601197114852e-9,3.1256620413649755e-9 +AppendByteString/1/4750,8.656308702366385e-7,8.649626414756996e-7,8.664227714921564e-7,2.6270424767065183e-9,2.159914162288808e-9,3.2326161775425063e-9 +AppendByteString/1/5000,8.678582944863163e-7,8.673528987621903e-7,8.683466777444054e-7,1.714381511354283e-9,1.4366810654651633e-9,2.0521328992851167e-9 +AppendByteString/250/1,8.684126220112198e-7,8.679953432296493e-7,8.688703321944875e-7,1.4579654033068157e-9,1.2305816979933713e-9,1.8061015519804512e-9 +AppendByteString/250/250,1.0046310464618115e-6,1.0040991586862339e-6,1.0051013519144517e-6,1.7196652273781242e-9,1.416764840315058e-9,2.1437782407794997e-9 +AppendByteString/250/500,1.052749820855714e-6,1.0517610366468676e-6,1.0537870205939534e-6,3.3567087604068558e-9,2.894663342587455e-9,3.8481262487620635e-9 +AppendByteString/250/750,1.0712033239511901e-6,1.0703279134103886e-6,1.0719992776192472e-6,2.8692121212948303e-9,2.4644120937519082e-9,3.3831398738787814e-9 +AppendByteString/250/1000,1.1254649496267918e-6,1.124601000139524e-6,1.126333482326242e-6,2.9581007513563067e-9,2.640797074773574e-9,3.308013296309307e-9 +AppendByteString/250/1250,1.1543978649882253e-6,1.1539107815724538e-6,1.1548049324254217e-6,1.5140149577189115e-9,1.2653669879485968e-9,1.903575500543775e-9 +AppendByteString/250/1500,1.2102733451464857e-6,1.2098281795111082e-6,1.2107462502355312e-6,1.5890152158360218e-9,1.3036225365931862e-9,1.978142060554874e-9 +AppendByteString/250/1750,1.255810365674656e-6,1.2551565455778525e-6,1.2564385901425357e-6,2.261324586966446e-9,1.934070041563469e-9,2.9534341738328803e-9 +AppendByteString/250/2000,1.295211591806016e-6,1.2944959654638415e-6,1.2958117861262313e-6,2.211293984741084e-9,1.8438446257581155e-9,2.743708842954751e-9 +AppendByteString/250/2250,1.3326925103344712e-6,1.331233707448499e-6,1.3342303633152138e-6,4.830042178533722e-9,4.246761248466502e-9,5.5012522438474125e-9 +AppendByteString/250/2500,1.3701513575316365e-6,1.3694976850333216e-6,1.3708162325211934e-6,2.207537864219698e-9,1.875592474295736e-9,2.6498495682163722e-9 +AppendByteString/250/2750,1.4133046123113933e-6,1.4128828543473008e-6,1.4137235269472909e-6,1.4986314950254862e-9,1.2254183100607308e-9,1.8180681360403922e-9 +AppendByteString/250/3000,1.4501960622625584e-6,1.4496730893732177e-6,1.4508311476999704e-6,1.9671486542062165e-9,1.5588355130516633e-9,2.906119237297817e-9 +AppendByteString/250/3250,1.4916732051126566e-6,1.4909368841439257e-6,1.492434882683709e-6,2.5236048891063773e-9,2.1451773871801032e-9,2.9630306231817934e-9 +AppendByteString/250/3500,1.5302292387230965e-6,1.5294017377591397e-6,1.531361735378707e-6,3.2127572855458687e-9,2.8162413669616786e-9,3.672316604407444e-9 +AppendByteString/250/3750,1.5745076917750728e-6,1.5740514841855784e-6,1.5750718162679803e-6,1.651915582779145e-9,1.2225242393574084e-9,2.2962946165075595e-9 +AppendByteString/250/4000,1.6094181727356412e-6,1.6089608717248993e-6,1.6098284392264299e-6,1.4894493567588546e-9,1.2508080099457555e-9,1.8055508444275287e-9 +AppendByteString/250/4250,1.6486966347978195e-6,1.648089543696725e-6,1.649467223586183e-6,2.3384345658965225e-9,1.814815619564836e-9,3.2281601348449434e-9 +AppendByteString/250/4500,1.6882289183910339e-6,1.6878971714771489e-6,1.6885516477033646e-6,1.1300122104071838e-9,9.782468495982285e-10,1.342774153156596e-9 +AppendByteString/250/4750,1.7297994549629715e-6,1.7294294817953193e-6,1.7302054006072998e-6,1.2572773170180915e-9,1.0447514001713678e-9,1.5784140902438631e-9 +AppendByteString/250/5000,1.7728154502298256e-6,1.7723403359640559e-6,1.7732220962379059e-6,1.468181712674581e-9,1.2077051804537383e-9,1.90085267344771e-9 +AppendByteString/500/1,8.670170137468717e-7,8.666037819687208e-7,8.674110902865503e-7,1.3174331485141822e-9,1.1322149451081565e-9,1.5930695061817434e-9 +AppendByteString/500/250,1.0453426523734955e-6,1.0448001470638423e-6,1.0457677002871539e-6,1.6029751329014375e-9,1.3241894568027778e-9,2.0055470801859024e-9 +AppendByteString/500/500,1.057137051015299e-6,1.0565521790137163e-6,1.057832303777905e-6,2.1054489094953366e-9,1.7964010776713306e-9,2.4974424722578805e-9 +AppendByteString/500/750,1.1197861029993323e-6,1.1192716175377222e-6,1.1202933744572049e-6,1.7420377437244793e-9,1.4584765110374763e-9,2.1917049794057663e-9 +AppendByteString/500/1000,1.1469912432215619e-6,1.1463467905640897e-6,1.147581183844337e-6,2.1299251419478744e-9,1.7809301260497803e-9,2.819019034805737e-9 +AppendByteString/500/1250,1.1954781209682521e-6,1.1948419767613795e-6,1.1961264878232782e-6,2.1874768745678778e-9,1.8981364324186623e-9,2.5592935012660045e-9 +AppendByteString/500/1500,1.2516535745018024e-6,1.250829305449401e-6,1.2525806236496423e-6,2.978507352508475e-9,2.573495688826586e-9,3.4571869582125548e-9 +AppendByteString/500/1750,1.298881605310434e-6,1.2981033908101306e-6,1.2995737845243147e-6,2.4479242799417073e-9,2.00333730367042e-9,3.0153211357294435e-9 +AppendByteString/500/2000,1.3292107641480522e-6,1.3286413694575817e-6,1.3297650349638843e-6,1.8418819527619065e-9,1.5837347876530128e-9,2.176073201958962e-9 +AppendByteString/500/2250,1.3657876195332994e-6,1.3650062375088912e-6,1.3666251733236866e-6,2.6952815531056967e-9,2.2952018910096505e-9,3.164290447918228e-9 +AppendByteString/500/2500,1.4070354725382612e-6,1.4060638300220288e-6,1.408035007757884e-6,3.237449976439724e-9,2.787866869872841e-9,3.786397694325668e-9 +AppendByteString/500/2750,1.448917877427385e-6,1.4446247701183891e-6,1.4541486749136321e-6,1.624939606735183e-8,1.3658450770263655e-8,2.2816088163556833e-8 +AppendByteString/500/3000,1.4865259274334007e-6,1.483103295089711e-6,1.4903603217417505e-6,1.2043404168571708e-8,9.660540747128594e-9,1.3466861619903262e-8 +AppendByteString/500/3250,1.5199173066668218e-6,1.5194373793080036e-6,1.5204563359477619e-6,1.6691778183315006e-9,1.3632626115798392e-9,2.1110957311868306e-9 +AppendByteString/500/3500,1.584235978953156e-6,1.5794006516749944e-6,1.5877745609067186e-6,1.3671805034228802e-8,9.943106005490435e-9,1.6350500627976616e-8 +AppendByteString/500/3750,1.5925114196640309e-6,1.5920711272608492e-6,1.592935376434485e-6,1.5000984895382321e-9,1.2796718875578265e-9,1.813569449674852e-9 +AppendByteString/500/4000,1.6327645777388798e-6,1.632413883534374e-6,1.6330939936740737e-6,1.1742593331706986e-9,9.34639269625508e-10,1.563149918170725e-9 +AppendByteString/500/4250,1.6657561280477389e-6,1.6652327765533633e-6,1.6662280063067544e-6,1.6876768701795383e-9,1.421793660799423e-9,2.071003077800733e-9 +AppendByteString/500/4500,1.7098898762128637e-6,1.7094098236018125e-6,1.710389372313318e-6,1.5560717919332713e-9,1.303074342774399e-9,1.9219790683177125e-9 +AppendByteString/500/4750,1.7474478326594718e-6,1.7467135860516636e-6,1.7480907220567813e-6,2.4179083579096667e-9,1.9446075523799595e-9,3.090458854528693e-9 +AppendByteString/500/5000,1.7853796009472645e-6,1.7846670164220804e-6,1.786321753589329e-6,2.6302378189220865e-9,2.074093933892274e-9,3.3987143683525283e-9 +AppendByteString/750/1,8.693075177768422e-7,8.685112745618948e-7,8.701612171987952e-7,2.9254935477326767e-9,2.5868828300494762e-9,3.3432371561676126e-9 +AppendByteString/750/250,1.0631239540730487e-6,1.0619813413450905e-6,1.0647959105676446e-6,4.463793439345179e-9,3.076556238514785e-9,6.225413292569656e-9 +AppendByteString/750/500,1.1295678550178698e-6,1.1261377818943245e-6,1.1318814400968564e-6,9.531110926149403e-9,7.1924151874457524e-9,1.15180466392084e-8 +AppendByteString/750/750,1.1737957533863055e-6,1.1732736267314935e-6,1.1745360264141044e-6,2.0941185478330554e-9,1.7083857751393055e-9,2.5554058060935607e-9 +AppendByteString/750/1000,1.2009533171261888e-6,1.2002097864403833e-6,1.2017060228325011e-6,2.45573390793393e-9,2.0793972218100053e-9,3.0050852677209117e-9 +AppendByteString/750/1250,1.2435924027676567e-6,1.2432450462629738e-6,1.243942856698562e-6,1.1708360939339016e-9,9.596342702558676e-10,1.459198797065655e-9 +AppendByteString/750/1500,1.2931059635603516e-6,1.2922755410259846e-6,1.293947599979397e-6,2.9083949876545135e-9,2.4911458552505537e-9,3.5359458726783227e-9 +AppendByteString/750/1750,1.330832998523615e-6,1.3300492764045016e-6,1.331813467328901e-6,2.8571434463445993e-9,2.207898481714022e-9,3.858091411220204e-9 +AppendByteString/750/2000,1.3821455930671074e-6,1.381506802928982e-6,1.382666160158226e-6,1.896876523255152e-9,1.4272979016029064e-9,2.4732345721899793e-9 +AppendByteString/750/2250,1.4094976260980486e-6,1.4089896220834537e-6,1.4100639674299434e-6,1.7175207840039628e-9,1.4392515344310988e-9,2.125892954050997e-9 +AppendByteString/750/2500,1.456206960399204e-6,1.4557651716027862e-6,1.4568802708378416e-6,1.7894522394895203e-9,1.4039653336318016e-9,2.2736704787314033e-9 +AppendByteString/750/2750,1.4930579958142665e-6,1.492138647089249e-6,1.4939624382969106e-6,3.0302976437581446e-9,2.6677035750856423e-9,3.4676138941868846e-9 +AppendByteString/750/3000,1.5367863150407273e-6,1.5358417318703014e-6,1.5376298751010442e-6,2.970009725672774e-9,2.5465764742635353e-9,3.5795871077678484e-9 +AppendByteString/750/3250,1.5680464260281049e-6,1.5674253575582102e-6,1.5687196589310887e-6,2.051816944065708e-9,1.756488794907945e-9,2.4673738820908953e-9 +AppendByteString/750/3500,1.6116015930273817e-6,1.6111287362984825e-6,1.6120669309047308e-6,1.5048017859010495e-9,1.239884577549667e-9,1.8414616236749312e-9 +AppendByteString/750/3750,1.649400894414095e-6,1.6488999442200505e-6,1.6499069592197094e-6,1.6212527603454005e-9,1.3693403841217124e-9,1.9375022971021873e-9 +AppendByteString/750/4000,1.6860049166228099e-6,1.6854712238993443e-6,1.6866307437755462e-6,1.911752070609776e-9,1.6572739941038657e-9,2.2143504874432946e-9 +AppendByteString/750/4250,1.7192442957569851e-6,1.718734303238569e-6,1.7197926099435418e-6,1.7941803633022324e-9,1.4781351219021647e-9,2.3044674539316585e-9 +AppendByteString/750/4500,1.7628667620588146e-6,1.762155843535127e-6,1.7636432219601603e-6,2.62911578475411e-9,2.1794121764859513e-9,3.202668430318095e-9 +AppendByteString/750/4750,1.8023542738869904e-6,1.8017709185701915e-6,1.803039673794143e-6,1.9659558754709003e-9,1.708584095767451e-9,2.3163958577690717e-9 +AppendByteString/750/5000,1.8401614687607167e-6,1.8393311470488924e-6,1.8410060547056136e-6,2.7076208881530135e-9,2.320189186724895e-9,3.2872340926855873e-9 +AppendByteString/1000/1,8.665288220738384e-7,8.660780353567531e-7,8.670263745113194e-7,1.587712962167693e-9,1.3130973012852955e-9,1.913756474545294e-9 +AppendByteString/1000/250,1.1108444623085129e-6,1.1101704428973117e-6,1.1116467497798858e-6,2.4384913301396035e-9,2.0516585146195933e-9,2.893248055786592e-9 +AppendByteString/1000/500,1.1408629709025243e-6,1.1400054390151958e-6,1.1416323255532504e-6,2.8042174137201918e-9,2.2792484183321594e-9,3.4986731100728517e-9 +AppendByteString/1000/750,1.1971788365395513e-6,1.1966417457050124e-6,1.197672778056038e-6,1.7808847268975885e-9,1.4936885491677159e-9,2.2548633070783305e-9 +AppendByteString/1000/1000,1.2383474028784791e-6,1.2376123777879078e-6,1.2390294995646598e-6,2.4967495336060007e-9,2.116432032308595e-9,2.9790313982281244e-9 +AppendByteString/1000/1250,1.2825637336461424e-6,1.2821603856874786e-6,1.2829687089319629e-6,1.324516061101651e-9,1.1081683335758285e-9,1.6473143561447868e-9 +AppendByteString/1000/1500,1.3245092337916064e-6,1.3238347782903801e-6,1.3251323787231416e-6,2.1606941281340657e-9,1.8367148314508394e-9,2.659122056739107e-9 +AppendByteString/1000/1750,1.3640357797608104e-6,1.363465026193534e-6,1.3645609574858966e-6,1.8093320715858832e-9,1.5623093511546481e-9,2.163406078253131e-9 +AppendByteString/1000/2000,1.3996363170946746e-6,1.3987782987087693e-6,1.4004872032446403e-6,2.9504448849124183e-9,2.5436259134981576e-9,3.449793208627741e-9 +AppendByteString/1000/2250,1.442625893684073e-6,1.4422990186906588e-6,1.4429296599131315e-6,1.1202137529266109e-9,9.202271312188084e-10,1.4619324499617114e-9 +AppendByteString/1000/2500,1.482510897379534e-6,1.4818713137587166e-6,1.4832263516101613e-6,2.201625206430956e-9,1.8586012607953478e-9,2.7097514327190784e-9 +AppendByteString/1000/2750,1.5155946267112516e-6,1.5150631958238631e-6,1.5160838136242781e-6,1.79071778437456e-9,1.5235765399648454e-9,2.1979126707383886e-9 +AppendByteString/1000/3000,1.5570949167073463e-6,1.5565953977580932e-6,1.55755424550916e-6,1.5621323619768436e-9,1.2936423920503543e-9,1.9272074587977263e-9 +AppendByteString/1000/3250,1.593035362231799e-6,1.5926455147674857e-6,1.5934915710012268e-6,1.4721326114176188e-9,1.1730072517522273e-9,1.8414148162255371e-9 +AppendByteString/1000/3500,1.630779256004164e-6,1.630153294676659e-6,1.6314748745410585e-6,2.274087203188098e-9,1.9843838518022906e-9,2.6504469631862056e-9 +AppendByteString/1000/3750,1.6704537563141996e-6,1.6699384764091429e-6,1.671045163411776e-6,1.893413397092173e-9,1.6063032556436187e-9,2.3265034018437385e-9 +AppendByteString/1000/4000,1.7016891198618795e-6,1.7012105478396036e-6,1.7022504865446822e-6,1.7590313461143487e-9,1.387119244190694e-9,2.3334074658415226e-9 +AppendByteString/1000/4250,1.7391973967319926e-6,1.7385465987187327e-6,1.7399531735084787e-6,2.3591281386623607e-9,1.987430208567806e-9,2.7948962070499346e-9 +AppendByteString/1000/4500,1.7813631766403233e-6,1.780984676633857e-6,1.7817470399140814e-6,1.2587446848971596e-9,1.0461082873842738e-9,1.5039209819606157e-9 +AppendByteString/1000/4750,1.8185385326823975e-6,1.817689011149955e-6,1.81934375510255e-6,2.7871549561136362e-9,2.4062128768674853e-9,3.4909514564703592e-9 +AppendByteString/1000/5000,1.854405411699557e-6,1.8540172300101125e-6,1.8548384824096616e-6,1.315224512049719e-9,1.1192410122933979e-9,1.5710035975570606e-9 +AppendByteString/1250/1,8.677939027456985e-7,8.674357923121094e-7,8.68139327556472e-7,1.1529816006531434e-9,9.45904311054541e-10,1.532083041278671e-9 +AppendByteString/1250/250,1.1456442371007636e-6,1.1451452752633602e-6,1.1462050066886404e-6,1.783688014497801e-9,1.472947991929902e-9,2.253227937013415e-9 +AppendByteString/1250/500,1.197720393642877e-6,1.1968000829911279e-6,1.1985473668618252e-6,3.0228234430063777e-9,2.5914252079834912e-9,3.522375492626235e-9 +AppendByteString/1250/750,1.2406572158166068e-6,1.240035811615727e-6,1.241237513813655e-6,2.0738877167644263e-9,1.707356329841091e-9,2.5679745744870057e-9 +AppendByteString/1250/1000,1.2910141322416767e-6,1.2904940174425057e-6,1.2914071984350307e-6,1.4596789116023195e-9,1.1276192469287227e-9,1.9700489004248655e-9 +AppendByteString/1250/1250,1.3283323140322814e-6,1.327845451633545e-6,1.3288355901845886e-6,1.642125030602686e-9,1.325736212715728e-9,2.1155771683509136e-9 +AppendByteString/1250/1500,1.3796166496342833e-6,1.3790105090693173e-6,1.3803067967542494e-6,2.1833507975157472e-9,1.899109386499353e-9,2.5526850324475147e-9 +AppendByteString/1250/1750,1.4078478194173285e-6,1.4071100714527421e-6,1.4087454278552558e-6,2.700277979251329e-9,2.270342752735677e-9,3.505883155895863e-9 +AppendByteString/1250/2000,1.454849120112808e-6,1.4542192734748315e-6,1.4555165409964988e-6,2.217717521870923e-9,1.8768082654846566e-9,2.7226880525786785e-9 +AppendByteString/1250/2250,1.4900993729911575e-6,1.489493515419686e-6,1.4907871662666833e-6,2.1751177576847837e-9,1.848477756819455e-9,2.517880325848017e-9 +AppendByteString/1250/2500,1.5291717904578281e-6,1.528313948770954e-6,1.5302111461549793e-6,3.0831653021778958e-9,2.635113050160848e-9,3.5629447353072804e-9 +AppendByteString/1250/2750,1.5672484029657485e-6,1.566645402084739e-6,1.5678602181919014e-6,2.1526762765970878e-9,1.903425552068873e-9,2.4089391892404063e-9 +AppendByteString/1250/3000,1.6121090174437514e-6,1.6115671736659877e-6,1.6125739023325922e-6,1.6942118915908385e-9,1.4194122963430222e-9,2.167614850782569e-9 +AppendByteString/1250/3250,1.6488881357089507e-6,1.6483998405801646e-6,1.6493482212585146e-6,1.5349338175912615e-9,1.3260719948146907e-9,1.798380516801312e-9 +AppendByteString/1250/3500,1.6878239000024556e-6,1.687215283980504e-6,1.688417386626526e-6,2.0253293203810316e-9,1.636982034784854e-9,2.6136401937486112e-9 +AppendByteString/1250/3750,1.723060575934078e-6,1.7223481135489743e-6,1.7237174679121643e-6,2.1717914879986256e-9,1.932179930981487e-9,2.490474379346406e-9 +AppendByteString/1250/4000,1.7643805409716873e-6,1.763651536647212e-6,1.7652496544993687e-6,2.688502530011334e-9,2.1455900031405825e-9,3.2746847859186434e-9 +AppendByteString/1250/4250,1.796391678036978e-6,1.7957026616190378e-6,1.7971918332120185e-6,2.448345915527341e-9,2.088814137467611e-9,2.916102058952774e-9 +AppendByteString/1250/4500,1.8405764403509434e-6,1.8397725695789308e-6,1.841253104505288e-6,2.398799182447788e-9,1.9953222511443006e-9,3.0783815630950884e-9 +AppendByteString/1250/4750,1.8765094880953885e-6,1.8757123032113292e-6,1.8772844082951944e-6,2.565068572015313e-9,2.1988268087368286e-9,3.150089752060786e-9 +AppendByteString/1250/5000,1.9216250512108844e-6,1.920742713392973e-6,1.9223876856581413e-6,2.707760045717502e-9,2.3666948723331066e-9,3.115326150385742e-9 +AppendByteString/1500/1,8.710818665564181e-7,8.705861540536772e-7,8.717694767955127e-7,1.9598437045371775e-9,1.4000300151122866e-9,3.0158743407918047e-9 +AppendByteString/1500/250,1.1983753472478826e-6,1.1977370828295362e-6,1.1990676586211152e-6,2.258179155432572e-9,1.9527737468499296e-9,2.592201780634172e-9 +AppendByteString/1500/500,1.2462397713356643e-6,1.2456818117429523e-6,1.2469896855752189e-6,2.178647043569425e-9,1.7545992211668238e-9,2.6797357855210955e-9 +AppendByteString/1500/750,1.2891646104700205e-6,1.288193829165538e-6,1.2900694512605147e-6,3.2826903890101934e-9,2.8570308918851203e-9,3.981044499005578e-9 +AppendByteString/1500/1000,1.3248925840127193e-6,1.3238313994408186e-6,1.3260978237897089e-6,3.5966255653186583e-9,3.0819614814366315e-9,4.251049988592113e-9 +AppendByteString/1500/1250,1.3611951843873904e-6,1.3604659578800433e-6,1.3620453186289145e-6,2.6103789576666833e-9,1.9593150404263442e-9,3.992138282041901e-9 +AppendByteString/1500/1500,1.4043247283273303e-6,1.4035227135100344e-6,1.4050429811170763e-6,2.5570494397614547e-9,2.152379291317902e-9,3.153625162517158e-9 +AppendByteString/1500/1750,1.4403221695470122e-6,1.4397219271924797e-6,1.4411230215922446e-6,2.3013432405380605e-9,1.6712468290020427e-9,3.742119815711483e-9 +AppendByteString/1500/2000,1.479874986643553e-6,1.4789263335151644e-6,1.4807444964530696e-6,3.051650118553833e-9,2.6076482169654095e-9,3.6347192992794775e-9 +AppendByteString/1500/2250,1.5207472980607881e-6,1.5201394205127558e-6,1.5213276765098626e-6,2.0836433610069908e-9,1.767910073777629e-9,2.6197634009498353e-9 +AppendByteString/1500/2500,1.5594210113247117e-6,1.5586558690322738e-6,1.560165629120517e-6,2.5495840929457635e-9,2.1197585415715834e-9,3.02785568042653e-9 +AppendByteString/1500/2750,1.5956102406724322e-6,1.5946768569854246e-6,1.5964342302786253e-6,3.000378299193676e-9,2.5472824947730853e-9,3.5879780277429037e-9 +AppendByteString/1500/3000,1.6351300824514509e-6,1.6344325709681842e-6,1.6360983283589325e-6,2.594480517681292e-9,2.0859132849971e-9,3.597871817905049e-9 +AppendByteString/1500/3250,1.6715779522807508e-6,1.6708041214876758e-6,1.6724593931460658e-6,2.791738216149064e-9,2.407492947256521e-9,3.360593466026713e-9 +AppendByteString/1500/3500,1.7121681011268145e-6,1.7115015929554785e-6,1.7126856976189355e-6,1.9812129422813305e-9,1.586647610099408e-9,2.6640778214007274e-9 +AppendByteString/1500/3750,1.7498797858069954e-6,1.749400938251561e-6,1.7503443308370228e-6,1.6863353028354402e-9,1.42129313918316e-9,2.1397605314911553e-9 +AppendByteString/1500/4000,1.784101368617002e-6,1.7836156269990295e-6,1.7847080780806008e-6,1.7971046953182667e-9,1.515869930018204e-9,2.3217273360874565e-9 +AppendByteString/1500/4250,1.8229510939411676e-6,1.8222075969136982e-6,1.8238869267768504e-6,2.800779679706739e-9,2.2550393640504414e-9,3.772922064933948e-9 +AppendByteString/1500/4500,1.865927749899878e-6,1.865093647926522e-6,1.8666723211208808e-6,2.7087590234411833e-9,2.3194178178972883e-9,3.357515147957951e-9 +AppendByteString/1500/4750,1.8955815538997351e-6,1.8948314304794729e-6,1.8965645874302037e-6,2.808819453186053e-9,2.1136012532900507e-9,4.032415337287368e-9 +AppendByteString/1500/5000,1.9415319775265803e-6,1.9409829971539882e-6,1.9421096939157048e-6,1.900638818293487e-9,1.5961346047876612e-9,2.2967829446848816e-9 +AppendByteString/1750/1,8.710206050846094e-7,8.703929124821522e-7,8.718455158307775e-7,2.2403203831988137e-9,1.7259219141875253e-9,2.906310938738636e-9 +AppendByteString/1750/250,1.252227530343602e-6,1.2515631319271112e-6,1.2530123097371317e-6,2.3493844654402544e-9,1.955680072213075e-9,2.9181534666030615e-9 +AppendByteString/1750/500,1.3031156362732056e-6,1.3026998469123012e-6,1.3035612317042812e-6,1.4806961830309819e-9,1.2429156420818307e-9,1.8589517746203264e-9 +AppendByteString/1750/750,1.3357149432449756e-6,1.3349649578621016e-6,1.3366082843368625e-6,2.8167071680201373e-9,2.2453600716392576e-9,3.5892379655121276e-9 +AppendByteString/1750/1000,1.3801772680532403e-6,1.3796470025265262e-6,1.3807635069335698e-6,1.9188771703353898e-9,1.600037747959637e-9,2.267952363662741e-9 +AppendByteString/1750/1250,1.4125158665328206e-6,1.4118652129530827e-6,1.4131950005792125e-6,2.1896406052883887e-9,1.8469812509634997e-9,2.5846177943371267e-9 +AppendByteString/1750/1500,1.460304404225799e-6,1.459571554791567e-6,1.4609167740513253e-6,2.3342255867326747e-9,1.9795043299573933e-9,2.819759878517342e-9 +AppendByteString/1750/1750,1.4987188270471113e-6,1.4975028105794244e-6,1.4996714099819197e-6,3.51954115744639e-9,2.838958704036766e-9,4.24706624393012e-9 +AppendByteString/1750/2000,1.5555009291795365e-6,1.5509197503177849e-6,1.5596353274439615e-6,1.4499709625053047e-8,1.3833812559964713e-8,1.510537464387789e-8 +AppendByteString/1750/2250,1.5772589599164761e-6,1.5764941406847058e-6,1.5780264887867375e-6,2.6469985127318788e-9,2.2291245861482217e-9,3.0694005954357704e-9 +AppendByteString/1750/2500,1.618477641743861e-6,1.617882463995568e-6,1.6192323835987226e-6,2.1991031646422307e-9,1.8241523728463311e-9,2.737852445638573e-9 +AppendByteString/1750/2750,1.6580403056827166e-6,1.657229850142592e-6,1.6588813982806976e-6,2.8361426613130487e-9,2.430040833387208e-9,3.357852526822327e-9 +AppendByteString/1750/3000,1.70314516417188e-6,1.7024418692362086e-6,1.7038712335150037e-6,2.3840514400079364e-9,1.9453378701959405e-9,3.102895559465317e-9 +AppendByteString/1750/3250,1.7323539926103718e-6,1.7319268209626148e-6,1.7328397874635927e-6,1.5073360901703844e-9,1.2155159634769986e-9,1.8868831050881118e-9 +AppendByteString/1750/3500,1.7757673846061227e-6,1.7752257478712366e-6,1.7762527311837566e-6,1.7304920691638943e-9,1.4496649463933443e-9,2.0767053608752902e-9 +AppendByteString/1750/3750,1.8141126563122677e-6,1.813565772081147e-6,1.814799144377947e-6,2.046035819254912e-9,1.6035031842145255e-9,2.803881860955951e-9 +AppendByteString/1750/4000,1.8469535704997191e-6,1.8463634524818205e-6,1.8476278865460678e-6,1.967052707569648e-9,1.5579264382865678e-9,2.4282739774699944e-9 +AppendByteString/1750/4250,1.8852315326656296e-6,1.8847411344137992e-6,1.8857534229164177e-6,1.7009671213682779e-9,1.3797293098050428e-9,2.331679410879712e-9 +AppendByteString/1750/4500,1.9283523278735044e-6,1.9278272899629416e-6,1.929184358438066e-6,2.2287662859558186e-9,1.5268687814234023e-9,3.415168591927659e-9 +AppendByteString/1750/4750,1.969564701204576e-6,1.969063074815637e-6,1.970209938231913e-6,1.9768059543516432e-9,1.5599290038057437e-9,3.032267921632102e-9 +AppendByteString/1750/5000,2.0102136797821443e-6,2.009723116747463e-6,2.0107549033673784e-6,1.7591595654563646e-9,1.3604826757119284e-9,2.5293201565230708e-9 +AppendByteString/2000/1,8.700327529908517e-7,8.695449112351342e-7,8.704797879700579e-7,1.5291963736745013e-9,1.2804613249564561e-9,1.878654056082397e-9 +AppendByteString/2000/250,1.2981265843988134e-6,1.2975762741659314e-6,1.2986363275128972e-6,1.7327135738173745e-9,1.4476318970163691e-9,2.2703990521782057e-9 +AppendByteString/2000/500,1.3311393572984463e-6,1.3303395661270305e-6,1.3318863051726487e-6,2.6848706151828036e-9,2.2105189991413233e-9,3.3539087942053724e-9 +AppendByteString/2000/750,1.370587186807419e-6,1.3701431705028067e-6,1.3710200555947443e-6,1.5712237883672253e-9,1.268544201658795e-9,2.0261729110987752e-9 +AppendByteString/2000/1000,1.4064687470855008e-6,1.4058131731837847e-6,1.4070461113785324e-6,2.078490573159876e-9,1.686875423864716e-9,2.951828038931196e-9 +AppendByteString/2000/1250,1.4439021933875786e-6,1.443502149220886e-6,1.4443697406265022e-6,1.427470240189254e-9,1.1654485005749328e-9,1.752872994342051e-9 +AppendByteString/2000/1500,1.481973833251634e-6,1.4816516032403598e-6,1.482321410780477e-6,1.1358162210244829e-9,9.365155822753068e-10,1.4109701084838208e-9 +AppendByteString/2000/1750,1.523235859584806e-6,1.5227346618996954e-6,1.5238731446082566e-6,1.8494979431390648e-9,1.5909900836695184e-9,2.2715112958387812e-9 +AppendByteString/2000/2000,1.5600510642294117e-6,1.559414927032175e-6,1.5606337762201433e-6,2.0449578045305783e-9,1.7549401678902858e-9,2.4595874510038964e-9 +AppendByteString/2000/2250,1.601076214620049e-6,1.6005819032245259e-6,1.6015932081781672e-6,1.6656321942743675e-9,1.3511061619391386e-9,2.256557468976197e-9 +AppendByteString/2000/2500,1.6446001667013374e-6,1.6438176400336277e-6,1.6453058177952136e-6,2.5390531321599844e-9,2.180884876577704e-9,3.0433896237158187e-9 +AppendByteString/2000/2750,1.6811964251811655e-6,1.6803779810508613e-6,1.682048137303603e-6,2.7527591176400725e-9,2.32225789246417e-9,3.461906132423473e-9 +AppendByteString/2000/3000,1.7191993941337974e-6,1.7186524770947561e-6,1.7197346752325753e-6,1.8368386997548355e-9,1.5367353573919068e-9,2.2481226670493024e-9 +AppendByteString/2000/3250,1.7530689242958008e-6,1.7524406531328556e-6,1.7536260118712717e-6,2.0712590085021786e-9,1.7736360181610598e-9,2.682398983893341e-9 +AppendByteString/2000/3500,1.7960468160602995e-6,1.7955599638542985e-6,1.7965716203641044e-6,1.7252073102618758e-9,1.4860333703724499e-9,2.1343515054847714e-9 +AppendByteString/2000/3750,1.8313080329763409e-6,1.8308654374032158e-6,1.8317093313575396e-6,1.3757024297269803e-9,1.1754529821552395e-9,1.8043026715271915e-9 +AppendByteString/2000/4000,1.8599656539160687e-6,1.8594011832108867e-6,1.8605980461947296e-6,2.1095768443610447e-9,1.736247200993824e-9,2.606402458883271e-9 +AppendByteString/2000/4250,1.8991133199582629e-6,1.8986146355507656e-6,1.8995829307019003e-6,1.547416972648353e-9,1.3317192167334574e-9,1.8489463246736336e-9 +AppendByteString/2000/4500,1.939724768758812e-6,1.9393126075184497e-6,1.940087157291705e-6,1.2601258680582844e-9,1.0721694535971753e-9,1.5030438083878672e-9 +AppendByteString/2000/4750,1.986075372668828e-6,1.9855502333518828e-6,1.986487844100792e-6,1.6144212742592065e-9,1.288108791834016e-9,2.050878599291414e-9 +AppendByteString/2000/5000,2.021212502135342e-6,2.0205189279505058e-6,2.022074232350357e-6,2.53302673624872e-9,2.0859803751015372e-9,3.2437942029331768e-9 +AppendByteString/2250/1,8.723963602684114e-7,8.720354847025911e-7,8.727709235778047e-7,1.2160258790526741e-9,1.06877081942569e-9,1.4127474895066102e-9 +AppendByteString/2250/250,1.346439165182003e-6,1.3457763810661517e-6,1.3471053141482903e-6,2.2556876404556383e-9,1.834855710549481e-9,2.8483545280077745e-9 +AppendByteString/2250/500,1.386441014656858e-6,1.385712506789162e-6,1.3872235979276542e-6,2.5445416065765533e-9,2.1782754947437534e-9,3.0484593646143626e-9 +AppendByteString/2250/750,1.4176193011601655e-6,1.416799505836006e-6,1.4183789588125479e-6,2.5218106238816e-9,2.1681767259522628e-9,3.036463262280326e-9 +AppendByteString/2250/1000,1.4643370795814812e-6,1.4638983470930958e-6,1.4649302725452974e-6,1.5936824453660422e-9,1.236022549587306e-9,2.2428606942027655e-9 +AppendByteString/2250/1250,1.4973860167957675e-6,1.4968621751193852e-6,1.4979697870336015e-6,1.7714352789140772e-9,1.4216840884677271e-9,2.4540127670441173e-9 +AppendByteString/2250/1500,1.5439178918824234e-6,1.5430991124823851e-6,1.5448148844840433e-6,2.9259471022517504e-9,2.546879897047873e-9,3.51009102883075e-9 +AppendByteString/2250/1750,1.5847546543622153e-6,1.584275002587215e-6,1.5851784200867304e-6,1.6166579302508843e-9,1.3828057345053725e-9,1.9476840334522304e-9 +AppendByteString/2250/2000,1.626640246339633e-6,1.6262278350250208e-6,1.627058445716487e-6,1.3865912468766831e-9,1.1946151696583588e-9,1.6193450091684805e-9 +AppendByteString/2250/2250,1.6606773363336412e-6,1.6599718072278543e-6,1.661351834805862e-6,2.361695566995798e-9,2.103606189940462e-9,2.6960336772848873e-9 +AppendByteString/2250/2500,1.7010686909879647e-6,1.7006189547331678e-6,1.7015703326488047e-6,1.58706953051509e-9,1.3508673043577466e-9,1.925133573207101e-9 +AppendByteString/2250/2750,1.7398090788704506e-6,1.7394066487342014e-6,1.7402851217317723e-6,1.4174896067114074e-9,1.1611058995526484e-9,1.819646065226432e-9 +AppendByteString/2250/3000,1.7792250178646983e-6,1.77874537387304e-6,1.7797038010393305e-6,1.6171047732515408e-9,1.3611347088060669e-9,2.052126504176016e-9 +AppendByteString/2250/3250,1.816680160203071e-6,1.8162250375429362e-6,1.8170985511234884e-6,1.4510994142182869e-9,1.2071733071081043e-9,1.8492852265133816e-9 +AppendByteString/2250/3500,1.8623754115663796e-6,1.861853588782687e-6,1.862899946521293e-6,1.7437504560239302e-9,1.5008634320695932e-9,2.04114249754556e-9 +AppendByteString/2250/3750,1.8896218656129794e-6,1.8885656574001352e-6,1.8907284195160875e-6,3.747825425173763e-9,3.2479742133228278e-9,4.399112795308623e-9 +AppendByteString/2250/4000,1.9368425812975208e-6,1.9365112665102344e-6,1.937251416267855e-6,1.2435869771334077e-9,1.0379429467769533e-9,1.6430168855056897e-9 +AppendByteString/2250/4250,1.9681627215069423e-6,1.9671945569204048e-6,1.9690228949753694e-6,2.942936857528382e-9,2.5268335182741274e-9,3.494512259749974e-9 +AppendByteString/2250/4500,2.009307612597553e-6,2.008406411201717e-6,2.00998982955794e-6,2.6034926294074488e-9,2.113249152124379e-9,3.3143149755487572e-9 +AppendByteString/2250/4750,2.0521368815873425e-6,2.0515743617816658e-6,2.0527173623707505e-6,1.9274796390653733e-9,1.6605546946346506e-9,2.339210728962793e-9 +AppendByteString/2250/5000,2.0963676052662814e-6,2.0959070655974325e-6,2.096926193258098e-6,1.7683159809679833e-9,1.4524344264934619e-9,2.225215849153773e-9 +AppendByteString/2500/1,8.69994937504371e-7,8.695736663037391e-7,8.705031097576269e-7,1.54462283192436e-9,1.2499858886490993e-9,1.9543346100124266e-9 +AppendByteString/2500/250,1.3858566524508685e-6,1.3854258253702937e-6,1.3862252944113895e-6,1.3115977861219258e-9,1.1461207364227995e-9,1.506736256201508e-9 +AppendByteString/2500/500,1.4131901309104463e-6,1.4126448240250175e-6,1.4136693924115314e-6,1.7169811467417835e-9,1.4557002628362763e-9,2.099562495130911e-9 +AppendByteString/2500/750,1.4558768622131627e-6,1.45505246401266e-6,1.4566598552528193e-6,2.6121387982343524e-9,2.253498798988282e-9,3.029763273865008e-9 +AppendByteString/2500/1000,1.4877189077085454e-6,1.487207301215394e-6,1.488228219985781e-6,1.798662026116492e-9,1.5553564457302732e-9,2.166631249761587e-9 +AppendByteString/2500/1250,1.523441165473181e-6,1.5227963009661003e-6,1.5239865623742055e-6,1.9951907645034737e-9,1.6038456930520773e-9,2.550215659029902e-9 +AppendByteString/2500/1500,1.5731734949165458e-6,1.5726937404774678e-6,1.5736331599955061e-6,1.625756911997954e-9,1.3818065781056982e-9,1.9999586370296808e-9 +AppendByteString/2500/1750,1.609914165741458e-6,1.6093155597062688e-6,1.6104967093582737e-6,1.944385856878846e-9,1.6552904122730873e-9,2.401819140149527e-9 +AppendByteString/2500/2000,1.646947464203356e-6,1.6465027925239305e-6,1.6474181288447813e-6,1.5370666222972055e-9,1.275922742140612e-9,1.9797676945219664e-9 +AppendByteString/2500/2250,1.685528932254444e-6,1.6848681694838843e-6,1.6862063316887024e-6,2.2238378920612976e-9,1.871581253003934e-9,2.7275500201011624e-9 +AppendByteString/2500/2500,1.7275848745194937e-6,1.727287837326551e-6,1.7278563177147038e-6,9.555446845984039e-10,7.65955859495131e-10,1.2207822278680195e-9 +AppendByteString/2500/2750,1.7689552667781135e-6,1.7684252608287462e-6,1.7694582351569207e-6,1.8188699303744891e-9,1.5119383669443938e-9,2.1971660689052958e-9 +AppendByteString/2500/3000,1.8041449129902013e-6,1.8037547081478028e-6,1.8045081543607045e-6,1.223396410179531e-9,9.917739894051674e-10,1.5850454269672754e-9 +AppendByteString/2500/3250,1.8357706739037986e-6,1.8352478387307753e-6,1.836339343803011e-6,1.9387829199913667e-9,1.5902041067478727e-9,2.4414232130256324e-9 +AppendByteString/2500/3500,1.8732283691611224e-6,1.8728959680636752e-6,1.8735538253409151e-6,1.161055627938349e-9,8.267030185146771e-10,1.7253345433991116e-9 +AppendByteString/2500/3750,1.9251569738643318e-6,1.924519973004486e-6,1.925777441953971e-6,2.1666391543019683e-9,1.7693289310737864e-9,3.0352529021495644e-9 +AppendByteString/2500/4000,1.9536423925172007e-6,1.95268323823624e-6,1.9547528028659294e-6,3.585237567286063e-9,2.9353686324307346e-9,4.306334334195161e-9 +AppendByteString/2500/4250,1.9845422066854612e-6,1.9836185354383243e-6,1.9855202316373166e-6,3.1931601146613357e-9,2.6954812106379925e-9,3.8258984037505474e-9 +AppendByteString/2500/4500,2.0316791483687644e-6,2.030839143760061e-6,2.032518091074939e-6,2.7811441443323746e-9,2.3512699733868637e-9,3.3109909752994405e-9 +AppendByteString/2500/4750,2.067495010775349e-6,2.067067181223877e-6,2.068021567538978e-6,1.562052138182458e-9,1.2662107006974875e-9,1.979201279361257e-9 +AppendByteString/2500/5000,2.103791877336802e-6,2.1030650600022744e-6,2.1045364127830564e-6,2.4656245290397005e-9,2.022994777465403e-9,2.946362073297275e-9 +AppendByteString/2750/1,8.714696503848602e-7,8.709743690569782e-7,8.719907512955008e-7,1.726545497500804e-9,1.4795931515922059e-9,2.113773155242151e-9 +AppendByteString/2750/250,1.4080910863719116e-6,1.407609664430227e-6,1.4086297741450906e-6,1.6965151581440075e-9,1.3727252455548358e-9,2.169155717663609e-9 +AppendByteString/2750/500,1.4535717979065478e-6,1.4529372253522733e-6,1.454095844275223e-6,1.903771536881594e-9,1.3623628022719222e-9,2.6620562892406098e-9 +AppendByteString/2750/750,1.4920336257126266e-6,1.4915182269047482e-6,1.4926017976739098e-6,1.8214173304079959e-9,1.5079102952647615e-9,2.3862731697219256e-9 +AppendByteString/2750/1000,1.5315717913938232e-6,1.5309068476959422e-6,1.532274551874188e-6,2.3668414533113087e-9,2.050571501707642e-9,2.812983305665211e-9 +AppendByteString/2750/1250,1.5725348548073016e-6,1.5720078690630622e-6,1.5730805199871902e-6,1.8366176266710286e-9,1.547980875486079e-9,2.2762260023864753e-9 +AppendByteString/2750/1500,1.6216682524502915e-6,1.620993215430842e-6,1.6223361280953961e-6,2.2813707689804712e-9,1.950545491094675e-9,2.7523535459699374e-9 +AppendByteString/2750/1750,1.656282132268044e-6,1.6556368837723682e-6,1.6569706956656528e-6,2.2533330058957623e-9,1.7079018508604343e-9,3.6044695011229427e-9 +AppendByteString/2750/2000,1.6993995222245854e-6,1.6989751549001466e-6,1.7000041981304638e-6,1.70321578598916e-9,1.3105597672872174e-9,2.492142863927318e-9 +AppendByteString/2750/2250,1.734995769207159e-6,1.734077202938956e-6,1.7358546485987348e-6,3.0971385458800196e-9,2.619312680236783e-9,3.687906322752653e-9 +AppendByteString/2750/2500,1.7752619535995478e-6,1.774476413616474e-6,1.7759437634538227e-6,2.357929789214475e-9,1.8533391587413453e-9,3.0742590027425427e-9 +AppendByteString/2750/2750,1.8093721273441925e-6,1.8086249193005864e-6,1.8101553510237368e-6,2.624329153673579e-9,2.0683542863454053e-9,3.5678253532311133e-9 +AppendByteString/2750/3000,1.8513191360890824e-6,1.8507427079653843e-6,1.8519562687511247e-6,2.0354766974357458e-9,1.6719578464891014e-9,2.4737148023555585e-9 +AppendByteString/2750/3250,1.8913874231876564e-6,1.8907683712824303e-6,1.8920092779078532e-6,2.2095678883649602e-9,1.7805845784069467e-9,2.977613698697158e-9 +AppendByteString/2750/3500,1.935557168315954e-6,1.9349807488575596e-6,1.9361702046527622e-6,1.9918984718302137e-9,1.6547137575810443e-9,2.494351980386254e-9 +AppendByteString/2750/3750,1.96638777393175e-6,1.9655823829101273e-6,1.967200870317165e-6,2.6932624171050563e-9,2.2670028586795286e-9,3.151987128867692e-9 +AppendByteString/2750/4000,2.0172845315046267e-6,2.016567897859826e-6,2.0178893400648006e-6,2.326623857051849e-9,1.9416713998453148e-9,2.9758439342463067e-9 +AppendByteString/2750/4250,2.0451284715171015e-6,2.0446678929817384e-6,2.045708196343554e-6,1.8865837159458045e-9,1.5418758371856736e-9,2.32254133563223e-9 +AppendByteString/2750/4500,2.0823057103430485e-6,2.0817742387077723e-6,2.0828618711290487e-6,1.7498281720531624e-9,1.4250878730686212e-9,2.2641426117364774e-9 +AppendByteString/2750/4750,2.1230299826823833e-6,2.1224580834073814e-6,2.1235873095869124e-6,1.8535536439776102e-9,1.5879524246455246e-9,2.2044178211019948e-9 +AppendByteString/2750/5000,2.1633739650371032e-6,2.162371673421146e-6,2.1644594763739385e-6,3.3716583820428145e-9,2.9017999983004094e-9,4.106956964594495e-9 +AppendByteString/3000/1,8.719356359888291e-7,8.714308054534426e-7,8.723735537031887e-7,1.6587643270941346e-9,1.3272041692344676e-9,2.2266998932431278e-9 +AppendByteString/3000/250,1.4550279164186773e-6,1.4545146486218768e-6,1.4555982884359694e-6,1.8429296140067943e-9,1.5115431210932213e-9,2.230039706988492e-9 +AppendByteString/3000/500,1.4886757193419814e-6,1.4879771942260695e-6,1.4895069456806109e-6,2.4527046394566247e-9,1.9746114180758813e-9,3.5617733538658323e-9 +AppendByteString/3000/750,1.523024398832351e-6,1.522291737950988e-6,1.5238729194330941e-6,2.6033698674273338e-9,2.2106212537818883e-9,3.0835031660350336e-9 +AppendByteString/3000/1000,1.6143023386520542e-6,1.6070316204077034e-6,1.6194785542822661e-6,2.086619667623031e-8,1.3634589434397286e-8,2.6866984036855287e-8 +AppendByteString/3000/1250,1.6397952302820129e-6,1.639231880968226e-6,1.6403647318214444e-6,1.8709243768972274e-9,1.6031726203113266e-9,2.1857392164111443e-9 +AppendByteString/3000/1500,1.6331757963831784e-6,1.6324944582748739e-6,1.6339276560605187e-6,2.2752567518505607e-9,1.883420496881061e-9,2.7627344765382257e-9 +AppendByteString/3000/1750,1.6800122559634198e-6,1.679259906130991e-6,1.6810253004056968e-6,2.8646876977965857e-9,2.1058499913534915e-9,4.460490128401709e-9 +AppendByteString/3000/2000,1.7127861140476483e-6,1.7120898800412524e-6,1.7135220915736062e-6,2.4066518277195055e-9,1.9855910146584745e-9,2.9894133760267828e-9 +AppendByteString/3000/2250,1.7494791667967132e-6,1.7487389816431673e-6,1.750307990943614e-6,2.7913871978321616e-9,2.3096815514348836e-9,3.4422708516475066e-9 +AppendByteString/3000/2500,1.794777846962735e-6,1.794000731148544e-6,1.795628618368067e-6,2.762725453927601e-9,2.3148571497691057e-9,3.386153787177977e-9 +AppendByteString/3000/2750,1.8327733261830674e-6,1.832267911083583e-6,1.8334133022884252e-6,1.947548948678576e-9,1.6380573560102054e-9,2.401361115157061e-9 +AppendByteString/3000/3000,1.8718984457860428e-6,1.8713215096454577e-6,1.8726013393990077e-6,2.1605633994541953e-9,1.689711474870976e-9,2.776980451519961e-9 +AppendByteString/3000/3250,1.9068573388548993e-6,1.9061369523869893e-6,1.9075829801242308e-6,2.4548789372685404e-9,2.098237693802094e-9,3.023845785455658e-9 +AppendByteString/3000/3500,1.9402375324772644e-6,1.9397752336288206e-6,1.9409182824662518e-6,1.943277644422615e-9,1.335289051500927e-9,3.141679200227111e-9 +AppendByteString/3000/3750,1.9794329926768525e-6,1.978921610924689e-6,1.980020756282139e-6,1.6944497230310558e-9,1.348032054578834e-9,2.2733151735050558e-9 +AppendByteString/3000/4000,2.0186077133385235e-6,2.018055794738772e-6,2.01943943367681e-6,2.264339443011992e-9,1.6756660482688004e-9,3.584229332724207e-9 +AppendByteString/3000/4250,2.0538852555856648e-6,2.053262461687134e-6,2.054532003446047e-6,2.100400945341127e-9,1.8093923070154443e-9,2.529463014555893e-9 +AppendByteString/3000/4500,2.1001716734283783e-6,2.0995797591618813e-6,2.100736624158787e-6,1.9378437413865186e-9,1.6113542488848105e-9,2.3834282284107057e-9 +AppendByteString/3000/4750,2.137736269825782e-6,2.1367353319197577e-6,2.138729494609793e-6,3.4212677245405994e-9,2.8850049197085895e-9,4.176426943790524e-9 +AppendByteString/3000/5000,2.1734824978419312e-6,2.17282306645649e-6,2.174191045447363e-6,2.20282289846514e-9,1.8744428144631493e-9,2.598793197924019e-9 +AppendByteString/3250/1,8.72020791921975e-7,8.715899751324365e-7,8.724184876924054e-7,1.3624816578690208e-9,1.1148064447097655e-9,1.6870203163507687e-9 +AppendByteString/3250/250,1.4872600549600626e-6,1.4861343086532494e-6,1.4883583921472135e-6,3.689532024451277e-9,3.365360356774822e-9,4.055116145800019e-9 +AppendByteString/3250/500,1.5268402817494546e-6,1.526544351124593e-6,1.5271047929077362e-6,9.659236897174252e-10,8.06177240555065e-10,1.1600227291527924e-9 +AppendByteString/3250/750,1.5656069924680908e-6,1.5650879776194741e-6,1.5660761873161561e-6,1.6527321623666242e-9,1.3838300568825641e-9,2.096144237681907e-9 +AppendByteString/3250/1000,1.6084326279340465e-6,1.6078871355351106e-6,1.6090121837385642e-6,1.8750572386189062e-9,1.5810115340834918e-9,2.4026490999231288e-9 +AppendByteString/3250/1250,1.642456193562353e-6,1.6418614822447418e-6,1.6429905168964807e-6,1.8278781667753522e-9,1.5702259700415672e-9,2.326013591016597e-9 +AppendByteString/3250/1500,1.6896098715889717e-6,1.6888337570020996e-6,1.6904481979253354e-6,2.7060823976861423e-9,2.4327935861787303e-9,3.0304241913083133e-9 +AppendByteString/3250/1750,1.727989391391635e-6,1.7274202340028946e-6,1.72858877564778e-6,1.890281593279447e-9,1.6600019512228135e-9,2.267624670819433e-9 +AppendByteString/3250/2000,1.7706453989156472e-6,1.7702403033746583e-6,1.7710875555170631e-6,1.4647047175084392e-9,1.2099202639355841e-9,1.8555381336106133e-9 +AppendByteString/3250/2250,1.8034622733918358e-6,1.8029287377207245e-6,1.8040118764131328e-6,1.7723561667049368e-9,1.4788047144344617e-9,2.276100367259722e-9 +AppendByteString/3250/2500,1.8466960236894966e-6,1.8462200062532668e-6,1.8471552119378865e-6,1.6258318225648273e-9,1.3744133862182334e-9,2.133178488724554e-9 +AppendByteString/3250/2750,1.8895508398454098e-6,1.8890958949724006e-6,1.8900969894307869e-6,1.7046220803608176e-9,1.4295129501685669e-9,2.1483043506973106e-9 +AppendByteString/3250/3000,1.922187600537609e-6,1.9213841112189843e-6,1.9230600471671576e-6,2.7620529405546294e-9,2.258338239903434e-9,3.384186979831311e-9 +AppendByteString/3250/3250,1.966165111370142e-6,1.9657123424808307e-6,1.966554261918773e-6,1.4127962209065918e-9,1.1599120527206525e-9,1.7667386434609094e-9 +AppendByteString/3250/3500,2.0015911527846453e-6,2.0011060782535e-6,2.0020330860571493e-6,1.59376170341259e-9,1.3406373524232494e-9,1.9732660378651398e-9 +AppendByteString/3250/3750,2.04173881893199e-6,2.041333645666149e-6,2.042288355255788e-6,1.5480882336788065e-9,1.2155757610396076e-9,2.031124892755076e-9 +AppendByteString/3250/4000,2.08267695060857e-6,2.0822127503646875e-6,2.083101958786577e-6,1.500598168575532e-9,1.2582510659460406e-9,1.8184046013027762e-9 +AppendByteString/3250/4250,2.113672348067887e-6,2.113193631374244e-6,2.1142492488923453e-6,1.821407657061211e-9,1.4979005735158049e-9,2.202590191836618e-9 +AppendByteString/3250/4500,2.162664649593054e-6,2.1617783134512833e-6,2.1633928530860184e-6,2.560425190082285e-9,2.0505473722140355e-9,3.2082215693137574e-9 +AppendByteString/3250/4750,2.1966044421979513e-6,2.1961735026629503e-6,2.19707586865841e-6,1.51050861902208e-9,1.2054645001337604e-9,2.0739900957335954e-9 +AppendByteString/3250/5000,2.234232380421024e-6,2.2337069084097644e-6,2.2348677594278194e-6,2.0068755648609666e-9,1.6788310162524993e-9,2.4055375743941667e-9 +AppendByteString/3500/1,8.714119102703603e-7,8.711562693661142e-7,8.716696058441795e-7,8.459527835481041e-10,7.036190391568985e-10,1.0439824172525473e-9 +AppendByteString/3500/250,1.5225251584527309e-6,1.5221382368411694e-6,1.5229328693249453e-6,1.3199143600985795e-9,1.0519122374841314e-9,1.7885707674344816e-9 +AppendByteString/3500/500,1.5614952737303875e-6,1.5611795551075165e-6,1.5618339298406944e-6,1.181820335196767e-9,9.976879622182266e-10,1.4739817441898088e-9 +AppendByteString/3500/750,1.602045627167344e-6,1.6015400483526802e-6,1.60248562883919e-6,1.6329108346242739e-9,1.3693564895996198e-9,2.064484356609951e-9 +AppendByteString/3500/1000,1.6384324306008875e-6,1.637832947243468e-6,1.6389238088902056e-6,1.793648504001803e-9,1.4463736683461083e-9,2.2470607566797334e-9 +AppendByteString/3500/1250,1.67200851495984e-6,1.6715630005435201e-6,1.6724470593503712e-6,1.5184121967868287e-9,1.265784722682917e-9,1.8781223091666994e-9 +AppendByteString/3500/1500,1.7137192159236243e-6,1.7133138561646582e-6,1.7141008168372195e-6,1.28867572075302e-9,1.0898496454584285e-9,1.6131150574956328e-9 +AppendByteString/3500/1750,1.7579087791296497e-6,1.7573860379530744e-6,1.7583591969820258e-6,1.6097532730413082e-9,1.4129172858298724e-9,1.885427189598448e-9 +AppendByteString/3500/2000,1.7935075348235592e-6,1.7930948172858859e-6,1.7938841187238723e-6,1.4870980776925775e-9,1.2197443955660318e-9,1.9596372217543708e-9 +AppendByteString/3500/2250,1.830308914958101e-6,1.8299218478983794e-6,1.830723287512381e-6,1.4061104113810804e-9,1.185026566393264e-9,1.7076495422239712e-9 +AppendByteString/3500/2500,1.868769718281183e-6,1.8680639046949747e-6,1.869519853049608e-6,2.416498951158394e-9,2.1038295172531864e-9,2.9065196198055505e-9 +AppendByteString/3500/2750,1.9053495798044625e-6,1.9048589560890195e-6,1.9060175270524976e-6,1.8201977956145931e-9,1.3891162975378687e-9,2.567808426947436e-9 +AppendByteString/3500/3000,1.939193217276483e-6,1.938663810365816e-6,1.9398604628128096e-6,1.9764653656543493e-9,1.6061748694074525e-9,2.5183213823779685e-9 +AppendByteString/3500/3250,2.011543183393278e-6,2.0044405145600985e-6,2.0207248849915093e-6,2.7476830101840482e-8,2.4326081901335904e-8,2.926888627813768e-8 +AppendByteString/3500/3500,2.062688736954324e-6,2.062189700042577e-6,2.0631277908247975e-6,1.585166799055629e-9,1.2960156273300872e-9,1.9045390975239732e-9 +AppendByteString/3500/3750,2.056262830196468e-6,2.0557901901539403e-6,2.0569361858964247e-6,1.8007073870455861e-9,1.386545535876944e-9,2.56255475756931e-9 +AppendByteString/3500/4000,2.092702172799168e-6,2.0923029417891605e-6,2.09305982084522e-6,1.2654488969411439e-9,1.0230284350712026e-9,1.5343189828045422e-9 +AppendByteString/3500/4250,2.123874968612346e-6,2.123398021877131e-6,2.1244658208903526e-6,1.8603525444296519e-9,1.44151819170004e-9,2.5637805156769658e-9 +AppendByteString/3500/4500,2.171149075272526e-6,2.1706320817373454e-6,2.171705237923531e-6,1.7965379149154059e-9,1.453731173613431e-9,2.216225530950502e-9 +AppendByteString/3500/4750,2.208145282291907e-6,2.2075208770958353e-6,2.208666038089277e-6,1.9934442732773825e-9,1.6449028221668988e-9,2.555543545023447e-9 +AppendByteString/3500/5000,2.2538811423387197e-6,2.2532470960902573e-6,2.254549505792844e-6,2.289984360881644e-9,1.8209199658940802e-9,2.9407286510225293e-9 +AppendByteString/3750/1,8.695765729942994e-7,8.690248306302296e-7,8.700145509163103e-7,1.5566126020512301e-9,1.2335581703996578e-9,1.9801971675273175e-9 +AppendByteString/3750/250,1.559692097403523e-6,1.5589517191489477e-6,1.5603950659256873e-6,2.38738098779319e-9,2.0221961782950888e-9,2.9103939752899454e-9 +AppendByteString/3750/500,1.6030288535210113e-6,1.6023856520132355e-6,1.603565047859526e-6,2.0032562073063776e-9,1.5160759015422722e-9,2.6634201385901956e-9 +AppendByteString/3750/750,1.6340810947696995e-6,1.6333201077011212e-6,1.6348044786624464e-6,2.5819067561844746e-9,2.0808769863131245e-9,3.3642515561023855e-9 +AppendByteString/3750/1000,1.6793879259459572e-6,1.6787415845768796e-6,1.6799470830580643e-6,2.112116315893199e-9,1.8040396844371185e-9,2.5616005491605933e-9 +AppendByteString/3750/1250,1.7194939294254546e-6,1.7188386140336883e-6,1.720051450484804e-6,2.0065725973953547e-9,1.6204762174728781e-9,2.4731441204621038e-9 +AppendByteString/3750/1500,1.7669569514175466e-6,1.7664659415915858e-6,1.767946498775048e-6,2.1715952995327732e-9,1.328631051255166e-9,3.797576324949545e-9 +AppendByteString/3750/1750,1.8078013603856434e-6,1.8073452571274297e-6,1.8083237465812578e-6,1.5497261489660577e-9,1.273985492971006e-9,1.9780150322551844e-9 +AppendByteString/3750/2000,1.8496027033384168e-6,1.849152996304934e-6,1.850087483739572e-6,1.539468517171888e-9,1.28929505598886e-9,1.964993986142374e-9 +AppendByteString/3750/2250,1.8812222515112469e-6,1.8806790654127221e-6,1.881792813442591e-6,1.8239345601788976e-9,1.4836578663264537e-9,2.2144179907040228e-9 +AppendByteString/3750/2500,1.920823942761478e-6,1.9200680588597516e-6,1.9213491138034026e-6,2.0869398251166484e-9,1.7141786198139506e-9,2.686125717357151e-9 +AppendByteString/3750/2750,1.967298791563621e-6,1.9667292761201906e-6,1.9681932545327036e-6,2.2573742434592237e-9,1.7093435796326731e-9,3.5067306021094666e-9 +AppendByteString/3750/3000,2.006458556927022e-6,2.0058589353978784e-6,2.007147909140287e-6,2.066080099935612e-9,1.747485038206699e-9,2.5084747748969383e-9 +AppendByteString/3750/3250,2.0409587831157133e-6,2.0403451207152007e-6,2.041820394978855e-6,2.5139015264608467e-9,1.9831016586635787e-9,3.622054450378138e-9 +AppendByteString/3750/3500,2.0818153430873117e-6,2.081303303297827e-6,2.0823951487153904e-6,1.8726656749393455e-9,1.5649667589108863e-9,2.2719789409940483e-9 +AppendByteString/3750/3750,2.1158291477180227e-6,2.1150498927114922e-6,2.1166463934636106e-6,2.6235813887410265e-9,2.2528253570491767e-9,3.1916088056857897e-9 +AppendByteString/3750/4000,2.149555233343825e-6,2.1489011592909147e-6,2.1502469929058505e-6,2.4215547330182236e-9,2.0179590755578742e-9,3.136750783931713e-9 +AppendByteString/3750/4250,2.1855208372890603e-6,2.185016800669991e-6,2.186094672776074e-6,1.9008677644965098e-9,1.504836148637421e-9,2.4473947163975417e-9 +AppendByteString/3750/4500,2.2342257859742166e-6,2.233317097386659e-6,2.2351672713605177e-6,3.2055473623584877e-9,2.790041208740856e-9,3.779728262870621e-9 +AppendByteString/3750/4750,2.2808670067619633e-6,2.280258914170291e-6,2.281419218582237e-6,1.996205196993922e-9,1.5336417764755964e-9,2.6451878601494604e-9 +AppendByteString/3750/5000,2.3276039283778112e-6,2.3269137290668612e-6,2.328470997108008e-6,2.54145842218287e-9,1.952180635669e-9,3.6617628270060264e-9 +AppendByteString/4000/1,8.699775260933814e-7,8.693522159720855e-7,8.706546924540382e-7,2.1321478247567978e-9,1.7292725055672249e-9,2.669673564333915e-9 +AppendByteString/4000/250,1.603798166725259e-6,1.6031265724251447e-6,1.604496117991988e-6,2.3248290830305877e-9,1.9916530296775765e-9,2.848805994900554e-9 +AppendByteString/4000/500,1.6430173340587785e-6,1.6423474159849831e-6,1.6436412273947696e-6,2.2144605893423254e-9,1.9224745947146924e-9,2.654192841575375e-9 +AppendByteString/4000/750,1.6768406712118159e-6,1.6761902689288697e-6,1.6774738017381074e-6,2.3490606952450837e-9,1.876145041175413e-9,3.014990663954055e-9 +AppendByteString/4000/1000,1.7177836274355372e-6,1.7172154822110341e-6,1.7187278050282756e-6,2.3155139017505354e-9,1.4494920067957227e-9,3.7734217072378e-9 +AppendByteString/4000/1250,1.7516407685148037e-6,1.7512182148032113e-6,1.7521930077639844e-6,1.682413065191244e-9,1.4564654852305709e-9,2.211006351366158e-9 +AppendByteString/4000/1500,1.7916372525952731e-6,1.7909775488874055e-6,1.792327027030613e-6,2.236903978989569e-9,1.8586305074680227e-9,2.8490811481323906e-9 +AppendByteString/4000/1750,1.8343209443706325e-6,1.8336419583945787e-6,1.8350983988346266e-6,2.3083160086663247e-9,1.877320105081706e-9,2.8321691285550997e-9 +AppendByteString/4000/2000,1.8755283260916101e-6,1.8750047319750662e-6,1.876077117056317e-6,1.813448298087926e-9,1.4575520863960016e-9,2.230187147032848e-9 +AppendByteString/4000/2250,1.909223538526128e-6,1.9086448617853306e-6,1.909788233176753e-6,1.977530673651046e-9,1.6559982142167744e-9,2.543029772313662e-9 +AppendByteString/4000/2500,1.9442194572319563e-6,1.943397726238976e-6,1.9450327034983846e-6,2.8398317287475672e-9,2.4562457598027023e-9,3.42007144027495e-9 +AppendByteString/4000/2750,1.990495462174878e-6,1.9898584393425472e-6,1.9915836784207026e-6,2.866742131231509e-9,1.9838336081123436e-9,4.682661362416663e-9 +AppendByteString/4000/3000,2.0273874458751565e-6,2.0269210956265282e-6,2.0280355905389214e-6,1.92511130966929e-9,1.4550304356278924e-9,2.898197938413451e-9 +AppendByteString/4000/3250,2.0702243611570465e-6,2.069644389986901e-6,2.0709625917726115e-6,2.1523105691949753e-9,1.7808401814278564e-9,2.7800885607311717e-9 +AppendByteString/4000/3500,2.0983326987725543e-6,2.0978794103978737e-6,2.0989698607013014e-6,1.8795884005556603e-9,1.3552366051105033e-9,3.011439448728533e-9 +AppendByteString/4000/3750,2.144211428885242e-6,2.1436133730548787e-6,2.1449209252414734e-6,2.1486973490805174e-9,1.7424069449406958e-9,3.0449073474721215e-9 +AppendByteString/4000/4000,2.1714739806037345e-6,2.1708349694251167e-6,2.172656477873106e-6,2.755799962844425e-9,1.878209563512789e-9,4.6953530320113455e-9 +AppendByteString/4000/4250,2.211274140635516e-6,2.2106313142060966e-6,2.2119003254630316e-6,2.169204572393035e-9,1.7745198823137e-9,2.6957643302274447e-9 +AppendByteString/4000/4500,2.264720581501304e-6,2.2639336682427526e-6,2.265682931298813e-6,2.8707118235492163e-9,2.419654143305098e-9,3.581314751373399e-9 +AppendByteString/4000/4750,2.28855456806246e-6,2.28803767449901e-6,2.2890710787166087e-6,1.7655807505843781e-9,1.4210288721980695e-9,2.21172200144057e-9 +AppendByteString/4000/5000,2.3335005461505443e-6,2.3328667528392553e-6,2.3340994941513198e-6,2.181153087827821e-9,1.7744046830667824e-9,2.7795409753126313e-9 +AppendByteString/4250/1,8.727193618241263e-7,8.721823193279171e-7,8.732453697987772e-7,1.711738699753888e-9,1.4079950361265563e-9,2.0452488554474225e-9 +AppendByteString/4250/250,1.6387672054575755e-6,1.6378604610113255e-6,1.6395250617908206e-6,2.7621748043452377e-9,2.3542863082382414e-9,3.3535942402673796e-9 +AppendByteString/4250/500,1.6876565921426817e-6,1.6869874535941562e-6,1.6883450488315904e-6,2.201260589486384e-9,1.8592211265562926e-9,2.5515230426541854e-9 +AppendByteString/4250/750,1.7193406475350315e-6,1.7188173222916842e-6,1.7199380621515768e-6,1.8982729585608326e-9,1.5627147422769214e-9,2.5867776464454144e-9 +AppendByteString/4250/1000,1.7615108135507787e-6,1.7611644249053316e-6,1.7619045885203395e-6,1.2325195169162801e-9,1.0239089718939284e-9,1.6142160893829508e-9 +AppendByteString/4250/1250,1.7918555989982483e-6,1.791357187322542e-6,1.7924367140308311e-6,1.8031424298439618e-9,1.4666847126960445e-9,2.427596950464983e-9 +AppendByteString/4250/1500,1.8402380941417718e-6,1.8395948599050515e-6,1.8409210305137861e-6,2.174609709043642e-9,1.7901614629164799e-9,2.642619141253069e-9 +AppendByteString/4250/1750,1.8764455475352004e-6,1.875905827871441e-6,1.8772983528097906e-6,2.127962282810561e-9,1.3824736764789657e-9,3.708777703007735e-9 +AppendByteString/4250/2000,1.9281808764502587e-6,1.9276445792242973e-6,1.9287735091039326e-6,1.9000077058870908e-9,1.5319447720144947e-9,2.3963543699532636e-9 +AppendByteString/4250/2250,1.9594633147014104e-6,1.9588833775917742e-6,1.960568884624153e-6,2.4848327988015365e-9,1.5525113792112916e-9,4.280764426933459e-9 +AppendByteString/4250/2500,2.000167084775214e-6,1.9996989672308955e-6,2.000628509638605e-6,1.5819896542070509e-9,1.262813209828408e-9,2.229586532940688e-9 +AppendByteString/4250/2750,2.0355037900263756e-6,2.0345581027360147e-6,2.036527731108597e-6,3.159225847532111e-9,2.762052279494257e-9,3.8134483377743655e-9 +AppendByteString/4250/3000,2.078769238857969e-6,2.0781752868678596e-6,2.07950888901725e-6,2.4034911844751346e-9,1.927793401404656e-9,3.357092019324937e-9 +AppendByteString/4250/3250,2.11724676929827e-6,2.116668657896333e-6,2.1179679397400605e-6,2.1283289096403726e-9,1.761001033098644e-9,2.8600706263032965e-9 +AppendByteString/4250/3500,2.154503820221699e-6,2.153927013468675e-6,2.15534656219003e-6,2.286211612567134e-9,1.5748619177553736e-9,3.84452440217331e-9 +AppendByteString/4250/3750,2.1936239445901733e-6,2.1926067346936023e-6,2.1944658622896183e-6,3.0674908730376823e-9,2.6976436104201118e-9,3.5273685043261798e-9 +AppendByteString/4250/4000,2.2277756356620917e-6,2.2271491630019926e-6,2.228384931570214e-6,2.065605801205743e-9,1.5791343817630788e-9,2.88810452899716e-9 +AppendByteString/4250/4250,2.2637013373150527e-6,2.2632249772237104e-6,2.264356278568695e-6,1.7947006009450493e-9,1.4268914460744416e-9,2.334899961337608e-9 +AppendByteString/4250/4500,2.304350605259646e-6,2.3035914656057346e-6,2.305039594385989e-6,2.3369647614991287e-9,1.9853868941421813e-9,2.7762299433668275e-9 +AppendByteString/4250/4750,2.3502224945974666e-6,2.3496470840373665e-6,2.3509030632695865e-6,2.1741162423821715e-9,1.8270289935042015e-9,2.8450695137685485e-9 +AppendByteString/4250/5000,2.3841999562697277e-6,2.383687352211896e-6,2.3845727513358477e-6,1.4464699392247347e-9,1.245523823970641e-9,1.7249088834996793e-9 +AppendByteString/4500/1,8.709081828831325e-7,8.704913290752139e-7,8.713323775454694e-7,1.411284924609786e-9,1.2080542515995805e-9,1.6675049068049297e-9 +AppendByteString/4500/250,1.6748047252577525e-6,1.6742194370850676e-6,1.6753345266782125e-6,2.03198030264803e-9,1.7178213441934843e-9,2.4367779605319383e-9 +AppendByteString/4500/500,1.7114258876637179e-6,1.710828928433077e-6,1.712003407944465e-6,1.9746525849299157e-9,1.689447049515236e-9,2.3449174411213533e-9 +AppendByteString/4500/750,1.7521054323592552e-6,1.7515946195895006e-6,1.7526213635816478e-6,1.7225962544543102e-9,1.4307092044210017e-9,2.2587600120209114e-9 +AppendByteString/4500/1000,1.7849606371018137e-6,1.7845771284907945e-6,1.7854064144963652e-6,1.443379575521358e-9,1.1423236012193897e-9,2.0809552936801316e-9 +AppendByteString/4500/1250,1.8225981000161047e-6,1.8221516421105086e-6,1.8230632053927567e-6,1.5417302382714533e-9,1.316409919492642e-9,1.8386032794044736e-9 +AppendByteString/4500/1500,1.8667369920616735e-6,1.8660532692741433e-6,1.8674294026492211e-6,2.1892390765812007e-9,1.8848814039971946e-9,2.552108140416132e-9 +AppendByteString/4500/1750,1.9092037724594086e-6,1.9087600477645335e-6,1.9095873578248514e-6,1.4644071519010553e-9,1.2608112721431666e-9,1.8285018164965601e-9 +AppendByteString/4500/2000,1.939301632312957e-6,1.9387030769482613e-6,1.9399915169177778e-6,2.21423132034581e-9,1.8411779217953346e-9,2.8829303059222573e-9 +AppendByteString/4500/2250,1.9803495818576358e-6,1.979851829177144e-6,1.980912748943255e-6,1.8403714576265136e-9,1.47609524019447e-9,2.376154367398634e-9 +AppendByteString/4500/2500,2.0187568389713143e-6,2.0182508924741305e-6,2.0192417274358285e-6,1.7531373652056137e-9,1.4965603369989808e-9,2.157488129487518e-9 +AppendByteString/4500/2750,2.0572023999928335e-6,2.056543011376421e-6,2.0578496551451864e-6,2.2450316871066996e-9,1.8575991524222756e-9,2.6643825439616417e-9 +AppendByteString/4500/3000,2.0936252311362964e-6,2.093177414791389e-6,2.0940326326385557e-6,1.4093698189456335e-9,1.129072474643714e-9,1.8553373191069202e-9 +AppendByteString/4500/3250,2.1351939293098855e-6,2.1348089775198637e-6,2.135609909199454e-6,1.3250831354610247e-9,1.0430717555298808e-9,1.6938144087770447e-9 +AppendByteString/4500/3500,2.1725903217504997e-6,2.1720858115192276e-6,2.173162256991192e-6,1.8276045528405186e-9,1.5535613763820531e-9,2.1867211287848803e-9 +AppendByteString/4500/3750,2.213867017662393e-6,2.2134871187476473e-6,2.214234948365083e-6,1.24536457509603e-9,1.0328584524731205e-9,1.5973301415930393e-9 +AppendByteString/4500/4000,2.2494040289675338e-6,2.24874454094082e-6,2.250024976988661e-6,2.1923654219605457e-9,1.8456439730179076e-9,2.74510681806247e-9 +AppendByteString/4500/4250,2.277858959528236e-6,2.2768647324058966e-6,2.278712951722821e-6,3.1633901523974033e-9,2.6711085549378673e-9,3.738368863947376e-9 +AppendByteString/4500/4500,2.3263474135679394e-6,2.3256675759745477e-6,2.3269258753463798e-6,2.204264368529602e-9,1.9410891894338593e-9,2.601544551669805e-9 +AppendByteString/4500/4750,2.3600851106348542e-6,2.3595173878973028e-6,2.360549500385117e-6,1.748780656125056e-9,1.4583945780794098e-9,2.316642189334559e-9 +AppendByteString/4500/5000,2.4026747131983187e-6,2.4021058877781003e-6,2.4033354794492205e-6,2.0580824619385757e-9,1.7875483238537832e-9,2.4215553955049316e-9 +AppendByteString/4750/1,8.711522643334799e-7,8.705990030598589e-7,8.717439344895866e-7,1.9428127501869435e-9,1.5655901662528814e-9,2.5151109036184738e-9 +AppendByteString/4750/250,1.7205151385086464e-6,1.7199412817192563e-6,1.7210204565358104e-6,1.864549232088333e-9,1.6355587795275972e-9,2.193113295520984e-9 +AppendByteString/4750/500,1.7588887736144274e-6,1.7582406873618873e-6,1.7597470703231434e-6,2.494368553822799e-9,2.070218880128184e-9,3.1989615017049627e-9 +AppendByteString/4750/750,1.7931083361523253e-6,1.7926670894158578e-6,1.7936658770950675e-6,1.756060726655451e-9,1.4309301630448947e-9,2.450822853051154e-9 +AppendByteString/4750/1000,1.8318032175834074e-6,1.8308616402899185e-6,1.8326210235157232e-6,2.9765756144036798e-9,2.404412464849542e-9,3.7049644182641233e-9 +AppendByteString/4750/1250,1.8737244735562903e-6,1.873126119136536e-6,1.8744329546021338e-6,2.1893219670684305e-9,1.748243803697287e-9,2.85721707780138e-9 +AppendByteString/4750/1500,1.9187578498093197e-6,1.9181783780418644e-6,1.9194284468667627e-6,2.090723716503193e-9,1.7553836946226849e-9,2.5784293760556193e-9 +AppendByteString/4750/1750,1.956278651574574e-6,1.9558354566531745e-6,1.9571493257735676e-6,2.1157795419507077e-9,1.3481795990987734e-9,3.843651312707233e-9 +AppendByteString/4750/2000,1.9989939282038697e-6,1.9981599404620854e-6,1.999900488303934e-6,2.9549653600122487e-9,2.531515471391097e-9,3.5293409947043596e-9 +AppendByteString/4750/2250,2.0352153045800978e-6,2.034677695599055e-6,2.0357861320953587e-6,1.8752317131526255e-9,1.5432145754427415e-9,2.2774362159908215e-9 +AppendByteString/4750/2500,2.0758046002449842e-6,2.0753239356849337e-6,2.0763893409100615e-6,1.7609027300020334e-9,1.4257819020440082e-9,2.4572196517844823e-9 +AppendByteString/4750/2750,2.117162306213154e-6,2.1164605707244617e-6,2.117954722732596e-6,2.567970664293599e-9,2.210687810912789e-9,3.082786738745812e-9 +AppendByteString/4750/3000,2.1547392485406e-6,2.1542232773580147e-6,2.155448390222432e-6,2.039985880696571e-9,1.562104317195352e-9,2.889930946196627e-9 +AppendByteString/4750/3250,2.190300178390709e-6,2.189910990752025e-6,2.190741046039706e-6,1.3689622507644411e-9,1.115162069872588e-9,1.6920327840875616e-9 +AppendByteString/4750/3500,2.228709533237748e-6,2.2281586103538066e-6,2.2294491834071255e-6,2.1758928681742397e-9,1.6404415142534432e-9,3.3961002851278906e-9 +AppendByteString/4750/3750,2.272703125563658e-6,2.272254693977526e-6,2.273356204824448e-6,1.8047845784570484e-9,1.357298416143138e-9,2.6938335995777635e-9 +AppendByteString/4750/4000,2.3137553435426407e-6,2.3131604052016006e-6,2.3145501862111727e-6,2.232690431616682e-9,1.80077929271015e-9,2.6727503420159646e-9 +AppendByteString/4750/4250,2.3487798360345958e-6,2.3479516842223778e-6,2.349518268587276e-6,2.6844183067543904e-9,2.267429546791486e-9,3.2235952332259725e-9 +AppendByteString/4750/4500,2.387730846208205e-6,2.3872248063437126e-6,2.3883211119089224e-6,1.816124498300554e-9,1.5435598304868385e-9,2.317314827686412e-9 +AppendByteString/4750/4750,2.429267867287116e-6,2.4288263587957684e-6,2.4300324188568218e-6,1.8361221147386344e-9,1.3676304309392866e-9,2.9121901949978164e-9 +AppendByteString/4750/5000,2.471579814483749e-6,2.4707963682684125e-6,2.472218682428546e-6,2.443877834270165e-9,2.088025251155288e-9,2.9877442208159397e-9 +AppendByteString/5000/1,8.697082352654831e-7,8.694238501507322e-7,8.700336839628678e-7,9.991898464135571e-10,8.373560242940378e-10,1.2327478049013355e-9 +AppendByteString/5000/250,1.7569659523821787e-6,1.756285414775693e-6,1.7577963187658234e-6,2.611085267448259e-9,2.1803383851518986e-9,3.2746897812492705e-9 +AppendByteString/5000/500,1.7889827048218e-6,1.7881395773636134e-6,1.7907744641066687e-6,4.065101982919215e-9,2.2259792064248677e-9,7.4430257749997316e-9 +AppendByteString/5000/750,1.8283220264634708e-6,1.8275218132401956e-6,1.8293873281847394e-6,3.13911293723628e-9,2.473596219733826e-9,4.027417273236368e-9 +AppendByteString/5000/1000,1.874745957792627e-6,1.874114155820083e-6,1.8755338366611344e-6,2.22104548445447e-9,1.9186464948136817e-9,2.6280841024858576e-9 +AppendByteString/5000/1250,1.912554390519309e-6,1.9117494657867805e-6,1.9134163249525407e-6,2.7539735696242236e-9,2.3307802600445917e-9,3.307561424267307e-9 +AppendByteString/5000/1500,1.9510951988022613e-6,1.950628018655682e-6,1.9515224719699897e-6,1.5283256236487263e-9,1.2527948031315015e-9,1.9083296008042607e-9 +AppendByteString/5000/1750,1.985416899295149e-6,1.98480346294821e-6,1.986055270615189e-6,2.114814210919945e-9,1.738634785892905e-9,2.589260705353989e-9 +AppendByteString/5000/2000,2.02915110997468e-6,2.0285208616234657e-6,2.029879394312792e-6,2.364621228143548e-9,1.8522891352255724e-9,3.326267130366569e-9 +AppendByteString/5000/2250,2.0623060992884206e-6,2.0617444465549427e-6,2.06298497743244e-6,2.0732348245724347e-9,1.6518310616879948e-9,3.0100209823551955e-9 +AppendByteString/5000/2500,2.1091235519581732e-6,2.108547856221732e-6,2.1100743985990683e-6,2.461878468348443e-9,1.5716472115054338e-9,4.257995400670086e-9 +AppendByteString/5000/2750,2.145739105090818e-6,2.1449235558168273e-6,2.1465819096199e-6,2.6975381201285733e-9,2.3040050568492874e-9,3.179772334902892e-9 +AppendByteString/5000/3000,2.1829444821739946e-6,2.182023782664768e-6,2.1838173698102e-6,2.9315086141277427e-9,2.4878066388981407e-9,3.4648956088878805e-9 +AppendByteString/5000/3250,2.211447917915787e-6,2.2108189715702086e-6,2.212045463847486e-6,2.0095356731668693e-9,1.6190301008511413e-9,2.7363462674919728e-9 +AppendByteString/5000/3500,2.251900488832815e-6,2.251151267679104e-6,2.2525254798438886e-6,2.3383531769839704e-9,1.9206078318937213e-9,2.9636468541647965e-9 +AppendByteString/5000/3750,2.2862810371995823e-6,2.285771424378157e-6,2.2869824623666217e-6,1.9891050804568117e-9,1.5066049803626308e-9,2.745470930927109e-9 +AppendByteString/5000/4000,2.326535104819687e-6,2.3260676518722484e-6,2.3270275069100873e-6,1.5996499076288321e-9,1.324768440052752e-9,1.946044962994516e-9 +AppendByteString/5000/4250,2.3613145737974167e-6,2.360502698754072e-6,2.3623576985912443e-6,3.028573430290624e-9,2.4434095357227e-9,4.181193907662193e-9 +AppendByteString/5000/4500,2.405132228183335e-6,2.404574059372687e-6,2.4058413930450067e-6,2.1255606028657644e-9,1.6229726490611068e-9,3.295484656805833e-9 +AppendByteString/5000/4750,2.441035957000655e-6,2.44037977145828e-6,2.4418361458176043e-6,2.348408800308171e-9,1.906631453581143e-9,2.9401636916767174e-9 +AppendByteString/5000/5000,2.4787544637090534e-6,2.4781298860640533e-6,2.4793009549881766e-6,1.9407039961991172e-9,1.5902831127966447e-9,2.521610248436527e-9 +ConsByteString/1/10,8.887449849237818e-7,8.881377180118334e-7,8.894997504119008e-7,2.2819809566683255e-9,1.974286970591605e-9,2.7176687676024446e-9 +ConsByteString/1/20,8.96271714894259e-7,8.9576999399168e-7,8.968980250911706e-7,1.8586436377263398e-9,1.5490911178227762e-9,2.2805537654469998e-9 +ConsByteString/1/30,8.94860754004637e-7,8.941881508792459e-7,8.955999769856316e-7,2.3414000556173552e-9,1.92839741835076e-9,2.975380467051576e-9 +ConsByteString/1/40,8.997156762924427e-7,8.991683645026521e-7,9.002748234498683e-7,1.8502622500139852e-9,1.556435583803124e-9,2.380731664229528e-9 +ConsByteString/1/50,9.000976468053416e-7,8.988327965818238e-7,9.010211800551074e-7,3.5375348233501702e-9,2.8095334335945974e-9,4.412381294733959e-9 +ConsByteString/1/60,9.000865046914069e-7,8.996055381263467e-7,9.005972145113003e-7,1.589398701198341e-9,1.2984808116792905e-9,1.924174830453843e-9 +ConsByteString/1/70,8.995841769057573e-7,8.989091968690164e-7,9.005587559216653e-7,2.667836620889768e-9,2.2656520409145742e-9,3.3714343679461346e-9 +ConsByteString/1/80,9.015565029757272e-7,9.005852003269987e-7,9.026586399905855e-7,3.374125210830971e-9,3.0546605942080636e-9,3.792008628577596e-9 +ConsByteString/1/90,9.060367284466999e-7,9.052267984657659e-7,9.067352068377989e-7,2.547670225278156e-9,2.1772733201166934e-9,3.078796077860893e-9 +ConsByteString/1/100,9.155582162891161e-7,9.151651453628488e-7,9.159163385180466e-7,1.2436072741645052e-9,1.05483577745682e-9,1.4922090980275066e-9 +ConsByteString/1/110,9.11575665985636e-7,9.110940657558289e-7,9.121411019465864e-7,1.7267104933470348e-9,1.444501318790576e-9,2.0035030520029034e-9 +ConsByteString/1/120,9.151667851247506e-7,9.139299234018603e-7,9.162790255382764e-7,3.979261838956381e-9,3.475738706849509e-9,4.681559945756857e-9 +ConsByteString/1/130,9.223136291413985e-7,9.213532835428272e-7,9.230638472072402e-7,2.85828127858787e-9,2.2049404776584077e-9,3.661923639896575e-9 +ConsByteString/1/140,9.220188738740872e-7,9.214881561062112e-7,9.224659977703281e-7,1.7188051734214233e-9,1.422367619562495e-9,2.089126142395274e-9 +ConsByteString/1/150,9.216122290237156e-7,9.206235231539955e-7,9.228340646090531e-7,3.496710801591715e-9,3.126045657242763e-9,4.042578572747955e-9 +ConsByteString/1/160,9.202288863961729e-7,9.196191124986661e-7,9.207994510018301e-7,1.917986400850356e-9,1.5342175592353307e-9,2.5147949482017173e-9 +ConsByteString/1/170,9.322351753441079e-7,9.315772613751423e-7,9.328794217139299e-7,2.2793655866212122e-9,1.9601762535068915e-9,2.6848284226286205e-9 +ConsByteString/1/180,9.347256580010496e-7,9.343097223691951e-7,9.351403419103248e-7,1.3941516616213759e-9,1.1211311275953695e-9,1.8051147435181141e-9 +ConsByteString/1/190,9.359771897586544e-7,9.354990291365668e-7,9.364644304123593e-7,1.587754027670139e-9,1.2991943916594697e-9,1.9755413860499824e-9 +ConsByteString/1/200,9.335921309460692e-7,9.328883057299155e-7,9.342717232404791e-7,2.516090102645967e-9,2.1844122863328304e-9,3.0851399568266434e-9 +ConsByteString/1/210,9.404860832498502e-7,9.398963052235988e-7,9.409765407960682e-7,1.8982789372030137e-9,1.584514391001562e-9,2.285210750918892e-9 +ConsByteString/1/220,9.374688772319027e-7,9.370126789087343e-7,9.378707370277701e-7,1.4225814984181014e-9,1.1934136082211343e-9,1.7262057589187896e-9 +ConsByteString/1/230,9.36575663713575e-7,9.355617814768774e-7,9.375481409699397e-7,3.271977093090535e-9,2.802338829422523e-9,3.833176569335636e-9 +ConsByteString/1/240,9.380385739596658e-7,9.376014125476196e-7,9.385341683493356e-7,1.5538549378733464e-9,1.2629496833249615e-9,2.051580488194824e-9 +ConsByteString/1/250,9.409795162604911e-7,9.403833913151794e-7,9.415498219533807e-7,1.9666269668688945e-9,1.7147238497927437e-9,2.2685465360950928e-9 +ConsByteString/1/260,9.517621896053211e-7,9.51226880141478e-7,9.52239978513879e-7,1.641930856811497e-9,1.3760652007089958e-9,2.002723087461762e-9 +ConsByteString/1/270,9.48654722576836e-7,9.479171991400734e-7,9.49325255351367e-7,2.3369556713075282e-9,1.9603561177524164e-9,2.8295355084532473e-9 +ConsByteString/1/280,9.564802007612076e-7,9.55860421515517e-7,9.571695694042585e-7,2.2027531463195995e-9,1.766575331251473e-9,2.777405764361271e-9 +ConsByteString/1/290,9.587352304660878e-7,9.580453430451759e-7,9.592906668992725e-7,2.0914556591112604e-9,1.5958178450028521e-9,2.7113567028682593e-9 +ConsByteString/1/300,9.608920915055762e-7,9.603860622715372e-7,9.61384416856524e-7,1.7266569371778826e-9,1.4176051693543915e-9,2.224733036157877e-9 +ConsByteString/1/310,9.596200547031847e-7,9.590463312404941e-7,9.601028059165276e-7,1.794836972592728e-9,1.49844307887323e-9,2.310081730435165e-9 +ConsByteString/1/320,9.608073412308436e-7,9.602165342021728e-7,9.613597508080774e-7,1.946783531478934e-9,1.6255392007808861e-9,2.5181260782698767e-9 +ConsByteString/1/330,9.627957999569088e-7,9.622087929021121e-7,9.63239529806675e-7,1.7206736294922336e-9,1.3961742859102317e-9,2.1168363316888115e-9 +ConsByteString/1/340,9.62562255356081e-7,9.619373221673493e-7,9.631026291779828e-7,2.042100277223286e-9,1.7561002939200238e-9,2.3441617013738933e-9 +ConsByteString/1/350,9.67355056345999e-7,9.668335594981433e-7,9.678957859440133e-7,1.7147705266078352e-9,1.3964953447526283e-9,2.2977552195704562e-9 +ConsByteString/1/360,9.700358894667273e-7,9.694800631515185e-7,9.70608663726641e-7,1.9821601589994647e-9,1.6966644567333527e-9,2.3636869893783835e-9 +ConsByteString/1/370,9.715250187910113e-7,9.706418628649283e-7,9.72380244133655e-7,2.7708537112517964e-9,2.26380339757806e-9,3.64541857500397e-9 +ConsByteString/1/380,9.70426515070797e-7,9.696905208634261e-7,9.712867472107823e-7,2.692397233168888e-9,2.283436777355089e-9,3.236800013390337e-9 +ConsByteString/1/390,9.740537407642046e-7,9.735094514169013e-7,9.74531750086535e-7,1.743887973649167e-9,1.4769900451399172e-9,2.123961973589418e-9 +ConsByteString/1/400,9.737967195513985e-7,9.733191146449025e-7,9.74432485518322e-7,1.7767817424522636e-9,1.2941325235645715e-9,2.5103300147450713e-9 +ConsByteString/1/410,9.981166216834877e-7,9.973651996163196e-7,9.988803696946976e-7,2.5753574461574633e-9,2.086626649146337e-9,3.256783236884225e-9 +ConsByteString/1/420,9.940053728486412e-7,9.933043423826695e-7,9.946295086243758e-7,2.2667693756402215e-9,1.9781182255289618e-9,2.6608871728746e-9 +ConsByteString/1/430,9.945951982794103e-7,9.936259513595296e-7,9.954768357239332e-7,3.025435168083182e-9,2.6029995131188645e-9,3.486618298178419e-9 +ConsByteString/1/440,9.88141992504195e-7,9.87110931773692e-7,9.89143015907069e-7,3.3691587597514916e-9,2.9925545522566465e-9,3.981770884102366e-9 +ConsByteString/1/450,9.94892373096075e-7,9.93829496817346e-7,9.958946908610239e-7,3.5151153874854004e-9,2.9715095034296662e-9,4.456980202587098e-9 +ConsByteString/1/460,9.930812633930288e-7,9.92294092261165e-7,9.936393121147679e-7,2.2375686567788466e-9,1.6698827265120993e-9,3.0201297650140766e-9 +ConsByteString/1/470,9.944633764111994e-7,9.932781270138063e-7,9.953871923826456e-7,3.5238675510244336e-9,3.0943182883382104e-9,3.98527617034367e-9 +ConsByteString/1/480,9.958041912212367e-7,9.954874862941656e-7,9.96274530454375e-7,1.3624486427346191e-9,9.804332784416987e-10,2.2496839355983856e-9 +ConsByteString/1/490,9.983457337254581e-7,9.9773399814036e-7,9.990514695594101e-7,2.146713516652519e-9,1.819879417771379e-9,2.506689687982226e-9 +ConsByteString/1/500,1.0022182609289286e-6,1.0018180850736257e-6,1.0027522016539002e-6,1.4834063394525857e-9,1.202339765090512e-9,1.8372621154593815e-9 +ConsByteString/1/510,1.0262193234562966e-6,1.0255842889901366e-6,1.0267994019519199e-6,2.0331018120742194e-9,1.6710880549603377e-9,2.50994593503225e-9 +ConsByteString/1/520,1.0235328004882823e-6,1.0227949133446038e-6,1.0242400458986081e-6,2.318130170538856e-9,1.995144000952323e-9,2.774797669489703e-9 +ConsByteString/1/530,1.0234606914139906e-6,1.02294514733826e-6,1.0239178746378782e-6,1.596324724137986e-9,1.3184927473626208e-9,1.981785150469767e-9 +ConsByteString/1/540,1.0201406353331003e-6,1.0196871816985897e-6,1.0205660017851426e-6,1.5301018497090085e-9,1.180916890652388e-9,2.051420900331858e-9 +ConsByteString/1/550,1.0260841892362478e-6,1.025732506745206e-6,1.0267686555824478e-6,1.5442944735135697e-9,1.0361658914192077e-9,2.587020744601526e-9 +ConsByteString/1/560,1.024263855066942e-6,1.0237096984897916e-6,1.024865867030543e-6,1.91239667336593e-9,1.5616188272241843e-9,2.52094686746324e-9 +ConsByteString/1/570,1.0321370703812254e-6,1.0315963187341872e-6,1.032701719477594e-6,1.970741005246593e-9,1.7089238038131923e-9,2.295613526394138e-9 +ConsByteString/1/580,1.032083155874198e-6,1.031471018412253e-6,1.0327287754681034e-6,2.0262665654546484e-9,1.6446500145500661e-9,2.4352790199979284e-9 +ConsByteString/1/590,1.0312025953720107e-6,1.030641894336208e-6,1.0317745430088709e-6,1.8791539648588005e-9,1.5232072339430085e-9,2.2551122583546706e-9 +ConsByteString/1/600,1.0366506460595526e-6,1.0358518163833752e-6,1.037261899317298e-6,2.367483011126759e-9,1.8298012732232928e-9,3.0480189167250308e-9 +ConsByteString/1/610,1.041602447614791e-6,1.0410603757270222e-6,1.0422222724887504e-6,1.9419602588409943e-9,1.611301683714936e-9,2.430838301349769e-9 +ConsByteString/1/620,1.054929801967889e-6,1.054503513320779e-6,1.0553229686046589e-6,1.4367574069039603e-9,1.1674901057949409e-9,1.8021659802970264e-9 +ConsByteString/1/630,1.0465273876386366e-6,1.0461884140220018e-6,1.0470892583784548e-6,1.4339277618091133e-9,1.0753105730302926e-9,2.1361877148252954e-9 +ConsByteString/1/640,1.0438166917022131e-6,1.0433631398354054e-6,1.0443625203489641e-6,1.6066469399918897e-9,1.2443235168861248e-9,2.1071679973661966e-9 +ConsByteString/1/650,1.0513563440126179e-6,1.0510608042686658e-6,1.0517593567477232e-6,1.216088890530123e-9,9.894494768481926e-10,1.588456351367814e-9 +ConsByteString/1/660,1.0550291537230439e-6,1.0544082492887527e-6,1.055667342159761e-6,2.097401893019421e-9,1.7998224645674214e-9,2.663513378954752e-9 +ConsByteString/1/670,1.0512316216376e-6,1.0505179751871795e-6,1.051833526559136e-6,2.330902823678775e-9,1.9403441999469087e-9,2.7946637086856155e-9 +ConsByteString/1/680,1.0491430350410421e-6,1.0485604545254233e-6,1.0496642856479455e-6,1.7312015473134638e-9,1.5555427801682107e-9,1.976176838238785e-9 +ConsByteString/1/690,1.0604789957757352e-6,1.0595179809261102e-6,1.0612944913036329e-6,3.055849716266953e-9,2.5871030225071084e-9,3.5862823358021562e-9 +ConsByteString/1/700,1.05969324191986e-6,1.059000853124669e-6,1.0603526471889022e-6,2.2485103935765027e-9,1.8910020842077904e-9,2.9008165437267185e-9 +ConsByteString/1/710,1.0598046293239015e-6,1.0593593958346887e-6,1.0602072323587617e-6,1.4057840345674587e-9,1.1777858668393387e-9,1.752089528873687e-9 +ConsByteString/1/720,1.0619064044096907e-6,1.0614858573489394e-6,1.0623044715749956e-6,1.3595577282714165e-9,1.0761540058721902e-9,1.8247350710308455e-9 +ConsByteString/1/730,1.0566763054161078e-6,1.0559556738417434e-6,1.0573741207939726e-6,2.423764824894077e-9,2.1405459221234885e-9,2.8328651814578525e-9 +ConsByteString/1/740,1.0634201656869306e-6,1.0627254770617622e-6,1.0640327657419611e-6,2.3303795612036178e-9,1.9200128946824847e-9,3.17452834245749e-9 +ConsByteString/1/750,1.066453929294498e-6,1.0657898411790258e-6,1.0671160762173614e-6,2.1296472260878777e-9,1.7774492819997594e-9,2.6037489333387564e-9 +ConsByteString/1/760,1.0675192592675796e-6,1.066954400445065e-6,1.0681106880017966e-6,1.988621615937878e-9,1.723557228612782e-9,2.323251455928247e-9 +ConsByteString/1/770,1.073011970745558e-6,1.0723993086799224e-6,1.0735889483148253e-6,1.9116322975364306e-9,1.461191819491298e-9,2.6152234910750528e-9 +ConsByteString/1/780,1.0693404984038727e-6,1.0683351998359172e-6,1.0699923301943672e-6,2.777884362573713e-9,2.2005288548327507e-9,3.4347478832215885e-9 +ConsByteString/1/790,1.0680188581475987e-6,1.0674565295535982e-6,1.0686179093224505e-6,1.986995096973601e-9,1.692385529421732e-9,2.5359588486296736e-9 +ConsByteString/1/800,1.0699731171567247e-6,1.0694029623251804e-6,1.0705411639831927e-6,1.8964499675435384e-9,1.6650858434484574e-9,2.2160034203852847e-9 +ConsByteString/1/810,1.0713994004200019e-6,1.0709918300671953e-6,1.071760249029395e-6,1.2911546806108946e-9,1.0467260785005857e-9,1.7123367386516194e-9 +ConsByteString/1/820,1.069214367135253e-6,1.0687747870663965e-6,1.0696481658983843e-6,1.4501632590994019e-9,1.2111104208702897e-9,1.7854884374210153e-9 +ConsByteString/1/830,1.0674826355056149e-6,1.0668677650709205e-6,1.068047382780676e-6,2.0211577413426162e-9,1.7244277906072563e-9,2.430837731718019e-9 +ConsByteString/1/840,1.0671114189781363e-6,1.0663317072311294e-6,1.0678546549337683e-6,2.558672581333731e-9,2.1379379983229657e-9,3.285932170422107e-9 +ConsByteString/1/850,1.07417990032709e-6,1.073470993714246e-6,1.0749426789911409e-6,2.4746659712577216e-9,2.0825373178042993e-9,3.0925758962029296e-9 +ConsByteString/1/860,1.07622308989509e-6,1.0756910494891697e-6,1.0768714342983751e-6,1.9748931278782553e-9,1.5191111981744313e-9,2.549167290661749e-9 +ConsByteString/1/870,1.066694304935749e-6,1.0659764509687841e-6,1.0672684431466025e-6,2.1162530608175774e-9,1.7585427480723144e-9,2.795678822380427e-9 +ConsByteString/1/880,1.0710711152811151e-6,1.0705710493462513e-6,1.0715558405498776e-6,1.6123322633457281e-9,1.3493070264507135e-9,1.972390240702653e-9 +ConsByteString/1/890,1.0783185991319334e-6,1.0778811921506654e-6,1.0788064400033344e-6,1.5451748355797234e-9,1.3035708580271186e-9,2.0578073816125442e-9 +ConsByteString/1/900,1.0712217209000155e-6,1.0706117465922332e-6,1.0717994695762413e-6,1.975501490199477e-9,1.6237331841003651e-9,2.401410072903363e-9 +ConsByteString/1/910,1.07702129607958e-6,1.0766251766127555e-6,1.077591529534928e-6,1.5989278820859223e-9,1.2918147301947416e-9,2.0732095294541525e-9 +ConsByteString/1/920,1.0729442499085123e-6,1.0720345105914298e-6,1.0739342343127196e-6,3.1862211061764924e-9,2.7398906685421633e-9,3.732051944879352e-9 +ConsByteString/1/930,1.0749569010094818e-6,1.0742680316136885e-6,1.0756376597036722e-6,2.273141816371747e-9,1.9683153704608293e-9,2.67512718584967e-9 +ConsByteString/1/940,1.0690705311573997e-6,1.067984613908237e-6,1.0702304309712569e-6,3.863322865049033e-9,3.4158635318043936e-9,4.455227761390248e-9 +ConsByteString/1/950,1.0748020485285042e-6,1.074243373133799e-6,1.075341885849501e-6,1.92790994600838e-9,1.6524134029598273e-9,2.3157666817890707e-9 +ConsByteString/1/960,1.0691060291555087e-6,1.0685283825335728e-6,1.0696086797150147e-6,1.7878614728891159e-9,1.4957786700900598e-9,2.1895937405624305e-9 +ConsByteString/1/970,1.0728196644496319e-6,1.0724196572127257e-6,1.0732659816863706e-6,1.4508936249017798e-9,1.1918777748578614e-9,1.7539487029614329e-9 +ConsByteString/1/980,1.0757886703135783e-6,1.0752753489751666e-6,1.076436579869965e-6,2.035154331639608e-9,1.5294115454939748e-9,3.1045402926198605e-9 +ConsByteString/1/990,1.0704525793562256e-6,1.0698491047888574e-6,1.0709946718258506e-6,1.92984663520785e-9,1.5761031479299738e-9,2.4378868632470138e-9 +ConsByteString/1/1000,1.0708335155282725e-6,1.0699594235401398e-6,1.0715479474891675e-6,2.690090176157481e-9,2.3374768183526123e-9,3.1583263776398554e-9 +ConsByteString/1/1010,1.0787325650597468e-6,1.0781620000828927e-6,1.0793065042639853e-6,1.914776718728842e-9,1.6527757437561014e-9,2.2973852052114668e-9 +ConsByteString/1/1020,1.0805727431436547e-6,1.0801772729869499e-6,1.0810298187959614e-6,1.4353898116209912e-9,1.136241418695273e-9,1.9263894734016143e-9 +ConsByteString/1/1030,1.0960499427530602e-6,1.0955666675670613e-6,1.0968049384626176e-6,1.924092174587165e-9,1.461077032653611e-9,3.0108613835412798e-9 +ConsByteString/1/1040,1.0952042314271446e-6,1.0941958947186051e-6,1.0962363645856292e-6,3.2909065518196177e-9,2.8855439019454063e-9,3.764822803788381e-9 +ConsByteString/1/1050,1.102936993342888e-6,1.102458046956589e-6,1.103550104191163e-6,1.8010813416792717e-9,1.4040299848415263e-9,2.727824978511447e-9 +ConsByteString/1/1060,1.1091013216354586e-6,1.1084029508576136e-6,1.109751095344675e-6,2.150438678260504e-9,1.7957188228892213e-9,2.619801673296311e-9 +ConsByteString/1/1070,1.1059258907751683e-6,1.1053053023759725e-6,1.1064911490608022e-6,1.90824390819519e-9,1.6684788542911626e-9,2.2444339688814797e-9 +ConsByteString/1/1080,1.1083256894881446e-6,1.1078860225142804e-6,1.1088512187638075e-6,1.5823646645411465e-9,1.3307690376434385e-9,1.917958767302659e-9 +ConsByteString/1/1090,1.1091364116373747e-6,1.1087342441314733e-6,1.1098013743425328e-6,1.6639719749451255e-9,1.1137818789311143e-9,2.939252183316055e-9 +ConsByteString/1/1100,1.105315595082968e-6,1.1046662605383038e-6,1.1058755137038912e-6,2.0682644342432448e-9,1.784053951469595e-9,2.446768804845846e-9 +ConsByteString/1/1110,1.1128258202652505e-6,1.1122404838800862e-6,1.1134394296670137e-6,1.973963590528635e-9,1.6526559445163597e-9,2.4478988319896723e-9 +ConsByteString/1/1120,1.1100489142849687e-6,1.1095003526746276e-6,1.1106153269077518e-6,1.854042720414246e-9,1.5540257980496588e-9,2.3327114036437314e-9 +ConsByteString/1/1130,1.1103426385527393e-6,1.1098744775057994e-6,1.1108417023817977e-6,1.6794659326364786e-9,1.4699651172726555e-9,2.0189981277404498e-9 +ConsByteString/1/1140,1.110449148871182e-6,1.1097575245554717e-6,1.1110470605913512e-6,2.112914580517329e-9,1.8212459506916674e-9,2.5304796672391243e-9 +ConsByteString/1/1150,1.1201127247763202e-6,1.1193365134105548e-6,1.120900740677311e-6,2.4906495208520335e-9,2.1268639440732677e-9,2.9248080276828132e-9 +ConsByteString/1/1160,1.1131820750205758e-6,1.1125618576823824e-6,1.113784180394839e-6,2.0506833825439956e-9,1.7297706439837116e-9,2.4360014377325226e-9 +ConsByteString/1/1170,1.1206242975486775e-6,1.1201840073479647e-6,1.12112838000457e-6,1.5798582315102822e-9,1.2830263056517042e-9,1.9889099464201744e-9 +ConsByteString/1/1180,1.1155695922265182e-6,1.1147161377574705e-6,1.1164244464171698e-6,2.809926531540501e-9,2.4063134004005816e-9,3.4515853810178997e-9 +ConsByteString/1/1190,1.1197200836197562e-6,1.1190749412764735e-6,1.1203620313878972e-6,2.1677618749993942e-9,1.8262800662205114e-9,2.5854939516537437e-9 +ConsByteString/1/1200,1.1226873188632109e-6,1.1221197297018955e-6,1.1233001071223022e-6,1.9766780064283763e-9,1.4879695610543867e-9,2.635009848687408e-9 +ConsByteString/1/1210,1.1266247438040335e-6,1.1261628985673782e-6,1.1271899094403308e-6,1.6557629796750377e-9,1.3515164519808068e-9,2.145511053358659e-9 +ConsByteString/1/1220,1.132165549470435e-6,1.1313347534456258e-6,1.1328984455109974e-6,2.6116319211374137e-9,2.2247931422037507e-9,3.098356974532777e-9 +ConsByteString/1/1230,1.1249718562240864e-6,1.1243017680076593e-6,1.1256621756257689e-6,2.389390212004453e-9,2.014585052787697e-9,2.8426446130646612e-9 +ConsByteString/1/1240,1.1361244788935205e-6,1.1352371214774687e-6,1.1367875980426458e-6,2.5795419198466137e-9,2.2190645617696545e-9,3.047580637551267e-9 +ConsByteString/1/1250,1.1275368129914645e-6,1.1268778467934338e-6,1.128220416639679e-6,2.2428769798193245e-9,1.9162089719997233e-9,2.634951740407513e-9 +ConsByteString/1/1260,1.1262206644817262e-6,1.1256351258109202e-6,1.1267517515469128e-6,1.8410065508546043e-9,1.6028003246810536e-9,2.2174919088878164e-9 +ConsByteString/1/1270,1.1277281083531601e-6,1.1273350754810678e-6,1.1280688977030877e-6,1.2982482781024052e-9,1.1010081169009106e-9,1.5505353803158556e-9 +ConsByteString/1/1280,1.1293005803115774e-6,1.1289447276884259e-6,1.1296805334023027e-6,1.229637509455517e-9,1.056937729640312e-9,1.4784050308959508e-9 +ConsByteString/1/1290,1.1388383324873566e-6,1.1382825743440881e-6,1.1393626501872992e-6,1.8175069177087056e-9,1.5155031954230963e-9,2.2205548387880847e-9 +ConsByteString/1/1300,1.1312777200625868e-6,1.1302720749539822e-6,1.1320948053096105e-6,3.0658875020855792e-9,2.618964391745212e-9,3.597550056716224e-9 +ConsByteString/1/1310,1.1309072234837281e-6,1.1302566420835662e-6,1.1315970852378687e-6,2.181231421672054e-9,1.7674693939306935e-9,2.800663736328016e-9 +ConsByteString/1/1320,1.1306623497800419e-6,1.1302175756554459e-6,1.1312822458941715e-6,1.7310690419344338e-9,1.3884824117575683e-9,2.2430519542493147e-9 +ConsByteString/1/1330,1.1353744561479695e-6,1.134977656806991e-6,1.1358898838553716e-6,1.55130065626269e-9,1.2961671210585408e-9,2.1214739904114664e-9 +ConsByteString/1/1340,1.1350347785790716e-6,1.1345822459319672e-6,1.1354871472473987e-6,1.549390062753024e-9,1.2425749698915293e-9,2.0532146172512587e-9 +ConsByteString/1/1350,1.1409066500185398e-6,1.1405320978725888e-6,1.1413241309838163e-6,1.3516214067547227e-9,1.1577410598772468e-9,1.649077002766667e-9 +ConsByteString/1/1360,1.1423932729586732e-6,1.1419329816759104e-6,1.1428875192661444e-6,1.6378952547484417e-9,1.33975171186557e-9,2.1163267513862654e-9 +ConsByteString/1/1370,1.1407425105873504e-6,1.140369574771256e-6,1.1411807381302192e-6,1.3537814194418958e-9,1.113956220572666e-9,1.7554847246348958e-9 +ConsByteString/1/1380,1.1404891961295873e-6,1.1400138822865884e-6,1.1410402698532873e-6,1.7412426074130854e-9,1.3425919025535405e-9,2.607939973457714e-9 +ConsByteString/1/1390,1.14443154910821e-6,1.1437060228140857e-6,1.1452189167652918e-6,2.571781290922793e-9,2.1426130312824058e-9,3.0414029979452577e-9 +ConsByteString/1/1400,1.1464703233559465e-6,1.1456024991226776e-6,1.1473225105969926e-6,3.0594426451139975e-9,2.667662997225881e-9,3.5818510224948967e-9 +ConsByteString/1/1410,1.1506915078624873e-6,1.1501802398995028e-6,1.1511692408601383e-6,1.5817489028057132e-9,1.3426914901309215e-9,1.9245788862486944e-9 +ConsByteString/1/1420,1.1483985359149055e-6,1.1480631932787755e-6,1.1488579384801855e-6,1.3402613531294328e-9,1.0673974819056171e-9,1.7857510179725517e-9 +ConsByteString/1/1430,1.144802626872359e-6,1.1441180010458816e-6,1.1455350892755496e-6,2.308787023553356e-9,1.93714213374334e-9,2.7880059606959827e-9 +ConsByteString/1/1440,1.1507780185920874e-6,1.1500865768720725e-6,1.1515049841328937e-6,2.396823296990537e-9,1.9320432092941162e-9,3.130542745122676e-9 +ConsByteString/1/1450,1.147310433610844e-6,1.1467289326566908e-6,1.147754658738436e-6,1.7416046066210887e-9,1.3881803904709943e-9,2.313976078556799e-9 +ConsByteString/1/1460,1.1545190651515051e-6,1.1539172756876279e-6,1.1550830475898496e-6,1.889077240827071e-9,1.5316376047102983e-9,2.441732468670928e-9 +ConsByteString/1/1470,1.1492686283345495e-6,1.1486831443113356e-6,1.1499118080148905e-6,2.0509922920136217e-9,1.7586109558144402e-9,2.595682674899246e-9 +ConsByteString/1/1480,1.1532089797216618e-6,1.152644789125664e-6,1.1538753014859366e-6,2.0383641849254163e-9,1.7456358445694434e-9,2.406966555481418e-9 +ConsByteString/1/1490,1.1531713374701483e-6,1.1526516108258493e-6,1.1536591012133007e-6,1.7000281221282183e-9,1.3830491669754148e-9,2.0718063467364286e-9 +ConsByteString/1/1500,1.1524757267866478e-6,1.1519134015020705e-6,1.1531036371867311e-6,1.9111788946139756e-9,1.438913116410118e-9,2.480565716415479e-9 +LengthOfByteString/10,6.918363358714141e-7,6.913462207821151e-7,6.923922998901122e-7,1.7224301233574727e-9,1.4624927469605017e-9,2.0306032345212866e-9 +LengthOfByteString/20,6.924490411374066e-7,6.91724534125478e-7,6.932373667248559e-7,2.5924634907416878e-9,2.286329593632348e-9,3.022983734853846e-9 +LengthOfByteString/30,6.93240739553326e-7,6.927189027057273e-7,6.937135092544039e-7,1.5985967885971712e-9,1.3474118644865123e-9,1.8923779465711492e-9 +LengthOfByteString/40,6.911882454073567e-7,6.905824713033825e-7,6.918166838485261e-7,2.093614541422803e-9,1.8307379331684757e-9,2.4055873076526595e-9 +LengthOfByteString/50,6.900811955486185e-7,6.894238132078887e-7,6.908357771123845e-7,2.42456999561517e-9,2.041955158049748e-9,3.1259617896421693e-9 +LengthOfByteString/60,6.94288934828973e-7,6.937763198826165e-7,6.947619276956686e-7,1.5916883717675424e-9,1.3391246876919173e-9,1.902624522799725e-9 +LengthOfByteString/70,6.91529895896571e-7,6.911445887421638e-7,6.919626419974391e-7,1.3889392127977822e-9,1.1746972689921604e-9,1.6714440343355542e-9 +LengthOfByteString/80,6.891751729360229e-7,6.887353549436966e-7,6.896222353350715e-7,1.4426457612611412e-9,1.2507452722015727e-9,1.715707540382411e-9 +LengthOfByteString/90,6.906781882212725e-7,6.900566469334825e-7,6.911993390829718e-7,1.861244025114826e-9,1.514083408616721e-9,2.4322660021193524e-9 +LengthOfByteString/100,6.926303212072682e-7,6.917818628432164e-7,6.933259531434905e-7,2.6104652459465583e-9,2.0509498558458183e-9,3.2613465387037046e-9 +LengthOfByteString/110,6.906282246464705e-7,6.899838107510167e-7,6.914266023166805e-7,2.394199789504098e-9,1.9903028866505355e-9,2.9355671461242824e-9 +LengthOfByteString/120,6.947484888302913e-7,6.942802056798624e-7,6.952681981060894e-7,1.6347009154582614e-9,1.409654870616604e-9,1.9760548046707038e-9 +LengthOfByteString/130,6.912403512077194e-7,6.905744484937867e-7,6.918874511332281e-7,2.2881486385363675e-9,1.89172149869644e-9,2.83022186855406e-9 +LengthOfByteString/140,6.901771305892759e-7,6.895960457976004e-7,6.907777174086077e-7,2.0254237557961747e-9,1.7023929154063773e-9,2.396032165256322e-9 +LengthOfByteString/150,6.917564769665439e-7,6.907852697798725e-7,6.927376073919972e-7,3.395431463266462e-9,2.9999984413723452e-9,3.9227138126129984e-9 +LengthOfByteString/160,6.926000873406711e-7,6.920186109803844e-7,6.932614810502558e-7,2.066906389840871e-9,1.8010862307161144e-9,2.446278883869121e-9 +LengthOfByteString/170,6.92056382365547e-7,6.916065034991805e-7,6.925520452040767e-7,1.5860672871049808e-9,1.3311816070688448e-9,1.8994264047589955e-9 +LengthOfByteString/180,6.92306058773717e-7,6.915775845717141e-7,6.931592668273627e-7,2.673898262099867e-9,2.307240996028567e-9,3.114514818933495e-9 +LengthOfByteString/190,6.880405181808434e-7,6.874327747100426e-7,6.886720682922363e-7,2.1310216331890844e-9,1.7549666587918568e-9,2.5482807418797582e-9 +LengthOfByteString/200,6.906232292129042e-7,6.899865698737377e-7,6.913212806284701e-7,2.183685892608739e-9,1.8282506643058114e-9,2.6742024903899237e-9 +LengthOfByteString/210,6.90879803208937e-7,6.899765758430814e-7,6.919991877666733e-7,3.3584508850246548e-9,2.8333863826608174e-9,4.0724093867800654e-9 +LengthOfByteString/220,6.949577561566742e-7,6.943423652702886e-7,6.956660735881098e-7,2.197456174216894e-9,1.7710541355110373e-9,2.726918046977941e-9 +LengthOfByteString/230,6.915697372511166e-7,6.910718511511577e-7,6.920652155823578e-7,1.7449161803824519e-9,1.5076359060466112e-9,2.122247373675098e-9 +LengthOfByteString/240,6.907688875425555e-7,6.900865088367143e-7,6.914059410288103e-7,2.323771412819066e-9,2.0091140289318227e-9,2.816689915771845e-9 +LengthOfByteString/250,6.897963693493546e-7,6.893349933882488e-7,6.903467866382145e-7,1.7067214220056381e-9,1.4447217940848775e-9,2.1300082496337356e-9 +LengthOfByteString/260,6.910047325664085e-7,6.905907323827796e-7,6.915650868011215e-7,1.544033611752064e-9,1.2470372023925287e-9,1.954676586838051e-9 +LengthOfByteString/270,6.903390983234671e-7,6.899364093582113e-7,6.907167205507057e-7,1.3052486975923544e-9,1.0804556013906848e-9,1.6028079005112877e-9 +LengthOfByteString/280,6.958722047432467e-7,6.952710531318362e-7,6.964223866905271e-7,1.948245726646485e-9,1.5445246140315838e-9,2.5604223369988723e-9 +LengthOfByteString/290,6.896011482650714e-7,6.890085118490271e-7,6.903384331816988e-7,2.2099660964329515e-9,1.909333117116593e-9,2.5711847824224948e-9 +LengthOfByteString/300,6.922730466829891e-7,6.918966870544644e-7,6.927516230288447e-7,1.4433657049610453e-9,1.1701203694220585e-9,2.097147891613562e-9 +LengthOfByteString/310,6.940608077761183e-7,6.935488944122866e-7,6.945483794017752e-7,1.7282890280841675e-9,1.4101563006838874e-9,2.144966110322548e-9 +LengthOfByteString/320,6.923867664076782e-7,6.918219187176536e-7,6.92959038913798e-7,1.8105513333419909e-9,1.485001781707557e-9,2.2300975458069764e-9 +LengthOfByteString/330,6.914223394704036e-7,6.908312085290074e-7,6.921070582951152e-7,2.092820087510535e-9,1.7254697249865235e-9,2.536010154210618e-9 +LengthOfByteString/340,6.921211732150575e-7,6.916572728947082e-7,6.926502469590807e-7,1.7163319796839504e-9,1.4478197103108547e-9,1.9998581466893457e-9 +LengthOfByteString/350,6.877261952091509e-7,6.871087342510288e-7,6.883704997174329e-7,2.1245434473144445e-9,1.8085599945752724e-9,2.7309865738347946e-9 +LengthOfByteString/360,6.915637508738587e-7,6.909337680292007e-7,6.922602493981284e-7,2.4076877085312696e-9,2.0083773130944523e-9,3.0039034979873643e-9 +LengthOfByteString/370,6.918360497667747e-7,6.910512374490531e-7,6.926166439766151e-7,2.7137852195238444e-9,2.1876203958976818e-9,3.379173326726156e-9 +LengthOfByteString/380,6.934071904337059e-7,6.925246768422958e-7,6.941796002520871e-7,2.657426557497926e-9,2.301424713334001e-9,3.0633637990139007e-9 +LengthOfByteString/390,6.939991497699897e-7,6.931137170908144e-7,6.948854038932532e-7,2.9841875395815752e-9,2.6711312999125174e-9,3.4197023202325623e-9 +LengthOfByteString/400,6.917242552557838e-7,6.912648444761736e-7,6.922405215467883e-7,1.594679135025524e-9,1.3583376569140282e-9,1.874953476068576e-9 +LengthOfByteString/410,6.941917290850414e-7,6.936797252038733e-7,6.946962587586696e-7,1.754551202080021e-9,1.4653428401696643e-9,2.313600871789264e-9 +LengthOfByteString/420,6.933001899890622e-7,6.927431956328659e-7,6.938966955092114e-7,1.8835652187786775e-9,1.5890549739495546e-9,2.3314417423876104e-9 +LengthOfByteString/430,6.901209538273825e-7,6.89782599905971e-7,6.90400568813503e-7,1.0084894615852906e-9,8.17824166830091e-10,1.2714026559849545e-9 +LengthOfByteString/440,6.89941857726874e-7,6.895002402935097e-7,6.905110077497454e-7,1.730841900682694e-9,1.4497702236160217e-9,2.14392259857299e-9 +LengthOfByteString/450,6.934230857671734e-7,6.92636420155709e-7,6.940197018312229e-7,2.5015685645758542e-9,2.066138434419668e-9,3.1606827290771215e-9 +LengthOfByteString/460,6.959931758086795e-7,6.953919693277667e-7,6.965143961778289e-7,1.9028070633885587e-9,1.5555490644271486e-9,2.2726515334899904e-9 +LengthOfByteString/470,6.877405760475557e-7,6.872386207784727e-7,6.883905505499624e-7,1.912160488022693e-9,1.3917381181722494e-9,2.5442898956443734e-9 +LengthOfByteString/480,6.895054207351074e-7,6.890224221250477e-7,6.899981974655247e-7,1.6803711033133747e-9,1.406697565310333e-9,2.131862158208852e-9 +LengthOfByteString/490,6.914326420155956e-7,6.908820769599593e-7,6.920465602775378e-7,2.0248772683754725e-9,1.7307952885969215e-9,2.4026934556281935e-9 +LengthOfByteString/500,6.947302386650061e-7,6.942379409336021e-7,6.951826387160068e-7,1.544352676975424e-9,1.2708748805453554e-9,1.8654398909915483e-9 +LengthOfByteString/510,6.937608206731844e-7,6.933889876222795e-7,6.941283524894165e-7,1.2648651047964673e-9,1.01440801818514e-9,1.6896083458344338e-9 +LengthOfByteString/520,6.905816355611707e-7,6.899394459781115e-7,6.912592606891907e-7,2.2012931911245395e-9,1.8058249388155189e-9,2.6984879347537387e-9 +LengthOfByteString/530,6.926776069901501e-7,6.92319482713305e-7,6.931003493116004e-7,1.3235538628557837e-9,1.114801439626051e-9,1.6756274001655403e-9 +LengthOfByteString/540,6.925053223546334e-7,6.916667559398637e-7,6.934293752909522e-7,2.9071504340269207e-9,2.5198084883403373e-9,3.3092677484220957e-9 +LengthOfByteString/550,6.933913571032104e-7,6.927429166828543e-7,6.939643911732815e-7,2.040284025928129e-9,1.660000714654677e-9,2.522706955720408e-9 +LengthOfByteString/560,6.909181208474441e-7,6.903206247609431e-7,6.917973181259783e-7,2.5444548311318528e-9,1.8507692425141393e-9,3.455494365470664e-9 +LengthOfByteString/570,6.872024830855292e-7,6.86850491656567e-7,6.876164435382937e-7,1.3127870455972078e-9,1.0585156958905682e-9,1.7340219948953588e-9 +LengthOfByteString/580,6.893056661462897e-7,6.885906040362027e-7,6.899803257731806e-7,2.33460133130011e-9,1.93780862411979e-9,2.845615159850895e-9 +LengthOfByteString/590,6.888510997639311e-7,6.882672007028613e-7,6.895442308092417e-7,2.0944754536380497e-9,1.7874069020921372e-9,2.604188351506683e-9 +LengthOfByteString/600,6.928129910904743e-7,6.922452689575862e-7,6.933785564266553e-7,1.8851292151372363e-9,1.4718308914174858e-9,2.471705713092879e-9 +LengthOfByteString/610,6.916687165337208e-7,6.913069515020199e-7,6.920551807827344e-7,1.2928225654432082e-9,1.0705293563726603e-9,1.550472937585922e-9 +LengthOfByteString/620,6.936330570535302e-7,6.929034737401119e-7,6.942138075747265e-7,2.1221119377693964e-9,1.7036879920880697e-9,2.7511421030350468e-9 +LengthOfByteString/630,6.927403846861188e-7,6.921294826985774e-7,6.933076948310683e-7,2.0355713445359863e-9,1.6936017993135604e-9,2.4249600007488572e-9 +LengthOfByteString/640,6.903677741635484e-7,6.897524076750734e-7,6.91166192980219e-7,2.284110305179663e-9,1.84493503661265e-9,2.7615089536394698e-9 +LengthOfByteString/650,6.959043008816514e-7,6.953596593406062e-7,6.963557692733278e-7,1.6436732237303908e-9,1.4105088894599327e-9,1.9395893416491416e-9 +LengthOfByteString/660,6.913816808090407e-7,6.907804059149035e-7,6.918830127866801e-7,1.9342838773911654e-9,1.6296924031878777e-9,2.3284311090704957e-9 +LengthOfByteString/670,6.965970199293554e-7,6.960492373479313e-7,6.970450628520711e-7,1.6659626132047477e-9,1.3794354116579137e-9,2.048163502735029e-9 +LengthOfByteString/680,6.902246242318213e-7,6.898468281048255e-7,6.905839496525597e-7,1.19717770658008e-9,9.420541116558373e-10,1.541450212509035e-9 +LengthOfByteString/690,6.918416283270611e-7,6.912045332160154e-7,6.923832353962276e-7,2.041044476866006e-9,1.776437327275729e-9,2.4120561936917156e-9 +LengthOfByteString/700,6.92366818870102e-7,6.919750625821435e-7,6.928107500203479e-7,1.4574778858448895e-9,1.2426331665859433e-9,1.7448667771548444e-9 +LengthOfByteString/710,6.939064337648508e-7,6.935258143996247e-7,6.943236165193395e-7,1.3398975354193206e-9,1.0910011088991651e-9,1.664885241251981e-9 +LengthOfByteString/720,6.919114473751837e-7,6.913282235739559e-7,6.92482066920555e-7,2.102366504626995e-9,1.808007183231364e-9,2.480743848261118e-9 +LengthOfByteString/730,6.909515637982433e-7,6.902222183044922e-7,6.917257007431901e-7,2.4963651032896425e-9,2.1221305773898002e-9,3.0414974306963535e-9 +LengthOfByteString/740,6.931531346856027e-7,6.926843250622466e-7,6.937281038168976e-7,1.673666133484636e-9,1.2847871246363548e-9,2.3820121017822222e-9 +LengthOfByteString/750,6.943049923074747e-7,6.93838102887465e-7,6.948478196091888e-7,1.6450269030414034e-9,1.4485127519072387e-9,1.9518101742248165e-9 +LengthOfByteString/760,6.940541344789032e-7,6.932860647478283e-7,6.948265283541014e-7,2.6354911913453167e-9,2.264195313539568e-9,3.162947518144997e-9 +LengthOfByteString/770,6.93873625091383e-7,6.932906919514957e-7,6.944470589556105e-7,1.8754496542874538e-9,1.6339422744517856e-9,2.2280443750479986e-9 +LengthOfByteString/780,6.995265009910446e-7,6.991210803028257e-7,6.999765996443279e-7,1.4416836118247218e-9,1.1924932493798173e-9,1.7699872783021163e-9 +LengthOfByteString/790,6.898066610061167e-7,6.891835730425609e-7,6.903972249533273e-7,2.213834626439221e-9,1.89059256588498e-9,2.6259313443901284e-9 +LengthOfByteString/800,6.882114005130435e-7,6.876152407398254e-7,6.88795779987478e-7,2.005568486059997e-9,1.6191812101445128e-9,2.4657133869649794e-9 +LengthOfByteString/810,6.919292512320119e-7,6.913608280253944e-7,6.925047330925947e-7,1.9563342753250312e-9,1.6948999272058597e-9,2.3869431988112677e-9 +LengthOfByteString/820,6.937355068641553e-7,6.928068278038595e-7,6.945430879796474e-7,2.9197558459226135e-9,2.475410319350628e-9,3.813972314865744e-9 +LengthOfByteString/830,6.916106033235286e-7,6.910850590615912e-7,6.921191362831224e-7,1.7661568825289293e-9,1.3944395704346137e-9,2.27692738784547e-9 +LengthOfByteString/840,6.925525494585349e-7,6.918440613596339e-7,6.934291161668677e-7,2.661875138514814e-9,2.3023174961039603e-9,3.2028564644972898e-9 +LengthOfByteString/850,6.913249424805039e-7,6.908647349612658e-7,6.917947451572087e-7,1.5614455884870596e-9,1.258499425080685e-9,1.966851112403876e-9 +LengthOfByteString/860,6.924515093062041e-7,6.919641587318395e-7,6.928982162274755e-7,1.6202982058879902e-9,1.3343155408434308e-9,1.9850375546745362e-9 +LengthOfByteString/870,6.94960285075724e-7,6.943640123862069e-7,6.954629724308297e-7,1.8396378215392577e-9,1.571336417994557e-9,2.24711179008327e-9 +LengthOfByteString/880,6.888883032214683e-7,6.884595413137307e-7,6.894195381026809e-7,1.6016896981122671e-9,1.3456672179326134e-9,1.8952834573051885e-9 +LengthOfByteString/890,6.910745053613773e-7,6.902699764997581e-7,6.918799407140792e-7,2.5209085757373162e-9,2.182422521743647e-9,2.9611673484502167e-9 +LengthOfByteString/900,6.919012735800857e-7,6.91458038325049e-7,6.922409665197822e-7,1.2932284235754523e-9,1.0589143597599578e-9,1.6337780559854211e-9 +LengthOfByteString/910,6.915791270842415e-7,6.910217154581155e-7,6.921467438349376e-7,1.8680107350988408e-9,1.599427872484103e-9,2.176397677633195e-9 +LengthOfByteString/920,6.935421750354712e-7,6.930284949619405e-7,6.940710309949593e-7,1.7309953361649879e-9,1.4599924804489778e-9,2.0979360755461682e-9 +LengthOfByteString/930,6.92133373040698e-7,6.913641561521478e-7,6.929534945716995e-7,2.8206523244097095e-9,2.4652777286960867e-9,3.423508582277849e-9 +LengthOfByteString/940,6.918315431319626e-7,6.91111927923905e-7,6.924152688125243e-7,2.2227633131901936e-9,1.6996538203338024e-9,2.680735949427967e-9 +LengthOfByteString/950,6.929998331997044e-7,6.925630110180791e-7,6.934604018522389e-7,1.5023756754773262e-9,1.2569068842625807e-9,1.869839107116928e-9 +LengthOfByteString/960,6.940280722910351e-7,6.934251146999028e-7,6.947041189369402e-7,2.2462490126601687e-9,1.8957420501755014e-9,2.7033425718237107e-9 +LengthOfByteString/970,6.936116325152389e-7,6.928401911084176e-7,6.943307860645824e-7,2.5231500042168265e-9,2.172460542360128e-9,3.109940414408352e-9 +LengthOfByteString/980,6.932605960534722e-7,6.926923945416473e-7,6.938332283835859e-7,1.890485133012745e-9,1.5950144282060493e-9,2.238668292184221e-9 +LengthOfByteString/990,6.932852726872259e-7,6.929193797023123e-7,6.936329156465299e-7,1.264277824118583e-9,1.0660305215691816e-9,1.5402021108360422e-9 +LengthOfByteString/1000,6.891569021757061e-7,6.88556397809779e-7,6.899162951707903e-7,2.2060300846534745e-9,1.853298924387801e-9,2.7636269839769174e-9 +LengthOfByteString/1010,6.93429816460484e-7,6.92735351194391e-7,6.942965454266038e-7,2.5744973436764372e-9,2.1756070327075295e-9,3.0285036924383127e-9 +LengthOfByteString/1020,6.91236800471095e-7,6.907038685914843e-7,6.918100392269954e-7,1.900704589130459e-9,1.662108760699942e-9,2.2161818603735842e-9 +LengthOfByteString/1030,6.92377131552743e-7,6.919049134539168e-7,6.928123552831787e-7,1.4858061570955887e-9,1.1874043872177044e-9,1.965088214162948e-9 +LengthOfByteString/1040,6.909302960179925e-7,6.903066820847202e-7,6.917940364309859e-7,2.488962376233616e-9,2.1051492739730157e-9,3.1715242170586496e-9 +LengthOfByteString/1050,6.919011222226819e-7,6.911708977953317e-7,6.927675399147482e-7,2.6213170434381124e-9,2.212229248738413e-9,3.211351621713436e-9 +LengthOfByteString/1060,6.962092494283494e-7,6.955553501275929e-7,6.96738317909065e-7,2.023762228879394e-9,1.6860420595093218e-9,2.5392745409381655e-9 +LengthOfByteString/1070,6.912940483496345e-7,6.90894303680706e-7,6.917586545748493e-7,1.4297836195232046e-9,1.1578428341095915e-9,1.7381637045477553e-9 +LengthOfByteString/1080,6.911301116243501e-7,6.907499146190206e-7,6.915266074799732e-7,1.3122976240856765e-9,1.0861819588361934e-9,1.6333993306202172e-9 +LengthOfByteString/1090,6.960386907533415e-7,6.955272413713284e-7,6.96509093731457e-7,1.7400718878799953e-9,1.499103860286296e-9,2.24664120408313e-9 +LengthOfByteString/1100,6.919024661566516e-7,6.915073060726787e-7,6.923171514849411e-7,1.3824977024345526e-9,1.1484453025254627e-9,1.6840287087600127e-9 +LengthOfByteString/1110,6.928182321329831e-7,6.923773018293099e-7,6.93326422318454e-7,1.6099442296591618e-9,1.3374313429339341e-9,2.011994014158907e-9 +LengthOfByteString/1120,6.946269935249376e-7,6.941698364986532e-7,6.950729145681387e-7,1.5364892261950749e-9,1.2442028504347372e-9,1.977260030038498e-9 +LengthOfByteString/1130,6.953747407265671e-7,6.947111247912005e-7,6.95897328735474e-7,1.953929874800652e-9,1.4772570104173834e-9,2.671794004415133e-9 +LengthOfByteString/1140,6.902213640558496e-7,6.897111193488518e-7,6.90676324671687e-7,1.6330013956557513e-9,1.3811965116244013e-9,1.962746668684003e-9 +LengthOfByteString/1150,6.93846856983424e-7,6.925371034664237e-7,6.949999526272596e-7,4.029047579703737e-9,3.4904310717773666e-9,4.493706241321634e-9 +LengthOfByteString/1160,6.883406605030694e-7,6.877960947132855e-7,6.889344278164839e-7,1.906840967040585e-9,1.6319207284829938e-9,2.3920466426951763e-9 +LengthOfByteString/1170,6.860015398120734e-7,6.856322116730284e-7,6.864639194185162e-7,1.3828435733154155e-9,1.1331862114732688e-9,1.7323055250510906e-9 +LengthOfByteString/1180,6.897090739845197e-7,6.89255896720011e-7,6.901869477877329e-7,1.6223274420642516e-9,1.3639576610919961e-9,1.9551833468871073e-9 +LengthOfByteString/1190,6.924553864678109e-7,6.919993626795127e-7,6.929093249302832e-7,1.607218303832643e-9,1.3709176464768468e-9,1.9948034061496052e-9 +LengthOfByteString/1200,6.92925928156217e-7,6.922256740500593e-7,6.935902515098059e-7,2.2890764814441587e-9,2.016921125374325e-9,2.6346381181670813e-9 +LengthOfByteString/1210,6.923633392061248e-7,6.915637574809104e-7,6.931220217501392e-7,2.760820266676297e-9,2.3681128492771576e-9,3.2174367705699236e-9 +LengthOfByteString/1220,6.927200944269972e-7,6.918925896474837e-7,6.93402848092906e-7,2.5601509286425316e-9,2.130775834073294e-9,3.0356931577554205e-9 +LengthOfByteString/1230,6.933822944184314e-7,6.924863433607635e-7,6.942060188257688e-7,2.8615011145956826e-9,2.354124403719855e-9,3.499685281044049e-9 +LengthOfByteString/1240,6.926425296578913e-7,6.920987713314691e-7,6.931989659751019e-7,1.8029084501272572e-9,1.5541794410583843e-9,2.106508747502221e-9 +LengthOfByteString/1250,6.944409716076035e-7,6.939834130980289e-7,6.948402823686626e-7,1.429154033761303e-9,1.2032540760258431e-9,1.7465523940521577e-9 +LengthOfByteString/1260,6.893535735257004e-7,6.886859703707311e-7,6.900611237164059e-7,2.2878572139297318e-9,1.9901686387978225e-9,2.8025018781097536e-9 +LengthOfByteString/1270,6.904344398483183e-7,6.899301928205381e-7,6.908963674782773e-7,1.6327248580522658e-9,1.4011254875230321e-9,1.9863141803573548e-9 +LengthOfByteString/1280,6.887243553814513e-7,6.882891803141274e-7,6.891491886948334e-7,1.43171000106535e-9,1.2105679232678787e-9,1.7017041328306011e-9 +LengthOfByteString/1290,6.929454472659445e-7,6.924208857172694e-7,6.93633743365265e-7,2.1199923577362904e-9,1.781264186371175e-9,2.5316609572520775e-9 +LengthOfByteString/1300,6.887765218735454e-7,6.882267920341802e-7,6.894061793742288e-7,1.8625893360947766e-9,1.6146025250148063e-9,2.202487058139117e-9 +LengthOfByteString/1310,6.924489850844268e-7,6.918047053238069e-7,6.930125427217766e-7,2.0163739563325202e-9,1.6720277312948252e-9,2.6380053095217673e-9 +LengthOfByteString/1320,6.931870573484501e-7,6.927410598083106e-7,6.936018590249977e-7,1.4433609827954468e-9,1.1679299285015663e-9,1.8137188367005164e-9 +LengthOfByteString/1330,6.931626257103113e-7,6.927079264686884e-7,6.936821524769171e-7,1.6125671493520848e-9,1.2776620487205226e-9,2.131089016134654e-9 +LengthOfByteString/1340,6.930832776018572e-7,6.927450377205375e-7,6.933908026668198e-7,1.0587206512418304e-9,8.909017724814635e-10,1.2457077073571585e-9 +LengthOfByteString/1350,6.910945595705698e-7,6.903608142624529e-7,6.917494906507597e-7,2.336616855680419e-9,1.959752760154738e-9,2.8148951716127855e-9 +LengthOfByteString/1360,6.890381900608671e-7,6.885172239951082e-7,6.895229176223305e-7,1.7218253664454503e-9,1.467828519804133e-9,2.101420920492554e-9 +LengthOfByteString/1370,6.90892430763514e-7,6.903954918587282e-7,6.913953499182741e-7,1.6490125947831473e-9,1.40336591407762e-9,2.0367264231895117e-9 +LengthOfByteString/1380,6.913814230867218e-7,6.90982206293866e-7,6.917413720158778e-7,1.243726528384544e-9,1.09704086551072e-9,1.4436988656757901e-9 +LengthOfByteString/1390,6.919409025536045e-7,6.912715075869642e-7,6.926812416063356e-7,2.1718892796905676e-9,1.8182466759311241e-9,2.7230587472308073e-9 +LengthOfByteString/1400,6.910335098034486e-7,6.907138547333931e-7,6.914243849915723e-7,1.195262322781837e-9,1.0172775478113137e-9,1.4297987542713861e-9 +LengthOfByteString/1410,6.898496344899422e-7,6.894390391542402e-7,6.903397056883607e-7,1.5573102531163096e-9,1.298121227969895e-9,1.877253332313014e-9 +LengthOfByteString/1420,6.90590242072537e-7,6.901790804643912e-7,6.909485248401881e-7,1.3553584749030795e-9,1.1552367826201928e-9,1.7145355208392207e-9 +LengthOfByteString/1430,6.928397884290493e-7,6.923597180184729e-7,6.934072103476862e-7,1.7151881823208685e-9,1.4273668627558075e-9,1.992382649989783e-9 +LengthOfByteString/1440,6.911954903093363e-7,6.905605417694718e-7,6.919293309482908e-7,2.3274807167952267e-9,1.9074809777387313e-9,2.904396541620839e-9 +LengthOfByteString/1450,6.920726081022282e-7,6.916438232666598e-7,6.925221072174973e-7,1.433799473346455e-9,1.2285764963782234e-9,1.8224282422805753e-9 +LengthOfByteString/1460,6.934300788714663e-7,6.927127981188247e-7,6.940973380274303e-7,2.4502862097133047e-9,2.1161615718916657e-9,2.8921385709524786e-9 +LengthOfByteString/1470,6.904733835473364e-7,6.896896361158429e-7,6.91271730831985e-7,2.714658605127398e-9,2.3110292536914533e-9,3.2674236821883747e-9 +LengthOfByteString/1480,6.894162956829369e-7,6.889115171828967e-7,6.899815391148413e-7,1.7512651450644685e-9,1.4424288592784876e-9,2.294170858071671e-9 +LengthOfByteString/1490,6.88492318204839e-7,6.87887913273168e-7,6.889956194783379e-7,1.8609320441402037e-9,1.611607735506953e-9,2.1794194215743425e-9 +LengthOfByteString/1500,6.882145717035573e-7,6.87344227727824e-7,6.889989938775631e-7,2.5845601507464615e-9,2.216134356679985e-9,3.1379303419604085e-9 +IndexByteString/10/1,8.53407311622068e-7,8.529099213137966e-7,8.539011125154666e-7,1.6736782212659363e-9,1.355521067700302e-9,2.119319993358359e-9 +IndexByteString/20/1,8.52667999932195e-7,8.521117363518694e-7,8.533809389463917e-7,1.979345281782001e-9,1.461615486617959e-9,2.8002221813109058e-9 +IndexByteString/30/1,8.543574283719841e-7,8.538581439715006e-7,8.547721129522167e-7,1.5060038128794194e-9,1.276933876061829e-9,1.8430064485463191e-9 +IndexByteString/40/1,8.535754337776589e-7,8.526477381327087e-7,8.544614418260311e-7,3.027610989326866e-9,2.6205547806264808e-9,3.67558813275662e-9 +IndexByteString/50/1,8.528882341022684e-7,8.522167127849476e-7,8.535588962848005e-7,2.367889994525493e-9,1.93484043522443e-9,2.9840625941020386e-9 +IndexByteString/60/1,8.54667656905197e-7,8.540120309590147e-7,8.552005083095596e-7,2.007632113001118e-9,1.682628816526753e-9,2.586615326536307e-9 +IndexByteString/70/1,8.576322167036988e-7,8.568928729759679e-7,8.583230268866766e-7,2.342530808212756e-9,1.9636673498903002e-9,2.848518224820248e-9 +IndexByteString/80/1,8.547979656705559e-7,8.542354019627978e-7,8.553065793131545e-7,1.7575728117575463e-9,1.483288943565214e-9,2.458973727060596e-9 +IndexByteString/90/1,8.532537614899467e-7,8.527093530085803e-7,8.537885002310233e-7,1.8102236084178e-9,1.5184161156456438e-9,2.3109636392738307e-9 +IndexByteString/100/1,8.504540542803052e-7,8.499488729510387e-7,8.509859234053154e-7,1.7973995362528884e-9,1.5281650810622183e-9,2.1731237257206195e-9 +IndexByteString/110/1,8.540014532806002e-7,8.534745942964132e-7,8.543951571333103e-7,1.5363372811217954e-9,1.2259881080282962e-9,2.1797927517005614e-9 +IndexByteString/120/1,8.535641312903731e-7,8.526642009546581e-7,8.544868296247544e-7,2.983231432007863e-9,2.6091463814926522e-9,3.4412596448126073e-9 +IndexByteString/130/1,8.539402999797391e-7,8.531855904146746e-7,8.547345134963489e-7,2.646416374490849e-9,2.2670518591344803e-9,3.164398431254799e-9 +IndexByteString/140/1,8.519492987337454e-7,8.514549005657625e-7,8.525459185437966e-7,1.873265400842032e-9,1.5806657512552546e-9,2.2797356034461243e-9 +IndexByteString/150/1,8.508610314290465e-7,8.503453027240937e-7,8.515031042672398e-7,1.96047494258759e-9,1.6883660107339692e-9,2.3656029228923453e-9 +IndexByteString/160/1,8.575704701195664e-7,8.569595416540577e-7,8.581506510957003e-7,1.947172957740824e-9,1.6113144879790177e-9,2.3641569303824585e-9 +IndexByteString/170/1,8.54856924051266e-7,8.544602345483828e-7,8.552597622747552e-7,1.4025412158234156e-9,1.1557752941523268e-9,1.6720405263071153e-9 +IndexByteString/180/1,8.523083047000768e-7,8.516699712316334e-7,8.528946496016267e-7,2.007914087865156e-9,1.7244723349313693e-9,2.379576829165824e-9 +IndexByteString/190/1,8.540597773540739e-7,8.532792597154993e-7,8.547957540701037e-7,2.5765959239028503e-9,2.2184612187870723e-9,3.112467924025455e-9 +IndexByteString/200/1,8.563966775910881e-7,8.556860684046998e-7,8.569680062917297e-7,2.091319832077076e-9,1.6958185990386333e-9,2.625920497391494e-9 +IndexByteString/210/1,8.533374786439256e-7,8.525329537479724e-7,8.540873452578623e-7,2.68427115408418e-9,2.3233370004662278e-9,3.111189146322528e-9 +IndexByteString/220/1,8.537525004167908e-7,8.531651307116057e-7,8.544099745657829e-7,2.002862228084694e-9,1.7340575397722033e-9,2.4357120712867477e-9 +IndexByteString/230/1,8.558807187894081e-7,8.550869452788429e-7,8.566150324399091e-7,2.359296327338489e-9,2.0262198569672385e-9,2.8114642504914245e-9 +IndexByteString/240/1,8.538000829003383e-7,8.529924924037697e-7,8.545262856857077e-7,2.5292261504080527e-9,2.0921891920660187e-9,3.192914798677152e-9 +IndexByteString/250/1,8.535324824136756e-7,8.526396924172593e-7,8.543246949131195e-7,2.952829593609779e-9,2.437532337941409e-9,3.790962626521852e-9 +IndexByteString/260/1,8.557268293186273e-7,8.547655741784676e-7,8.564219434242534e-7,2.823764112118766e-9,2.299545403719283e-9,3.4010906633804054e-9 +IndexByteString/270/1,8.517064373374807e-7,8.509216811522189e-7,8.523780777195906e-7,2.3312245633154906e-9,1.967087101426208e-9,2.8004302168010156e-9 +IndexByteString/280/1,8.530142691214063e-7,8.524500467905244e-7,8.535120065644338e-7,1.890533924797255e-9,1.425414542282706e-9,2.6853287104660283e-9 +IndexByteString/290/1,8.517408210202709e-7,8.51261591091137e-7,8.522237493091973e-7,1.6779121111179724e-9,1.4044229666604278e-9,2.147593465310273e-9 +IndexByteString/300/1,8.519997484195832e-7,8.514858843572236e-7,8.525072948431536e-7,1.7190393274696177e-9,1.4406458196841419e-9,2.223916261032116e-9 +IndexByteString/310/1,8.521946320748634e-7,8.514274462470191e-7,8.530678978775278e-7,2.6756596506797313e-9,2.233841131636815e-9,3.15517821041964e-9 +IndexByteString/320/1,8.52043602354379e-7,8.508296883962602e-7,8.532583739114202e-7,4.147249523488432e-9,3.6220334010527296e-9,4.7805405320855616e-9 +IndexByteString/330/1,8.516688188149568e-7,8.509998235131896e-7,8.523659722547006e-7,2.332102058500496e-9,2.005824523643922e-9,2.8727061199098586e-9 +IndexByteString/340/1,8.508055361052762e-7,8.50085100443796e-7,8.515596166430407e-7,2.3352598170492136e-9,1.9385183907380446e-9,2.7985049944223072e-9 +IndexByteString/350/1,8.52163872688725e-7,8.516907410304604e-7,8.526680094095043e-7,1.655985542242146e-9,1.312294036387848e-9,2.1053789328903713e-9 +IndexByteString/360/1,8.500270156154421e-7,8.495197861722357e-7,8.505767941835212e-7,1.8467795884100552e-9,1.5712237678451876e-9,2.356859649939137e-9 +IndexByteString/370/1,8.493888411316811e-7,8.487653298526626e-7,8.500087285889963e-7,2.089514253479655e-9,1.7532659995169737e-9,2.5642989478822584e-9 +IndexByteString/380/1,8.501191178325785e-7,8.495081911847907e-7,8.507116216300802e-7,2.0198701115942635e-9,1.6252509543212104e-9,2.6343826689118723e-9 +IndexByteString/390/1,8.529707963718097e-7,8.523621477444927e-7,8.535651152082644e-7,2.0258948677639748e-9,1.699004476588229e-9,2.5147069734448696e-9 +IndexByteString/400/1,8.508568813446037e-7,8.501205384518428e-7,8.517385498325575e-7,2.735178990388252e-9,2.3699155145489632e-9,3.2010970833571794e-9 +IndexByteString/410/1,8.559092510407133e-7,8.55280751352598e-7,8.56458073759814e-7,1.898884973629285e-9,1.597134094719417e-9,2.277286199552961e-9 +IndexByteString/420/1,8.573109743631243e-7,8.568874802869518e-7,8.57788388400354e-7,1.4965353863354987e-9,1.2564798739059136e-9,1.8494110656329572e-9 +IndexByteString/430/1,8.522026429817123e-7,8.515755508528757e-7,8.528128878368235e-7,2.1262424247568873e-9,1.774245425855923e-9,2.4933876985647675e-9 +IndexByteString/440/1,8.519005011314697e-7,8.514442640459219e-7,8.523488985504137e-7,1.542433832716821e-9,1.2757833316966674e-9,1.95378434498652e-9 +IndexByteString/450/1,8.52374360397809e-7,8.517200849369661e-7,8.528150438011257e-7,1.912309432484904e-9,1.5082316451202597e-9,2.5179455319670683e-9 +IndexByteString/460/1,8.514323678702337e-7,8.510219608453951e-7,8.51872128593744e-7,1.4518737322094353e-9,1.2135220995801424e-9,1.7829564992911812e-9 +IndexByteString/470/1,8.511847662836685e-7,8.505648200222281e-7,8.517436713324341e-7,2.021073253501902e-9,1.7258225285469955e-9,2.3945993874919114e-9 +IndexByteString/480/1,8.518659459220127e-7,8.511385902138628e-7,8.526638930530674e-7,2.3764272813768497e-9,2.008356509124484e-9,2.8434822669578375e-9 +IndexByteString/490/1,8.53387285527983e-7,8.527477795507585e-7,8.54009246258005e-7,2.1534988215127878e-9,1.8431984258236942e-9,2.5889640998985477e-9 +IndexByteString/500/1,8.473227657233125e-7,8.463646507484475e-7,8.482103529074216e-7,3.1433648214624133e-9,2.782371248772083e-9,3.61230281052939e-9 +IndexByteString/510/1,8.459177556330457e-7,8.452042511771263e-7,8.467382709303028e-7,2.7884405296140276e-9,2.276287557625352e-9,3.369323537769286e-9 +IndexByteString/520/1,8.464236312157347e-7,8.458979772900726e-7,8.469640643941172e-7,1.73240092177438e-9,1.4404479577353256e-9,2.122688969463737e-9 +IndexByteString/530/1,8.494491370095256e-7,8.487785852212182e-7,8.499905438799625e-7,2.038919612355615e-9,1.5829088539008462e-9,2.5788024055922705e-9 +IndexByteString/540/1,8.507970793536443e-7,8.502347909925693e-7,8.514144170947149e-7,2.082461121960699e-9,1.7252584971488427e-9,2.563983120056132e-9 +IndexByteString/550/1,8.500544678125252e-7,8.495745886069778e-7,8.505274807251267e-7,1.6357545534582141e-9,1.392599691452453e-9,1.9084134470609234e-9 +IndexByteString/560/1,8.467962134719703e-7,8.462100868047598e-7,8.474126817819066e-7,2.1062066164979813e-9,1.7920241799092672e-9,2.570602049072021e-9 +IndexByteString/570/1,8.509800329615906e-7,8.503533698610289e-7,8.515521699121485e-7,2.0124715592538476e-9,1.7295149726022438e-9,2.427903791323323e-9 +IndexByteString/580/1,8.494652793057662e-7,8.485232423417319e-7,8.502009056501252e-7,2.63506551124629e-9,2.2345768850579796e-9,3.3120140593347982e-9 +IndexByteString/590/1,8.48431650935373e-7,8.479654590942445e-7,8.489336392723545e-7,1.6734061122467362e-9,1.3903220587145422e-9,2.1575921298032555e-9 +IndexByteString/600/1,8.494610371304405e-7,8.490066038918241e-7,8.499361381399948e-7,1.5626354231828814e-9,1.278952347612961e-9,2.0011416807380015e-9 +IndexByteString/610/1,8.477930577822489e-7,8.469676597050084e-7,8.485336104185215e-7,2.555269241270285e-9,2.0477990016988677e-9,3.4877629113795353e-9 +IndexByteString/620/1,8.486636902423127e-7,8.481950798682467e-7,8.491517010612862e-7,1.6267255796353287e-9,1.3702506062896918e-9,1.9308040345101807e-9 +IndexByteString/630/1,8.445322437276685e-7,8.440840702350655e-7,8.449832203408098e-7,1.5210700133540623e-9,1.2674781554416915e-9,1.8239877860395267e-9 +IndexByteString/640/1,8.512900929188721e-7,8.505042399863192e-7,8.520433508815227e-7,2.5448469927045365e-9,2.0902556388611425e-9,3.181645872584083e-9 +IndexByteString/650/1,8.466884080469747e-7,8.458262701619229e-7,8.475686801266468e-7,2.878128359981882e-9,2.5040116020784294e-9,3.3958231490284744e-9 +IndexByteString/660/1,8.477098862833145e-7,8.473201972983953e-7,8.481756838128939e-7,1.3508076045821631e-9,1.1760463551556048e-9,1.559241724455433e-9 +IndexByteString/670/1,8.514397863554746e-7,8.508840107733377e-7,8.520644476920447e-7,1.89159095967001e-9,1.6025983098681004e-9,2.2221635078647985e-9 +IndexByteString/680/1,8.516423369515678e-7,8.511456710579242e-7,8.522809957615275e-7,2.0578193037446673e-9,1.6336567325997683e-9,2.5705851444990128e-9 +IndexByteString/690/1,8.473008029760847e-7,8.469043167617525e-7,8.477458569743917e-7,1.4790780510612322e-9,1.2047244107953697e-9,1.8009049271182782e-9 +IndexByteString/700/1,8.485679640594892e-7,8.477562944942448e-7,8.493376218761006e-7,2.6193278037949446e-9,2.2159200844101385e-9,3.170912292083812e-9 +IndexByteString/710/1,8.452322232859586e-7,8.445601702862156e-7,8.458140634860697e-7,2.1656628880168337e-9,1.8870326864073722e-9,2.8590166769182646e-9 +IndexByteString/720/1,8.518739246213989e-7,8.513881205675045e-7,8.523527955246313e-7,1.552729815827383e-9,1.3141295156391229e-9,1.8862200401518053e-9 +IndexByteString/730/1,8.485537355519455e-7,8.474453206897816e-7,8.497506321995064e-7,3.7849424974872804e-9,3.271835131445697e-9,4.549320682634364e-9 +IndexByteString/740/1,8.491500354217381e-7,8.483560884634788e-7,8.497998647264794e-7,2.4606697841283896e-9,1.9891599429728875e-9,3.0994104941351165e-9 +IndexByteString/750/1,8.489322505437804e-7,8.483198147602879e-7,8.495853628530624e-7,2.1156813921413593e-9,1.8386275456011097e-9,2.481026132136583e-9 +IndexByteString/760/1,8.523374991918632e-7,8.518242531638919e-7,8.530619008753303e-7,2.004689324401906e-9,1.5852863399064052e-9,2.5692328327438807e-9 +IndexByteString/770/1,8.516907447198128e-7,8.512695211457249e-7,8.521276679537536e-7,1.408737843368793e-9,1.1939652479939024e-9,1.7267564349576625e-9 +IndexByteString/780/1,8.475142222618467e-7,8.46816175330299e-7,8.482128384360786e-7,2.3898493703209703e-9,1.8330579468788472e-9,3.196307693902437e-9 +IndexByteString/790/1,8.47352833676056e-7,8.468917270942025e-7,8.477974741804849e-7,1.6037006826043086e-9,1.3710248150325627e-9,1.891726872279257e-9 +IndexByteString/800/1,8.503067866156528e-7,8.496807271657872e-7,8.509286688580568e-7,2.110000277690817e-9,1.7523106887424132e-9,2.6246600136532942e-9 +IndexByteString/810/1,8.489774392937087e-7,8.486258739745401e-7,8.494188159964714e-7,1.3198781189017086e-9,1.074836805897407e-9,1.687272229489765e-9 +IndexByteString/820/1,8.514787522576456e-7,8.510356547420387e-7,8.519086437316851e-7,1.4414054352306996e-9,1.1553065472036716e-9,1.7760674376217644e-9 +IndexByteString/830/1,8.486550721029673e-7,8.481595515120393e-7,8.49176885437643e-7,1.7262932562935802e-9,1.4460705655606445e-9,2.2563876074279636e-9 +IndexByteString/840/1,8.499602726384989e-7,8.492788935427018e-7,8.506814765620903e-7,2.3167883914311543e-9,1.930592242942568e-9,2.9913967217090152e-9 +IndexByteString/850/1,8.498040983733603e-7,8.493619383168322e-7,8.502302827233093e-7,1.496383976541024e-9,1.2470313063285225e-9,1.827173436911936e-9 +IndexByteString/860/1,8.481148206606599e-7,8.474208021954574e-7,8.486267314736633e-7,2.029636068350785e-9,1.6953565287268769e-9,2.5016911111027087e-9 +IndexByteString/870/1,8.503341148686503e-7,8.495162913898412e-7,8.510721464918882e-7,2.5659215685076557e-9,2.1866741882939823e-9,3.1503349555732784e-9 +IndexByteString/880/1,8.498850907373909e-7,8.491599944540578e-7,8.50505061942314e-7,2.1865946329800846e-9,1.903725402378047e-9,2.5385156380864033e-9 +IndexByteString/890/1,8.494584848364453e-7,8.488770454959332e-7,8.501479789372409e-7,2.0907895382076373e-9,1.7990929176901565e-9,2.5783359680066147e-9 +IndexByteString/900/1,8.506399973549815e-7,8.499967922264079e-7,8.513170111062764e-7,2.2214484573021382e-9,1.875438204230103e-9,2.740282370189378e-9 +IndexByteString/910/1,8.508941908179995e-7,8.501740691613077e-7,8.516155305656175e-7,2.471970938307688e-9,2.0269561100700473e-9,3.0250204827649038e-9 +IndexByteString/920/1,8.50486414172222e-7,8.498735727829844e-7,8.510477723623417e-7,1.930858696881525e-9,1.4937476428135204e-9,2.721976200625713e-9 +IndexByteString/930/1,8.463178053341262e-7,8.454185689857565e-7,8.470386314065898e-7,2.628890095073792e-9,2.2118718346925264e-9,3.300490283310127e-9 +IndexByteString/940/1,8.501579187307454e-7,8.495516413614827e-7,8.507150268571592e-7,1.886686500902733e-9,1.6196896669318653e-9,2.314624033280987e-9 +IndexByteString/950/1,8.519482108309212e-7,8.513182411261854e-7,8.525360452911844e-7,2.01216488342087e-9,1.742455177105375e-9,2.3318418984046352e-9 +IndexByteString/960/1,8.470295910611504e-7,8.462978530295177e-7,8.476651168415079e-7,2.2336143154626e-9,1.9691984821029525e-9,2.6471231879275976e-9 +IndexByteString/970/1,8.469554224752485e-7,8.462284549578436e-7,8.475731418352523e-7,2.2316289685627313e-9,1.8622384006283364e-9,2.8070419025233947e-9 +IndexByteString/980/1,8.498685475647646e-7,8.492688382932431e-7,8.504994151735568e-7,1.9843892808704845e-9,1.701309847498068e-9,2.4189878639857405e-9 +IndexByteString/990/1,8.4698106116304e-7,8.464454909265149e-7,8.476620317681653e-7,2.0877844422158745e-9,1.779150198748925e-9,2.5064993460557276e-9 +IndexByteString/1000/1,8.535676446845506e-7,8.529016510306031e-7,8.542596235386056e-7,2.2663290880019835e-9,1.889478963893736e-9,2.782947390581391e-9 +IndexByteString/1010/1,8.522757577088526e-7,8.514055826115624e-7,8.529962128196491e-7,2.728922904150377e-9,2.3480806410043226e-9,3.225880355905789e-9 +IndexByteString/1020/1,8.499131523114204e-7,8.493931014685552e-7,8.505200708755701e-7,1.835050393497893e-9,1.4841401543247193e-9,2.337174546410684e-9 +IndexByteString/1030/1,8.507948239266298e-7,8.501028627976885e-7,8.515343945776112e-7,2.4598150906523847e-9,1.881452967946017e-9,3.2190881686441834e-9 +IndexByteString/1040/1,8.502354330113092e-7,8.496320846591793e-7,8.507990897208855e-7,2.0154679357215015e-9,1.5912533381476393e-9,2.6066207741036254e-9 +IndexByteString/1050/1,8.509799416674719e-7,8.50491499278126e-7,8.515700017373235e-7,1.862308420956809e-9,1.557224152141929e-9,2.4023379839488137e-9 +IndexByteString/1060/1,8.458772464348624e-7,8.451628866462783e-7,8.46603114282002e-7,2.3564566856920565e-9,1.9507509484840426e-9,3.0054778019230443e-9 +IndexByteString/1070/1,8.515490429286458e-7,8.505501614308565e-7,8.523747299731504e-7,3.048190182847298e-9,2.643676144012338e-9,3.5329663484159877e-9 +IndexByteString/1080/1,8.492053917639002e-7,8.48214211522818e-7,8.501724200182328e-7,3.3199298983490547e-9,2.9393790563578073e-9,3.818137625669293e-9 +IndexByteString/1090/1,8.500935780033459e-7,8.494185281755014e-7,8.506997497679975e-7,2.056120595344843e-9,1.6727680431907815e-9,2.591645761547543e-9 +IndexByteString/1100/1,8.501054832406977e-7,8.494314673953447e-7,8.507826174414109e-7,2.2001196903719795e-9,1.819924027417971e-9,2.7200099132947797e-9 +IndexByteString/1110/1,8.48388458168646e-7,8.476599148459746e-7,8.49142879872933e-7,2.3611129447484557e-9,1.9630200166443907e-9,2.8955821703535796e-9 +IndexByteString/1120/1,8.494805009109306e-7,8.489785456858221e-7,8.499464261007917e-7,1.5814229011831214e-9,1.4062212883311924e-9,1.8597411335433079e-9 +IndexByteString/1130/1,8.498513123239472e-7,8.494238564507387e-7,8.502636314592934e-7,1.5212837421531196e-9,1.2731071278326613e-9,1.8415029538832794e-9 +IndexByteString/1140/1,8.488753842041306e-7,8.48419475371484e-7,8.494626643687714e-7,1.7234588960969344e-9,1.487824268473104e-9,2.0455812563101124e-9 +IndexByteString/1150/1,8.498741655235778e-7,8.49116587061104e-7,8.505791899524915e-7,2.4737062774163395e-9,2.0332150694158727e-9,2.9705766719770776e-9 +IndexByteString/1160/1,8.485901313326341e-7,8.480931763777797e-7,8.491019137831953e-7,1.6791048027703042e-9,1.440704397194308e-9,2.0087893554125007e-9 +IndexByteString/1170/1,8.539741418363385e-7,8.532108193275681e-7,8.548054879594741e-7,2.5944907305284013e-9,2.2584525641834474e-9,3.025019829385655e-9 +IndexByteString/1180/1,8.567104569242169e-7,8.557210342507703e-7,8.578121005390555e-7,3.4919757706761525e-9,3.0784531750105143e-9,3.971856310709763e-9 +IndexByteString/1190/1,8.561866055570947e-7,8.556896786796781e-7,8.56684231506754e-7,1.7502558095177383e-9,1.5256491283119624e-9,2.0815554281754022e-9 +IndexByteString/1200/1,8.543437698604294e-7,8.536890402671951e-7,8.550020194031737e-7,2.145306302853053e-9,1.8007760962773775e-9,2.72336495592878e-9 +IndexByteString/1210/1,8.49061617193726e-7,8.486124289324672e-7,8.495195643030638e-7,1.5543842892383803e-9,1.3559358252436836e-9,1.8536874095714202e-9 +IndexByteString/1220/1,8.49906878400505e-7,8.492904692910293e-7,8.505858060958903e-7,2.2091759499742192e-9,1.8416168498155976e-9,2.6233751852529862e-9 +IndexByteString/1230/1,8.503385346091081e-7,8.496881464746915e-7,8.510304741869762e-7,2.089332449873093e-9,1.69352894405752e-9,2.640218579501931e-9 +IndexByteString/1240/1,8.530371897607402e-7,8.523924660321453e-7,8.536875024843405e-7,2.1575030058113203e-9,1.8325492278032735e-9,2.686027399136265e-9 +IndexByteString/1250/1,8.498273261126723e-7,8.491641878280985e-7,8.507137512773651e-7,2.6284477278399117e-9,2.24230232365828e-9,3.1541145646620412e-9 +IndexByteString/1260/1,8.552020190734879e-7,8.547573171859369e-7,8.557542998656392e-7,1.570026407639124e-9,1.2305006208660576e-9,2.183032170237365e-9 +IndexByteString/1270/1,8.511535067606304e-7,8.503135214690733e-7,8.518016132868494e-7,2.4546096579976395e-9,1.9695518055424938e-9,3.1170392245111218e-9 +IndexByteString/1280/1,8.544564751646051e-7,8.537937265193145e-7,8.551261869996284e-7,2.2397024844862293e-9,1.9388800330914128e-9,2.6596273239077674e-9 +IndexByteString/1290/1,8.537601764819483e-7,8.526850877806765e-7,8.546879020941523e-7,3.2753821102372106e-9,2.656864618083828e-9,3.936340889844949e-9 +IndexByteString/1300/1,8.516736203759507e-7,8.512363715100383e-7,8.521039023058277e-7,1.4560498318403935e-9,1.111049803404843e-9,1.9250936953268406e-9 +IndexByteString/1310/1,8.522185740839691e-7,8.515446599554328e-7,8.529115260382483e-7,2.327411155314022e-9,1.9528799319718616e-9,2.8686670582471115e-9 +IndexByteString/1320/1,8.530290719219149e-7,8.524688798118193e-7,8.536875840015655e-7,2.0088471805411333e-9,1.6029059691174372e-9,2.5534857292913372e-9 +IndexByteString/1330/1,8.500308246433954e-7,8.494183469839166e-7,8.507351557780047e-7,2.1724047690346124e-9,1.7671042934191568e-9,2.704290413250011e-9 +IndexByteString/1340/1,8.544706896694829e-7,8.540046621369619e-7,8.549046250550438e-7,1.512772777792528e-9,1.2468281489122364e-9,1.882401240145795e-9 +IndexByteString/1350/1,8.514337048003571e-7,8.510844719191025e-7,8.517779747127528e-7,1.1833676288992553e-9,9.705454083616134e-10,1.4659970406780755e-9 +IndexByteString/1360/1,8.517634021190476e-7,8.508528030562073e-7,8.526245759256698e-7,2.820368988127775e-9,2.4383233989668437e-9,3.540836352011477e-9 +IndexByteString/1370/1,8.523520774575104e-7,8.518580123357852e-7,8.528297261138411e-7,1.682893631867363e-9,1.3516180443361528e-9,2.2209288361809e-9 +IndexByteString/1380/1,8.564938228706031e-7,8.55844185058467e-7,8.571518754803591e-7,2.2467022344109136e-9,1.9075061973444824e-9,2.6973257003319e-9 +IndexByteString/1390/1,8.526219210471915e-7,8.521555710867447e-7,8.531128250683485e-7,1.5392890222153242e-9,1.3223168915010289e-9,1.7841377205226257e-9 +IndexByteString/1400/1,8.54705854686711e-7,8.540563629499877e-7,8.553832999348742e-7,2.19714548555056e-9,1.8341941355160955e-9,2.6471177091029294e-9 +IndexByteString/1410/1,8.497712043749922e-7,8.49320113169234e-7,8.503077275333065e-7,1.7261034583692258e-9,1.4631978611831403e-9,2.056016511176732e-9 +IndexByteString/1420/1,8.51127847076445e-7,8.502384202972427e-7,8.520160942191563e-7,3.084992756807739e-9,2.794520940999747e-9,3.5178088361190473e-9 +IndexByteString/1430/1,8.488752146483392e-7,8.482681973028999e-7,8.494634961662219e-7,1.9722054675721497e-9,1.654484440182651e-9,2.376288880560167e-9 +IndexByteString/1440/1,8.528872694625725e-7,8.523166046151786e-7,8.534721921794172e-7,1.9238531054872526e-9,1.6185428809025658e-9,2.3564431872586603e-9 +IndexByteString/1450/1,8.497538313530659e-7,8.491269038007226e-7,8.503669183371055e-7,2.047757311140828e-9,1.7436116056884301e-9,2.4278060068756184e-9 +IndexByteString/1460/1,8.498599189487481e-7,8.490622583347494e-7,8.50638693483785e-7,2.7312930356372487e-9,2.3840478395694e-9,3.171498824283228e-9 +IndexByteString/1470/1,8.533619667180695e-7,8.526893544166481e-7,8.539466848438741e-7,2.051108191134653e-9,1.741555420270363e-9,2.5385228749587362e-9 +IndexByteString/1480/1,8.526676796758071e-7,8.521885419790339e-7,8.532529398271881e-7,1.8651639381791802e-9,1.5471494081237602e-9,2.3467812823796906e-9 +IndexByteString/1490/1,8.547702299044924e-7,8.538848588135173e-7,8.556121829934818e-7,2.994190325053408e-9,2.5790436992597864e-9,3.655004533854985e-9 +IndexByteString/1500/1,8.52362472610007e-7,8.512870268250221e-7,8.534409889355071e-7,3.623582051251639e-9,3.077388579131846e-9,4.347139807695081e-9 +SliceByteString/1/1/100,9.804515267886551e-7,9.798805951244318e-7,9.81010118762905e-7,1.876452101904019e-9,1.6074296705535975e-9,2.284105327678282e-9 +SliceByteString/1/1/100,9.911404093786513e-7,9.902410067183396e-7,9.92011679912493e-7,2.8976243569577945e-9,2.532155401753494e-9,3.3616386771349544e-9 +SliceByteString/1/1/100,9.907316872481904e-7,9.89916312299608e-7,9.91568355958673e-7,2.7293987455786647e-9,2.3732636582381048e-9,3.293393115318579e-9 +SliceByteString/1/1/100,9.91173054585436e-7,9.904367351545412e-7,9.918723581987233e-7,2.4560783256032044e-9,2.0657873241974104e-9,2.9353211226995037e-9 +SliceByteString/1/1/100,9.803367817646864e-7,9.796990269396568e-7,9.809469031120785e-7,2.314045363146785e-9,1.9760896405529582e-9,2.908265731244732e-9 +SliceByteString/1/1/100,9.895185213494127e-7,9.888776794252734e-7,9.900840223153702e-7,1.8957966701112912e-9,1.623645916919161e-9,2.321176630989637e-9 +SliceByteString/1/1/100,9.997454857610975e-7,9.98824385073282e-7,1.0006072446461303e-6,2.947726440494735e-9,2.483224775467109e-9,3.5562465707420106e-9 +SliceByteString/1/1/100,9.92635478414067e-7,9.91975131394085e-7,9.933553224918164e-7,2.193372343004804e-9,1.8476120591627314e-9,2.673479326648347e-9 +SliceByteString/1/1/100,9.822999992782431e-7,9.8165648416878e-7,9.829640458697873e-7,2.2620797984007808e-9,1.8233256600140466e-9,2.944669484621256e-9 +SliceByteString/1/1/100,9.982811919424951e-7,9.977912430523586e-7,9.987921390265162e-7,1.6776611105924958e-9,1.2982939649568252e-9,2.233176226335625e-9 +SliceByteString/1/1/100,9.89707390965517e-7,9.88904553356672e-7,9.904829754459405e-7,2.6408307660676253e-9,2.228969222973592e-9,3.1894554322771447e-9 +SliceByteString/1/1/100,9.927178014657442e-7,9.921703822877739e-7,9.932454382836283e-7,1.7154801703733933e-9,1.410848967085153e-9,2.1322018851608326e-9 +SliceByteString/1/1/100,9.807508527887387e-7,9.800966865019907e-7,9.813810311056273e-7,2.2642266890314833e-9,1.8853139004098365e-9,2.714753762623875e-9 +SliceByteString/1/1/100,9.954561614672635e-7,9.947661484878755e-7,9.96041307714637e-7,2.0300615027844587e-9,1.630987530886616e-9,2.5819445952324714e-9 +SliceByteString/1/1/100,9.96909828125986e-7,9.96065991672706e-7,9.976674513184825e-7,2.6320783088830485e-9,2.0742694136215594e-9,3.4995364780195684e-9 +SliceByteString/1/1/100,9.942908138951596e-7,9.936576374199607e-7,9.949583443974303e-7,2.157017588982272e-9,1.6647074813763538e-9,2.949942397829952e-9 +SliceByteString/1/1/200,9.7996044286488e-7,9.79399008639331e-7,9.805218738187893e-7,1.9934791423105135e-9,1.6771962686671714e-9,2.4330626655146772e-9 +SliceByteString/1/1/200,9.92946301948825e-7,9.92234806712193e-7,9.936124503807309e-7,2.3083772454824133e-9,1.9463123997533645e-9,2.7570912412736073e-9 +SliceByteString/1/1/200,9.925048319002904e-7,9.918069759467874e-7,9.931459758559898e-7,2.2924061323616286e-9,1.9122709182625522e-9,2.664398654011339e-9 +SliceByteString/1/1/200,9.86810309902356e-7,9.861475941116125e-7,9.874934533290057e-7,2.2288466960286215e-9,1.8862193799916677e-9,2.7334379548584464e-9 +SliceByteString/1/1/200,9.783350256903496e-7,9.778066005483725e-7,9.789627086611786e-7,1.9361142748351156e-9,1.4579162429010542e-9,2.6294555072336956e-9 +SliceByteString/1/1/200,9.904443045424057e-7,9.899696815892712e-7,9.91074417260463e-7,1.7311146519399806e-9,1.329263433236083e-9,2.2275778335859313e-9 +SliceByteString/1/1/200,9.928679477537354e-7,9.923618113363893e-7,9.934077104203461e-7,1.787246609659912e-9,1.4614478610801934e-9,2.2088763180496984e-9 +SliceByteString/1/1/200,9.953119203481046e-7,9.94523243175234e-7,9.961682105275471e-7,2.738359436599372e-9,2.414321864207959e-9,3.163491068671277e-9 +SliceByteString/1/1/200,9.761114129463047e-7,9.752046954314208e-7,9.769834439199554e-7,3.065768850860348e-9,2.6552746873264026e-9,3.6025664593130024e-9 +SliceByteString/1/1/200,9.92922036091696e-7,9.92309364072153e-7,9.935542727148368e-7,2.1944893809924088e-9,1.7742455836851952e-9,2.907089524167977e-9 +SliceByteString/1/1/200,9.937908126719676e-7,9.931103995991384e-7,9.944450198292585e-7,2.1836330192970392e-9,1.826139859918722e-9,2.751952938057344e-9 +SliceByteString/1/1/200,9.935169377327466e-7,9.92685625847955e-7,9.945849807911467e-7,3.0456257395645444e-9,2.570309718376233e-9,3.894863941903873e-9 +SliceByteString/1/1/200,9.819185440505452e-7,9.811377871757117e-7,9.82757996968866e-7,2.717036583613313e-9,2.362753362477425e-9,3.1696429728473943e-9 +SliceByteString/1/1/200,9.89416728494149e-7,9.888559281908058e-7,9.90036931652432e-7,2.0557318512726857e-9,1.715157624619675e-9,2.495910416449294e-9 +SliceByteString/1/1/200,9.881792777339856e-7,9.876565072808664e-7,9.887376852690992e-7,1.8947456684053242e-9,1.5765379057459034e-9,2.4379719762041146e-9 +SliceByteString/1/1/200,9.944305771014053e-7,9.936344909401107e-7,9.952587783530645e-7,2.7434264278093465e-9,2.3472022521556147e-9,3.227722436709301e-9 +SliceByteString/1/1/300,9.764672552054462e-7,9.756848735504195e-7,9.772424542786537e-7,2.6020462984175727e-9,2.246016855300477e-9,3.109855135153868e-9 +SliceByteString/1/1/300,9.91085701385844e-7,9.903612003050472e-7,9.919269156230417e-7,2.742475412730727e-9,2.344670919925366e-9,3.3855654573622335e-9 +SliceByteString/1/1/300,9.877415195590289e-7,9.870771122973459e-7,9.884327307472436e-7,2.227972381765059e-9,1.7378142908907419e-9,2.8675767446604812e-9 +SliceByteString/1/1/300,9.865639797314615e-7,9.856893087436245e-7,9.875133351298036e-7,2.974477784097884e-9,2.5973226363690862e-9,3.559344119998001e-9 +SliceByteString/1/1/300,9.762888728319627e-7,9.753995746966964e-7,9.77209813929125e-7,3.061777567376178e-9,2.5515505691459726e-9,3.6682467607455293e-9 +SliceByteString/1/1/300,9.880751409665067e-7,9.87353539752077e-7,9.887865052923395e-7,2.6204966381673773e-9,2.1942808734122478e-9,3.1803688847560423e-9 +SliceByteString/1/1/300,9.862365223260434e-7,9.857578658559167e-7,9.867156946548191e-7,1.6622366750325088e-9,1.3488369923679134e-9,2.0397587458049825e-9 +SliceByteString/1/1/300,9.944131425545849e-7,9.93869303025983e-7,9.949634623204512e-7,1.9052622855997376e-9,1.6030552642354264e-9,2.3007209390342442e-9 +SliceByteString/1/1/300,9.752217006216863e-7,9.739856276205488e-7,9.7630274644234e-7,3.907851982956204e-9,3.4643061537327373e-9,4.486746463945339e-9 +SliceByteString/1/1/300,9.890260930684973e-7,9.883709138752764e-7,9.896471507319868e-7,2.058786489039316e-9,1.7275757749692519e-9,2.5978828160772683e-9 +SliceByteString/1/1/300,9.880734699709195e-7,9.873535824376251e-7,9.887668346623772e-7,2.3692212458453578e-9,2.0841266667431316e-9,2.7531574269150634e-9 +SliceByteString/1/1/300,9.895768991093047e-7,9.887873611186005e-7,9.904418511025744e-7,2.731640132562813e-9,2.2970700259229435e-9,3.338652121321535e-9 +SliceByteString/1/1/300,9.795616494555921e-7,9.78763719957454e-7,9.80380742049693e-7,2.6924004572347475e-9,2.2128005579102685e-9,3.494790116973917e-9 +SliceByteString/1/1/300,9.895404014123978e-7,9.883574288556342e-7,9.911592327471782e-7,4.6394096390885705e-9,3.593298910022431e-9,5.974946376569533e-9 +SliceByteString/1/1/300,9.911700238226898e-7,9.90489670909631e-7,9.918547888293855e-7,2.2373923616925224e-9,1.91872942264861e-9,2.680548661426254e-9 +SliceByteString/1/1/300,9.891971226091108e-7,9.884161201956474e-7,9.899964293557516e-7,2.5892755435731323e-9,2.2293470295191878e-9,3.059954603670656e-9 +SliceByteString/1/1/400,9.764037546049977e-7,9.75767380723826e-7,9.768597188093e-7,1.909260062375753e-9,1.533333109905825e-9,2.444379385889503e-9 +SliceByteString/1/1/400,9.90979188412632e-7,9.901994981352285e-7,9.918041846269184e-7,2.6656451019504248e-9,2.2077676453051286e-9,3.2812163366208173e-9 +SliceByteString/1/1/400,9.858831109967946e-7,9.853974353331866e-7,9.864712745777599e-7,1.8080093482872337e-9,1.505215088075918e-9,2.1505142845830135e-9 +SliceByteString/1/1/400,9.830980036092664e-7,9.823988236701763e-7,9.839102253974005e-7,2.6874781953954985e-9,2.207045621673775e-9,3.4090200572886365e-9 +SliceByteString/1/1/400,9.790466213440405e-7,9.780648237145138e-7,9.798993736159516e-7,3.1829186105254423e-9,2.5725034196438577e-9,3.936348890173611e-9 +SliceByteString/1/1/400,9.940833942992415e-7,9.931835887024784e-7,9.949901409569914e-7,3.1275161116474524e-9,2.7299275058691644e-9,3.699803004709693e-9 +SliceByteString/1/1/400,9.91615189778246e-7,9.906572208695388e-7,9.925230608624176e-7,3.279835479116361e-9,2.7286126920281984e-9,3.967739462035026e-9 +SliceByteString/1/1/400,9.982018732768353e-7,9.973915398816904e-7,9.989220472925924e-7,2.5178991565844295e-9,2.1588491296040376e-9,2.954352982698604e-9 +SliceByteString/1/1/400,9.78491189245481e-7,9.779158192505243e-7,9.790746618113826e-7,1.9794482779928723e-9,1.6367555424468392e-9,2.531845543737211e-9 +SliceByteString/1/1/400,9.921348537292832e-7,9.91281331107887e-7,9.9267828068176e-7,2.197349706781595e-9,1.7280133571098547e-9,2.940280721166094e-9 +SliceByteString/1/1/400,9.910839513512462e-7,9.900289187904754e-7,9.923565526776094e-7,4.054614790363963e-9,3.4983885036225336e-9,4.670386747679203e-9 +SliceByteString/1/1/400,9.928852186360013e-7,9.921127479905122e-7,9.934794440462455e-7,2.1892696156810185e-9,1.727372443510505e-9,2.7726211183450034e-9 +SliceByteString/1/1/400,9.813865710436691e-7,9.808432962661747e-7,9.821682387934876e-7,2.1832164367881244e-9,1.7810831161263736e-9,2.8043861216705745e-9 +SliceByteString/1/1/400,9.9081170770027e-7,9.90161682232979e-7,9.913200444174594e-7,1.907564371520823e-9,1.4749145146885197e-9,2.740624767166308e-9 +SliceByteString/1/1/400,9.951212560376013e-7,9.94077137406333e-7,9.960422322737195e-7,3.180501934118211e-9,2.6985714722821986e-9,3.882056687574953e-9 +SliceByteString/1/1/400,9.930220387285995e-7,9.924131231110959e-7,9.935530633855772e-7,1.9426298150817094e-9,1.6142037031470897e-9,2.3708560670948336e-9 +SliceByteString/1/1/500,9.771488124342153e-7,9.766397296924404e-7,9.775942817310772e-7,1.661304809604915e-9,1.4102263902310601e-9,1.949021075826134e-9 +SliceByteString/1/1/500,9.892512159685917e-7,9.885037639561074e-7,9.899612559435593e-7,2.4540357388758433e-9,2.0597027338331014e-9,2.8713251604516967e-9 +SliceByteString/1/1/500,9.932889090501568e-7,9.926212538404997e-7,9.939465819169077e-7,2.3266766889172735e-9,1.959687943539307e-9,2.808043419444556e-9 +SliceByteString/1/1/500,9.922848780551975e-7,9.912305070995373e-7,9.931818233768938e-7,3.178016546551968e-9,2.660086285733334e-9,3.893698828183262e-9 +SliceByteString/1/1/500,9.819058607605091e-7,9.810566553282852e-7,9.8255916375399e-7,2.446763156341752e-9,1.9175135576690597e-9,3.4700357773278434e-9 +SliceByteString/1/1/500,9.884268569198447e-7,9.877402878705773e-7,9.891682160303044e-7,2.4378710222991075e-9,2.0330765727817294e-9,2.908486778815951e-9 +SliceByteString/1/1/500,9.925273321121303e-7,9.91777183096992e-7,9.932430393601445e-7,2.5408258710031887e-9,2.166639780470917e-9,3.0559966419030387e-9 +SliceByteString/1/1/500,9.949684214188742e-7,9.936623357178487e-7,9.962503485217005e-7,4.373552266996255e-9,3.628743698181918e-9,5.241511586733285e-9 +SliceByteString/1/1/500,9.827689975428111e-7,9.824384567731114e-7,9.83131542284923e-7,1.2256839564939424e-9,1.0497765909977858e-9,1.4903839501157935e-9 +SliceByteString/1/1/500,9.978308354216853e-7,9.97341607113966e-7,9.98415498161155e-7,1.735828428769594e-9,1.424493557609414e-9,2.1214278800312565e-9 +SliceByteString/1/1/500,9.975960119889993e-7,9.970190686101111e-7,9.98196118548418e-7,1.9983479005004285e-9,1.7640926239391347e-9,2.3889560230102335e-9 +SliceByteString/1/1/500,9.922619913100142e-7,9.91342937390172e-7,9.930166565698515e-7,2.800598661636095e-9,2.3028234155926308e-9,3.472010225288842e-9 +SliceByteString/1/1/500,9.839028983525666e-7,9.832739724024355e-7,9.84539452027966e-7,2.090506167715071e-9,1.701114434101565e-9,2.5902428272606817e-9 +SliceByteString/1/1/500,9.934132725132735e-7,9.928208512775352e-7,9.94008851284294e-7,1.9558920374517447e-9,1.6323711402905653e-9,2.498571797634738e-9 +SliceByteString/1/1/500,9.933138672907878e-7,9.926829417321997e-7,9.938598162378802e-7,1.9666668366336162e-9,1.532917873885899e-9,2.5780130752900203e-9 +SliceByteString/1/1/500,9.91035753051836e-7,9.901329502652149e-7,9.9193627018895e-7,2.946452568828128e-9,2.4974248035505633e-9,3.5262238099382097e-9 +SliceByteString/1/1/600,9.835385928966534e-7,9.815472128930709e-7,9.848799296452752e-7,5.803830083437929e-9,4.348960417436751e-9,7.1627797829882295e-9 +SliceByteString/1/1/600,9.863151575571707e-7,9.85368974183437e-7,9.871571815208484e-7,2.937365325461033e-9,2.491862660681298e-9,3.5218579258311563e-9 +SliceByteString/1/1/600,9.877202160952136e-7,9.870885633137994e-7,9.883697491199064e-7,2.2565675098500512e-9,1.9249304885316814e-9,2.802006374579751e-9 +SliceByteString/1/1/600,9.901869495270938e-7,9.894828435878128e-7,9.90816065875708e-7,2.148373822336814e-9,1.8802335668633847e-9,2.429262148932799e-9 +SliceByteString/1/1/600,9.820794439654106e-7,9.81555077067407e-7,9.825642066136829e-7,1.716736721677921e-9,1.3806130390631484e-9,2.28729341329413e-9 +SliceByteString/1/1/600,9.923620759671774e-7,9.912996006640535e-7,9.93399884571047e-7,3.5506530344534833e-9,3.0473094308151597e-9,4.118555006118022e-9 +SliceByteString/1/1/600,9.97368018281992e-7,9.966850678422983e-7,9.981018756862616e-7,2.3661872843442115e-9,1.9876557435179013e-9,3.049988728250421e-9 +SliceByteString/1/1/600,9.956578107498845e-7,9.94832065923822e-7,9.964757005171562e-7,2.7441865869230475e-9,2.347756194042902e-9,3.339621656507331e-9 +SliceByteString/1/1/600,9.817844445703316e-7,9.810655444514433e-7,9.823611512574632e-7,2.2658890078130398e-9,1.866709839735743e-9,2.882639540399992e-9 +SliceByteString/1/1/600,9.922796979319136e-7,9.913056874670562e-7,9.932067775464673e-7,3.3183903126901246e-9,2.7881393131695223e-9,4.076350652112073e-9 +SliceByteString/1/1/600,9.944326109485681e-7,9.936562302741593e-7,9.951865931116995e-7,2.634754520451526e-9,2.275277289337741e-9,3.0703184780777705e-9 +SliceByteString/1/1/600,9.918552992477427e-7,9.913572364436109e-7,9.923095109166728e-7,1.5767081422479889e-9,1.333319521515855e-9,1.9676731464032974e-9 +SliceByteString/1/1/600,9.8020415157278e-7,9.795191323907234e-7,9.80872825910426e-7,2.262140081153688e-9,2.0074547765812443e-9,2.6280515316972305e-9 +SliceByteString/1/1/600,9.907652448942457e-7,9.902078822683505e-7,9.913170012965396e-7,1.8639333422371606e-9,1.5239394070189325e-9,2.3740967750360792e-9 +SliceByteString/1/1/600,9.925583031555573e-7,9.918445563865577e-7,9.934092305386423e-7,2.590959432724828e-9,2.1934971502112076e-9,3.306984425422746e-9 +SliceByteString/1/1/600,9.906043948203408e-7,9.895782773924578e-7,9.91830697277604e-7,3.649768745633306e-9,2.8641146613844125e-9,5.192696699165714e-9 +SliceByteString/1/1/700,9.778138754350188e-7,9.773001131562465e-7,9.78279744747986e-7,1.6432661936799562e-9,1.3396703873846876e-9,2.103834494395719e-9 +SliceByteString/1/1/700,9.872157939401564e-7,9.86319930268334e-7,9.88189109102037e-7,3.148902636721683e-9,2.682126581178005e-9,3.927148623952997e-9 +SliceByteString/1/1/700,9.873502174484614e-7,9.866100162570649e-7,9.87936158090279e-7,2.340485443007331e-9,1.994276598809652e-9,2.9985461179530976e-9 +SliceByteString/1/1/700,9.83836836339466e-7,9.82898409269154e-7,9.84643761034958e-7,3.0015458570742183e-9,2.4183308813563004e-9,3.7548893250476574e-9 +SliceByteString/1/1/700,9.80130721962775e-7,9.794507137357154e-7,9.808654659141228e-7,2.335104984775176e-9,1.8756062576467384e-9,3.0647593421642275e-9 +SliceByteString/1/1/700,9.98971811980571e-7,9.97875770773978e-7,9.99952149099157e-7,3.3058953448022283e-9,2.8099152199903426e-9,4.092265735448579e-9 +SliceByteString/1/1/700,9.921602927425404e-7,9.912759643288364e-7,9.931728030568111e-7,3.148997431661693e-9,2.71417525405924e-9,3.657180521007673e-9 +SliceByteString/1/1/700,9.92753055030726e-7,9.921234818140558e-7,9.93483225844901e-7,2.3205137787100538e-9,1.9689753866527573e-9,2.7458835238979865e-9 +SliceByteString/1/1/700,9.81491397441299e-7,9.807723173026214e-7,9.821993097341408e-7,2.4202280265330132e-9,2.0514634124170515e-9,2.8243704621929226e-9 +SliceByteString/1/1/700,9.928862979347428e-7,9.92302951296753e-7,9.933957515587508e-7,1.937442756218916e-9,1.6230635973233931e-9,2.315241681532547e-9 +SliceByteString/1/1/700,9.95693362072794e-7,9.950051235417138e-7,9.962216584601745e-7,2.0129562556575507e-9,1.6085454832110253e-9,2.721470372881902e-9 +SliceByteString/1/1/700,9.991427055356144e-7,9.981473083107022e-7,1.0000527294139362e-6,3.0819211304212383e-9,2.645034357669822e-9,3.5941986970869324e-9 +SliceByteString/1/1/700,9.868593116799874e-7,9.862628558773786e-7,9.875227093216105e-7,2.1734862564661008e-9,1.8535475116910444e-9,2.7606839291032175e-9 +SliceByteString/1/1/700,9.962258334e-7,9.955605234691952e-7,9.969629761081787e-7,2.372476051141411e-9,2.0489476211551496e-9,2.8253984678621424e-9 +SliceByteString/1/1/700,9.967012261118777e-7,9.956737708082386e-7,9.978252730484305e-7,3.6122149518684114e-9,3.143359073820401e-9,4.5153239121984135e-9 +SliceByteString/1/1/700,1.000912998388217e-6,9.99661025248748e-7,1.0017841722873894e-6,3.475056463201124e-9,2.8600624006973642e-9,5.063344606649523e-9 +SliceByteString/1/1/800,9.790273878595197e-7,9.782936238962115e-7,9.796849107978424e-7,2.316209488879447e-9,1.933240444126254e-9,2.8956501516376014e-9 +SliceByteString/1/1/800,9.931472044247932e-7,9.925442787916647e-7,9.93775616251629e-7,2.223868559450909e-9,1.9269206110103186e-9,2.6283994293318944e-9 +SliceByteString/1/1/800,9.905031804280737e-7,9.8931342226875e-7,9.91594114136101e-7,3.892417267855814e-9,3.227709612473144e-9,4.685887845450339e-9 +SliceByteString/1/1/800,9.87709239426756e-7,9.871850648008621e-7,9.883280381935576e-7,1.92666457236079e-9,1.6213158842378268e-9,2.3106697619068056e-9 +SliceByteString/1/1/800,9.820781505284366e-7,9.815890103584089e-7,9.825355316916595e-7,1.610104669692271e-9,1.284616124966473e-9,2.1343181449130592e-9 +SliceByteString/1/1/800,9.937101936775647e-7,9.929139938233905e-7,9.943489934076224e-7,2.460576726755369e-9,1.9093759852791285e-9,3.2158448623928222e-9 +SliceByteString/1/1/800,9.993363283061846e-7,9.987902462399361e-7,9.998071725089943e-7,1.6963633056146157e-9,1.3699818953259736e-9,2.1768918321507523e-9 +SliceByteString/1/1/800,9.929653180147498e-7,9.921021503915043e-7,9.938511576387171e-7,2.942921251248363e-9,2.422776765202059e-9,3.6243116124442825e-9 +SliceByteString/1/1/800,9.79345244686764e-7,9.785816633568051e-7,9.80116336810759e-7,2.684752547760181e-9,2.2735537527674872e-9,3.1109260982739463e-9 +SliceByteString/1/1/800,9.956842818625397e-7,9.951865460354262e-7,9.962293183875196e-7,1.7157196154244958e-9,1.4289737818501007e-9,2.0693213450087397e-9 +SliceByteString/1/1/800,9.911415106174745e-7,9.903503711677946e-7,9.918433855369028e-7,2.5377371217250843e-9,2.115290100640706e-9,3.0477418262744924e-9 +SliceByteString/1/1/800,9.920754551938981e-7,9.913460740769093e-7,9.928871135843977e-7,2.5008541476514884e-9,2.1368853924412288e-9,2.95708774533449e-9 +SliceByteString/1/1/800,9.812072854981234e-7,9.804871617432328e-7,9.817579043144572e-7,2.069291929351798e-9,1.736908746597617e-9,2.604505026811495e-9 +SliceByteString/1/1/800,9.917667690555931e-7,9.906897030271746e-7,9.930570934923582e-7,4.021835525028426e-9,3.303350641729376e-9,5.607920732245302e-9 +SliceByteString/1/1/800,9.913630704694214e-7,9.908446876706905e-7,9.921183335735562e-7,2.0998690524415884e-9,1.5496638698188403e-9,2.939280729260189e-9 +SliceByteString/1/1/800,9.918411753227936e-7,9.910758289673056e-7,9.92553115803596e-7,2.3907700074819152e-9,1.986041320979172e-9,2.8899353194682927e-9 +SliceByteString/1/1/900,9.769055164447635e-7,9.760005175800057e-7,9.778403295994025e-7,3.1689525218356705e-9,2.60990549571243e-9,3.867987135065206e-9 +SliceByteString/1/1/900,9.909448591026692e-7,9.899990469417543e-7,9.919838455844974e-7,3.3155924672366156e-9,2.8529198970650934e-9,3.967452661064809e-9 +SliceByteString/1/1/900,9.893843788408654e-7,9.882181890248053e-7,9.905051532917097e-7,3.8312099704591e-9,3.2781464229723433e-9,4.476566755137474e-9 +SliceByteString/1/1/900,9.865871788705808e-7,9.85819297512602e-7,9.873843646915705e-7,2.5731855313906346e-9,2.0907030336510845e-9,3.335040619313844e-9 +SliceByteString/1/1/900,9.805913336126945e-7,9.79680633789743e-7,9.815786944796102e-7,3.2087910912785228e-9,2.7174176715761646e-9,3.9119334337880806e-9 +SliceByteString/1/1/900,9.919946254006223e-7,9.911708690648762e-7,9.926742856715434e-7,2.673938374771162e-9,2.2236389517628824e-9,3.3631631083607412e-9 +SliceByteString/1/1/900,9.964194988333448e-7,9.956249507800218e-7,9.97318259453849e-7,2.7154870210896612e-9,2.309652714909302e-9,3.2487675206566204e-9 +SliceByteString/1/1/900,9.933248875198623e-7,9.92524658145804e-7,9.940613463435347e-7,2.525453282319179e-9,2.0527683261967376e-9,3.309304814203145e-9 +SliceByteString/1/1/900,9.744594996504278e-7,9.737458682315852e-7,9.751304182122245e-7,2.3483642005038788e-9,1.8701898463921253e-9,3.2459087527616753e-9 +SliceByteString/1/1/900,9.89015009125296e-7,9.880747247413704e-7,9.901306030192793e-7,3.546385553738146e-9,2.8664906666247515e-9,4.335808498163455e-9 +SliceByteString/1/1/900,9.89681145111584e-7,9.888582190157545e-7,9.905246843529464e-7,2.8080609062633994e-9,2.2412913551337768e-9,3.992391022097711e-9 +SliceByteString/1/1/900,9.89787621404615e-7,9.887003463955237e-7,9.907402180337493e-7,3.379641323470537e-9,2.7853595890020893e-9,4.042067457339795e-9 +SliceByteString/1/1/900,9.790047572359083e-7,9.782465402331692e-7,9.798334025529725e-7,2.8021721972131763e-9,2.209331764240511e-9,3.6614076202401196e-9 +SliceByteString/1/1/900,9.873044064454304e-7,9.863639736117158e-7,9.882844179829146e-7,3.3452054544725342e-9,2.759644862916701e-9,4.438460879157925e-9 +SliceByteString/1/1/900,9.953016778478246e-7,9.941879251135974e-7,9.963249001397067e-7,3.598342040179389e-9,3.039841995331359e-9,4.345791183529856e-9 +SliceByteString/1/1/900,9.957568982465772e-7,9.949838005547732e-7,9.965774705895457e-7,2.7062574189457598e-9,2.3368241910333757e-9,3.3634165357249654e-9 +SliceByteString/1/1/1000,9.7868484226387e-7,9.78015425664689e-7,9.793096312722647e-7,2.2649929931851085e-9,1.7730645592801857e-9,2.9190488427074423e-9 +SliceByteString/1/1/1000,9.85670285014939e-7,9.848591527767954e-7,9.862946973457746e-7,2.3819453268228945e-9,1.9607734901678818e-9,2.9764678370646525e-9 +SliceByteString/1/1/1000,9.900096706041394e-7,9.89440924611304e-7,9.906723891366832e-7,2.1918678235199844e-9,1.7913981508301285e-9,2.7110014808463905e-9 +SliceByteString/1/1/1000,9.934254811510885e-7,9.926123281297778e-7,9.941769623222867e-7,2.540804186781197e-9,2.132296610893892e-9,3.1571529768001197e-9 +SliceByteString/1/1/1000,9.837028846028696e-7,9.831833367374052e-7,9.843608234897412e-7,1.965202120691292e-9,1.4682225962453144e-9,2.7291764360207386e-9 +SliceByteString/1/1/1000,9.951462245438747e-7,9.945303140638701e-7,9.958751953746467e-7,2.3513349966057445e-9,2.007110398902378e-9,2.9113165068155484e-9 +SliceByteString/1/1/1000,9.979404796206454e-7,9.97431893420498e-7,9.984320225075446e-7,1.7044593928663524e-9,1.3726508286817977e-9,2.240842544942963e-9 +SliceByteString/1/1/1000,9.985649044440185e-7,9.979083766396188e-7,9.993048352171068e-7,2.3424660659689083e-9,1.9860492785220924e-9,2.931339537336134e-9 +SliceByteString/1/1/1000,9.806561476161172e-7,9.799662599278169e-7,9.81446733706883e-7,2.6029191371389012e-9,2.1439821955234467e-9,3.267784237405445e-9 +SliceByteString/1/1/1000,9.901793946366972e-7,9.89602557633252e-7,9.907350088940827e-7,1.991410333754913e-9,1.6925665616797402e-9,2.401601686132955e-9 +SliceByteString/1/1/1000,9.914674628216525e-7,9.899919737544716e-7,9.924542590617508e-7,3.9185793999792065e-9,2.9035666513485533e-9,5.113472087054548e-9 +SliceByteString/1/1/1000,9.950816726616312e-7,9.944367275312875e-7,9.95918772654586e-7,2.4023604981857838e-9,2.0389079840117044e-9,3.0154586301278992e-9 +SliceByteString/1/1/1000,9.818531016123145e-7,9.81188848673055e-7,9.826143397926815e-7,2.2932632917502004e-9,1.8892733252451216e-9,3.0025021030590928e-9 +SliceByteString/1/1/1000,9.933904668890437e-7,9.924640255402684e-7,9.943902594006441e-7,3.202967317301932e-9,2.698150997897052e-9,4.1813752724747305e-9 +SliceByteString/1/1/1000,9.943435191247872e-7,9.932871796420453e-7,9.953133150431518e-7,3.24759627662557e-9,2.7371001336419976e-9,3.907202830223402e-9 +SliceByteString/1/1/1000,9.92250494545783e-7,9.910868648102782e-7,9.931531113059728e-7,3.4343075013834144e-9,2.805411562080121e-9,4.695724653843443e-9 +EqualsByteString/10/10,8.698333396626792e-7,8.690642899339245e-7,8.7061780033023e-7,2.614061472836064e-9,2.112740920114886e-9,3.3315301559993727e-9 +EqualsByteString/20/20,8.716810650092816e-7,8.711464507257243e-7,8.721588814120564e-7,1.7138235582418356e-9,1.4547966142319925e-9,2.0824362919602554e-9 +EqualsByteString/30/30,8.731339755081355e-7,8.723603061612786e-7,8.738452201250032e-7,2.578131759549421e-9,2.1761308891211513e-9,3.0734231239523175e-9 +EqualsByteString/40/40,8.697790270346626e-7,8.687578165914872e-7,8.707934584168757e-7,3.3240994072548934e-9,2.9332253257785246e-9,3.986148258450794e-9 +EqualsByteString/50/50,8.675789163649323e-7,8.669117769775437e-7,8.682376751627744e-7,2.309849713623609e-9,1.8999518545689954e-9,2.8200880887927877e-9 +EqualsByteString/60/60,8.673788705407233e-7,8.668259866565771e-7,8.679403681279575e-7,1.8819568768681124e-9,1.5440115804281106e-9,2.542555172118221e-9 +EqualsByteString/70/70,8.689145755148397e-7,8.682719171049977e-7,8.695694852311663e-7,2.2278171321495307e-9,1.8663398961080697e-9,2.8461250231397056e-9 +EqualsByteString/80/80,8.683407239423327e-7,8.678274707330413e-7,8.688771217269192e-7,1.7650076735106265e-9,1.4605848862220895e-9,2.334594482440912e-9 +EqualsByteString/90/90,8.650967881618555e-7,8.646166418868913e-7,8.655956157383163e-7,1.6714164966891642e-9,1.3160386846369134e-9,2.2933346463980877e-9 +EqualsByteString/100/100,8.671586181937614e-7,8.666073480699519e-7,8.676275736784265e-7,1.683293944716337e-9,1.412757630915081e-9,2.029045499441827e-9 +EqualsByteString/110/110,8.6725740203846e-7,8.66703384623145e-7,8.678559304272287e-7,2.039781418888135e-9,1.6059657095374577e-9,2.960584865197637e-9 +EqualsByteString/120/120,8.669504015197347e-7,8.663049133453775e-7,8.676640919265226e-7,2.21625737922016e-9,1.8040591631614316e-9,2.784884027913272e-9 +EqualsByteString/130/130,8.741654070403076e-7,8.735516381838702e-7,8.74775774935981e-7,2.020710565131793e-9,1.730676911523777e-9,2.5078435209862696e-9 +EqualsByteString/140/140,8.739999254689899e-7,8.733799620060395e-7,8.746536324256193e-7,2.114627411839528e-9,1.8059188606920848e-9,2.5214214755717582e-9 +EqualsByteString/150/150,8.693421944854695e-7,8.68575362611042e-7,8.701991216730445e-7,2.7132875935130134e-9,2.238133008050507e-9,3.307227860046526e-9 +EqualsByteString/160/160,8.709095624770711e-7,8.702961423337857e-7,8.714605231570179e-7,2.0012058777697865e-9,1.7347481400725783e-9,2.3336660696278386e-9 +EqualsByteString/170/170,8.667425255002478e-7,8.659337198747648e-7,8.676166714327558e-7,2.839619209444559e-9,2.1782613069927552e-9,3.731034854925082e-9 +EqualsByteString/180/180,8.694818406099533e-7,8.687731896538014e-7,8.701311863130154e-7,2.37780043175145e-9,1.9531942521881525e-9,3.072147580335031e-9 +EqualsByteString/190/190,8.671142602241573e-7,8.666772630097953e-7,8.675225414689838e-7,1.392835452044664e-9,1.1527876572323786e-9,1.7117050421341904e-9 +EqualsByteString/200/200,8.703939029097023e-7,8.699610480762398e-7,8.707993392473168e-7,1.391088523616392e-9,1.1448184638726846e-9,1.7307660309600758e-9 +EqualsByteString/210/210,8.658422874560709e-7,8.65229111446856e-7,8.664290268713085e-7,1.948863235446145e-9,1.5408332196768931e-9,2.5742498884222543e-9 +EqualsByteString/220/220,8.677228972174677e-7,8.672689846817776e-7,8.683398299264203e-7,1.8890555971068592e-9,1.474396785339878e-9,2.6308107226251295e-9 +EqualsByteString/230/230,8.672185627462256e-7,8.66571307743084e-7,8.679028718901536e-7,2.239802282116659e-9,1.7596239968374687e-9,3.269776996506207e-9 +EqualsByteString/240/240,8.691416811810508e-7,8.68228788856068e-7,8.700119821041967e-7,2.9134801731585324e-9,2.4664495218711775e-9,3.4758313587276294e-9 +EqualsByteString/250/250,8.670218446384074e-7,8.664108422748182e-7,8.675309329673844e-7,1.9376413776409234e-9,1.6322321917384775e-9,2.301709696476552e-9 +EqualsByteString/260/260,8.658949801662934e-7,8.654070555673837e-7,8.663759682084754e-7,1.6336482140004627e-9,1.4138557171689827e-9,1.934650196736548e-9 +EqualsByteString/270/270,8.637573778880197e-7,8.633096054653682e-7,8.641983761655403e-7,1.4564893655291933e-9,1.2173849975440045e-9,1.778013266358499e-9 +EqualsByteString/280/280,8.686582277182774e-7,8.682695155730917e-7,8.69099697668365e-7,1.4076975590882301e-9,1.113090417253918e-9,1.743649133250753e-9 +EqualsByteString/290/290,8.670016488790973e-7,8.665067986280186e-7,8.674595873734544e-7,1.6412718055997284e-9,1.3707047784263878e-9,2.023830296724481e-9 +EqualsByteString/300/300,8.678512499098471e-7,8.67471572016618e-7,8.682003076816108e-7,1.2713827219313843e-9,1.0851685562732836e-9,1.6163526196950264e-9 +EqualsByteString/310/310,8.684864380919317e-7,8.678569307099525e-7,8.69218156129132e-7,2.1976155803553136e-9,1.911921078824648e-9,2.566547488500704e-9 +EqualsByteString/320/320,8.658788636614285e-7,8.649013603679187e-7,8.667965945116507e-7,3.298110777292398e-9,2.7406826616940237e-9,4.008574880173196e-9 +EqualsByteString/330/330,8.683090336928048e-7,8.674901040696137e-7,8.692864105555321e-7,2.9521546127786122e-9,2.540471556039122e-9,3.4584265093202775e-9 +EqualsByteString/340/340,8.648353367229779e-7,8.642556879108655e-7,8.653732070783962e-7,1.8686209407375107e-9,1.5760372906196898e-9,2.3023767034406923e-9 +EqualsByteString/350/350,8.68027163476534e-7,8.673276861660543e-7,8.687529824208366e-7,2.298736498603547e-9,1.8550992553249114e-9,2.6938109024421504e-9 +EqualsByteString/360/360,8.67921305902271e-7,8.674059705124229e-7,8.683633680063964e-7,1.5126096642075865e-9,1.2873974129200106e-9,1.7610336503203402e-9 +EqualsByteString/370/370,8.679917821357195e-7,8.675460057511449e-7,8.684254967159517e-7,1.4630419717924804e-9,1.222316196371792e-9,1.8294649304891361e-9 +EqualsByteString/380/380,8.699124079486063e-7,8.69309760781091e-7,8.705250243473564e-7,2.048105507638052e-9,1.6911532194635622e-9,2.5257230313700227e-9 +EqualsByteString/390/390,8.67765944576029e-7,8.670467251009923e-7,8.68498295311894e-7,2.3186005149523256e-9,1.8887933343856006e-9,2.7705526172076353e-9 +EqualsByteString/400/400,8.716723894798547e-7,8.708016162225377e-7,8.726008502943558e-7,2.966893089165354e-9,2.463342721123819e-9,3.624862614976318e-9 +EqualsByteString/410/410,8.704102142903718e-7,8.69721197268986e-7,8.710245268717201e-7,2.2415318961086632e-9,1.8569434856107617e-9,2.7819382178515344e-9 +EqualsByteString/420/420,8.670879430724445e-7,8.666498850703825e-7,8.675039337284704e-7,1.5158421660602553e-9,1.2201813363684184e-9,2.0453182425813405e-9 +EqualsByteString/430/430,8.680788917235545e-7,8.673849850035687e-7,8.688221248544987e-7,2.4085107961406733e-9,2.011254987341802e-9,2.8678506498144323e-9 +EqualsByteString/440/440,8.678844780595321e-7,8.672354812809162e-7,8.686812890952354e-7,2.3331030418381744e-9,1.9027268679243644e-9,2.9108425779435245e-9 +EqualsByteString/450/450,8.648431350559484e-7,8.642478979233827e-7,8.655717437497197e-7,2.124885579588608e-9,1.7566319922069606e-9,2.8265501238527836e-9 +EqualsByteString/460/460,8.664304012266839e-7,8.66054921879669e-7,8.669184899883655e-7,1.3674503077543812e-9,1.057725870753227e-9,1.906193612258314e-9 +EqualsByteString/470/470,8.669138549439729e-7,8.664153230618332e-7,8.674637071874868e-7,1.891097397039753e-9,1.5260690111938377e-9,2.4368312843454123e-9 +EqualsByteString/480/480,8.659245449094012e-7,8.652801978022476e-7,8.667067186126672e-7,2.451794346972783e-9,1.8584158562906221e-9,3.448974622656225e-9 +EqualsByteString/490/490,8.673408083701279e-7,8.668896285573067e-7,8.677976519412614e-7,1.5166107077524025e-9,1.2902830031136974e-9,1.8366036348312322e-9 +EqualsByteString/500/500,8.667954105203374e-7,8.661471312960952e-7,8.674418142015798e-7,2.186110360007623e-9,1.728314430329508e-9,2.8338912345900553e-9 +EqualsByteString/510/510,8.668158302728804e-7,8.657153820075069e-7,8.678980784177246e-7,3.687652470720951e-9,3.1334081903389607e-9,4.442975822949826e-9 +EqualsByteString/520/520,8.686294652814164e-7,8.681804100444116e-7,8.692571101739392e-7,1.8104583414068872e-9,1.4379389903406914e-9,2.3816333526058063e-9 +EqualsByteString/530/530,8.719853841398272e-7,8.713214358866821e-7,8.725535392731993e-7,2.0438422339059626e-9,1.609647898302277e-9,2.739275085906574e-9 +EqualsByteString/540/540,8.686416914052779e-7,8.67971866815964e-7,8.693136838243692e-7,2.244904937082098e-9,1.9276906335419656e-9,2.688537228756879e-9 +EqualsByteString/550/550,8.680517298099525e-7,8.676527728042895e-7,8.68558790370439e-7,1.4903478176498791e-9,1.1754477010200812e-9,1.9771413644945044e-9 +EqualsByteString/560/560,8.676591403555907e-7,8.670774821107687e-7,8.681946065656481e-7,1.8480804503041825e-9,1.5226681372827531e-9,2.25767818973671e-9 +EqualsByteString/570/570,8.678280200568699e-7,8.674093404183558e-7,8.683132944668932e-7,1.5216339504691626e-9,1.2004513277601685e-9,2.030524075687912e-9 +EqualsByteString/580/580,8.683929881821045e-7,8.678078131525007e-7,8.689391715085816e-7,2.0011280695967854e-9,1.6625529718354654e-9,2.4865865409647276e-9 +EqualsByteString/590/590,8.669476989973046e-7,8.665315258533408e-7,8.67363137549527e-7,1.4090089102219313e-9,1.1725843641289002e-9,1.714061091455272e-9 +EqualsByteString/600/600,8.663324729678372e-7,8.65921146723747e-7,8.668068115429748e-7,1.4607985330398147e-9,1.199983250593408e-9,1.8660816049560377e-9 +EqualsByteString/610/610,8.647050966909112e-7,8.642098863575747e-7,8.65176696102806e-7,1.6995952869916735e-9,1.4224247359518417e-9,2.110659183339251e-9 +EqualsByteString/620/620,8.676319619331336e-7,8.672224270893496e-7,8.682038905992336e-7,1.56836471135801e-9,1.2211265700956478e-9,2.359527485283437e-9 +EqualsByteString/630/630,8.632546799312582e-7,8.628483199707127e-7,8.6368552801293e-7,1.3786259140597261e-9,1.143551625658258e-9,1.699067172840736e-9 +EqualsByteString/640/640,8.645022018069054e-7,8.640536462004111e-7,8.650158021042666e-7,1.5784847006614847e-9,1.2880812969543435e-9,2.1401505704290157e-9 +EqualsByteString/650/650,8.672227705408938e-7,8.66512615058798e-7,8.678482298309446e-7,2.2017458960944276e-9,1.8354165248892089e-9,2.8382124723558653e-9 +EqualsByteString/660/660,8.666910506428724e-7,8.658297606514608e-7,8.673952930832376e-7,2.570213378963521e-9,2.186317538516065e-9,3.1283409907252443e-9 +EqualsByteString/670/670,8.710979252324073e-7,8.705087898991052e-7,8.716830304511486e-7,1.865106134246873e-9,1.577643115534686e-9,2.2843760191251092e-9 +EqualsByteString/680/680,8.698001785856614e-7,8.694528314655089e-7,8.702114170336273e-7,1.3238922451248787e-9,1.0696491980367646e-9,1.7212602451619645e-9 +EqualsByteString/690/690,8.674017321958107e-7,8.669816384652149e-7,8.67915733564381e-7,1.6176845259506697e-9,1.3744105313036874e-9,1.9674604290305346e-9 +EqualsByteString/700/700,8.691543913784566e-7,8.68646618259447e-7,8.699212489593748e-7,2.0131872401659786e-9,1.4335564814117603e-9,3.240371759315956e-9 +EqualsByteString/710/710,8.660862592487758e-7,8.651814885109435e-7,8.671785211901732e-7,3.3717121492724367e-9,2.557374164178095e-9,4.911351393703127e-9 +EqualsByteString/720/720,8.705259371425839e-7,8.699702822830278e-7,8.709998730562557e-7,1.765454426440892e-9,1.4418565201468901e-9,2.3449351314850605e-9 +EqualsByteString/730/730,8.687579263245539e-7,8.676172498684882e-7,8.698089526044493e-7,3.5520742171610424e-9,3.1839247791799494e-9,4.0063013376677484e-9 +EqualsByteString/740/740,8.650590107939594e-7,8.64324651369565e-7,8.659153291786086e-7,2.7075699302591812e-9,2.19744459258098e-9,3.2487956673683664e-9 +EqualsByteString/750/750,8.718613190146683e-7,8.714905819436642e-7,8.722165523890559e-7,1.2777444008346978e-9,1.086835733654569e-9,1.5587876525939751e-9 +EqualsByteString/760/760,8.728092356957675e-7,8.72115384218069e-7,8.735793390269949e-7,2.4258207958939545e-9,2.089129965464272e-9,2.8203360565613374e-9 +EqualsByteString/770/770,8.726477209290638e-7,8.722281450883886e-7,8.730901150629263e-7,1.4736219069196854e-9,1.262388517576708e-9,1.8214002301988132e-9 +EqualsByteString/780/780,8.752315839305099e-7,8.745699024354151e-7,8.761145769889132e-7,2.561645188581472e-9,2.1413836543932582e-9,3.3188874849326855e-9 +EqualsByteString/790/790,8.709227028168766e-7,8.702224251033579e-7,8.716642805528977e-7,2.3619487995507497e-9,2.043784011563951e-9,2.8010750727914357e-9 +EqualsByteString/800/800,8.700952100115568e-7,8.697171030956046e-7,8.704716892589499e-7,1.2811732126473432e-9,1.0470807402034892e-9,1.576948478022856e-9 +EqualsByteString/810/810,8.699308338870977e-7,8.692761186238607e-7,8.705836601819724e-7,2.193183733723978e-9,1.8536627179814526e-9,2.6498627899527684e-9 +EqualsByteString/820/820,8.708062698213684e-7,8.703873522760526e-7,8.712622610960323e-7,1.452768031110814e-9,1.1535812164894977e-9,1.9064653312135414e-9 +EqualsByteString/830/830,8.702397169425782e-7,8.696551093250074e-7,8.709088391840933e-7,2.0469844115920144e-9,1.615211593392481e-9,2.718612116344282e-9 +EqualsByteString/840/840,8.69860570610534e-7,8.693392852823126e-7,8.704258825571447e-7,1.8349109499570928e-9,1.461841519818807e-9,2.421563329097237e-9 +EqualsByteString/850/850,8.696014543532822e-7,8.68952891344351e-7,8.703335302248295e-7,2.3015061591304753e-9,1.9317608191513e-9,2.9587841702862138e-9 +EqualsByteString/860/860,8.703074880114881e-7,8.698722647200625e-7,8.707155152604737e-7,1.4696513220725815e-9,1.2230699295644804e-9,1.8149092524911374e-9 +EqualsByteString/870/870,8.680659646203205e-7,8.676457780161041e-7,8.685769974604504e-7,1.6164845459151677e-9,1.3705666262249094e-9,1.9132456686011922e-9 +EqualsByteString/880/880,8.669486958087968e-7,8.665347362833794e-7,8.673703464867048e-7,1.3839298965219727e-9,1.1662784623443388e-9,1.6640477716947097e-9 +EqualsByteString/890/890,8.658962222562591e-7,8.653173130946718e-7,8.664926696776129e-7,1.99927919748351e-9,1.601561155548356e-9,2.7414176600025776e-9 +EqualsByteString/900/900,8.680189780439356e-7,8.674473472501205e-7,8.685303429041584e-7,1.7641291600599718e-9,1.4446127017495224e-9,2.2537881386355506e-9 +EqualsByteString/910/910,8.626248068373722e-7,8.621332651863903e-7,8.630928401741082e-7,1.5934663975526997e-9,1.3276444248383422e-9,2.0155983380762947e-9 +EqualsByteString/920/920,8.685445983187541e-7,8.680318375126167e-7,8.691195480354667e-7,1.7899085469073467e-9,1.5030121386643953e-9,2.2215450046831237e-9 +EqualsByteString/930/930,8.697914513681569e-7,8.690472114094003e-7,8.707344943795646e-7,2.773080451844971e-9,2.277587325298232e-9,3.2733199655692303e-9 +EqualsByteString/940/940,8.714875736090774e-7,8.707399079933881e-7,8.722024893457545e-7,2.351501163425605e-9,1.954049522315493e-9,2.8204011854658385e-9 +EqualsByteString/950/950,8.665696336560181e-7,8.660812719898965e-7,8.670924437566563e-7,1.7144949521010223e-9,1.4695362790179632e-9,1.997379920406454e-9 +EqualsByteString/960/960,8.693567594118042e-7,8.68742444838358e-7,8.699654139491181e-7,2.0554966090648204e-9,1.767705335428588e-9,2.421312670214167e-9 +EqualsByteString/970/970,8.669522301929315e-7,8.662222782959817e-7,8.675215842290193e-7,2.210244598887853e-9,1.8485873832463973e-9,2.6909596401922145e-9 +EqualsByteString/980/980,8.671650578192787e-7,8.66491158902728e-7,8.677649589658309e-7,2.059873298720688e-9,1.6847851094621941e-9,2.589084935223183e-9 +EqualsByteString/990/990,8.687491227899272e-7,8.682523723105109e-7,8.693476580473738e-7,1.8538131558122843e-9,1.544052877735117e-9,2.2007913026974672e-9 +EqualsByteString/1000/1000,8.657482255156652e-7,8.651239091269664e-7,8.663495463876618e-7,1.999192470756323e-9,1.6300284214124971e-9,2.716610937223055e-9 +EqualsByteString/1010/1010,8.649351164982045e-7,8.644805313433192e-7,8.654515747797521e-7,1.5590049531694511e-9,1.232806090126987e-9,2.0289317016463174e-9 +EqualsByteString/1020/1020,8.680910600842081e-7,8.676972990184657e-7,8.684576355405737e-7,1.3062182785254968e-9,1.088543562665545e-9,1.5839877294154512e-9 +EqualsByteString/1030/1030,8.669677057730216e-7,8.666054790558712e-7,8.673259240177085e-7,1.2213335695613004e-9,9.983373549516531e-10,1.5889693964187275e-9 +EqualsByteString/1040/1040,8.688517227852749e-7,8.682676372689624e-7,8.694658672072132e-7,2.0480765120964874e-9,1.7349841612502674e-9,2.416855887383588e-9 +EqualsByteString/1050/1050,8.67731628043753e-7,8.672480464023224e-7,8.682547047596848e-7,1.5551484971377668e-9,1.2848692613757758e-9,1.9796126319336152e-9 +EqualsByteString/1060/1060,8.685946416359978e-7,8.679140055610113e-7,8.693325676741951e-7,2.3581171734373864e-9,1.9531740586474924e-9,2.962367085785011e-9 +EqualsByteString/1070/1070,8.700995881579976e-7,8.691671693783564e-7,8.709900426287009e-7,3.0599663812554465e-9,2.6775303154586764e-9,3.543399635966073e-9 +EqualsByteString/1080/1080,8.676199378246482e-7,8.670733335170841e-7,8.682833001791662e-7,1.938306767749335e-9,1.613641800112653e-9,2.4432374925088315e-9 +EqualsByteString/1090/1090,8.682466871863368e-7,8.677904921479532e-7,8.686711335829036e-7,1.5345048872885467e-9,1.1913747371893356e-9,2.1072375413373753e-9 +EqualsByteString/1100/1100,8.67717550148207e-7,8.670994977035693e-7,8.684360139811343e-7,2.2491611205134808e-9,1.8471619792932558e-9,2.8076150124476003e-9 +EqualsByteString/1110/1110,8.681810631711336e-7,8.674228415275589e-7,8.689659839118833e-7,2.7280079474411393e-9,2.329772352121933e-9,3.1686315682977514e-9 +EqualsByteString/1120/1120,8.728805478232002e-7,8.721345609954102e-7,8.736671700860474e-7,2.659052828669409e-9,2.266226321463007e-9,3.1636122402588526e-9 +EqualsByteString/1130/1130,8.692548574978823e-7,8.685766872863129e-7,8.701158267983969e-7,2.6764504204360962e-9,2.121572474625016e-9,3.6660626115205332e-9 +EqualsByteString/1140/1140,8.689210258445476e-7,8.684724038400021e-7,8.695216934241209e-7,1.7202390871147656e-9,1.4201206491821945e-9,2.1505696533870257e-9 +EqualsByteString/1150/1150,8.698301338762739e-7,8.692661362115089e-7,8.703262130166666e-7,1.7789550990732789e-9,1.499418020365338e-9,2.057371459459876e-9 +EqualsByteString/1160/1160,8.683560130694052e-7,8.680123769849068e-7,8.687277424564688e-7,1.1925867997263127e-9,1.0049908802597199e-9,1.4430170558558967e-9 +EqualsByteString/1170/1170,8.721072845249395e-7,8.716887917905541e-7,8.725308004384825e-7,1.3778586698648423e-9,1.1891258291391488e-9,1.707518252946469e-9 +EqualsByteString/1180/1180,8.690960154893928e-7,8.686491680719045e-7,8.697157692281703e-7,1.714816518429839e-9,1.424968906851056e-9,2.1428960869649274e-9 +EqualsByteString/1190/1190,8.682217022774083e-7,8.674939197705989e-7,8.688823938326641e-7,2.347586178344891e-9,2.022758021753624e-9,2.7314819276009255e-9 +EqualsByteString/1200/1200,8.697930680910881e-7,8.693261044101124e-7,8.70382503342504e-7,1.900858106032045e-9,1.4774937294195557e-9,2.864911156935664e-9 +EqualsByteString/1210/1210,8.725634084610069e-7,8.716321100337986e-7,8.735988655212203e-7,3.3471850023045855e-9,2.9011356310138773e-9,3.938561086712071e-9 +EqualsByteString/1220/1220,8.701355652111577e-7,8.693911131735816e-7,8.711959282079711e-7,2.8940122725997344e-9,2.164106906928224e-9,3.8905237972859306e-9 +EqualsByteString/1230/1230,8.672693528226639e-7,8.667732412608982e-7,8.677940825427103e-7,1.736768915923089e-9,1.4684147466890706e-9,2.0838221152539924e-9 +EqualsByteString/1240/1240,8.713587171310761e-7,8.708476513855152e-7,8.718556366053939e-7,1.7214064847481701e-9,1.4118067389792046e-9,2.187175484126362e-9 +EqualsByteString/1250/1250,8.681231039296772e-7,8.676421972161387e-7,8.687276463607984e-7,1.878694630359428e-9,1.5552749850204578e-9,2.383018380085522e-9 +EqualsByteString/1260/1260,8.654735620380769e-7,8.649541357279842e-7,8.660373755722472e-7,1.8086502214067858e-9,1.5169267412728856e-9,2.4302280450049375e-9 +EqualsByteString/1270/1270,8.685084371755391e-7,8.678505609711234e-7,8.691718133087603e-7,2.209480985470497e-9,1.8504561593809621e-9,2.6621513897214764e-9 +EqualsByteString/1280/1280,8.670827856275754e-7,8.666426558476707e-7,8.675207810923192e-7,1.4921736056820742e-9,1.3190880974839813e-9,1.6879269228419743e-9 +EqualsByteString/1290/1290,8.670263442268146e-7,8.663369382495674e-7,8.678844121842993e-7,2.5919696178840435e-9,2.247313975191864e-9,3.1582011574350113e-9 +EqualsByteString/1300/1300,8.682492840575016e-7,8.67482688979324e-7,8.689535064251612e-7,2.4171279414104962e-9,1.9912760782940207e-9,2.928044827160168e-9 +EqualsByteString/1310/1310,8.68133906885257e-7,8.674824695920302e-7,8.689245645910739e-7,2.4136470219544733e-9,2.026369059661022e-9,2.9222441094030936e-9 +EqualsByteString/1320/1320,8.687153126208718e-7,8.679827421653444e-7,8.69433341848511e-7,2.5066538505782805e-9,2.1071280337433546e-9,3.05065021043925e-9 +EqualsByteString/1330/1330,8.666756952964146e-7,8.662156850905089e-7,8.67131752738788e-7,1.5456006758901468e-9,1.2711994727595527e-9,2.0266445492603675e-9 +EqualsByteString/1340/1340,8.688948591108364e-7,8.681831119833077e-7,8.695103457774542e-7,2.2227216600873014e-9,1.9148209042649102e-9,2.616724584669379e-9 +EqualsByteString/1350/1350,8.661115875435036e-7,8.654948104254321e-7,8.667907027494937e-7,2.1001694531172e-9,1.7173096003444215e-9,2.5907235615023904e-9 +EqualsByteString/1360/1360,8.673630561839882e-7,8.66705266372749e-7,8.678192631471002e-7,1.8172678855359122e-9,1.4544251543213003e-9,2.3868252638012155e-9 +EqualsByteString/1370/1370,8.726318901048221e-7,8.720001092266436e-7,8.734055066190414e-7,2.3681948124713758e-9,1.8615243637943006e-9,3.1052660051318264e-9 +EqualsByteString/1380/1380,8.651168537236697e-7,8.646281670088833e-7,8.656803269979281e-7,1.8110832194973314e-9,1.515291863329502e-9,2.2773581525875143e-9 +EqualsByteString/1390/1390,8.691423002717062e-7,8.684246903947822e-7,8.69983778473052e-7,2.5715165909081237e-9,2.154735174061575e-9,3.2200982688891854e-9 +EqualsByteString/1400/1400,8.668697525881178e-7,8.660619752929037e-7,8.67456582429695e-7,2.2986043615478364e-9,1.9353359812857174e-9,2.8712501436388587e-9 +EqualsByteString/1410/1410,8.705224204829795e-7,8.696582426087748e-7,8.713212798048175e-7,2.597307140523716e-9,2.2065656002476413e-9,3.1430602427176745e-9 +EqualsByteString/1420/1420,8.686202409525743e-7,8.67903359066307e-7,8.693086821130112e-7,2.3945058803946848e-9,2.086813933953982e-9,2.809447994796296e-9 +EqualsByteString/1430/1430,8.671216829141932e-7,8.663830910204262e-7,8.677991566888353e-7,2.409946681166265e-9,2.0631513200908202e-9,2.8263532434056025e-9 +EqualsByteString/1440/1440,8.720276469952204e-7,8.714431340456986e-7,8.725632982307578e-7,1.838258511223265e-9,1.4741574604325216e-9,2.3310665050663084e-9 +EqualsByteString/1450/1450,8.671804498983638e-7,8.66649609769249e-7,8.67648196438861e-7,1.7560365890253908e-9,1.4591446253237504e-9,2.167305877694971e-9 +EqualsByteString/1460/1460,8.630052809970368e-7,8.625833082744195e-7,8.634164717726799e-7,1.4724000853063084e-9,1.1291502260111405e-9,2.096560708643786e-9 +EqualsByteString/1470/1470,8.654413047695738e-7,8.649021322549611e-7,8.65965881191178e-7,1.7397356255417023e-9,1.3837989342791343e-9,2.2386932562750075e-9 +EqualsByteString/1480/1480,8.692862569575772e-7,8.687631647793967e-7,8.700235323336869e-7,2.1618623220912303e-9,1.8781477561066033e-9,2.5966109002082358e-9 +EqualsByteString/1490/1490,8.697410125381054e-7,8.687968597476482e-7,8.707494646245728e-7,3.3920274443997543e-9,2.8738384669142847e-9,4.199500470110475e-9 +EqualsByteString/1500/1500,8.681204313709609e-7,8.674307256726646e-7,8.688979838963278e-7,2.4771542001677017e-9,2.138017501319844e-9,3.0371747963537863e-9 +EqualsByteString/10/10,8.694028465451013e-7,8.687350588921852e-7,8.700205763390154e-7,2.0351865202391463e-9,1.7136115773078934e-9,2.6381398367072594e-9 +EqualsByteString/20/20,8.694348039160983e-7,8.686302867955039e-7,8.703481913836977e-7,2.8434581845646864e-9,2.42200104845478e-9,3.353401099722864e-9 +EqualsByteString/30/30,8.687003656176811e-7,8.680182643581266e-7,8.694532833084751e-7,2.371317498882197e-9,2.017567164362004e-9,2.8339056342234568e-9 +EqualsByteString/40/40,8.696611110725553e-7,8.690208833948796e-7,8.703994970397236e-7,2.203078044213463e-9,1.7099682751772873e-9,2.77504967334247e-9 +EqualsByteString/50/50,8.710692103104402e-7,8.704941857199452e-7,8.717296878653323e-7,2.2196729936915027e-9,1.8497271495195184e-9,2.7706674682164113e-9 +EqualsByteString/60/60,8.732065657025969e-7,8.72146546431131e-7,8.743164570093874e-7,3.687576226727795e-9,3.139466258916605e-9,4.425739022746433e-9 +EqualsByteString/70/70,8.717161579312954e-7,8.708313244065068e-7,8.725197765857119e-7,2.867918247941676e-9,2.336018653831623e-9,3.706687139029787e-9 +EqualsByteString/80/80,8.75397286755428e-7,8.74905927437006e-7,8.760203284730971e-7,1.8867789461300885e-9,1.4130901263148069e-9,2.6055757777384827e-9 +EqualsByteString/90/90,8.76636217777136e-7,8.761744486887776e-7,8.770615010346074e-7,1.4313485528782024e-9,1.2451825969462213e-9,1.71195342137203e-9 +EqualsByteString/100/100,8.767936863151249e-7,8.762991823395504e-7,8.773667506350143e-7,1.818557355628135e-9,1.5425023514917186e-9,2.287546840314012e-9 +EqualsByteString/110/110,8.743863890859016e-7,8.736260448712656e-7,8.750362459378495e-7,2.422480789003222e-9,1.9765860922229758e-9,3.0239850935165266e-9 +EqualsByteString/120/120,8.739041067447446e-7,8.733113591498024e-7,8.744690722190494e-7,1.96362119972841e-9,1.7255398509426773e-9,2.2923480951605456e-9 +EqualsByteString/130/130,8.792205406534342e-7,8.78668686447249e-7,8.79732436080966e-7,1.820920333297161e-9,1.527132006828025e-9,2.270319639559369e-9 +EqualsByteString/140/140,8.788533039674857e-7,8.783267093330756e-7,8.794283989715365e-7,1.7912971585946517e-9,1.4542246522176508e-9,2.327010704538873e-9 +EqualsByteString/150/150,8.786098347960013e-7,8.778323508879874e-7,8.794233378608321e-7,2.741470666897201e-9,2.2947992912858646e-9,3.282177299451011e-9 +EqualsByteString/160/160,8.801198398662389e-7,8.791064867490467e-7,8.81157858483871e-7,3.4032354034354553e-9,2.996378477513413e-9,3.975968382495964e-9 +EqualsByteString/170/170,8.824815964813194e-7,8.81933931796975e-7,8.830624222598286e-7,1.8580754655310988e-9,1.5866323688910096e-9,2.204175513494939e-9 +EqualsByteString/180/180,8.815513094824832e-7,8.808947640425394e-7,8.822049866611451e-7,2.149654234435016e-9,1.850013778163339e-9,2.537676405969273e-9 +EqualsByteString/190/190,8.829134069683665e-7,8.822377852887685e-7,8.83585059298387e-7,2.134499116082019e-9,1.8531456594803234e-9,2.5490185761091486e-9 +EqualsByteString/200/200,8.834895589192685e-7,8.829178659284804e-7,8.841479280607035e-7,2.0580786415079256e-9,1.7019561607741846e-9,2.530998254778162e-9 +EqualsByteString/210/210,8.919407324516632e-7,8.91217661226705e-7,8.924840669645788e-7,2.1405586727613696e-9,1.691662015312767e-9,2.8930346920426252e-9 +EqualsByteString/220/220,8.873190967816471e-7,8.865593182025391e-7,8.880085128968391e-7,2.4716932909691233e-9,2.1198199980523133e-9,2.928211391165391e-9 +EqualsByteString/230/230,8.873067077593885e-7,8.865831795401878e-7,8.879693022379527e-7,2.4418909266731403e-9,1.895381620136078e-9,3.387582820244903e-9 +EqualsByteString/240/240,8.886756250039073e-7,8.879480268449084e-7,8.893495819565331e-7,2.4483533388227174e-9,1.9748955715298964e-9,3.1710481312514054e-9 +EqualsByteString/250/250,8.888438797008578e-7,8.884370341256393e-7,8.89265301395661e-7,1.4158846341448763e-9,1.1866344186691101e-9,1.6848421823577637e-9 +EqualsByteString/260/260,8.932512293581378e-7,8.924006755538403e-7,8.940122393539337e-7,2.652336402869726e-9,2.3056967355001887e-9,3.1833606084786313e-9 +EqualsByteString/270/270,8.893263715578212e-7,8.887036473525579e-7,8.899194671176242e-7,2.0553210541368467e-9,1.7262187106665487e-9,2.535199092323395e-9 +EqualsByteString/280/280,8.880297185944575e-7,8.874624286767556e-7,8.885857855880647e-7,2.019225368075775e-9,1.6940930035431601e-9,2.5531115143369836e-9 +EqualsByteString/290/290,8.923993104980147e-7,8.91643072886833e-7,8.931675247439175e-7,2.5807224510947703e-9,2.167096441139053e-9,3.1363816514008738e-9 +EqualsByteString/300/300,8.908851532916134e-7,8.904268338668219e-7,8.914875930609132e-7,1.7990597650656193e-9,1.5126717836768569e-9,2.1506331151067526e-9 +EqualsByteString/310/310,8.909259705050207e-7,8.905859748621429e-7,8.91291189542782e-7,1.1849618090779546e-9,1.0200006029051085e-9,1.4447359877211596e-9 +EqualsByteString/320/320,8.928461416278087e-7,8.921848806080039e-7,8.936309257959182e-7,2.48391025486751e-9,2.0579425309140936e-9,3.013671870130375e-9 +EqualsByteString/330/330,8.918218411311104e-7,8.913526347793098e-7,8.923210299935766e-7,1.653315709918052e-9,1.3904738169967695e-9,1.992144238161142e-9 +EqualsByteString/340/340,8.94670268395033e-7,8.940990022371035e-7,8.952094492743746e-7,1.9912898426691586e-9,1.703438455507523e-9,2.4894995795414408e-9 +EqualsByteString/350/350,8.946048000427621e-7,8.939533813553555e-7,8.952778682276078e-7,2.3809344093573625e-9,2.0749626936191292e-9,2.7495307535546266e-9 +EqualsByteString/360/360,8.948477499109848e-7,8.943496999438412e-7,8.953208088095546e-7,1.5937400873710996e-9,1.3402387435826047e-9,1.9912683046045432e-9 +EqualsByteString/370/370,8.933259939339981e-7,8.923302544040289e-7,8.944309447864584e-7,3.5308453757711447e-9,3.06778365502423e-9,4.255574302925721e-9 +EqualsByteString/380/380,8.934656634999191e-7,8.928490365438214e-7,8.941579903712262e-7,2.2118966420379233e-9,1.7626987049051812e-9,2.898515745530796e-9 +EqualsByteString/390/390,8.954691677452781e-7,8.947889586320144e-7,8.960616027830536e-7,2.1428213035282693e-9,1.6769492112927366e-9,2.847693928592524e-9 +EqualsByteString/400/400,8.988452990406163e-7,8.982113923491786e-7,8.993851838815226e-7,1.938266449929799e-9,1.6615835962284686e-9,2.2981373964600083e-9 +EqualsByteString/410/410,9.054587663219787e-7,9.048677958470471e-7,9.060384631044293e-7,2.0902274640141458e-9,1.8221312897862085e-9,2.4592754677521368e-9 +EqualsByteString/420/420,9.006086743887264e-7,9.000628815069155e-7,9.011716641269179e-7,1.8753817993421134e-9,1.5951943510608818e-9,2.264357916158598e-9 +EqualsByteString/430/430,9.019359658635819e-7,9.013621897503381e-7,9.026503015607828e-7,2.102973225339339e-9,1.7160186234466506e-9,2.6235276136090654e-9 +EqualsByteString/440/440,9.055242700743717e-7,9.048417080114847e-7,9.061713007453313e-7,2.216803066658262e-9,1.8122498116917742e-9,2.6844670687492482e-9 +EqualsByteString/450/450,9.027245392315577e-7,9.022098607717099e-7,9.032307267685093e-7,1.7972169182619006e-9,1.5306299258290479e-9,2.1550369405078033e-9 +EqualsByteString/460/460,9.015378546834563e-7,9.009566858560871e-7,9.021764728671894e-7,2.0998272328188992e-9,1.76314828955028e-9,2.605306895622114e-9 +EqualsByteString/470/470,9.031673176023152e-7,9.023383705071711e-7,9.040087968746123e-7,2.76558939138339e-9,2.311782134245794e-9,3.3437552982451047e-9 +EqualsByteString/480/480,9.141286597295269e-7,9.132549172906568e-7,9.15172164260514e-7,3.174156518016449e-9,2.6119883670646844e-9,3.826159245801588e-9 +EqualsByteString/490/490,9.057870539377672e-7,9.051702260806137e-7,9.064008753182738e-7,2.111905014869924e-9,1.7768456698053339e-9,2.6759907523214975e-9 +EqualsByteString/500/500,9.053123494617448e-7,9.046040592189841e-7,9.062591925023137e-7,2.697093727494165e-9,2.1899167067828905e-9,3.309598814720722e-9 +EqualsByteString/510/510,9.060146295719089e-7,9.052367191794561e-7,9.067817730149633e-7,2.4744116749494147e-9,2.1015496460824295e-9,2.9107545924987254e-9 +EqualsByteString/520/520,9.044889939864584e-7,9.040042761117078e-7,9.049222386612604e-7,1.4157176399095242e-9,1.134912688928293e-9,1.8718064768892264e-9 +EqualsByteString/530/530,9.033738444473448e-7,9.029480514886087e-7,9.038374879148952e-7,1.5142764030940422e-9,1.2745355864460516e-9,1.7824698283359167e-9 +EqualsByteString/540/540,9.075541334245264e-7,9.070640346465955e-7,9.080449511645483e-7,1.6908519525080633e-9,1.41988752436319e-9,2.087842887080842e-9 +EqualsByteString/550/550,9.064500153348711e-7,9.057836532282317e-7,9.070407739809221e-7,2.0168076331054107e-9,1.6592612799194798e-9,2.8182181751572525e-9 +EqualsByteString/560/560,9.112405499167098e-7,9.103335248281247e-7,9.120188725281929e-7,2.827281269564431e-9,2.4283600326325213e-9,3.337944573661349e-9 +EqualsByteString/570/570,9.079257437749182e-7,9.072616677687778e-7,9.086503093372177e-7,2.2329542781431734e-9,1.878550890559738e-9,2.788745497853287e-9 +EqualsByteString/580/580,9.105095898836088e-7,9.099292750948179e-7,9.110149896371028e-7,1.7534197889790402e-9,1.4180284393199246e-9,2.3076639457431605e-9 +EqualsByteString/590/590,9.125644086899555e-7,9.119039267180795e-7,9.132861930645941e-7,2.201104662131955e-9,1.7831119348420853e-9,2.694352051187263e-9 +EqualsByteString/600/600,9.098860446724042e-7,9.08985688221388e-7,9.107920448825909e-7,2.969785044139179e-9,2.590079201038522e-9,3.3609241877762716e-9 +EqualsByteString/610/610,9.108354131406961e-7,9.102470967872883e-7,9.113350864372067e-7,1.768022694634835e-9,1.472466730640046e-9,2.159153667501263e-9 +EqualsByteString/620/620,9.09513651821827e-7,9.087210705840353e-7,9.102949167407687e-7,2.578674629654445e-9,2.203925174942384e-9,3.2353124028546135e-9 +EqualsByteString/630/630,9.129442914637403e-7,9.123778032798863e-7,9.136150203318926e-7,2.056368363328568e-9,1.72507646394503e-9,2.599798034898685e-9 +EqualsByteString/640/640,9.125382248943004e-7,9.11615112342792e-7,9.134311731413158e-7,3.071423791669122e-9,2.4597577602278305e-9,3.9531601111975775e-9 +EqualsByteString/650/650,9.166457904573696e-7,9.161460424541233e-7,9.171523146887479e-7,1.7461470114653959e-9,1.4729760799297022e-9,2.0991017400228163e-9 +EqualsByteString/660/660,9.149828046740847e-7,9.145141012969832e-7,9.154591780585563e-7,1.5968071978198376e-9,1.354668276418029e-9,1.957223183651796e-9 +EqualsByteString/670/670,9.156251829128846e-7,9.148959370031028e-7,9.162209819815064e-7,2.1693672506511755e-9,1.7267978182666152e-9,2.7969936001730005e-9 +EqualsByteString/680/680,9.18735636048531e-7,9.175819677755275e-7,9.197844560526131e-7,3.851774082301887e-9,3.3954358826383007e-9,4.51078247910958e-9 +EqualsByteString/690/690,9.19583325548944e-7,9.190538698607863e-7,9.201374052651018e-7,1.868752048940795e-9,1.5602629290683061e-9,2.3641437181838097e-9 +EqualsByteString/700/700,9.215062975188786e-7,9.210683369559588e-7,9.219338616433801e-7,1.5148697459312006e-9,1.219500049313915e-9,1.9485042527535794e-9 +EqualsByteString/710/710,9.232412340598156e-7,9.227035608780062e-7,9.237213708602513e-7,1.7965184017319553e-9,1.4690280652557047e-9,2.2443001805843e-9 +EqualsByteString/720/720,9.197018316408315e-7,9.190693962592252e-7,9.203406726974687e-7,2.198419920555527e-9,1.7906961589481777e-9,2.784489703517953e-9 +EqualsByteString/730/730,9.191528351392228e-7,9.186438823573116e-7,9.198120852426974e-7,1.9056710424384037e-9,1.4358854978837083e-9,2.557844916265637e-9 +EqualsByteString/740/740,9.235603627694377e-7,9.230844799545418e-7,9.241053528415527e-7,1.725694668633056e-9,1.4169030685549839e-9,2.182755076814715e-9 +EqualsByteString/750/750,9.216315853254649e-7,9.210173437070064e-7,9.222855596706257e-7,2.179532549808697e-9,1.8332626707100113e-9,2.77975311446876e-9 +EqualsByteString/760/760,9.184260350113657e-7,9.173897444092589e-7,9.194164084029598e-7,3.260467967588703e-9,2.8060713519759203e-9,3.860324269332481e-9 +EqualsByteString/770/770,9.230638567446088e-7,9.224107997935501e-7,9.236624970102384e-7,2.146315583684185e-9,1.809277543105929e-9,2.596244888904279e-9 +EqualsByteString/780/780,9.241091037452641e-7,9.23493885910367e-7,9.249031521854414e-7,2.3882222732680494e-9,2.0323021625559697e-9,2.962965072973597e-9 +EqualsByteString/790/790,9.260614915221656e-7,9.256081597010731e-7,9.265317810013658e-7,1.6074765864381632e-9,1.3307987494290862e-9,1.9747271577864767e-9 +EqualsByteString/800/800,9.257046431883492e-7,9.250524893068595e-7,9.261971573770878e-7,1.852377514393324e-9,1.452266171083972e-9,2.2983356094646618e-9 +EqualsByteString/810/810,9.223257690362431e-7,9.217905756297046e-7,9.228860952572659e-7,1.7978482280847794e-9,1.5318394008878927e-9,2.205733643537417e-9 +EqualsByteString/820/820,9.230416706098018e-7,9.221254732637759e-7,9.238427022171826e-7,2.924228492523875e-9,2.510096222412417e-9,3.6414049656423686e-9 +EqualsByteString/830/830,9.243091563574092e-7,9.237892601867737e-7,9.247395169894105e-7,1.5897968820848579e-9,1.2909632976122165e-9,1.984443010503641e-9 +EqualsByteString/840/840,9.21025412283403e-7,9.204164545224133e-7,9.217592258967684e-7,2.2481905849940653e-9,1.945190859072696e-9,2.7125713651137366e-9 +EqualsByteString/850/850,9.22400827557089e-7,9.213602471474611e-7,9.234120161085024e-7,3.397878248937338e-9,2.749605150918176e-9,4.378100333323038e-9 +EqualsByteString/860/860,9.249848650250905e-7,9.244098425623377e-7,9.255643840690407e-7,1.875150105646425e-9,1.5705234122790651e-9,2.2630789435970977e-9 +EqualsByteString/870/870,9.249079635423154e-7,9.242616757476099e-7,9.25395607059953e-7,1.8973197964149204e-9,1.5281323369273459e-9,2.4031693443650094e-9 +EqualsByteString/880/880,9.24363157710731e-7,9.238283945174732e-7,9.248917242140771e-7,1.7587069632839363e-9,1.4239516399250596e-9,2.268101806479111e-9 +EqualsByteString/890/890,9.225045385949106e-7,9.220480227696595e-7,9.229178965433356e-7,1.3968500758661206e-9,1.2052248270418101e-9,1.713665297887669e-9 +EqualsByteString/900/900,9.283840896920561e-7,9.277535444513163e-7,9.291143947899472e-7,2.4477205357846047e-9,2.1075867633083645e-9,2.843980955150515e-9 +EqualsByteString/910/910,9.291986134320367e-7,9.287229842024005e-7,9.298543071866732e-7,1.8626158024099796e-9,1.5386152110001966e-9,2.372812735817935e-9 +EqualsByteString/920/920,9.291399600043318e-7,9.28507232001766e-7,9.297036241857527e-7,2.1142984758124613e-9,1.843891733231407e-9,2.4740948579850888e-9 +EqualsByteString/930/930,9.324525813697042e-7,9.318182897728956e-7,9.331712439275125e-7,2.3304792528661305e-9,2.013562066256381e-9,2.676719859220811e-9 +EqualsByteString/940/940,9.299212881225944e-7,9.29312583096415e-7,9.305417556631026e-7,2.0745120831247218e-9,1.7154498385270591e-9,2.6080859702579557e-9 +EqualsByteString/950/950,9.311089624953681e-7,9.304532027499257e-7,9.318191241539216e-7,2.2834344318387426e-9,1.900586202347896e-9,2.841929128130294e-9 +EqualsByteString/960/960,9.336230467636373e-7,9.330735847354242e-7,9.342216143374452e-7,1.9604458831630188e-9,1.6345283747393416e-9,2.503404954447511e-9 +EqualsByteString/970/970,9.351330030666754e-7,9.345383426716497e-7,9.357898251545322e-7,2.1574059503475133e-9,1.742912683028992e-9,2.812276629674671e-9 +EqualsByteString/980/980,9.33943457892334e-7,9.335105012118868e-7,9.344094364459231e-7,1.514530510787945e-9,1.2654767304479125e-9,1.9379956243401473e-9 +EqualsByteString/990/990,9.384198619688408e-7,9.379417313303758e-7,9.388647279452074e-7,1.4681067024665277e-9,1.269384767257356e-9,1.7292287265655425e-9 +EqualsByteString/1000/1000,9.353702113181813e-7,9.348510265967819e-7,9.359668590664076e-7,1.8706396937729963e-9,1.6046326632369312e-9,2.3478375919546657e-9 +EqualsByteString/1010/1010,9.369528066947087e-7,9.364158458093213e-7,9.374793873632612e-7,1.776688786162743e-9,1.4859437731762755e-9,2.1827488675153458e-9 +EqualsByteString/1020/1020,9.331408565286102e-7,9.323810762651075e-7,9.339128205875808e-7,2.6938808457190335e-9,2.295883097321626e-9,3.1742937858755417e-9 +EqualsByteString/1030/1030,9.376890455235148e-7,9.372692028196457e-7,9.382440445770637e-7,1.6492975081684686e-9,1.3463895620991936e-9,2.1391254653662394e-9 +EqualsByteString/1040/1040,9.38527108781832e-7,9.378240366524454e-7,9.392457499131638e-7,2.334529834329071e-9,1.9545467328228934e-9,2.9465615591114055e-9 +EqualsByteString/1050/1050,9.348393130716857e-7,9.340555379890316e-7,9.356066736641007e-7,2.387277565761709e-9,2.0245586158738816e-9,2.839207185801235e-9 +EqualsByteString/1060/1060,9.370729448395172e-7,9.365650040784427e-7,9.376480117010411e-7,1.7831424077852463e-9,1.4646727205227407e-9,2.324750217424903e-9 +EqualsByteString/1070/1070,9.419580090675315e-7,9.410656669689543e-7,9.4304583954887e-7,3.1592787723122217e-9,2.5050405588477017e-9,3.998066759800235e-9 +EqualsByteString/1080/1080,9.397478922990354e-7,9.391348841578723e-7,9.404351273129897e-7,2.098850172630004e-9,1.8350670801256855e-9,2.484839732327503e-9 +EqualsByteString/1090/1090,9.408682625694743e-7,9.401389966475186e-7,9.415572752272946e-7,2.557542119409722e-9,2.132884981796355e-9,3.0730752142153673e-9 +EqualsByteString/1100/1100,9.436872761219357e-7,9.430618959242494e-7,9.44386984191276e-7,2.1291816219930136e-9,1.6762106221668108e-9,2.9995828021231515e-9 +EqualsByteString/1110/1110,9.430064593694873e-7,9.423392012065996e-7,9.436978801926085e-7,2.2795120742278393e-9,1.9072937012637664e-9,2.9012725521407813e-9 +EqualsByteString/1120/1120,9.485756409296931e-7,9.477650609490056e-7,9.494363120659528e-7,2.662759828671439e-9,2.185866636421116e-9,3.464096026264538e-9 +EqualsByteString/1130/1130,9.450132043808058e-7,9.442818739179442e-7,9.457410439141197e-7,2.323431775967125e-9,1.9721365630723185e-9,2.8070682385634854e-9 +EqualsByteString/1140/1140,9.453784457119047e-7,9.444572515232041e-7,9.462194986921294e-7,3.074401116139589e-9,2.501075849473293e-9,3.926171291589206e-9 +EqualsByteString/1150/1150,9.440893598951525e-7,9.435726353636002e-7,9.446215935346835e-7,1.798489617002195e-9,1.4705662558586587e-9,2.196126861406027e-9 +EqualsByteString/1160/1160,9.482773910104358e-7,9.475856529449892e-7,9.489499522873977e-7,2.162318044921844e-9,1.8391112325046907e-9,2.7312080036216956e-9 +EqualsByteString/1170/1170,9.515627011984665e-7,9.506310375747359e-7,9.524362453209113e-7,2.9854851856943856e-9,2.524165117755511e-9,3.793367123086043e-9 +EqualsByteString/1180/1180,9.529970330812624e-7,9.523436698527701e-7,9.535716000730384e-7,2.040919943132028e-9,1.6416678196193772e-9,2.7634474595547107e-9 +EqualsByteString/1190/1190,9.465018607615357e-7,9.457417485089907e-7,9.47359387186209e-7,2.6287904303043074e-9,2.1406826583200913e-9,3.3143119634718023e-9 +EqualsByteString/1200/1200,9.520591050609208e-7,9.515273203160933e-7,9.526404413719538e-7,1.8451442169317529e-9,1.5391345254420119e-9,2.42093345347418e-9 +EqualsByteString/1210/1210,9.526438617844837e-7,9.521610462423597e-7,9.531736918833635e-7,1.6605491868759166e-9,1.4044322756004247e-9,2.0575617136038647e-9 +EqualsByteString/1220/1220,9.532832512669206e-7,9.523346580123435e-7,9.543358288109837e-7,3.3130955557430715e-9,2.8248157284918165e-9,4.188231919228953e-9 +EqualsByteString/1230/1230,9.509339763498075e-7,9.501183801897264e-7,9.520118797859207e-7,3.119815144581445e-9,2.5398544972794247e-9,3.782472873786047e-9 +EqualsByteString/1240/1240,9.571563306665176e-7,9.562924556333368e-7,9.57864750259902e-7,2.5453906723665765e-9,2.0500386007338854e-9,3.478513797724215e-9 +EqualsByteString/1250/1250,9.523385145107284e-7,9.516678570654689e-7,9.530280993424442e-7,2.3208421769459237e-9,1.9619843922806525e-9,2.7771045649997943e-9 +EqualsByteString/1260/1260,9.607726475775502e-7,9.598184111036498e-7,9.621060772318206e-7,3.9571699104398025e-9,2.7534824763808885e-9,6.3135002473603325e-9 +EqualsByteString/1270/1270,9.611361172739917e-7,9.605474298238972e-7,9.617448399057177e-7,1.896590682552309e-9,1.4880629482386105e-9,2.398448191432635e-9 +EqualsByteString/1280/1280,9.61027539044758e-7,9.605141471303602e-7,9.617039442765856e-7,1.952207418613756e-9,1.5213806637923564e-9,2.468892021691085e-9 +EqualsByteString/1290/1290,9.609403223164133e-7,9.605167473402142e-7,9.6143335755029e-7,1.4853595175053104e-9,1.2318104459840802e-9,1.9602332131767867e-9 +EqualsByteString/1300/1300,9.676753780031998e-7,9.671054191513416e-7,9.68299600013254e-7,1.954056180372292e-9,1.6188258659532508e-9,2.4761744680016884e-9 +EqualsByteString/1310/1310,9.655765931844777e-7,9.647540300510271e-7,9.66365706842943e-7,2.692633624485473e-9,2.320809042515913e-9,3.204440822450288e-9 +EqualsByteString/1320/1320,9.670690614429088e-7,9.665277514328368e-7,9.676150524067848e-7,1.812990022991195e-9,1.4685189724303735e-9,2.390149823753222e-9 +EqualsByteString/1330/1330,9.708307598528791e-7,9.702468487338807e-7,9.714796655932887e-7,2.1672704239579384e-9,1.8326898492120978e-9,2.862726381229243e-9 +EqualsByteString/1340/1340,9.719124012243603e-7,9.713958760515142e-7,9.725352517444273e-7,1.9314889667520138e-9,1.6618193076646588e-9,2.4151448698110624e-9 +EqualsByteString/1350/1350,9.698576796995788e-7,9.692041299396874e-7,9.706158184402594e-7,2.3802414803866536e-9,2.0068311395254158e-9,2.8667375176185723e-9 +EqualsByteString/1360/1360,9.729322477208532e-7,9.722877760352843e-7,9.735557314436489e-7,2.152589453323394e-9,1.7997459292309511e-9,2.5925299820501835e-9 +EqualsByteString/1370/1370,9.770837855835562e-7,9.76382840812402e-7,9.778713691745472e-7,2.5730841358982965e-9,2.1049715990246404e-9,3.325138124305462e-9 +EqualsByteString/1380/1380,9.731792566973669e-7,9.727602555662137e-7,9.73722682722188e-7,1.6414412452341737e-9,1.3386259084887652e-9,2.0707129011257067e-9 +EqualsByteString/1390/1390,9.752416236925444e-7,9.747611514160755e-7,9.757645478915035e-7,1.7507555863029509e-9,1.4828626649243278e-9,2.214424221218016e-9 +EqualsByteString/1400/1400,9.828678174514071e-7,9.820836294657045e-7,9.837506121357887e-7,2.7859162918937866e-9,2.2909602282436955e-9,3.4491469097698448e-9 +EqualsByteString/1410/1410,9.769171524874593e-7,9.760593655308766e-7,9.777369441834713e-7,2.9504942808494006e-9,2.4034419333181443e-9,3.782343697981916e-9 +EqualsByteString/1420/1420,9.822943525853018e-7,9.813976517073438e-7,9.832473090943535e-7,3.1694859955781348e-9,2.7578479844584725e-9,3.6602727254123047e-9 +EqualsByteString/1430/1430,9.823474310681736e-7,9.817708674782237e-7,9.829714562328408e-7,1.981389295897642e-9,1.6465248979432937e-9,2.410890487273395e-9 +EqualsByteString/1440/1440,9.8504440672931e-7,9.845027449475902e-7,9.85691125424973e-7,2.035164548781227e-9,1.7245302174608037e-9,2.4988581160875603e-9 +EqualsByteString/1450/1450,9.85048927039881e-7,9.841829207382624e-7,9.86035368294992e-7,3.211504135364424e-9,2.7846929620300486e-9,3.6841401914780736e-9 +EqualsByteString/1460/1460,9.858957238584427e-7,9.851411925684176e-7,9.868000725386641e-7,2.8052668187928023e-9,2.3111327983833348e-9,3.7771980891687754e-9 +EqualsByteString/1470/1470,9.874239575773432e-7,9.867482167947367e-7,9.880482963984949e-7,2.084921304105312e-9,1.7600662554124282e-9,2.63463617466308e-9 +EqualsByteString/1480/1480,9.910871429292018e-7,9.904824491993516e-7,9.916208034616708e-7,1.9056433391261544e-9,1.4968660868628288e-9,2.6626350303146974e-9 +EqualsByteString/1490/1490,9.987041825022998e-7,9.978882201896046e-7,9.995379347110677e-7,2.7466121878748865e-9,2.405994238061745e-9,3.168169124796597e-9 +EqualsByteString/1500/1500,1.0105405258860105e-6,1.0099319453018084e-6,1.0111360886947432e-6,1.9692082519981155e-9,1.5483425370932927e-9,2.4244682612230144e-9 +LessThanEqualsByteString/10/10,8.632266389169628e-7,8.625726414189263e-7,8.638050986227746e-7,2.1754849279497653e-9,1.76137520997929e-9,2.7114124697409753e-9 +LessThanEqualsByteString/20/20,8.638276869366903e-7,8.633997233375043e-7,8.641966143452672e-7,1.3609453263333786e-9,1.1478251945023356e-9,1.6229953095489993e-9 +LessThanEqualsByteString/30/30,8.647079366636064e-7,8.641970377048539e-7,8.65140583224246e-7,1.5319501279066563e-9,1.2845276071776192e-9,1.9238634515372017e-9 +LessThanEqualsByteString/40/40,8.680603621598451e-7,8.674304866833448e-7,8.687398101679719e-7,2.108705772768813e-9,1.6876228562012067e-9,2.6931850722796594e-9 +LessThanEqualsByteString/50/50,8.706557685450861e-7,8.699063024247852e-7,8.712670803209402e-7,2.3432925965195272e-9,1.8908718242172103e-9,2.9352102611493718e-9 +LessThanEqualsByteString/60/60,8.679442763648262e-7,8.671825998318368e-7,8.686934928133112e-7,2.408285811233676e-9,2.058707196204461e-9,2.856107724335882e-9 +LessThanEqualsByteString/70/70,8.68716615628389e-7,8.680888305059711e-7,8.692878625157855e-7,1.9785369834361218e-9,1.6878103330167629e-9,2.5298773631721704e-9 +LessThanEqualsByteString/80/80,8.698149039021588e-7,8.69224673968621e-7,8.705915748264993e-7,2.2371383147616914e-9,1.7960005538053548e-9,2.899889565859494e-9 +LessThanEqualsByteString/90/90,8.701894829046346e-7,8.694770826347288e-7,8.71160683255996e-7,2.8006859123042005e-9,2.072097334193922e-9,4.4702016085116226e-9 +LessThanEqualsByteString/100/100,8.67801176601411e-7,8.672325770957175e-7,8.684902821899063e-7,2.1216705481287904e-9,1.8150572668297502e-9,2.537261048231845e-9 +LessThanEqualsByteString/110/110,8.755098900725435e-7,8.750017797002335e-7,8.760954141690751e-7,1.8038319350286556e-9,1.4361632396425822e-9,2.5403888441223927e-9 +LessThanEqualsByteString/120/120,8.736574826406494e-7,8.732241212112495e-7,8.741239657494366e-7,1.5295386322193148e-9,1.2424044617326561e-9,1.9942880000546017e-9 +LessThanEqualsByteString/130/130,8.732692395839236e-7,8.726786782917001e-7,8.738824468774131e-7,1.924589638797511e-9,1.6751390289771119e-9,2.2734487203154473e-9 +LessThanEqualsByteString/140/140,8.758638587036667e-7,8.753949885844568e-7,8.763078341110329e-7,1.5316869443818178e-9,1.2814632565092981e-9,1.989087574908946e-9 +LessThanEqualsByteString/150/150,8.75789729883758e-7,8.752961937404119e-7,8.761946664399373e-7,1.529477825046153e-9,1.2530336702701398e-9,2.0491049410127677e-9 +LessThanEqualsByteString/160/160,8.765372825998862e-7,8.760635562904303e-7,8.771696683484582e-7,1.859407736136769e-9,1.509568429478607e-9,2.4649212522113766e-9 +LessThanEqualsByteString/170/170,8.777982843885661e-7,8.77128608398485e-7,8.783821758603826e-7,1.9971294747909946e-9,1.6905857003168632e-9,2.450941391785138e-9 +LessThanEqualsByteString/180/180,8.78906645400359e-7,8.783026913429705e-7,8.795267333196664e-7,2.011260929954087e-9,1.711837401428325e-9,2.4652005203266284e-9 +LessThanEqualsByteString/190/190,8.775822616496687e-7,8.765383014932989e-7,8.786526743563723e-7,3.536532641460943e-9,2.7433028575793297e-9,5.010359771732955e-9 +LessThanEqualsByteString/200/200,8.770167080075461e-7,8.764318654731864e-7,8.775994412300706e-7,1.932640065545317e-9,1.6498243534885918e-9,2.2772531519628698e-9 +LessThanEqualsByteString/210/210,8.793331378103676e-7,8.786232947072732e-7,8.801296286958863e-7,2.414189555519214e-9,1.9954302436563383e-9,3.0639341068151537e-9 +LessThanEqualsByteString/220/220,8.781624422115236e-7,8.775582456237417e-7,8.788542413116908e-7,2.2341208477623408e-9,1.793858110567491e-9,2.9634098446452374e-9 +LessThanEqualsByteString/230/230,8.804815429024742e-7,8.797379780958817e-7,8.81279156277325e-7,2.503777552406593e-9,2.160227370375666e-9,2.945775224801342e-9 +LessThanEqualsByteString/240/240,8.83147275125285e-7,8.822810667626334e-7,8.839815053580462e-7,2.8884873847568255e-9,2.502634021059015e-9,3.489873243097663e-9 +LessThanEqualsByteString/250/250,8.818488627080133e-7,8.81282874837589e-7,8.823746737538768e-7,1.9149805982043192e-9,1.583206820276359e-9,2.456747725458037e-9 +LessThanEqualsByteString/260/260,8.844454946158285e-7,8.839060238639016e-7,8.850083076013017e-7,2.0094549192036094e-9,1.7097174106243917e-9,2.516836073540909e-9 +LessThanEqualsByteString/270/270,8.829922184542528e-7,8.818165546018115e-7,8.840126129487949e-7,3.761173793380493e-9,3.260799840724436e-9,4.352454127030873e-9 +LessThanEqualsByteString/280/280,8.88550200954971e-7,8.880666451765611e-7,8.890490036385362e-7,1.6650955312675624e-9,1.424687212318281e-9,2.0624644253936276e-9 +LessThanEqualsByteString/290/290,8.829660342622701e-7,8.823225768320631e-7,8.835533336854782e-7,2.129227686699982e-9,1.7397775287989781e-9,2.6636724036329195e-9 +LessThanEqualsByteString/300/300,8.849187641223451e-7,8.844747754926221e-7,8.85387718677027e-7,1.6469534664867478e-9,1.4263241217669722e-9,1.927109109030229e-9 +LessThanEqualsByteString/310/310,8.876686347948634e-7,8.87181858023645e-7,8.880578092263816e-7,1.4677513733235767e-9,1.1726799302215457e-9,1.9587696595779534e-9 +LessThanEqualsByteString/320/320,8.893672420109605e-7,8.886395901600991e-7,8.899934434367904e-7,2.3271212246460222e-9,1.963634686448148e-9,2.848875166362604e-9 +LessThanEqualsByteString/330/330,8.869501499264724e-7,8.864766801867481e-7,8.874469676684847e-7,1.6684827061926573e-9,1.411801563731312e-9,1.974900789702376e-9 +LessThanEqualsByteString/340/340,8.864658360028662e-7,8.856865843345276e-7,8.873163337994599e-7,2.710669389462031e-9,2.331924064797323e-9,3.184919310224819e-9 +LessThanEqualsByteString/350/350,8.877908559424221e-7,8.872593450572312e-7,8.882250620570226e-7,1.5901562564946936e-9,1.2759929479312572e-9,1.910730236276281e-9 +LessThanEqualsByteString/360/360,8.886623682254561e-7,8.878470560422496e-7,8.893459129684677e-7,2.467747021036165e-9,1.9946765342238274e-9,3.1653545153105707e-9 +LessThanEqualsByteString/370/370,8.86876582339414e-7,8.862693917911261e-7,8.875549569094608e-7,2.0237515947064087e-9,1.669299816229784e-9,2.5303994972706027e-9 +LessThanEqualsByteString/380/380,8.931015848527101e-7,8.926500218960493e-7,8.936025502380011e-7,1.6512317271073264e-9,1.3773080142901744e-9,2.0348640123558087e-9 +LessThanEqualsByteString/390/390,8.909266718841456e-7,8.89554259468968e-7,8.92044529023304e-7,4.1805130206518095e-9,3.5353103397914253e-9,5.0425400897001595e-9 +LessThanEqualsByteString/400/400,8.946168770005173e-7,8.940339286793035e-7,8.951779052313687e-7,2.0802369721086908e-9,1.792856346376892e-9,2.51519560673469e-9 +LessThanEqualsByteString/410/410,8.925324665864345e-7,8.919458910155459e-7,8.931239339737177e-7,1.960084450173141e-9,1.655096253200823e-9,2.402402144074985e-9 +LessThanEqualsByteString/420/420,8.928437826248431e-7,8.923993926704734e-7,8.932510263970916e-7,1.4902062689179097e-9,1.2514713333485615e-9,1.8343451175555487e-9 +LessThanEqualsByteString/430/430,8.955086058668364e-7,8.948777300131091e-7,8.963527489852294e-7,2.4181934567324257e-9,1.967606182191807e-9,3.0811584210870524e-9 +LessThanEqualsByteString/440/440,8.921865487404904e-7,8.913971620987315e-7,8.929228852244058e-7,2.6114159382221297e-9,2.2094255854246517e-9,3.3006859263056877e-9 +LessThanEqualsByteString/450/450,8.964090273154988e-7,8.957347108635787e-7,8.969761969991808e-7,2.0263544043120846e-9,1.536501533212894e-9,2.5549804446146612e-9 +LessThanEqualsByteString/460/460,8.948383489310529e-7,8.942908767720635e-7,8.953817527224028e-7,1.9229098102548284e-9,1.6519468697495524e-9,2.335041115170986e-9 +LessThanEqualsByteString/470/470,8.957957403998008e-7,8.949475337691209e-7,8.966629231434794e-7,2.8304370328629707e-9,2.47782598808983e-9,3.39444244681308e-9 +LessThanEqualsByteString/480/480,9.078481067526992e-7,9.072297689089011e-7,9.085387555427479e-7,2.202717102868542e-9,1.7227166063503822e-9,2.7770702838477508e-9 +LessThanEqualsByteString/490/490,8.982864122927267e-7,8.977184691664489e-7,8.988212868113257e-7,1.8568450862016368e-9,1.5654481080850356e-9,2.2612403704455006e-9 +LessThanEqualsByteString/500/500,9.010596613944359e-7,9.004892083969998e-7,9.016993293248191e-7,2.148715638845567e-9,1.8055178414802578e-9,2.6619415834135205e-9 +LessThanEqualsByteString/510/510,8.979607642244675e-7,8.973904782050645e-7,8.985434676941246e-7,1.9023518097944458e-9,1.6302898760166835e-9,2.325281030173804e-9 +LessThanEqualsByteString/520/520,9.011654273682271e-7,9.005270462616714e-7,9.018353878400145e-7,2.2167686970793584e-9,1.8462827112724391e-9,2.709574978236378e-9 +LessThanEqualsByteString/530/530,8.99882107698564e-7,8.992993106890347e-7,9.005339739473117e-7,2.0650840669296592e-9,1.7403412768506212e-9,2.477376716881253e-9 +LessThanEqualsByteString/540/540,9.029823328690898e-7,9.023269654338418e-7,9.035839853786587e-7,2.1278601980386797e-9,1.6747084337477346e-9,2.738055082126691e-9 +LessThanEqualsByteString/550/550,9.009278424686893e-7,9.000901394643492e-7,9.017957066976181e-7,2.635580229332766e-9,2.221289393830394e-9,3.1813871392143997e-9 +LessThanEqualsByteString/560/560,9.034244802517236e-7,9.027127584969399e-7,9.04174351517974e-7,2.3209845022196525e-9,1.868839042929659e-9,2.9394600890486255e-9 +LessThanEqualsByteString/570/570,9.021428902848456e-7,9.01620269781848e-7,9.026011242562626e-7,1.6872330310913304e-9,1.4379290578316196e-9,1.9785097890713145e-9 +LessThanEqualsByteString/580/580,9.018385029379783e-7,9.010548581723474e-7,9.02499120159589e-7,2.505798520022061e-9,2.134942058698436e-9,3.114390056778567e-9 +LessThanEqualsByteString/590/590,9.048058582714858e-7,9.042679679005307e-7,9.053908528680081e-7,1.879396215563583e-9,1.5754213900798472e-9,2.225678914862985e-9 +LessThanEqualsByteString/600/600,9.057457611424506e-7,9.046956871678517e-7,9.065397742383355e-7,2.975621714296911e-9,2.364658373318023e-9,3.6434020941408976e-9 +LessThanEqualsByteString/610/610,9.008646953374004e-7,9.000216244717353e-7,9.017679736994339e-7,2.9248977393125488e-9,2.5113529315862707e-9,3.4896422606493344e-9 +LessThanEqualsByteString/620/620,9.060734080356509e-7,9.054146093411156e-7,9.066483613980848e-7,2.002262940866396e-9,1.6564244587133135e-9,2.6636841483291077e-9 +LessThanEqualsByteString/630/630,9.051766354097359e-7,9.044166994601083e-7,9.058967007983371e-7,2.2408059034358057e-9,1.8391088768092284e-9,2.7781315896622217e-9 +LessThanEqualsByteString/640/640,9.069762082809461e-7,9.062378728280067e-7,9.076319194190228e-7,2.284098449208907e-9,1.8564180090648387e-9,2.9316720771432327e-9 +LessThanEqualsByteString/650/650,9.085278453177359e-7,9.07759852976751e-7,9.092624808829406e-7,2.630891694194908e-9,2.228967771333491e-9,3.13715378521221e-9 +LessThanEqualsByteString/660/660,9.029808910577273e-7,9.023601256443247e-7,9.035479029563156e-7,2.0785280971489773e-9,1.7746854591580042e-9,2.5462814698861627e-9 +LessThanEqualsByteString/670/670,9.04527776078025e-7,9.038922498118495e-7,9.051516360899413e-7,2.051652653978626e-9,1.7087324021780568e-9,2.662924499436414e-9 +LessThanEqualsByteString/680/680,9.06201403725003e-7,9.051551671542222e-7,9.070051911634238e-7,2.8843141381962415e-9,2.396530996260708e-9,3.517496019919157e-9 +LessThanEqualsByteString/690/690,9.146854284359065e-7,9.140473945767844e-7,9.153704730298969e-7,2.151695975740232e-9,1.7847390230589178e-9,2.5528150642987586e-9 +LessThanEqualsByteString/700/700,9.103982184236796e-7,9.098411205939439e-7,9.10900328639888e-7,1.7663590452509737e-9,1.526202852533279e-9,2.163837705934782e-9 +LessThanEqualsByteString/710/710,9.078780408543597e-7,9.070608409437479e-7,9.086248937244452e-7,2.709864497438089e-9,2.2134540376035315e-9,3.3763696962417664e-9 +LessThanEqualsByteString/720/720,9.10846609703542e-7,9.103453431365883e-7,9.113371638999832e-7,1.7871602000748794e-9,1.4773523180155932e-9,2.1911202012115605e-9 +LessThanEqualsByteString/730/730,9.142624396843e-7,9.134725420892466e-7,9.150785986839284e-7,2.6220860642386217e-9,2.2770281829413514e-9,3.107264738398063e-9 +LessThanEqualsByteString/740/740,9.154628221565571e-7,9.147388025720957e-7,9.163807816189001e-7,2.7119343056717838e-9,2.154065128102678e-9,3.5008655019266277e-9 +LessThanEqualsByteString/750/750,9.14605376508347e-7,9.140909095797824e-7,9.150440301059991e-7,1.6240563413048322e-9,1.3366973405059583e-9,2.107582304649469e-9 +LessThanEqualsByteString/760/760,9.10216167736408e-7,9.094321169899933e-7,9.110385174464271e-7,2.579396414065997e-9,2.1816513968512665e-9,3.1181545692755816e-9 +LessThanEqualsByteString/770/770,9.099864121276609e-7,9.083590657407622e-7,9.111417843105367e-7,4.536222566053063e-9,3.804477036781397e-9,5.421041392776435e-9 +LessThanEqualsByteString/780/780,9.148500939143884e-7,9.143268365890928e-7,9.15384003179746e-7,1.8022578050247008e-9,1.527130469795417e-9,2.1001643501782546e-9 +LessThanEqualsByteString/790/790,9.148672035140849e-7,9.140961710524266e-7,9.155497465655417e-7,2.3412479780843726e-9,1.9736151771522005e-9,2.8376183070009567e-9 +LessThanEqualsByteString/800/800,9.134802541898893e-7,9.129671575094061e-7,9.140021382255611e-7,1.678811094705227e-9,1.4076472662002535e-9,2.0369833645949124e-9 +LessThanEqualsByteString/810/810,9.233147707339301e-7,9.227298792969508e-7,9.239539222977967e-7,2.116076871008559e-9,1.7461723824337827e-9,2.5370197050816934e-9 +LessThanEqualsByteString/820/820,9.165536349606542e-7,9.160384184195887e-7,9.170405091164566e-7,1.6906198295756338e-9,1.365542873091641e-9,2.2496552514468535e-9 +LessThanEqualsByteString/830/830,9.14943847690114e-7,9.142043073317562e-7,9.156494052574077e-7,2.5167479412902574e-9,2.196382602111739e-9,2.8927828450301662e-9 +LessThanEqualsByteString/840/840,9.209726262783139e-7,9.205969810325695e-7,9.214182446570519e-7,1.3760454199772299e-9,1.121533464343368e-9,1.7994661526596746e-9 +LessThanEqualsByteString/850/850,9.181143411311592e-7,9.17361551389932e-7,9.188156977524677e-7,2.5470992048190316e-9,2.2466049384037604e-9,3.2156977657746628e-9 +LessThanEqualsByteString/860/860,9.260176743866746e-7,9.250529615466117e-7,9.2698584241041e-7,3.14033994204152e-9,2.7414663075678362e-9,3.5852851090294724e-9 +LessThanEqualsByteString/870/870,9.206473238008465e-7,9.198798403370092e-7,9.214183330546802e-7,2.5669978915085874e-9,2.1382635311537857e-9,3.1370153118166073e-9 +LessThanEqualsByteString/880/880,9.229536948392392e-7,9.221305813512998e-7,9.237795618594823e-7,2.8870714872801915e-9,2.4240897047436082e-9,3.312739231443313e-9 +LessThanEqualsByteString/890/890,9.229070671075783e-7,9.224843437435259e-7,9.233747028157565e-7,1.5707181431358331e-9,1.264518587267731e-9,2.0260322256184467e-9 +LessThanEqualsByteString/900/900,9.252278129818333e-7,9.242196196874202e-7,9.260954041976278e-7,3.2131055069038286e-9,2.652872003533222e-9,3.8400611864429776e-9 +LessThanEqualsByteString/910/910,9.288062332490875e-7,9.281372742776378e-7,9.293910314490391e-7,2.0454703071150007e-9,1.7120534498999217e-9,2.554433943362333e-9 +LessThanEqualsByteString/920/920,9.294859374566695e-7,9.288318754436294e-7,9.302096600716322e-7,2.2922843243339347e-9,1.9920442834397385e-9,2.7838754267973682e-9 +LessThanEqualsByteString/930/930,9.258887372702768e-7,9.250776156988108e-7,9.265842275243362e-7,2.480042416459842e-9,2.100372723724574e-9,3.0154930639724616e-9 +LessThanEqualsByteString/940/940,9.23997010880851e-7,9.232751749634415e-7,9.24692150490557e-7,2.480408911378495e-9,2.1094162156091554e-9,3.0769654781946015e-9 +LessThanEqualsByteString/950/950,9.268638010324148e-7,9.261842746932519e-7,9.27656096251974e-7,2.5168983110491487e-9,2.184711500141419e-9,3.1101727739309463e-9 +LessThanEqualsByteString/960/960,9.287737649914511e-7,9.278617478661136e-7,9.297066138688631e-7,3.076824768934947e-9,2.6148291938873143e-9,3.997590831878015e-9 +LessThanEqualsByteString/970/970,9.315074273723699e-7,9.308342580445759e-7,9.322519335648737e-7,2.383562540122642e-9,2.0143857970578236e-9,2.9183634472323787e-9 +LessThanEqualsByteString/980/980,9.315581942251505e-7,9.309132571821206e-7,9.323513850888133e-7,2.3283615270366486e-9,1.9449248400335844e-9,2.7818716453737175e-9 +LessThanEqualsByteString/990/990,9.300316509211004e-7,9.293662846452465e-7,9.306279030466985e-7,2.1425210624814375e-9,1.8542492559492617e-9,2.568831111915871e-9 +LessThanEqualsByteString/1000/1000,9.340910798862361e-7,9.335759056098724e-7,9.345951189676224e-7,1.6781144215468734e-9,1.38933565673761e-9,2.1121194379904606e-9 +LessThanEqualsByteString/1010/1010,9.329361684586769e-7,9.321957634858836e-7,9.335195346864657e-7,2.2288655494926837e-9,1.7622521129743095e-9,3.08696274889598e-9 +LessThanEqualsByteString/1020/1020,9.346281889521168e-7,9.336123631165882e-7,9.356945524760658e-7,3.4431300280073627e-9,2.882217303907279e-9,4.324444259113119e-9 +LessThanEqualsByteString/1030/1030,9.365989590552341e-7,9.356739913650014e-7,9.373788103876414e-7,2.771274497068136e-9,2.386671050515592e-9,3.4966284319967284e-9 +LessThanEqualsByteString/1040/1040,9.333447179886438e-7,9.328700226704464e-7,9.338284537099988e-7,1.6459064697817914e-9,1.4028280101321816e-9,2.0053095115877232e-9 +LessThanEqualsByteString/1050/1050,9.366726740786921e-7,9.355342087860167e-7,9.375774179525497e-7,3.4709041291686778e-9,2.5821877700831142e-9,4.751882104109522e-9 +LessThanEqualsByteString/1060/1060,9.365807466414417e-7,9.359414152787714e-7,9.374211723205311e-7,2.6361875599153737e-9,2.1304527417265237e-9,4.035172964647305e-9 +LessThanEqualsByteString/1070/1070,9.377390804255302e-7,9.37243845911372e-7,9.38251995293791e-7,1.7259760697809753e-9,1.411884097124431e-9,2.1489539739282255e-9 +LessThanEqualsByteString/1080/1080,9.348355697771966e-7,9.343789416555561e-7,9.35319075376051e-7,1.5478257184675774e-9,1.268692633018823e-9,1.9352676477649966e-9 +LessThanEqualsByteString/1090/1090,9.393339133464423e-7,9.387526778800008e-7,9.399918594216514e-7,2.008080212113316e-9,1.6877388513391627e-9,2.6311840834632675e-9 +LessThanEqualsByteString/1100/1100,9.418528984941839e-7,9.40869050031186e-7,9.427248240266024e-7,2.9300809898428236e-9,2.5366017094115657e-9,3.4848436995202634e-9 +LessThanEqualsByteString/1110/1110,9.409719224754438e-7,9.402433444036706e-7,9.417745368309514e-7,2.5637736523453437e-9,2.1316120700226058e-9,3.0802637201703313e-9 +LessThanEqualsByteString/1120/1120,9.425550379163084e-7,9.415503438957847e-7,9.43529509561912e-7,3.3860172518198476e-9,2.805941104507692e-9,4.088231022321906e-9 +LessThanEqualsByteString/1130/1130,9.374329838540152e-7,9.366303476901184e-7,9.382697373589934e-7,2.826567219627693e-9,2.4384564362491273e-9,3.3961132769089686e-9 +LessThanEqualsByteString/1140/1140,9.415725090842547e-7,9.408252850335752e-7,9.423834623406108e-7,2.622971585341046e-9,2.242740945667947e-9,3.306299349931563e-9 +LessThanEqualsByteString/1150/1150,9.44304463645953e-7,9.438836597814238e-7,9.446834567318698e-7,1.396128004795397e-9,1.1049098295250026e-9,1.7329184887693459e-9 +LessThanEqualsByteString/1160/1160,9.449727307176452e-7,9.444978915062686e-7,9.454888453725192e-7,1.628294748228795e-9,1.3572242893445885e-9,2.0271658101899636e-9 +LessThanEqualsByteString/1170/1170,9.441051256623855e-7,9.432214473839732e-7,9.449903622996056e-7,2.7807725897027608e-9,2.2495805270004376e-9,3.3925468160966866e-9 +LessThanEqualsByteString/1180/1180,9.439217559926227e-7,9.431086641069922e-7,9.446570731623263e-7,2.6079097583490167e-9,2.172779591828194e-9,3.2095562783936196e-9 +LessThanEqualsByteString/1190/1190,9.445713327715892e-7,9.43865439949825e-7,9.45333949540095e-7,2.5560019709202766e-9,2.1375083567570927e-9,3.0645847313554367e-9 +LessThanEqualsByteString/1200/1200,9.444706776022584e-7,9.436606825827005e-7,9.453317999266172e-7,2.76448484656742e-9,2.4298152207819537e-9,3.1454669623458433e-9 +LessThanEqualsByteString/1210/1210,9.496793730481271e-7,9.492680557155401e-7,9.50157182484242e-7,1.509714916944459e-9,1.2757808999779213e-9,1.8259250789153192e-9 +LessThanEqualsByteString/1220/1220,9.485883761241118e-7,9.47819772976385e-7,9.493446361225849e-7,2.6512224518320113e-9,2.1870273658318974e-9,3.2254343578623363e-9 +LessThanEqualsByteString/1230/1230,9.545428285063902e-7,9.534821783086505e-7,9.555642484719737e-7,3.578295361051439e-9,3.2052672102682566e-9,4.212738757576563e-9 +LessThanEqualsByteString/1240/1240,9.518238104706686e-7,9.507632700853135e-7,9.530572950119807e-7,3.861734862728878e-9,3.460493311847341e-9,4.4110734416953614e-9 +LessThanEqualsByteString/1250/1250,9.498780719379547e-7,9.491153909034392e-7,9.504425110831093e-7,2.3087419167575706e-9,1.95859068069244e-9,2.814169437974125e-9 +LessThanEqualsByteString/1260/1260,9.505663930142358e-7,9.496550072063542e-7,9.513812733224619e-7,2.9326932515991704e-9,2.448671347443253e-9,3.5371613004991524e-9 +LessThanEqualsByteString/1270/1270,9.528412167907078e-7,9.51515160130484e-7,9.538286687687117e-7,3.7485403198343246e-9,2.8580311948566558e-9,4.9430565236626676e-9 +LessThanEqualsByteString/1280/1280,9.53033795849494e-7,9.522033527945725e-7,9.538051468905443e-7,2.735058910108364e-9,2.295266617472845e-9,3.3256248938902002e-9 +LessThanEqualsByteString/1290/1290,9.549747774555668e-7,9.54099528039843e-7,9.559421066490334e-7,3.0949101012608115e-9,2.633520394563762e-9,3.760247334935218e-9 +LessThanEqualsByteString/1300/1300,9.523557927715443e-7,9.51734091108902e-7,9.529579106641808e-7,2.019190016002938e-9,1.6825048006821632e-9,2.391489185525045e-9 +LessThanEqualsByteString/1310/1310,9.57876622946641e-7,9.568056781590488e-7,9.589087371201545e-7,3.6164910784597e-9,3.0230267323800552e-9,4.208939072795361e-9 +LessThanEqualsByteString/1320/1320,9.519504568577691e-7,9.512977949060989e-7,9.527242992503435e-7,2.3813507129115106e-9,1.946730857030377e-9,2.9614114464112422e-9 +LessThanEqualsByteString/1330/1330,9.638122956322741e-7,9.630219923070616e-7,9.646768659423607e-7,2.849949079134053e-9,2.3267082125086297e-9,3.6111877345196738e-9 +LessThanEqualsByteString/1340/1340,9.646358502438513e-7,9.641499443367186e-7,9.651316060351734e-7,1.5983116785740817e-9,1.3557710464101444e-9,1.9419721901789854e-9 +LessThanEqualsByteString/1350/1350,9.650017370061316e-7,9.643006640782566e-7,9.656709295779e-7,2.2890103822503765e-9,1.8091411211111288e-9,2.981203732902645e-9 +LessThanEqualsByteString/1360/1360,9.617104323581668e-7,9.60933933317264e-7,9.62516006490782e-7,2.731275463262843e-9,2.3341755803462355e-9,3.2654999591302586e-9 +LessThanEqualsByteString/1370/1370,9.662519162543255e-7,9.65547690418521e-7,9.669683497388714e-7,2.4612507220125055e-9,2.0814849311942507e-9,2.8999605430556684e-9 +LessThanEqualsByteString/1380/1380,9.644429899184592e-7,9.63709161057846e-7,9.65225062746338e-7,2.424407807580777e-9,1.9411793773061005e-9,3.200560477400528e-9 +LessThanEqualsByteString/1390/1390,9.705033399248052e-7,9.698747875479345e-7,9.71166285107051e-7,2.2348474235786332e-9,1.9024340338531868e-9,2.726707189448267e-9 +LessThanEqualsByteString/1400/1400,9.6738683102204e-7,9.665116391361283e-7,9.683995690651876e-7,3.136045928518828e-9,2.6394297677869315e-9,3.6956091173587685e-9 +LessThanEqualsByteString/1410/1410,9.65914591563125e-7,9.652963974709474e-7,9.665702516313288e-7,2.2023155826930197e-9,1.9245868331195558e-9,2.5185307603676624e-9 +LessThanEqualsByteString/1420/1420,9.727781954405694e-7,9.721396201627363e-7,9.734787352427661e-7,2.268672682511095e-9,1.9708216636786467e-9,2.758026800298013e-9 +LessThanEqualsByteString/1430/1430,9.717481611541992e-7,9.711049571654941e-7,9.72539928580946e-7,2.460983005249195e-9,2.1309681375086434e-9,2.9674534511236376e-9 +LessThanEqualsByteString/1440/1440,9.684707691280562e-7,9.678789782226691e-7,9.68937797729045e-7,1.7885759249236626e-9,1.4445208659915965e-9,2.2798436202839933e-9 +LessThanEqualsByteString/1450/1450,9.721883131752668e-7,9.71395828074239e-7,9.731810519476694e-7,2.9619188410877713e-9,2.4149011187008984e-9,3.6542915356317407e-9 +LessThanEqualsByteString/1460/1460,9.793494614663251e-7,9.786532601373435e-7,9.800243670516965e-7,2.287594646992977e-9,1.9098356500593597e-9,2.779282079465021e-9 +LessThanEqualsByteString/1470/1470,9.744941334934102e-7,9.739450167618963e-7,9.750288716549742e-7,1.7171552748744322e-9,1.432969034018957e-9,2.1241636640241886e-9 +LessThanEqualsByteString/1480/1480,9.766980290798587e-7,9.760121905334402e-7,9.773426283864372e-7,2.2448064706965986e-9,1.888642374890856e-9,2.674199123316819e-9 +LessThanEqualsByteString/1490/1490,9.838706500610893e-7,9.827313404247372e-7,9.850528001758713e-7,3.945205776407942e-9,3.4017940240242744e-9,4.609420620690351e-9 +LessThanEqualsByteString/1500/1500,1.0013992495736994e-6,1.0005894636323338e-6,1.0021657950029604e-6,2.753056179033352e-9,2.4044883148839063e-9,3.1808077506435957e-9 +LessThanByteString/10/10,8.677781134663747e-7,8.670607573872022e-7,8.685813414605827e-7,2.506903109766815e-9,2.049727286150092e-9,3.2230776203294294e-9 +LessThanByteString/20/20,8.643771022547799e-7,8.635408167200431e-7,8.651849959103795e-7,2.6712898622517775e-9,2.2509048084279696e-9,3.099170835475504e-9 +LessThanByteString/30/30,8.651032177975782e-7,8.645329725804078e-7,8.659143336193983e-7,2.194703705965551e-9,1.773531941881038e-9,3.0357839190778646e-9 +LessThanByteString/40/40,8.656391408242793e-7,8.649068653220224e-7,8.662189485686229e-7,2.1344958672076753e-9,1.7765674321908513e-9,2.9571953161127416e-9 +LessThanByteString/50/50,8.659377369219722e-7,8.645120311311364e-7,8.671607566984855e-7,4.38736860835715e-9,3.846996038151228e-9,5.1231470513336835e-9 +LessThanByteString/60/60,8.712161564709014e-7,8.705457271765773e-7,8.71815350671816e-7,2.1183524168561767e-9,1.8120116683979363e-9,2.5850113676137416e-9 +LessThanByteString/70/70,8.689793186713002e-7,8.681145188234625e-7,8.696662690269882e-7,2.663907966549387e-9,2.108934457598237e-9,3.6511514199653997e-9 +LessThanByteString/80/80,8.726985734429066e-7,8.720260840153238e-7,8.735463836580649e-7,2.4116293263725264e-9,1.9832238304002686e-9,2.8963134430899596e-9 +LessThanByteString/90/90,8.713785557070057e-7,8.707251091411128e-7,8.720027165757358e-7,2.2098351406768527e-9,1.840574680783039e-9,2.8670334873767264e-9 +LessThanByteString/100/100,8.707533610332321e-7,8.701021350758024e-7,8.713873076945248e-7,2.1685117795780627e-9,1.8207829561210376e-9,2.673942792851479e-9 +LessThanByteString/110/110,8.736552453602753e-7,8.73102472607451e-7,8.741683918837458e-7,1.7604044215504906e-9,1.4751037835366379e-9,2.166275045628516e-9 +LessThanByteString/120/120,8.766232504883262e-7,8.760153221128557e-7,8.774952361555928e-7,2.3783584235288063e-9,1.768955521099145e-9,3.1280969777018497e-9 +LessThanByteString/130/130,8.710399785023567e-7,8.703868478627111e-7,8.719417427201982e-7,2.4569342829071942e-9,1.989579229762626e-9,3.171147003136912e-9 +LessThanByteString/140/140,8.765810305403892e-7,8.757720297650882e-7,8.773917905199348e-7,2.768603980062118e-9,2.377686050693261e-9,3.3513515621840558e-9 +LessThanByteString/150/150,8.782015815697239e-7,8.776658187256574e-7,8.78725298922012e-7,1.8075491389700722e-9,1.4778435168217253e-9,2.2055470333671643e-9 +LessThanByteString/160/160,8.775685147869973e-7,8.768001412701338e-7,8.783302910392474e-7,2.555919887804802e-9,2.223676869673373e-9,3.0958026529431752e-9 +LessThanByteString/170/170,8.78810909671055e-7,8.779871977785634e-7,8.79591776252363e-7,2.795927684985179e-9,2.3978633273443573e-9,3.296009988117334e-9 +LessThanByteString/180/180,8.801863514855563e-7,8.79503483410487e-7,8.809635366608721e-7,2.5011683922699884e-9,2.1287640966230977e-9,2.9683001060130888e-9 +LessThanByteString/190/190,8.834831722321868e-7,8.830070475457817e-7,8.839724478172221e-7,1.6955214376674503e-9,1.4222103162397922e-9,2.2164973453457623e-9 +LessThanByteString/200/200,8.820359865686795e-7,8.811834411275443e-7,8.827558892674919e-7,2.574202653026159e-9,2.2379161251295126e-9,3.201068053720144e-9 +LessThanByteString/210/210,8.848562524779089e-7,8.843127924186665e-7,8.854416880958312e-7,1.902844436516422e-9,1.528220523629728e-9,2.558548296197193e-9 +LessThanByteString/220/220,8.854530188954358e-7,8.843552521746329e-7,8.863131331772396e-7,3.1840605749434333e-9,2.5916784226743203e-9,3.813640233122198e-9 +LessThanByteString/230/230,8.851359045921126e-7,8.84091068087821e-7,8.861186650859093e-7,3.583325535653733e-9,3.192994692126805e-9,4.0920619721976195e-9 +LessThanByteString/240/240,8.879332003170523e-7,8.873020997209062e-7,8.885457388832067e-7,2.107673252971217e-9,1.7573733152698165e-9,2.5599609134960938e-9 +LessThanByteString/250/250,8.900859697642845e-7,8.893717771589671e-7,8.909273422200933e-7,2.5494490966099316e-9,2.193713851767385e-9,3.0867297621581906e-9 +LessThanByteString/260/260,8.890443370635394e-7,8.881042381780189e-7,8.901411411871407e-7,3.3652485371874166e-9,2.949909413392665e-9,3.8170082490503906e-9 +LessThanByteString/270/270,8.900482242808226e-7,8.893131042931866e-7,8.907674648108216e-7,2.591845447855786e-9,2.2262490744808205e-9,3.233250416396973e-9 +LessThanByteString/280/280,8.918409596662689e-7,8.90488720012969e-7,8.931415086124883e-7,4.3848351387330254e-9,3.6257868951899617e-9,5.117018910196893e-9 +LessThanByteString/290/290,8.870986994721252e-7,8.864086166479097e-7,8.876697756938132e-7,2.2565055386320448e-9,1.8847571548528738e-9,2.857550376828882e-9 +LessThanByteString/300/300,8.921099348377534e-7,8.914266198442577e-7,8.92709677440139e-7,2.175810375371226e-9,1.863434905460704e-9,2.632202138440398e-9 +LessThanByteString/310/310,8.898340583446267e-7,8.892281498797858e-7,8.90394718851349e-7,1.9163558242077356e-9,1.5677675993836079e-9,2.302774533871126e-9 +LessThanByteString/320/320,8.93153891881008e-7,8.919662109313828e-7,8.944955345805045e-7,4.393711600262494e-9,3.6626654244178864e-9,5.243772660950124e-9 +LessThanByteString/330/330,8.942897733362721e-7,8.934204506388465e-7,8.949951190446777e-7,2.6911143347398945e-9,2.1744286847713166e-9,3.543660332993157e-9 +LessThanByteString/340/340,8.968700800029491e-7,8.962768434661626e-7,8.975327417042765e-7,2.1365011177919843e-9,1.7828808494950776e-9,2.7504842603912305e-9 +LessThanByteString/350/350,8.947129645141593e-7,8.941957996594405e-7,8.953254217700122e-7,1.9353600173041682e-9,1.5113478230646572e-9,2.595286496825415e-9 +LessThanByteString/360/360,8.918913148877044e-7,8.907140149522549e-7,8.934473696787942e-7,4.606284611479309e-9,3.763567995366949e-9,5.612436222247164e-9 +LessThanByteString/370/370,8.949433946449202e-7,8.944187655741739e-7,8.955278400198362e-7,2.0646190987615745e-9,1.732554673973856e-9,2.6169629666105437e-9 +LessThanByteString/380/380,8.964592096178438e-7,8.952806867531356e-7,8.974305699335177e-7,3.671114271103439e-9,3.0800764869110853e-9,4.5462118600813815e-9 +LessThanByteString/390/390,8.970575590503908e-7,8.962871777462483e-7,8.978001028986227e-7,2.5603255885194083e-9,2.132856069675468e-9,3.3550774405524674e-9 +LessThanByteString/400/400,8.964926876207235e-7,8.957072496134574e-7,8.97303952218999e-7,2.7128794480102746e-9,2.328930028825047e-9,3.2584948268962014e-9 +LessThanByteString/410/410,8.995094864708175e-7,8.990324481304948e-7,8.999836890766488e-7,1.5139651952427553e-9,1.2114228886762993e-9,1.9339667073755475e-9 +LessThanByteString/420/420,8.96843275502768e-7,8.961451168659347e-7,8.973629755016874e-7,1.8583044367969319e-9,1.4862348441619553e-9,2.373080878335791e-9 +LessThanByteString/430/430,8.971334456165604e-7,8.964491937843793e-7,8.977574697963146e-7,2.1357544967831723e-9,1.8026444473729696e-9,2.5801055180364813e-9 +LessThanByteString/440/440,8.98951919576354e-7,8.984324451232376e-7,8.994116356806952e-7,1.686907429153454e-9,1.3926668480471001e-9,2.0877152598873904e-9 +LessThanByteString/450/450,9.028530363814771e-7,9.019024264566354e-7,9.035477683518551e-7,2.8185466015168455e-9,2.3950668937202515e-9,3.5073698424102374e-9 +LessThanByteString/460/460,9.004219423957821e-7,8.994353067653062e-7,9.013782803392196e-7,3.259278558276799e-9,2.707903071005042e-9,3.985352013094968e-9 +LessThanByteString/470/470,8.994743361617939e-7,8.988540686096537e-7,9.001607522452588e-7,2.1186481316581783e-9,1.8012414279357747e-9,2.5097823190529543e-9 +LessThanByteString/480/480,9.096181311269799e-7,9.088702183051928e-7,9.102636404000361e-7,2.283284698727544e-9,1.914742259634072e-9,3.0527927047916325e-9 +LessThanByteString/490/490,9.026423411183884e-7,9.015933353088931e-7,9.037386697576131e-7,3.666051659501065e-9,3.0995131864098994e-9,4.281929892277808e-9 +LessThanByteString/500/500,9.096312765526955e-7,9.088890061115977e-7,9.102414912443948e-7,2.1909141916060143e-9,1.8110662434922178e-9,2.6980388635693164e-9 +LessThanByteString/510/510,9.073277209827269e-7,9.066236222620135e-7,9.079229539439359e-7,2.157627468289265e-9,1.7903652576439897e-9,2.8221131753086323e-9 +LessThanByteString/520/520,9.099447820941764e-7,9.092627539769806e-7,9.106960392011619e-7,2.3832742842770737e-9,2.006039976725119e-9,2.9877772340176887e-9 +LessThanByteString/530/530,9.084154774359774e-7,9.075278134622669e-7,9.093522983036903e-7,2.9134813696825085e-9,2.4826751174040844e-9,3.5181746892866594e-9 +LessThanByteString/540/540,9.081632419081209e-7,9.072228183172341e-7,9.091363119079824e-7,3.0440054246909487e-9,2.597273833796526e-9,3.549658359436914e-9 +LessThanByteString/550/550,9.07838634174663e-7,9.067824506909116e-7,9.088275566339469e-7,3.3983054304352307e-9,2.953763269614945e-9,3.982430421455241e-9 +LessThanByteString/560/560,9.067742703585737e-7,9.060347311206626e-7,9.073994574798276e-7,2.2514450054075735e-9,1.8532669665465202e-9,2.802165295051498e-9 +LessThanByteString/570/570,9.105734137660051e-7,9.095428792805826e-7,9.115620608675638e-7,3.375734119992723e-9,2.822768843123444e-9,4.306538149061666e-9 +LessThanByteString/580/580,9.084921564165258e-7,9.078181242152927e-7,9.09185389580033e-7,2.296520916413447e-9,1.889137730927396e-9,2.8611604026210692e-9 +LessThanByteString/590/590,9.113047677498683e-7,9.106127227133961e-7,9.118723584557826e-7,2.0363042101761734e-9,1.7803116151249335e-9,2.4744656616437644e-9 +LessThanByteString/600/600,9.122168604978636e-7,9.11663728325915e-7,9.128429614402837e-7,1.980262326858429e-9,1.6968891017855033e-9,2.3234224324814704e-9 +LessThanByteString/610/610,9.110407492812693e-7,9.105257110926068e-7,9.116751250952795e-7,1.8302696175569435e-9,1.5323368417169748e-9,2.2651196873265185e-9 +LessThanByteString/620/620,9.128845738120646e-7,9.122355506295273e-7,9.136681509255153e-7,2.43074119103777e-9,1.8529373674048843e-9,3.074110692114151e-9 +LessThanByteString/630/630,9.145355046057573e-7,9.134862838438056e-7,9.15512758467006e-7,3.385707991286652e-9,2.9444452724371763e-9,3.859000664063946e-9 +LessThanByteString/640/640,9.153782170238095e-7,9.14672139046821e-7,9.159965303698711e-7,2.11507276455805e-9,1.7762158551174554e-9,2.508759610794982e-9 +LessThanByteString/650/650,9.146251010572489e-7,9.13877506561078e-7,9.152685951290033e-7,2.2623758193889896e-9,1.846972078233147e-9,2.740181986850142e-9 +LessThanByteString/660/660,9.153676784194874e-7,9.14628051190271e-7,9.16015939059394e-7,2.2645644898786743e-9,1.9949123512116136e-9,2.67354819794105e-9 +LessThanByteString/670/670,9.157015663875618e-7,9.147822147142633e-7,9.167717685643543e-7,3.3093667819803265e-9,2.8468049963758228e-9,3.845269055411342e-9 +LessThanByteString/680/680,9.191042150254712e-7,9.184657681113584e-7,9.19769542943312e-7,2.117221679889425e-9,1.7903778225866302e-9,2.627953818240032e-9 +LessThanByteString/690/690,9.183668488372454e-7,9.176510375814524e-7,9.192239887093947e-7,2.572121128624239e-9,1.98947969803917e-9,3.299691595536145e-9 +LessThanByteString/700/700,9.17553169451687e-7,9.171000027349185e-7,9.180248873428046e-7,1.5836893645028945e-9,1.3357466831682438e-9,1.995445168814637e-9 +LessThanByteString/710/710,9.171724152583754e-7,9.163294122516796e-7,9.180750297436969e-7,2.997512602090758e-9,2.559503288372197e-9,3.6039067896635044e-9 +LessThanByteString/720/720,9.182468481914811e-7,9.170906354541626e-7,9.191809723993348e-7,3.464837601613984e-9,2.983745115926891e-9,4.168891895944286e-9 +LessThanByteString/730/730,9.17612850258357e-7,9.168771428622914e-7,9.183435654939152e-7,2.4599005222086822e-9,2.0593438798725447e-9,3.0991373134461047e-9 +LessThanByteString/740/740,9.223380302307893e-7,9.214292674372174e-7,9.233673680015337e-7,3.2876281596070477e-9,2.7655572788037173e-9,4.220152827359533e-9 +LessThanByteString/750/750,9.291558289541789e-7,9.276933283221917e-7,9.301977873259815e-7,4.019099780509725e-9,3.4189176778584046e-9,4.84411213129564e-9 +LessThanByteString/760/760,9.238106666917252e-7,9.231848737204897e-7,9.244761146521464e-7,2.184943086867113e-9,1.855073755823667e-9,2.641598912484541e-9 +LessThanByteString/770/770,9.246609389514472e-7,9.237727249991159e-7,9.255940598755569e-7,3.086085920230302e-9,2.526110760439706e-9,3.935719750045204e-9 +LessThanByteString/780/780,9.259089147124579e-7,9.252679985883384e-7,9.267890877682327e-7,2.612692078436899e-9,2.197819884143078e-9,3.5911759414285183e-9 +LessThanByteString/790/790,9.273011513443024e-7,9.26122490542229e-7,9.282025018929345e-7,3.589435343748059e-9,2.885606031731734e-9,4.4190848249378075e-9 +LessThanByteString/800/800,9.323361159010556e-7,9.30788770819562e-7,9.33632380061376e-7,4.771861484271543e-9,4.054628148507134e-9,5.567715938651213e-9 +LessThanByteString/810/810,9.292517374880099e-7,9.285793048913702e-7,9.300425987987236e-7,2.5885102937530686e-9,2.1744109207156218e-9,3.082435953282136e-9 +LessThanByteString/820/820,9.250841701528509e-7,9.241702321303006e-7,9.258938420018556e-7,2.9009824170087016e-9,2.3967330536398854e-9,3.461976232444847e-9 +LessThanByteString/830/830,9.278751204557659e-7,9.273021937901302e-7,9.28460375605118e-7,1.919671322535252e-9,1.6339345563612865e-9,2.3438440712245348e-9 +LessThanByteString/840/840,9.31705191047522e-7,9.309510127532501e-7,9.324673126331341e-7,2.6623213287141815e-9,2.339638323368516e-9,3.1587086793446302e-9 +LessThanByteString/850/850,9.312378701866289e-7,9.302263466592522e-7,9.32096649754048e-7,3.0446111644259197e-9,2.43170742446501e-9,3.846700798092033e-9 +LessThanByteString/860/860,9.26317646874418e-7,9.255202110106732e-7,9.270446968410684e-7,2.804328709210377e-9,2.4503097019350764e-9,3.2830420870034694e-9 +LessThanByteString/870/870,9.298715930430952e-7,9.289115007435629e-7,9.306831921492065e-7,3.112304214475913e-9,2.4680680625393384e-9,4.05982664513962e-9 +LessThanByteString/880/880,9.320560157863594e-7,9.31201894186816e-7,9.330259231444268e-7,2.969632519622616e-9,2.4272788556547998e-9,3.742702916438493e-9 +LessThanByteString/890/890,9.310112907062421e-7,9.299872384982114e-7,9.319222876609561e-7,3.15614587575962e-9,2.6191019983979563e-9,4.037037684620809e-9 +LessThanByteString/900/900,9.309590239069706e-7,9.30301094156571e-7,9.318478853918071e-7,2.45204155021462e-9,1.9347850966404e-9,3.359888743136342e-9 +LessThanByteString/910/910,9.364838072861742e-7,9.356979084722463e-7,9.371858729859217e-7,2.655500191091898e-9,2.2553174321981237e-9,3.193816649707485e-9 +LessThanByteString/920/920,9.362278582354767e-7,9.351995284668758e-7,9.371364243478296e-7,3.3502215860691876e-9,2.891102926185937e-9,3.9076696984438176e-9 +LessThanByteString/930/930,9.3435869366526e-7,9.338693683314095e-7,9.347656926338216e-7,1.508432227339015e-9,1.2342822637890445e-9,1.9396546635950346e-9 +LessThanByteString/940/940,9.350391523528759e-7,9.342653895824154e-7,9.358378992061947e-7,2.7144616554603614e-9,2.2611355950707974e-9,3.4164886802263468e-9 +LessThanByteString/950/950,9.376783832758207e-7,9.362361741739367e-7,9.391690050289218e-7,4.9555548111039e-9,4.478061141701939e-9,5.643627616660824e-9 +LessThanByteString/960/960,9.376307008280357e-7,9.368424670738307e-7,9.384593515713098e-7,2.7499741637056563e-9,2.306582148367004e-9,3.3585718066378073e-9 +LessThanByteString/970/970,9.448769110279882e-7,9.44367542701686e-7,9.453570739566101e-7,1.5505929267793668e-9,1.322634179447425e-9,1.8807230495242663e-9 +LessThanByteString/980/980,9.370302245993905e-7,9.355419427317001e-7,9.388207136448271e-7,5.581833401977034e-9,4.993527418637577e-9,6.298023500629516e-9 +LessThanByteString/990/990,9.382035549677005e-7,9.373763227957431e-7,9.390052437374879e-7,2.6776071971500445e-9,2.2616595429761887e-9,3.2970450743641285e-9 +LessThanByteString/1000/1000,9.400893495439554e-7,9.395563048341956e-7,9.407335137601537e-7,1.902411784375868e-9,1.4938513841564212e-9,2.4542123535090485e-9 +LessThanByteString/1010/1010,9.358529226810707e-7,9.349706084087817e-7,9.367366306391854e-7,3.1156010471240847e-9,2.5331715204599157e-9,4.116441518224305e-9 +LessThanByteString/1020/1020,9.376891961668394e-7,9.365797846134168e-7,9.388306347028442e-7,3.814348990279903e-9,3.2295183149201207e-9,4.6034180138804836e-9 +LessThanByteString/1030/1030,9.353373833053023e-7,9.345557716312406e-7,9.363624534347976e-7,3.056880563220116e-9,2.500778744070213e-9,3.6885534549682605e-9 +LessThanByteString/1040/1040,9.355134037989449e-7,9.345881419334006e-7,9.364215614058923e-7,3.218865667852633e-9,2.684094121455451e-9,3.810553289051364e-9 +LessThanByteString/1050/1050,9.376125051317045e-7,9.3699770975275e-7,9.381313620585269e-7,1.8373230737529729e-9,1.5798955850276216e-9,2.2132803563991384e-9 +LessThanByteString/1060/1060,9.379937584239131e-7,9.36925834967619e-7,9.388784823125707e-7,3.3139936733122935e-9,2.856194293983353e-9,3.853754495815577e-9 +LessThanByteString/1070/1070,9.425791534941724e-7,9.419405489891118e-7,9.433127522644219e-7,2.2316004250015954e-9,1.8808331906312153e-9,2.7620913503264852e-9 +LessThanByteString/1080/1080,9.383217447172342e-7,9.376310862205816e-7,9.389717156813188e-7,2.2244694195471643e-9,1.9066000620769122e-9,2.638821508445996e-9 +LessThanByteString/1090/1090,9.416370350741614e-7,9.409091037561705e-7,9.422429954704494e-7,2.367850463204747e-9,1.8761743869419998e-9,3.2727043847113777e-9 +LessThanByteString/1100/1100,9.455891135142125e-7,9.44752868172986e-7,9.463662979612106e-7,2.6121846227786774e-9,2.151836387058765e-9,3.2181215221079567e-9 +LessThanByteString/1110/1110,9.420457130357401e-7,9.413823507185009e-7,9.42730951194763e-7,2.13487951641515e-9,1.8413698966442492e-9,2.613172382679986e-9 +LessThanByteString/1120/1120,9.383001720815824e-7,9.376309178549289e-7,9.390169684924428e-7,2.433886200262509e-9,2.073437344040279e-9,2.8869160364076426e-9 +LessThanByteString/1130/1130,9.458516997744233e-7,9.453580591933417e-7,9.46464038791137e-7,1.7901788111750152e-9,1.4687109941274173e-9,2.19257004898855e-9 +LessThanByteString/1140/1140,9.485878453480595e-7,9.477075512314697e-7,9.493576567144791e-7,2.830156048402785e-9,2.3977155275088757e-9,3.433758060165747e-9 +LessThanByteString/1150/1150,9.506339457581159e-7,9.497890864289686e-7,9.513803476839512e-7,2.6994400153998112e-9,2.156581387207109e-9,3.496775184615136e-9 +LessThanByteString/1160/1160,9.479925830233992e-7,9.470840497948692e-7,9.489429628918403e-7,3.0700767555700266e-9,2.58353572286979e-9,3.7265734120201136e-9 +LessThanByteString/1170/1170,9.467059235125458e-7,9.462007726720604e-7,9.472181716274336e-7,1.788022870765518e-9,1.4897524653483556e-9,2.1800506342715113e-9 +LessThanByteString/1180/1180,9.498430437297016e-7,9.49182624420844e-7,9.507851738146403e-7,2.6190708022953584e-9,2.1342124876458166e-9,3.545102308615792e-9 +LessThanByteString/1190/1190,9.50825194088851e-7,9.497863687883316e-7,9.517555283683852e-7,3.3175870307137995e-9,2.91901564625416e-9,3.907551712228416e-9 +LessThanByteString/1200/1200,9.526078437900319e-7,9.515947694837496e-7,9.534267581420974e-7,3.115029767753557e-9,2.5112303408449655e-9,3.834186162767436e-9 +LessThanByteString/1210/1210,9.535701035615842e-7,9.52890499410761e-7,9.5419912164214e-7,2.3603692117312627e-9,2.0656271876976368e-9,2.743809106419292e-9 +LessThanByteString/1220/1220,9.552073170001935e-7,9.545174614854994e-7,9.560246683039058e-7,2.529089657826826e-9,2.1435282581321336e-9,3.160560542971595e-9 +LessThanByteString/1230/1230,9.512655025738756e-7,9.504088211540907e-7,9.51994676037333e-7,2.589380482858574e-9,2.206049263954647e-9,3.2478031375150992e-9 +LessThanByteString/1240/1240,9.636213640804802e-7,9.623877039549609e-7,9.64820424531325e-7,4.222856616086242e-9,3.7163073369166273e-9,4.817980728014694e-9 +LessThanByteString/1250/1250,9.57017144862767e-7,9.564474793555576e-7,9.57602182847253e-7,1.9818937932286292e-9,1.6419070267830815e-9,2.37419487529543e-9 +LessThanByteString/1260/1260,9.539346628158169e-7,9.531110738381327e-7,9.548624312038816e-7,2.8767706322878863e-9,2.445457675439551e-9,3.4147433110320445e-9 +LessThanByteString/1270/1270,9.5515963830072e-7,9.542314433920273e-7,9.56323540713906e-7,3.5566591133780646e-9,2.807898473039769e-9,4.5853370405803965e-9 +LessThanByteString/1280/1280,9.536431280040353e-7,9.528805174244016e-7,9.546453753678915e-7,2.950401573261639e-9,2.3490288716258597e-9,3.894289088335543e-9 +LessThanByteString/1290/1290,9.594259045529213e-7,9.588434495186556e-7,9.60034179872277e-7,2.0084520591407e-9,1.7262598312635823e-9,2.4314861045213744e-9 +LessThanByteString/1300/1300,9.604815169087976e-7,9.596687458795608e-7,9.613978695181322e-7,2.8138190056481445e-9,2.4110980132263176e-9,3.3507786895218326e-9 +LessThanByteString/1310/1310,9.6093031012044e-7,9.598007678680093e-7,9.619254624130487e-7,3.6993944161936885e-9,3.06069921525935e-9,4.392483976604634e-9 +LessThanByteString/1320/1320,9.610644617737086e-7,9.604004576937748e-7,9.6169747378117e-7,2.1609529796933064e-9,1.8332678889443895e-9,2.563026630518979e-9 +LessThanByteString/1330/1330,9.602442890033123e-7,9.59438043282798e-7,9.611212670737812e-7,2.8640020248919634e-9,2.4089711174688338e-9,3.4953597681584526e-9 +LessThanByteString/1340/1340,9.623228444826336e-7,9.616074511907618e-7,9.63051002180714e-7,2.560800158007357e-9,2.101868802518917e-9,3.275623476285048e-9 +LessThanByteString/1350/1350,9.616363567931832e-7,9.608099889358263e-7,9.624101929606129e-7,2.80263132548598e-9,2.3830553641085518e-9,3.4530222996962717e-9 +LessThanByteString/1360/1360,9.643353174437457e-7,9.634529539549785e-7,9.652754161813134e-7,3.017179456708965e-9,2.531922550468308e-9,3.646068658302101e-9 +LessThanByteString/1370/1370,9.650754034536068e-7,9.641731222698672e-7,9.660300516939101e-7,3.0878503256784464e-9,2.4109145126345867e-9,3.760365375076213e-9 +LessThanByteString/1380/1380,9.651503356343612e-7,9.643748566550841e-7,9.658851935993534e-7,2.5599796558512415e-9,2.1537298369973516e-9,3.10514103356823e-9 +LessThanByteString/1390/1390,9.656752286332944e-7,9.650610569646694e-7,9.662848357452627e-7,1.977723016975039e-9,1.5704098780408197e-9,2.464440020050867e-9 +LessThanByteString/1400/1400,9.733683379725294e-7,9.726760505390687e-7,9.74130517535915e-7,2.376900721494487e-9,1.962538261833262e-9,2.8692899113596293e-9 +LessThanByteString/1410/1410,9.749743205145719e-7,9.74424634650016e-7,9.75743088358433e-7,2.1536057695977366e-9,1.699119438098198e-9,2.8502538345774207e-9 +LessThanByteString/1420/1420,9.761135107760827e-7,9.756211895728036e-7,9.766351017619017e-7,1.7490521129077764e-9,1.4667480027596136e-9,2.1641078638306174e-9 +LessThanByteString/1430/1430,9.75910456786845e-7,9.753762627380246e-7,9.764893922561704e-7,2.0268072211420022e-9,1.5462614081236633e-9,2.7913922362997956e-9 +LessThanByteString/1440/1440,9.758956579436191e-7,9.750910474789497e-7,9.766017956360006e-7,2.612983802720298e-9,2.105679530905078e-9,3.2852328424976e-9 +LessThanByteString/1450/1450,9.781950386089985e-7,9.776637528897029e-7,9.78809959915821e-7,1.960726101491047e-9,1.6201342240880859e-9,2.5650686230049724e-9 +LessThanByteString/1460/1460,9.791176646885702e-7,9.783435873081218e-7,9.799325549795797e-7,2.6966006058686154e-9,2.33864572965355e-9,3.287963301197714e-9 +LessThanByteString/1470/1470,9.749596773310219e-7,9.74319008821751e-7,9.756940056802212e-7,2.372980240379048e-9,1.911697464812434e-9,2.8579152829219e-9 +LessThanByteString/1480/1480,9.835431527407303e-7,9.82726630740801e-7,9.845100346758336e-7,3.0174899731333037e-9,2.6525710023548608e-9,3.4719930217514176e-9 +LessThanByteString/1490/1490,9.922472611025257e-7,9.917583920058551e-7,9.927960061238474e-7,1.6667172727257996e-9,1.4048826477946259e-9,2.0228769212034525e-9 +LessThanByteString/1500/1500,1.0105600978497489e-6,1.0098505698985074e-6,1.0111516927480026e-6,2.14414384634297e-9,1.8509574161599082e-9,2.5108436829748556e-9 +VerifyEd25519Signature/4/1/8,5.1626554490825654e-5,5.161893118049191e-5,5.164428124794578e-5,3.639014369017958e-8,1.5462898440767254e-8,6.555199400452436e-8 +VerifyEd25519Signature/4/2000/8,7.997139861631243e-5,7.995892203711648e-5,7.998920999907298e-5,5.025697536467008e-8,4.427119597185064e-8,5.9502384343191e-8 +VerifyEd25519Signature/4/4000/8,1.0928492639639715e-4,1.0926487768600065e-4,1.0933634714162274e-4,1.0259326148984493e-7,4.9594725253614195e-8,1.9068155454077922e-7 +VerifyEd25519Signature/4/6000/8,1.38227359486051e-4,1.381992990632461e-4,1.382660528523249e-4,1.0834231586312488e-7,8.213333611949201e-8,1.6961208816638935e-7 +VerifyEd25519Signature/4/8000/8,1.6721465981309308e-4,1.671728135033762e-4,1.6726394707462276e-4,1.556420932871233e-7,1.294145511119764e-7,1.9842584042270518e-7 +VerifyEd25519Signature/4/10000/8,1.9567268176697735e-4,1.956314004202877e-4,1.9579526987726948e-4,2.0873531856332901e-7,7.343082921524484e-8,4.193261050991756e-7 +VerifyEd25519Signature/4/12000/8,2.2409323197870003e-4,2.2404508303737906e-4,2.2417495034724114e-4,2.1458200434499215e-7,1.1158171649030011e-7,3.429946124949045e-7 +VerifyEd25519Signature/4/14000/8,2.52775441564744e-4,2.5272202760772767e-4,2.52846538229441e-4,2.1301535016977778e-7,1.6732076509219674e-7,3.0026104675583995e-7 +VerifyEd25519Signature/4/16000/8,2.818843397911669e-4,2.816404582359952e-4,2.824934707685511e-4,1.2081498341391038e-6,1.7384326235982823e-7,2.3292797884767447e-6 +VerifyEd25519Signature/4/18000/8,3.114875946881322e-4,3.112753307511261e-4,3.118664789004109e-4,9.785832710095156e-7,5.18377844934291e-7,1.4725886414846598e-6 +VerifyEd25519Signature/4/20000/8,3.402378742788395e-4,3.4003727282544297e-4,3.4076696919109814e-4,9.6196659681269e-7,2.3045357015051191e-7,1.7095534532978733e-6 +VerifyEd25519Signature/4/22000/8,3.714927780226978e-4,3.7127639923773475e-4,3.7215337670641813e-4,1.191677408128051e-6,4.565301443774547e-7,2.692986021742229e-6 +VerifyEd25519Signature/4/24000/8,3.977964462253429e-4,3.9769173591258395e-4,3.981681141487488e-4,6.12009767921951e-7,1.6704811628231163e-7,1.2562015342391985e-6 +VerifyEd25519Signature/4/26000/8,4.2731723020719405e-4,4.269637574111675e-4,4.280780991851382e-4,1.6541497727388352e-6,7.597779290514732e-7,3.210903168641381e-6 +VerifyEd25519Signature/4/28000/8,4.5660055431244375e-4,4.5629373511367705e-4,4.5724557618386977e-4,1.470162632256054e-6,8.492410829934497e-7,2.613710761016508e-6 +VerifyEd25519Signature/4/30000/8,4.858914362396878e-4,4.857846360537231e-4,4.861608774453367e-4,5.604376235130148e-7,2.473480343909064e-7,1.1374328267485022e-6 +VerifyEd25519Signature/4/32000/8,5.139837211469368e-4,5.138545251224105e-4,5.142143186123588e-4,5.689781248444331e-7,3.8431546550073227e-7,9.247961644720308e-7 +VerifyEd25519Signature/4/34000/8,5.450799403536549e-4,5.447067209013684e-4,5.45821328251482e-4,1.79967169969893e-6,9.442111787422516e-7,3.4193605634780646e-6 +VerifyEd25519Signature/4/36000/8,5.733748988936573e-4,5.729935758697221e-4,5.743280055188828e-4,1.956793511230734e-6,8.023932383554463e-7,3.499249302639263e-6 +VerifyEd25519Signature/4/38000/8,6.0161580244028e-4,6.014760073943485e-4,6.019966454748984e-4,7.210881948167944e-7,2.9339206481825805e-7,1.2376046672774233e-6 +VerifyEd25519Signature/4/40000/8,6.304906321473852e-4,6.298297451163876e-4,6.326387981339126e-4,3.6413581868598076e-6,1.167443148700186e-6,7.389263481784624e-6 +VerifyEd25519Signature/4/42000/8,6.582407460894622e-4,6.579582404611401e-4,6.593638443750192e-4,1.613270085009664e-6,2.550286093151274e-7,3.2990494293187594e-6 +VerifyEd25519Signature/4/44000/8,6.868512776696383e-4,6.867124856409495e-4,6.870602160029128e-4,5.772559875116423e-7,4.182339747547326e-7,8.466697632120931e-7 +VerifyEd25519Signature/4/46000/8,7.159404668661678e-4,7.157038676587187e-4,7.162243885476659e-4,8.779590407203404e-7,7.299553473398043e-7,1.1479868333192898e-6 +VerifyEd25519Signature/4/48000/8,7.439349198717544e-4,7.437512652189662e-4,7.443308787299156e-4,8.763028076993523e-7,5.225407495336834e-7,1.695907204816233e-6 +VerifyEd25519Signature/4/50000/8,7.733316902135057e-4,7.732078450301843e-4,7.735176043460065e-4,4.878890869249203e-7,3.4328628531039916e-7,7.885584952653808e-7 +VerifyEd25519Signature/4/52000/8,8.034606124563336e-4,8.031506052089758e-4,8.039220645663494e-4,1.3041434297695773e-6,9.332343562843577e-7,2.073769716720067e-6 +VerifyEd25519Signature/4/54000/8,8.311014510350286e-4,8.309593106964522e-4,8.31309163199994e-4,5.713328220403958e-7,4.0381694427215545e-7,7.965380630826978e-7 +VerifyEd25519Signature/4/56000/8,8.614046690744469e-4,8.612382389008243e-4,8.618782068349283e-4,9.378771005520449e-7,3.5648019968160366e-7,1.8421317687471167e-6 +VerifyEd25519Signature/4/58000/8,8.892905435583169e-4,8.890849906937869e-4,8.894979285869263e-4,6.658312581601851e-7,5.060970543757632e-7,8.778008667513251e-7 +VerifyEd25519Signature/4/60000/8,9.176615317530242e-4,9.174126652404011e-4,9.180075757639282e-4,9.856302906974013e-7,6.705222777717813e-7,1.412503105948545e-6 +VerifyEd25519Signature/4/62000/8,9.47442913918857e-4,9.472488971673075e-4,9.476748692049649e-4,7.259890784036382e-7,4.937292819585431e-7,1.1020737852482066e-6 +VerifyEd25519Signature/4/64000/8,9.689384864517118e-4,9.688381504812816e-4,9.690398029912796e-4,3.313557293717875e-7,2.6010588671048247e-7,4.116032550927171e-7 +VerifyEd25519Signature/4/66000/8,1.0016425171984387e-3,9.99097193924604e-4,1.0075648594013449e-3,1.2905279293520229e-5,7.063921859740843e-6,2.2765950689940958e-5 +VerifyEd25519Signature/4/68000/8,1.026226486692464e-3,1.026115395071969e-3,1.0264796991385687e-3,5.560054787750938e-7,2.826552982487957e-7,1.0084075937079432e-6 +VerifyEd25519Signature/4/70000/8,1.0538211304313757e-3,1.053639212395056e-3,1.0545255191175453e-3,1.0200171753296277e-6,2.98803950111828e-7,2.0609793115137258e-6 +VerifyEd25519Signature/4/72000/8,1.0847833458449022e-3,1.0835754636851329e-3,1.0875870564726797e-3,5.7855366919670865e-6,2.1585391826749923e-6,1.0740377568437155e-5 +VerifyEd25519Signature/4/74000/8,1.1139213824890677e-3,1.1128388640774972e-3,1.1162766990886327e-3,5.278064490053495e-6,2.8800227196402624e-6,8.2586153480562e-6 +VerifyEd25519Signature/4/76000/8,1.142791478901675e-3,1.141364998497645e-3,1.1449955312431625e-3,6.069615918988354e-6,3.7789724319306264e-6,8.483609365867351e-6 +VerifyEd25519Signature/4/78000/8,1.169738790699996e-3,1.1696355394473618e-3,1.1698519173937716e-3,3.699643560131406e-7,2.899430843122661e-7,4.915815682172069e-7 +VerifyEd25519Signature/4/80000/8,1.1978719939888843e-3,1.1977669970409384e-3,1.1979795291093486e-3,3.6139063644802247e-7,2.9316643191491183e-7,4.79119149315636e-7 +VerifyEd25519Signature/4/82000/8,1.2268595338550449e-3,1.2267721741273643e-3,1.2269459032392285e-3,3.1561600734669713e-7,2.45011820683785e-7,4.339709218324175e-7 +VerifyEd25519Signature/4/84000/8,1.255785638011426e-3,1.2555514723556593e-3,1.2560088085022258e-3,7.895983167446415e-7,6.076947826616633e-7,1.0621233628407215e-6 +VerifyEd25519Signature/4/86000/8,1.2849268768217639e-3,1.284582684522074e-3,1.2858693799916588e-3,1.7030442484041637e-6,2.9565527099479015e-7,2.966845139587139e-6 +VerifyEd25519Signature/4/88000/8,1.3134128607317508e-3,1.3122719276276648e-3,1.3162739609860169e-3,5.391363630106264e-6,1.1278436319582907e-6,1.0250369625832127e-5 +VerifyEd25519Signature/4/90000/8,1.3425167858833016e-3,1.3420850324081968e-3,1.3438156296123713e-3,2.5641627094500926e-6,4.3711598517604847e-7,4.948959873543925e-6 +VerifyEd25519Signature/4/92000/8,1.3741986767405007e-3,1.3712867655872184e-3,1.3815040554318733e-3,1.451962360464865e-5,4.507947028323321e-6,2.5767597638783347e-5 +VerifyEd25519Signature/4/94000/8,1.3994300206660148e-3,1.3989189374437549e-3,1.4007740331740202e-3,2.457916819807911e-6,6.880820518642546e-7,4.79097987220727e-6 +VerifyEd25519Signature/4/96000/8,1.4288303030679684e-3,1.42689983787104e-3,1.4335905373107044e-3,9.278722280517314e-6,2.928885258534846e-6,1.826378686605957e-5 +VerifyEd25519Signature/4/98000/8,1.4613987310452467e-3,1.4577886333403262e-3,1.4716561546886287e-3,1.9036158601496186e-5,6.9596877110641505e-6,3.7529954486382936e-5 +VerifyEcdsaSecp256k1Signature/5/4/8,4.3407031143071384e-5,4.340123829609828e-5,4.341199125656002e-5,1.8345910919846486e-8,1.5387574870532247e-8,2.388350606848219e-8 +VerifyEcdsaSecp256k1Signature/5/4/8,4.334868318510601e-5,4.334468093144022e-5,4.335221576076881e-5,1.235590662397032e-8,1.0352203277916039e-8,1.473884345444071e-8 +VerifyEcdsaSecp256k1Signature/5/4/8,4.359070611685159e-5,4.358710630866197e-5,4.359533234066662e-5,1.3657779787019088e-8,1.0580976807391835e-8,1.9194966800142014e-8 +VerifyEcdsaSecp256k1Signature/5/4/8,4.381123628123549e-5,4.380699811497774e-5,4.381565788550706e-5,1.4534516271605295e-8,1.1998852908623138e-8,1.817274178230579e-8 +VerifyEcdsaSecp256k1Signature/5/4/8,4.5118307737887836e-5,4.511378945776094e-5,4.5123046325357214e-5,1.5963364634110956e-8,1.327951104676375e-8,2.001888590701532e-8 +VerifyEcdsaSecp256k1Signature/5/4/8,4.4450543929934435e-5,4.444603343319591e-5,4.445524155301049e-5,1.5344398037319315e-8,1.2222993415934032e-8,2.0160994362370508e-8 +VerifyEcdsaSecp256k1Signature/5/4/8,4.429546889878575e-5,4.4289778418335374e-5,4.4301356171251924e-5,1.9690553081542542e-8,1.5764511344529403e-8,2.7061131681280695e-8 +VerifyEcdsaSecp256k1Signature/5/4/8,4.425429176252707e-5,4.425051373412534e-5,4.425767242316056e-5,1.2153500828991966e-8,1.0105456730459174e-8,1.4849994259205234e-8 +VerifyEcdsaSecp256k1Signature/5/4/8,4.406219211604454e-5,4.405743588244311e-5,4.406745249696313e-5,1.735265910959717e-8,1.4726248086703926e-8,2.0929176545434778e-8 +VerifyEcdsaSecp256k1Signature/5/4/8,4.4153648418650996e-5,4.415028953384728e-5,4.415736227626949e-5,1.1714492572688264e-8,9.440073517643767e-9,1.6000625068850625e-8 +VerifyEcdsaSecp256k1Signature/5/4/8,4.3568218959685656e-5,4.356397953183531e-5,4.357300217476092e-5,1.4983192405618685e-8,1.2671616763670331e-8,1.9393258162812395e-8 +VerifyEcdsaSecp256k1Signature/5/4/8,4.443802179564558e-5,4.443320706498354e-5,4.444205966301907e-5,1.5146441132491084e-8,1.193208943196171e-8,1.989963704007081e-8 +VerifyEcdsaSecp256k1Signature/5/4/8,4.452839307361752e-5,4.452361014966472e-5,4.453251963660501e-5,1.57044813254801e-8,1.3406558369067717e-8,1.962549681821362e-8 +VerifyEcdsaSecp256k1Signature/5/4/8,4.328786556647896e-5,4.328232461988582e-5,4.329327552526424e-5,1.91834555557198e-8,1.633868510682828e-8,2.3151063966598282e-8 +VerifyEcdsaSecp256k1Signature/5/4/8,4.321965173709242e-5,4.321478913376381e-5,4.3224302386852935e-5,1.6482837427327474e-8,1.3324749855155088e-8,2.1388388555456586e-8 +VerifyEcdsaSecp256k1Signature/5/4/8,4.4211805686561596e-5,4.420735092499248e-5,4.42164686406517e-5,1.4920958865258484e-8,1.259972278548088e-8,1.74641549238727e-8 +VerifyEcdsaSecp256k1Signature/5/4/8,4.328100350161505e-5,4.3275932227711416e-5,4.3285280197839204e-5,1.6055295108225177e-8,1.3536759018858997e-8,2.1416783839447727e-8 +VerifyEcdsaSecp256k1Signature/5/4/8,4.3855468701263205e-5,4.3849398370747577e-5,4.386244881294138e-5,2.2176215404783948e-8,1.715434590192388e-8,2.8513038293789385e-8 +VerifyEcdsaSecp256k1Signature/5/4/8,4.450160390495205e-5,4.4498006826717726e-5,4.450581149856593e-5,1.3309549599091112e-8,1.0350094124450996e-8,2.0901582978792327e-8 +VerifyEcdsaSecp256k1Signature/5/4/8,4.332671982129534e-5,4.3322026377755784e-5,4.33309902599147e-5,1.4804833061390767e-8,1.2023954854386327e-8,1.821589880439304e-8 +VerifyEcdsaSecp256k1Signature/5/4/8,4.4402185659143935e-5,4.439681604033116e-5,4.440850228379693e-5,2.0870121884292355e-8,1.712848119033969e-8,2.5977984363812993e-8 +VerifyEcdsaSecp256k1Signature/5/4/8,4.3892436245481355e-5,4.388871740255922e-5,4.389699577278059e-5,1.3606918321216846e-8,1.1458683041063064e-8,1.6517056654100643e-8 +VerifyEcdsaSecp256k1Signature/5/4/8,4.409886551831359e-5,4.4094413277758364e-5,4.4102807093700174e-5,1.4664865841514168e-8,1.229494600908023e-8,1.752555139589068e-8 +VerifyEcdsaSecp256k1Signature/5/4/8,4.342256697257965e-5,4.3419387483642475e-5,4.3426284319363314e-5,1.2175074206357052e-8,9.923726773683517e-9,1.5053917326116688e-8 +VerifyEcdsaSecp256k1Signature/5/4/8,4.393611212162743e-5,4.393197880943227e-5,4.394209090740682e-5,1.695212364591061e-8,1.3353608409242161e-8,2.57178182179678e-8 +VerifyEcdsaSecp256k1Signature/5/4/8,4.318524294795303e-5,4.318009332307417e-5,4.3190111236622545e-5,1.6755830337405516e-8,1.2785221346295675e-8,2.256473255456503e-8 +VerifyEcdsaSecp256k1Signature/5/4/8,4.426716341236777e-5,4.4263774571209967e-5,4.4271312818142595e-5,1.191466465482807e-8,9.961916463722097e-9,1.484611595897458e-8 +VerifyEcdsaSecp256k1Signature/5/4/8,4.4309488354186184e-5,4.430471269046725e-5,4.431471694018086e-5,1.616780249855857e-8,1.3846680962531846e-8,1.9428589642329627e-8 +VerifyEcdsaSecp256k1Signature/5/4/8,4.411725852057483e-5,4.411292022725945e-5,4.412371980725187e-5,1.7909996962716282e-8,1.4524416312128286e-8,2.402908176869856e-8 +VerifyEcdsaSecp256k1Signature/5/4/8,4.437555370696563e-5,4.4371478970898485e-5,4.437974761497191e-5,1.4085579778971565e-8,1.2029490297077249e-8,1.750102217392372e-8 +VerifyEcdsaSecp256k1Signature/5/4/8,4.411651986698436e-5,4.411253492497188e-5,4.412094350101153e-5,1.4101098053598018e-8,1.177509080758425e-8,1.6959231086318554e-8 +VerifyEcdsaSecp256k1Signature/5/4/8,4.467147114077333e-5,4.466560945505423e-5,4.467756781803819e-5,2.0628986577418828e-8,1.7657576717720208e-8,2.5187956598900776e-8 +VerifyEcdsaSecp256k1Signature/5/4/8,4.400204086281862e-5,4.3998792786453145e-5,4.400573217902212e-5,1.1646909604825706e-8,9.485918640280892e-9,1.4563289757983848e-8 +VerifyEcdsaSecp256k1Signature/5/4/8,4.4714200764330723e-5,4.471008001810968e-5,4.47181033471474e-5,1.3374095597333018e-8,1.1337492593091756e-8,1.6916192632676764e-8 +VerifyEcdsaSecp256k1Signature/5/4/8,4.396984296640018e-5,4.396661344562071e-5,4.397283387099545e-5,1.0811640987678863e-8,8.822730721244085e-9,1.4323480080074946e-8 +VerifyEcdsaSecp256k1Signature/5/4/8,4.244707437165515e-5,4.244333172815914e-5,4.2451620618151214e-5,1.3524181532436029e-8,1.0451510858129464e-8,1.8331528250393114e-8 +VerifyEcdsaSecp256k1Signature/5/4/8,4.424160234372727e-5,4.42381940467101e-5,4.424498103173379e-5,1.1652749812799328e-8,9.603545440740341e-9,1.495853318968292e-8 +VerifyEcdsaSecp256k1Signature/5/4/8,4.3173641554454637e-5,4.316873964452179e-5,4.317879793884256e-5,1.543808315481842e-8,1.2484422206063863e-8,1.9211105234045202e-8 +VerifyEcdsaSecp256k1Signature/5/4/8,4.447574394366875e-5,4.447120385531457e-5,4.448016935400733e-5,1.4842651083356235e-8,1.1962254733242672e-8,1.862377678890701e-8 +VerifyEcdsaSecp256k1Signature/5/4/8,4.46908990668295e-5,4.4687005615179865e-5,4.4696219222544096e-5,1.528534539185563e-8,1.1549969009772657e-8,2.0998200970159034e-8 +VerifyEcdsaSecp256k1Signature/5/4/8,4.4296241336298565e-5,4.4290892613111e-5,4.4301411360172706e-5,1.8025859687790522e-8,1.5074319563156524e-8,2.1666227175890335e-8 +VerifyEcdsaSecp256k1Signature/5/4/8,4.3803727652679234e-5,4.3800205261258444e-5,4.380764401381036e-5,1.3011893340521773e-8,1.06189762359787e-8,1.826314951890416e-8 +VerifyEcdsaSecp256k1Signature/5/4/8,4.350781884640265e-5,4.350367913915185e-5,4.35133818780501e-5,1.639461411701631e-8,1.2798704302798672e-8,2.240008249380663e-8 +VerifyEcdsaSecp256k1Signature/5/4/8,4.464930487761307e-5,4.46455502171238e-5,4.465352421957896e-5,1.3513239182056082e-8,1.1383803945135363e-8,1.7213818141741715e-8 +VerifyEcdsaSecp256k1Signature/5/4/8,4.36554729660916e-5,4.365043139190439e-5,4.3660933549752705e-5,1.702952298454775e-8,1.3639297972286795e-8,2.2252887714101143e-8 +VerifyEcdsaSecp256k1Signature/5/4/8,4.4392806212630216e-5,4.438746971775949e-5,4.439905839050755e-5,1.9751502936421327e-8,1.5665731738777143e-8,2.4825439547585777e-8 +VerifyEcdsaSecp256k1Signature/5/4/8,4.427080259651086e-5,4.426702750532402e-5,4.4274957422426154e-5,1.3643305470875455e-8,1.0509965122778296e-8,1.8150918078745244e-8 +VerifyEcdsaSecp256k1Signature/5/4/8,4.41740575428499e-5,4.416814572106932e-5,4.417981277438516e-5,1.8622733720958113e-8,1.4865010972072637e-8,2.503942902530026e-8 +VerifyEcdsaSecp256k1Signature/5/4/8,4.449469891950614e-5,4.448934445383765e-5,4.4500279601621245e-5,1.913056598200744e-8,1.644357250115022e-8,2.3079944724443623e-8 +VerifyEcdsaSecp256k1Signature/5/4/8,4.4619442594925405e-5,4.46147580216778e-5,4.4626196403582846e-5,1.7766775268387538e-8,1.4748637802400866e-8,2.212423400099004e-8 +VerifySchnorrSecp256k1Signature/4/1/8,4.3073170213005534e-5,4.306841253115199e-5,4.30775608389909e-5,1.548964402093676e-8,1.34064998384334e-8,1.8291881197314506e-8 +VerifySchnorrSecp256k1Signature/4/2000/8,9.666247949464365e-5,9.665345166600902e-5,9.667115260345291e-5,2.89646795960854e-8,2.3020805694343435e-8,4.009043654909267e-8 +VerifySchnorrSecp256k1Signature/4/4000/8,1.49818692253427e-4,1.4980912704932317e-4,1.4982875855798508e-4,3.3006806994540595e-8,2.7865889483353674e-8,3.997720461411158e-8 +VerifySchnorrSecp256k1Signature/4/6000/8,2.0291499768067706e-4,2.0290291447723575e-4,2.029292293059157e-4,4.586998269834111e-8,3.6914810371784276e-8,5.8279418193214584e-8 +VerifySchnorrSecp256k1Signature/4/8000/8,2.554719437933893e-4,2.554537178956002e-4,2.5549429564933736e-4,6.745617563242106e-8,5.352612165962078e-8,9.805437742694609e-8 +VerifySchnorrSecp256k1Signature/4/10000/8,3.078728766456297e-4,3.078505536045344e-4,3.0790034438625064e-4,8.353847935304342e-8,5.87958208373037e-8,1.3180955845528897e-7 +VerifySchnorrSecp256k1Signature/4/12000/8,3.6018061467349557e-4,3.601553200951787e-4,3.6020043623266254e-4,7.61306538502753e-8,6.234664146825861e-8,9.60053834231518e-8 +VerifySchnorrSecp256k1Signature/4/14000/8,4.134670337252488e-4,4.1343147689576725e-4,4.1349559852511385e-4,1.0584546390125353e-7,8.258882455737085e-8,1.3571906447478234e-7 +VerifySchnorrSecp256k1Signature/4/16000/8,4.6509746876988595e-4,4.650617025984732e-4,4.6513430798293394e-4,1.2692352274537369e-7,1.0520455717013433e-7,1.6092320206837171e-7 +VerifySchnorrSecp256k1Signature/4/18000/8,5.176675348904891e-4,5.176341367804326e-4,5.177013015798598e-4,1.1425750974751589e-7,9.475811760650249e-8,1.5166261686996936e-7 +VerifySchnorrSecp256k1Signature/4/20000/8,5.709629736729647e-4,5.709173770547588e-4,5.710158193522334e-4,1.6958173648089172e-7,1.1964853797656348e-7,2.5161602334619777e-7 +VerifySchnorrSecp256k1Signature/4/22000/8,6.235457568090423e-4,6.235008594225913e-4,6.235805789087828e-4,1.3320975989336841e-7,1.1511320312961672e-7,1.7120034427918023e-7 +VerifySchnorrSecp256k1Signature/4/24000/8,6.767360205836107e-4,6.766855162692849e-4,6.76785182535488e-4,1.6038781838728088e-7,1.2433571392846519e-7,2.013500240502865e-7 +VerifySchnorrSecp256k1Signature/4/26000/8,7.273520096733886e-4,7.272740463206765e-4,7.274338290875899e-4,2.684830588555272e-7,2.0725920847792267e-7,3.3898263985967896e-7 +VerifySchnorrSecp256k1Signature/4/28000/8,7.805695286222512e-4,7.80496453116914e-4,7.806341809155008e-4,2.354399751605423e-7,1.8527790676919038e-7,3.247177533038122e-7 +VerifySchnorrSecp256k1Signature/4/30000/8,8.339222239268547e-4,8.33849265523644e-4,8.340329143598295e-4,2.951451298817938e-7,2.113300541148841e-7,4.6471996398924006e-7 +VerifySchnorrSecp256k1Signature/4/32000/8,8.867082758108301e-4,8.866234408383974e-4,8.868215674428502e-4,3.267737655064338e-7,2.2733953584409811e-7,4.871464591861777e-7 +VerifySchnorrSecp256k1Signature/4/34000/8,9.39433838283715e-4,9.3934505780477e-4,9.395420465699235e-4,3.3510384925373207e-7,2.589367081843128e-7,4.6613609249605804e-7 +VerifySchnorrSecp256k1Signature/4/36000/8,9.914740850591845e-4,9.913884588687166e-4,9.915694161603753e-4,3.129013847737768e-7,2.6165253390975875e-7,3.8313417005702025e-7 +VerifySchnorrSecp256k1Signature/4/38000/8,1.0443700047558719e-3,1.0443076355521716e-3,1.0444511079270434e-3,2.394369989820618e-7,1.8466197781583652e-7,3.4956752650161905e-7 +VerifySchnorrSecp256k1Signature/4/40000/8,1.097436396509879e-3,1.097354192116725e-3,1.0975418377113186e-3,3.15910175391184e-7,2.550811883007015e-7,4.312528626310063e-7 +VerifySchnorrSecp256k1Signature/4/42000/8,1.14835370374619e-3,1.148290784933161e-3,1.1484166849081662e-3,2.1255052529931572e-7,1.7707203248006248e-7,2.6108565786051034e-7 +VerifySchnorrSecp256k1Signature/4/44000/8,1.2029605287183008e-3,1.2028700596921854e-3,1.2030393804854833e-3,2.915595566801414e-7,2.425034606686805e-7,3.889192633365332e-7 +VerifySchnorrSecp256k1Signature/4/46000/8,1.2541635481083376e-3,1.2540672523726883e-3,1.2542652400704675e-3,3.2708263221267653e-7,2.808684204187836e-7,3.8220911441954023e-7 +VerifySchnorrSecp256k1Signature/4/48000/8,1.3074729648777147e-3,1.3073837068540682e-3,1.3075678319173806e-3,3.187121120638625e-7,2.6101095829775856e-7,4.019563362485642e-7 +VerifySchnorrSecp256k1Signature/4/50000/8,1.3594904303186569e-3,1.359404332198806e-3,1.3595955207556627e-3,3.187403721000251e-7,2.567227180827937e-7,4.098460241402369e-7 +VerifySchnorrSecp256k1Signature/4/52000/8,1.4133304872282813e-3,1.4132443687909758e-3,1.4134164603615146e-3,3.0443375468266683e-7,2.515207531873473e-7,3.8403889684462283e-7 +VerifySchnorrSecp256k1Signature/4/54000/8,1.4646732962700728e-3,1.4645492535886185e-3,1.464814563477359e-3,4.5848808409810776e-7,3.7815151963758387e-7,5.841887145387087e-7 +VerifySchnorrSecp256k1Signature/4/56000/8,1.51729594865476e-3,1.5171768110359722e-3,1.5174296125744203e-3,4.195935317914663e-7,3.1719382819226643e-7,5.459734673702124e-7 +VerifySchnorrSecp256k1Signature/4/58000/8,1.5707656232296719e-3,1.5706482912001664e-3,1.5709990657823366e-3,5.438883130137304e-7,3.2749963109366895e-7,9.585987357650323e-7 +VerifySchnorrSecp256k1Signature/4/60000/8,1.6228223908058524e-3,1.6227048107361384e-3,1.622919773548927e-3,3.672941841494438e-7,2.831919929906181e-7,5.216869150738213e-7 +VerifySchnorrSecp256k1Signature/4/62000/8,1.6755853984984671e-3,1.6754925145467136e-3,1.675689938276137e-3,3.471455645040889e-7,2.851789063916949e-7,4.529721808559538e-7 +VerifySchnorrSecp256k1Signature/4/64000/8,1.7283300686093434e-3,1.7281964104012115e-3,1.728461654601405e-3,4.4575108050230645e-7,3.6607902487815184e-7,5.64746265595271e-7 +VerifySchnorrSecp256k1Signature/4/66000/8,1.7812276146127932e-3,1.781128928807849e-3,1.7813672752151422e-3,4.0935979899871184e-7,3.063730556439278e-7,6.748777142166443e-7 +VerifySchnorrSecp256k1Signature/4/68000/8,1.8344743958756458e-3,1.8343304755768285e-3,1.8346839357874564e-3,5.99782581064504e-7,4.3694914715371846e-7,8.009355567639116e-7 +VerifySchnorrSecp256k1Signature/4/70000/8,1.8863969466142432e-3,1.8862326906464528e-3,1.8866198596518245e-3,6.234758952791384e-7,4.757108663112779e-7,9.116802254920649e-7 +VerifySchnorrSecp256k1Signature/4/72000/8,1.9394187532793003e-3,1.9392917405802702e-3,1.9396067319026812e-3,5.350952959671535e-7,3.7554383890097866e-7,8.160538801145992e-7 +VerifySchnorrSecp256k1Signature/4/74000/8,1.9917222756478917e-3,1.9914824885813873e-3,1.992056791120771e-3,9.156036208626255e-7,6.365542516013227e-7,1.505780338176451e-6 +VerifySchnorrSecp256k1Signature/4/76000/8,2.0438201668172553e-3,2.0436632647283194e-3,2.0440079574992344e-3,5.897975228353844e-7,4.5810953463706065e-7,8.001612004952424e-7 +VerifySchnorrSecp256k1Signature/4/78000/8,2.097602594976556e-3,2.097351396487219e-3,2.097850368315934e-3,8.671967725683421e-7,7.298164861102402e-7,1.0555236937004725e-6 +VerifySchnorrSecp256k1Signature/4/80000/8,2.148874274987866e-3,2.1486837619124166e-3,2.1494117933888494e-3,9.719054730655496e-7,4.845670784606284e-7,1.9762007736144055e-6 +VerifySchnorrSecp256k1Signature/4/82000/8,2.2001228912779734e-3,2.1999477961584402e-3,2.2003527814035253e-3,6.243709510249771e-7,4.842675698550639e-7,9.954216670779698e-7 +VerifySchnorrSecp256k1Signature/4/84000/8,2.2543856773847427e-3,2.2541630972627955e-3,2.254694300891389e-3,8.923251999475431e-7,6.343357757265837e-7,1.4976793441716615e-6 +VerifySchnorrSecp256k1Signature/4/86000/8,2.3058126328841e-3,2.3056763508634637e-3,2.3059859704293376e-3,5.079872156800514e-7,4.0194354477494923e-7,6.79920431751927e-7 +VerifySchnorrSecp256k1Signature/4/88000/8,2.359669576943573e-3,2.35945411778116e-3,2.3601051307785086e-3,9.728018687069496e-7,5.340300021113327e-7,1.897862299860408e-6 +VerifySchnorrSecp256k1Signature/4/90000/8,2.4101807856289734e-3,2.410031113279387e-3,2.4103648359649964e-3,5.431317094271825e-7,4.5663271543192686e-7,7.207917531534794e-7 +VerifySchnorrSecp256k1Signature/4/92000/8,2.4653051069351804e-3,2.4647387991774544e-3,2.467562101189395e-3,2.9432167539712517e-6,7.332530925689702e-7,6.274520555720347e-6 +VerifySchnorrSecp256k1Signature/4/94000/8,2.5172359669630453e-3,2.517044906610194e-3,2.51743687215826e-3,6.704529907508809e-7,5.293117306718697e-7,8.707592575026202e-7 +VerifySchnorrSecp256k1Signature/4/96000/8,2.570603454295144e-3,2.570403713432212e-3,2.570850187173449e-3,7.52772460526557e-7,5.390379453747942e-7,1.0384292002220341e-6 +VerifySchnorrSecp256k1Signature/4/98000/8,2.622903947277115e-3,2.6227070759348194e-3,2.6230713994512427e-3,6.075396195456346e-7,4.779080991011922e-7,8.465333741770199e-7 +Sha2_256/1,1.067651794610476e-6,1.0666870623685412e-6,1.0684161491323117e-6,2.8507808420880363e-9,2.3894300620840017e-9,3.4160060023753116e-9 +Sha2_256/200,5.649191303838384e-6,5.639708158642992e-6,5.672008660184766e-6,4.696431960563922e-8,2.044468385020643e-8,7.630013926874926e-8 +Sha2_256/400,1.0130844860731564e-5,1.0130033130746362e-5,1.013161571006199e-5,2.6654021161115375e-9,2.282567482327459e-9,3.2499205591592146e-9 +Sha2_256/600,1.4673872792665013e-5,1.4671995777621226e-5,1.4675741717572728e-5,6.631724703104382e-9,5.66305321373165e-9,8.994524902589943e-9 +Sha2_256/800,1.914950845556476e-5,1.914741534312963e-5,1.9151828765269912e-5,7.510619605685495e-9,6.194425987867821e-9,9.752368828829223e-9 +Sha2_256/1000,2.3635153867302868e-5,2.3632670168531597e-5,2.363803847766952e-5,8.875579462407104e-9,7.099019730971473e-9,1.1663803653208131e-8 +Sha2_256/1200,2.8137836561491956e-5,2.813471282129458e-5,2.814063102579779e-5,1.0158907104643283e-8,8.317939468384035e-9,1.368932242849195e-8 +Sha2_256/1400,3.263898571348119e-5,3.263677283257774e-5,3.264141604110171e-5,7.889707597124873e-9,6.717073849161562e-9,9.656822233874814e-9 +Sha2_256/1600,3.715522024601471e-5,3.715162438923163e-5,3.716022523399207e-5,1.4239187503293566e-8,1.0152111691969621e-8,1.888990046416505e-8 +Sha2_256/1800,4.166320580886877e-5,4.165950999201272e-5,4.166697138005342e-5,1.2555147985074707e-8,1.0053928680215113e-8,1.687096848940443e-8 +Sha2_256/2000,4.6164579466734965e-5,4.616100783992991e-5,4.616806354290696e-5,1.2189542515695185e-8,9.820239499128625e-9,1.636478539781096e-8 +Sha2_256/2200,5.067736051726348e-5,5.067370955645443e-5,5.0681492625794295e-5,1.3163567195332828e-8,1.0578325942027093e-8,1.6469783512613055e-8 +Sha2_256/2400,5.517068871883699e-5,5.5166921704199075e-5,5.517468114526624e-5,1.3100372155660076e-8,1.0486846441708404e-8,1.7977254336034548e-8 +Sha2_256/2600,5.968469003076755e-5,5.967969299495992e-5,5.9692444825357684e-5,1.997102633921177e-8,1.5044119130993695e-8,2.948966755657459e-8 +Sha2_256/2800,6.416470735670392e-5,6.41610731239273e-5,6.416919966199176e-5,1.3381394402951972e-8,1.1263405349636458e-8,1.5799526556401087e-8 +Sha2_256/3000,6.865764263129871e-5,6.865302203086527e-5,6.866218761632225e-5,1.5411367570774918e-8,1.1923218929418107e-8,2.182526326982502e-8 +Sha2_256/3200,7.316513849889103e-5,7.315920181967663e-5,7.317305043095742e-5,2.346015476433058e-8,1.891996774881124e-8,3.0993311498997685e-8 +Sha2_256/3400,7.766330148310854e-5,7.765686594442031e-5,7.76732310739999e-5,2.7143660905307936e-8,2.016424938676831e-8,3.6773960839307586e-8 +Sha2_256/3600,8.215803855041013e-5,8.215145451480372e-5,8.216676721212217e-5,2.5521020641392423e-8,2.032933953473488e-8,3.410637283599979e-8 +Sha2_256/3800,8.665553484337262e-5,8.66511365993791e-5,8.666022106269591e-5,1.5873049493224196e-8,1.3465397748998845e-8,1.9393842733145848e-8 +Sha2_256/4000,9.115448723605085e-5,9.114957413508816e-5,9.1160428616841e-5,1.8845569651558254e-8,1.5220090635049167e-8,2.6614536705448543e-8 +Sha2_256/4200,9.565631318102577e-5,9.565043326584213e-5,9.566280827196532e-5,2.114543562377059e-8,1.7656768077468402e-8,2.7391394836657436e-8 +Sha2_256/4400,1.0017043930883274e-4,1.0016311241785326e-4,1.0017958612301697e-4,2.7721596615569235e-8,2.0570017675851503e-8,4.259223625330039e-8 +Sha2_256/4600,1.0471902264333072e-4,1.0467236827277815e-4,1.0488938438591179e-4,2.830662005913254e-7,3.718516293656375e-8,5.984023209636493e-7 +Sha2_256/4800,1.0916628021895976e-4,1.091583485553461e-4,1.0917640735905843e-4,2.82731165395645e-8,2.2128474520951815e-8,3.825453346412289e-8 +Sha2_256/5000,1.1365528545178857e-4,1.136455927877361e-4,1.1366386584349675e-4,2.8774080986740135e-8,2.3011012757413957e-8,3.949610713442737e-8 +Sha2_256/5200,1.1836738008478538e-4,1.1818008590939846e-4,1.192114389824853e-4,1.135178297732986e-6,9.300965615393541e-8,2.5980276542398718e-6 +Sha2_256/5400,1.22919257591443e-4,1.226545202258362e-4,1.2348961240765652e-4,1.2295329044985464e-6,3.5298456856152755e-8,2.123284939098955e-6 +Sha2_256/5600,1.2716967509919145e-4,1.2715872913954122e-4,1.271805537580664e-4,3.823852728215211e-8,3.0703749616009096e-8,5.054162729929018e-8 +Sha2_256/5800,1.318192428088024e-4,1.3166450449658926e-4,1.3242568953906374e-4,9.855807978796029e-7,3.3770958155003745e-8,2.0927980043646948e-6 +Sha2_256/6000,1.3678241588258524e-4,1.3617464745108396e-4,1.383357575984135e-4,2.899059709075287e-6,1.4659218605284892e-6,5.794026153627096e-6 +Sha2_256/6200,1.412211687596235e-4,1.408291695310689e-4,1.4207403844312012e-4,1.9610482786426214e-6,9.080922630038396e-7,3.2141691792852085e-6 +Sha2_256/6400,1.4518771868358968e-4,1.4517043028103543e-4,1.4522759579803333e-4,8.481898740581027e-8,5.169273314574928e-8,1.4540532144179293e-7 +Sha2_256/6600,1.4965049520648246e-4,1.4963846346233191e-4,1.496626900809554e-4,4.058859933603674e-8,3.27492068690217e-8,5.125817559242081e-8 +Sha2_256/6800,1.54563330649789e-4,1.5417609436086307e-4,1.5609706713950113e-4,2.4878606034480583e-6,3.628331391375702e-8,5.285940258382351e-6 +Sha2_256/7000,1.588704199876982e-4,1.5863236448118007e-4,1.5936498206757649e-4,1.0949238259858045e-6,3.547906887609105e-8,1.8441924060473907e-6 +Sha2_256/7200,1.6319787964152663e-4,1.6318221958510747e-4,1.6321507160427825e-4,5.561600736865376e-8,4.481740308840921e-8,6.934669800972741e-8 +Sha2_256/7400,1.6798931556991287e-4,1.6766223107632315e-4,1.696133289104481e-4,2.1015961001016306e-6,3.810416096758729e-8,4.821716956243893e-6 +Sha2_256/7600,1.727104481622527e-4,1.722981480985743e-4,1.7402819377392457e-4,2.3199401063312433e-6,8.560419185744397e-7,4.614640060637869e-6 +Sha2_256/7800,1.7668858514451134e-4,1.7665073197926478e-4,1.7683135639658785e-4,2.1832999600410327e-7,4.5514144922311716e-8,4.524384683680223e-7 +Sha2_256/8000,1.8123634714772323e-4,1.811874600647314e-4,1.8142193427040434e-4,2.908576584766426e-7,5.59561638440473e-8,6.060019324045765e-7 +Sha2_256/8200,1.8673405485614714e-4,1.858332063985876e-4,1.891934091647337e-4,4.458778542761902e-6,1.76094702877573e-6,9.14910440022392e-6 +Sha2_256/8400,1.9048051856781023e-4,1.9019030460632312e-4,1.9185542777015168e-4,1.7420936706279173e-6,7.10410316710408e-8,3.959629593436911e-6 +Sha2_256/8600,1.948213610631983e-4,1.9469764470911075e-4,1.9540509472136425e-4,7.64450147339374e-7,4.5107051250943206e-8,1.753610647563987e-6 +Sha2_256/8800,1.9938719261430434e-4,1.991770258118266e-4,1.9995026740026315e-4,1.021102696882504e-6,5.618605074804274e-8,1.995008284647704e-6 +Sha2_256/9000,2.0407701307756918e-4,2.0376549619210342e-4,2.0536615913715784e-4,1.7832888400252114e-6,3.4982603784133255e-7,3.654152082009709e-6 +Sha2_256/9200,2.111071303846655e-4,2.0924348041885665e-4,2.1472712186510436e-4,8.636749552945106e-6,4.96848098731131e-6,1.3199717277514328e-5 +Sha2_256/9400,2.1288232434177613e-4,2.1267671555831895e-4,2.1357621886151443e-4,1.1558447897717378e-6,6.164212117857168e-8,2.3883095737646145e-6 +Sha2_256/9600,2.1793858576315316e-4,2.1736777494153287e-4,2.192618712148003e-4,2.695533445561045e-6,7.075520775025437e-7,4.7661836762908015e-6 +Sha2_256/9800,2.2264256025699168e-4,2.2196720326706634e-4,2.245382938764377e-4,3.67898592575781e-6,1.382629567182211e-6,7.150535816454406e-6 +Sha3_256/1,2.117647230905011e-6,2.1158467132821154e-6,2.1198678711185772e-6,6.961628791618705e-9,5.837377344235039e-9,7.931888041300392e-9 +Sha3_256/200,1.464711912419142e-5,1.464523909582366e-5,1.4649043689882705e-5,6.386751820306167e-9,5.565701383981941e-9,7.488328570814358e-9 +Sha3_256/400,2.784931397040368e-5,2.78459989178284e-5,2.7852721582490205e-5,1.1679849592910661e-8,9.420950593018415e-9,1.5085999318910244e-8 +Sha3_256/600,4.103012401374651e-5,4.102647086642509e-5,4.103397006840228e-5,1.2351409806884832e-8,1.0201967974963958e-8,1.5441693762240335e-8 +Sha3_256/800,5.421816489132766e-5,5.421211264639966e-5,5.422651344593998e-5,2.2422611527003373e-8,1.7673810246566122e-8,2.9713173491848218e-8 +Sha3_256/1000,6.629756861505278e-5,6.628921846458842e-5,6.630691009669707e-5,3.038296719654637e-8,2.507349137604858e-8,3.8143689907383526e-8 +Sha3_256/1200,7.949586970924405e-5,7.948883699277332e-5,7.950573914392481e-5,2.7905581177799783e-8,2.177268018747966e-8,3.628113224973218e-8 +Sha3_256/1400,9.265648334567948e-5,9.264077300295697e-5,9.267009898315557e-5,4.8764045253631354e-8,3.892002375059978e-8,6.797192348141282e-8 +Sha3_256/1600,1.058278081472228e-4,1.058153825824658e-4,1.0584583977049053e-4,4.692259995796497e-8,3.38583617836901e-8,7.296813400315175e-8 +Sha3_256/1800,1.1792595484342745e-4,1.1790534854487968e-4,1.1794602867000602e-4,6.849986090311752e-8,5.241626426821688e-8,9.664565732306254e-8 +Sha3_256/2000,1.31129104052916e-4,1.3110552352321104e-4,1.3115925295903745e-4,8.697662353191638e-8,6.791669518205049e-8,1.228279057694343e-7 +Sha3_256/2200,1.4423228059336904e-4,1.4417225629508468e-4,1.4427506313625861e-4,1.6699769157980675e-7,1.1250245601705415e-7,2.5731430715140616e-7 +Sha3_256/2400,1.574398693010513e-4,1.5741339382109622e-4,1.574639938297267e-4,8.747794161619745e-8,6.632618982122222e-8,1.1279777465132215e-7 +Sha3_256/2600,1.695314920743963e-4,1.6949870638153722e-4,1.695661016235665e-4,1.0609128944710221e-7,7.856725250326243e-8,1.5563255574529934e-7 +Sha3_256/2800,1.8264890718395487e-4,1.8261828031005797e-4,1.8267981637483445e-4,9.830486392198659e-8,7.862118267314189e-8,1.305198475430703e-7 +Sha3_256/3000,1.9583969497170573e-4,1.9577398419652882e-4,1.9587344337448592e-4,1.5212732720804656e-7,8.184190623043663e-8,2.856610133614931e-7 +Sha3_256/3200,2.0899576651760139e-4,2.0895985037704956e-4,2.0902454909737318e-4,1.1388569380979471e-7,9.229202944093744e-8,1.4780815248259204e-7 +Sha3_256/3400,2.221612570806797e-4,2.2211991572876962e-4,2.2220129969420405e-4,1.3831857537201785e-7,1.1489077365394009e-7,1.7197450865731717e-7 +Sha3_256/3600,2.3421836354963458e-4,2.3418443891448225e-4,2.3426524839242018e-4,1.311554844801287e-7,9.237978372706478e-8,2.0037289090023897e-7 +Sha3_256/3800,2.4745022204411934e-4,2.4739386976888825e-4,2.4748614939877774e-4,1.4966714265571091e-7,1.1076953309274896e-7,2.3594239751001362e-7 +Sha3_256/4000,2.606669651262e-4,2.6061570535204664e-4,2.6073809840113955e-4,2.0070813388388368e-7,1.4572845747499428e-7,3.0573196925499463e-7 +Sha3_256/4200,2.7388196073029e-4,2.738284961182463e-4,2.739493767180891e-4,2.1312886769394423e-7,1.6975105708149663e-7,2.938756998953009e-7 +Sha3_256/4400,2.8586284229988686e-4,2.8581786193813594e-4,2.859169853253572e-4,1.6722976114382826e-7,1.375869823803982e-7,2.1128952538654002e-7 +Sha3_256/4600,2.990738818126712e-4,2.9902926014514823e-4,2.991247059155209e-4,1.5984312807188694e-7,1.2686684942155062e-7,2.0311355403054935e-7 +Sha3_256/4800,3.1225156490371147e-4,3.121865066728927e-4,3.1233975892311973e-4,2.4120591949024493e-7,1.7785457246692848e-7,3.5230083500758074e-7 +Sha3_256/5000,3.25335231432769e-4,3.2527155998396276e-4,3.254578642076457e-4,2.9606775932321464e-7,1.6863857657051896e-7,5.396489558310433e-7 +Sha3_256/5200,3.3746537376657445e-4,3.374275016605256e-4,3.3750609202820624e-4,1.276257255602598e-7,1.0515646096856741e-7,1.6197912599887456e-7 +Sha3_256/5400,3.50697107956151e-4,3.506411268196038e-4,3.507921176248751e-4,2.3413364894196728e-7,1.6327151300730586e-7,3.865491465149923e-7 +Sha3_256/5600,3.637857664308699e-4,3.637099463456359e-4,3.6386155302372446e-4,2.480800240511551e-7,2.0583218358838984e-7,3.132357792390619e-7 +Sha3_256/5800,3.7687195041563506e-4,3.7657224608357315e-4,3.7695652556589973e-4,4.831463769268513e-7,1.6056410363569612e-7,9.914477214861185e-7 +Sha3_256/6000,3.889710961359077e-4,3.889017271079949e-4,3.890406828130226e-4,2.358156141252127e-7,1.8813300332701286e-7,3.155710462775909e-7 +Sha3_256/6200,4.0204475394020367e-4,4.0147493972212637e-4,4.022608373054981e-4,1.1232484277609165e-6,4.3970093586792216e-7,2.276527025898698e-6 +Sha3_256/6400,4.153172670349347e-4,4.152414189518934e-4,4.1539944500757294e-4,2.6573659186938447e-7,2.111968811785249e-7,3.6786269728629094e-7 +Sha3_256/6600,4.2855668887164464e-4,4.284944780442629e-4,4.2863540456637646e-4,2.3254362240007875e-7,1.899727104775119e-7,3.35933042435656e-7 +Sha3_256/6800,4.41629828633469e-4,4.4151551475196226e-4,4.417246210972109e-4,3.4284113011748007e-7,2.753405262979706e-7,4.5712990067549715e-7 +Sha3_256/7000,4.53806539318885e-4,4.537225266477593e-4,4.5389841561635947e-4,3.1234849065315525e-7,2.508316543780599e-7,3.85637831015232e-7 +Sha3_256/7200,4.668985965069414e-4,4.667852610839834e-4,4.6699243863881587e-4,3.48000346791318e-7,2.7146739046223217e-7,4.2523749631133123e-7 +Sha3_256/7400,4.8012746542007504e-4,4.8003201337469054e-4,4.80237710645013e-4,3.491831296889141e-7,2.813887065661294e-7,4.3464578470593356e-7 +Sha3_256/7600,4.934015528522342e-4,4.932792795737461e-4,4.935564339757561e-4,4.606990908718741e-7,3.561892740960451e-7,6.151670613523716e-7 +Sha3_256/7800,5.053969018542353e-4,5.052801589970046e-4,5.055590887401604e-4,4.672453032272163e-7,3.61440797634841e-7,6.139828407722837e-7 +Sha3_256/8000,5.186623692547193e-4,5.184842343254966e-4,5.189277376457474e-4,7.164021382685395e-7,5.162827916548945e-7,1.1510806072453415e-6 +Sha3_256/8200,5.317994309940837e-4,5.316710249533805e-4,5.319240767723003e-4,4.19187816459191e-7,3.071356085705709e-7,5.781722680744463e-7 +Sha3_256/8400,5.44947542686428e-4,5.447682406148628e-4,5.45178044778848e-4,6.547018491081144e-7,4.556372881412235e-7,1.014437120329064e-6 +Sha3_256/8600,5.572088980671678e-4,5.570318420600504e-4,5.574707016993665e-4,7.283090819314811e-7,5.180428374368927e-7,1.2146728049242095e-6 +Sha3_256/8800,5.700253877095637e-4,5.697180895732058e-4,5.701751010468454e-4,7.229635422389857e-7,3.939506832161364e-7,1.3867257022713418e-6 +Sha3_256/9000,5.831266938075111e-4,5.829797424483734e-4,5.832196358668442e-4,3.878397755860185e-7,2.8931241555409556e-7,6.329626239120747e-7 +Sha3_256/9200,5.964057432049122e-4,5.96144122849303e-4,5.967420257865339e-4,9.210376347903511e-7,6.610942124771003e-7,1.515141038480385e-6 +Sha3_256/9400,6.086355318460027e-4,6.084759685881056e-4,6.088519117053245e-4,6.208600918751837e-7,4.490429291249328e-7,9.581651409136628e-7 +Sha3_256/9600,6.213730538298059e-4,6.20621894776798e-4,6.216317209327355e-4,1.3096507370129664e-6,5.874484798931401e-7,2.704739834968574e-6 +Sha3_256/9800,6.351092634778896e-4,6.347547327112569e-4,6.35468672639552e-4,1.2249417252461092e-6,9.262082814440205e-7,1.882976941917503e-6 +Blake2b_224/1,9.25032841764756e-7,9.244827885119563e-7,9.255846118445374e-7,1.8929061956217593e-9,1.526802687078252e-9,2.411732359420645e-9 +Blake2b_224/200,2.5509396547990376e-6,2.5502502108604283e-6,2.5516176478656787e-6,2.2526341733248616e-9,1.8769468144442924e-9,3.060057256612775e-9 +Blake2b_224/400,4.148136233267545e-6,4.1475556226523e-6,4.14878321343833e-6,1.9933066831283165e-9,1.6003244284772194e-9,2.486963694622195e-9 +Blake2b_224/600,5.913953992773672e-6,5.912801659677383e-6,5.915352417585084e-6,4.170416387397575e-9,3.6175245354996644e-9,4.9196423292160785e-9 +Blake2b_224/800,7.485425619184099e-6,7.484357687235467e-6,7.486280260077514e-6,3.1538168307651205e-9,2.6825286684681263e-9,3.9001460785908274e-9 +Blake2b_224/1000,9.193080238328275e-6,9.192284650000773e-6,9.193839785111827e-6,2.5525881668845484e-9,2.0935252268532188e-9,3.4660738898963468e-9 +Blake2b_224/1200,1.0799886078691354e-5,1.0798848838234417e-5,1.0801064227101284e-5,3.7041931762148376e-9,3.0378059396823184e-9,4.928634582556396e-9 +Blake2b_224/1400,1.2520970975850852e-5,1.2519723062697263e-5,1.2522384408724781e-5,4.445443416242873e-9,3.7077355294207184e-9,5.764471848981395e-9 +Blake2b_224/1600,1.4139681601224627e-5,1.4138259989328275e-5,1.4141633903649052e-5,5.203153598085651e-9,3.97420430184474e-9,7.318248936450898e-9 +Blake2b_224/1800,1.5869657833690935e-5,1.5868290318444657e-5,1.5871130645722794e-5,4.969050214483436e-9,3.911985963230921e-9,7.035696739725721e-9 +Blake2b_224/2000,1.7468139306921914e-5,1.7466873289329358e-5,1.746933277840723e-5,4.244777306588435e-9,3.6078472270013987e-9,5.001536059214115e-9 +Blake2b_224/2200,1.919493954703431e-5,1.9192997921889842e-5,1.919741470377193e-5,7.160374958692469e-9,5.405403079383964e-9,1.1513784986813132e-8 +Blake2b_224/2400,2.079454078911476e-5,2.0793003175973318e-5,2.0796091442925804e-5,5.361473426167338e-9,4.433792609371267e-9,6.905677874135868e-9 +Blake2b_224/2600,2.2520344803444797e-5,2.2518556667774248e-5,2.2522119608854866e-5,6.166630606000151e-9,4.9671704671166115e-9,7.874825516726196e-9 +Blake2b_224/2800,2.4121165286400863e-5,2.4119175212638507e-5,2.412306796779207e-5,6.627067353822339e-9,5.499505985491156e-9,8.58131370141873e-9 +Blake2b_224/3000,2.5841074249795083e-5,2.583889659973458e-5,2.5843551032188824e-5,7.818702238084049e-9,6.376499378727802e-9,9.481190851350368e-9 +Blake2b_224/3200,2.7441905313432314e-5,2.7439815112348423e-5,2.7444220912292948e-5,7.544134213312972e-9,5.7073070652638006e-9,1.0444652983093332e-8 +Blake2b_224/3400,2.915614116556614e-5,2.915371840597419e-5,2.9158760859116153e-5,8.566104594119617e-9,6.8195409207833026e-9,1.1742680608595732e-8 +Blake2b_224/3600,3.0762544898505035e-5,3.075996620893718e-5,3.076518722804065e-5,9.007666385687729e-9,7.567866761926353e-9,1.1112062207493532e-8 +Blake2b_224/3800,3.248430792887206e-5,3.2482174262941735e-5,3.248630516506202e-5,7.3226390668569445e-9,5.942988120431423e-9,9.36482231087117e-9 +Blake2b_224/4000,3.4078587395118055e-5,3.4075888347580685e-5,3.408124580807291e-5,9.092842426391801e-9,7.2393765102117345e-9,1.1793047320900884e-8 +Blake2b_224/4200,3.580671953918458e-5,3.580436703453651e-5,3.580920242105279e-5,8.04094203563492e-9,6.702071117758466e-9,1.0090308952374298e-8 +Blake2b_224/4400,3.741435482999072e-5,3.7410896508986266e-5,3.741844821913949e-5,1.235252501008482e-8,9.930221094373998e-9,1.6678963332281147e-8 +Blake2b_224/4600,3.9119886662713665e-5,3.9116687208389684e-5,3.912343884019135e-5,1.1077778712357098e-8,8.485419324945596e-9,1.4644452877141215e-8 +Blake2b_224/4800,4.0729016844814405e-5,4.072616452858054e-5,4.073233846514729e-5,1.0661127235055047e-8,8.449422394454789e-9,1.3444925934589854e-8 +Blake2b_224/5000,4.244783140212339e-5,4.244399881046928e-5,4.2451315928382736e-5,1.2074902009196135e-8,9.569257553584317e-9,1.729429544334907e-8 +Blake2b_224/5200,4.405307084706955e-5,4.404998094126857e-5,4.4056660458762536e-5,1.1275316264807688e-8,9.067818802218708e-9,1.4648754684283159e-8 +Blake2b_224/5400,4.577902292318041e-5,4.577327937935076e-5,4.579118670317893e-5,2.7215536553192504e-8,1.3144747290715609e-8,5.189124374587941e-8 +Blake2b_224/5600,4.737329183840336e-5,4.73688094533599e-5,4.738038284780244e-5,1.8837193197201467e-8,1.3217801052802137e-8,3.011438491419553e-8 +Blake2b_224/5800,4.909457538014854e-5,4.909116381057828e-5,4.910040844452597e-5,1.4890310642973898e-8,9.4946912195334e-9,2.5373530089912863e-8 +Blake2b_224/6000,5.069550279154855e-5,5.0691434988553674e-5,5.070146923332856e-5,1.561430854982115e-8,1.25416290611296e-8,2.2010288166859517e-8 +Blake2b_224/6200,5.242767740567296e-5,5.242325452451483e-5,5.243252986203105e-5,1.5507520613181356e-8,1.240392909140757e-8,2.0202601984074432e-8 +Blake2b_224/6400,5.402681718307027e-5,5.402211265725235e-5,5.403231722290441e-5,1.8006644030108292e-8,1.3015915405135902e-8,2.5352736709368614e-8 +Blake2b_224/6600,5.575568427058693e-5,5.574840456560702e-5,5.576714165015345e-5,2.9948349591475735e-8,1.7045392964659613e-8,4.596956142907791e-8 +Blake2b_224/6800,5.735001515180081e-5,5.734350350278286e-5,5.735828759314301e-5,2.537303096381584e-8,1.8844654148692743e-8,3.642187046706681e-8 +Blake2b_224/7000,5.906348654123002e-5,5.905557042927046e-5,5.9070654974313774e-5,2.572870151147676e-8,2.1213329891042316e-8,3.333026969896828e-8 +Blake2b_224/7200,6.066544495001549e-5,6.065973438312578e-5,6.0672591547561604e-5,2.0730709226014187e-8,1.5052597884366712e-8,3.222107781360412e-8 +Blake2b_224/7400,6.239030316612055e-5,6.238511116159559e-5,6.23959719272528e-5,1.8892839863468325e-8,1.4385538189433829e-8,2.647295885438185e-8 +Blake2b_224/7600,6.398597690726722e-5,6.398038916284678e-5,6.399620109576145e-5,2.4113178489192294e-8,1.5802844138665897e-8,4.04053956878225e-8 +Blake2b_224/7800,6.57231576260093e-5,6.571845906407351e-5,6.572946834061093e-5,1.8154250940666737e-8,1.4456134214369726e-8,2.6025593646655316e-8 +Blake2b_224/8000,6.733023490987417e-5,6.730583787356035e-5,6.741920340524608e-5,1.489560872521485e-7,1.6687456248149957e-8,3.155225352750528e-7 +Blake2b_224/8200,6.903624339715154e-5,6.903112491668858e-5,6.904228884938845e-5,1.97847943306887e-8,1.5221472769256234e-8,2.5330844915914054e-8 +Blake2b_224/8400,7.063123204745744e-5,7.062551751591822e-5,7.063747675058379e-5,2.0251700194986622e-8,1.6553377980499552e-8,2.4751484096259415e-8 +Blake2b_224/8600,7.23798515614181e-5,7.23728940147913e-5,7.239101380882414e-5,3.066911049635162e-8,1.7079022569148394e-8,5.480903458382393e-8 +Blake2b_224/8800,7.396745242506352e-5,7.396095815024544e-5,7.397699493165534e-5,2.626463418078679e-8,1.8343951795138835e-8,3.9156203776609985e-8 +Blake2b_224/9000,7.56841914577807e-5,7.567742595757783e-5,7.569329942709193e-5,2.7822494713789435e-8,1.9885745763074563e-8,3.946171936760201e-8 +Blake2b_224/9200,7.727310560736041e-5,7.726651290092837e-5,7.728050971445915e-5,2.2774094892018744e-8,1.8602328763425123e-8,3.0126306695551176e-8 +Blake2b_224/9400,7.901652478778594e-5,7.900830657830708e-5,7.902774319136404e-5,3.355310817559939e-8,2.5612598337253977e-8,5.2421285789416745e-8 +Blake2b_224/9600,8.060532398690048e-5,8.059881421328001e-5,8.061232049229937e-5,2.1373214677243814e-8,1.75026967376688e-8,2.690845855059467e-8 +Blake2b_224/9800,8.234890475358046e-5,8.234226823304926e-5,8.2355181870983e-5,2.2603392712584857e-8,1.8000333091137952e-8,3.013526102479723e-8 +Blake2b_256/1,9.289726384030006e-7,9.281138818955596e-7,9.297762774155712e-7,2.7330541500551252e-9,2.35239168601355e-9,3.323050865501237e-9 +Blake2b_256/200,2.5512162456638233e-6,2.5505301894163337e-6,2.5517770733168407e-6,1.905368348286259e-9,1.6118266551317321e-9,2.3554414845621673e-9 +Blake2b_256/400,4.150339184297522e-6,4.1495539359293175e-6,4.1511490317732475e-6,2.762363065457183e-9,2.270305402344513e-9,3.5897191247514786e-9 +Blake2b_256/600,5.9261992578400156e-6,5.922609246163687e-6,5.936589657093488e-6,1.879155871649966e-8,7.66916166936692e-9,3.714128177337482e-8 +Blake2b_256/800,7.48989730545179e-6,7.488692364978926e-6,7.491273109647588e-6,4.414652559063744e-9,3.252462533913917e-9,6.9383095401288055e-9 +Blake2b_256/1000,9.195098371376028e-6,9.193485792444203e-6,9.196349814952899e-6,4.843664524217416e-9,3.838747238825388e-9,6.693899184350677e-9 +Blake2b_256/1200,1.0816580955929835e-5,1.081247408941117e-5,1.0828786220588944e-5,2.154841272165061e-8,7.830020208413012e-9,4.3192244284885806e-8 +Blake2b_256/1400,1.2528528520529328e-5,1.2526999876427658e-5,1.2530080669944868e-5,4.934933700692577e-9,4.225942183185667e-9,6.190783102827782e-9 +Blake2b_256/1600,1.4148586836511682e-5,1.4144909468156488e-5,1.4159033087168726e-5,1.9276327969223976e-8,9.419472165753243e-9,3.537894369738214e-8 +Blake2b_256/1800,1.5956041712674792e-5,1.595399564008754e-5,1.595913031556233e-5,7.93076834871157e-9,6.094717204910117e-9,1.0757126701575479e-8 +Blake2b_256/2000,1.7564947306273053e-5,1.7562870199862447e-5,1.7569650520479403e-5,9.849443878979127e-9,6.0455477043179256e-9,1.7971716836063618e-8 +Blake2b_256/2200,1.9314200010471616e-5,1.931206258919707e-5,1.9317512818186843e-5,8.399308542022202e-9,6.0560422134114e-9,1.3263238225966696e-8 +Blake2b_256/2400,2.0919374534511665e-5,2.0915023225020776e-5,2.0935329709795604e-5,2.4216918910084483e-8,6.962982614593486e-9,4.976083568350725e-8 +Blake2b_256/2600,2.2653533609653745e-5,2.2650040094440004e-5,2.2659276097002697e-5,1.4256547955536183e-8,7.997056601299033e-9,2.162338432661714e-8 +Blake2b_256/2800,2.425637484668233e-5,2.4254120187623493e-5,2.426012546205109e-5,9.965682028048488e-9,5.688135769796624e-9,1.4853057331238083e-8 +Blake2b_256/3000,2.5982482327656164e-5,2.5979554290425404e-5,2.599196666658256e-5,1.5352152646526133e-8,5.880764154273356e-9,3.229405030406488e-8 +Blake2b_256/3200,2.7596950522839598e-5,2.7594250862691867e-5,2.7601592168941692e-5,1.168344632799548e-8,6.489721749066046e-9,1.9909124856175506e-8 +Blake2b_256/3400,2.9337254185356957e-5,2.9331572018199403e-5,2.936015603923105e-5,3.394608023422051e-8,8.038726618459646e-9,7.064029849529665e-8 +Blake2b_256/3600,3.0938019670879306e-5,3.0933511636952406e-5,3.0946306427758234e-5,2.07412180531506e-8,1.2889697465890363e-8,3.5903863326786424e-8 +Blake2b_256/3800,3.267079631888045e-5,3.266793326027649e-5,3.267618833263114e-5,1.3194568139972568e-8,8.324776888295042e-9,2.2226411740290883e-8 +Blake2b_256/4000,3.4283404594099336e-5,3.427790179102287e-5,3.430030694906152e-5,2.9011019319909247e-8,1.4020398060324956e-8,5.820552158841914e-8 +Blake2b_256/4200,3.601552754477301e-5,3.601224757174251e-5,3.602494464322658e-5,1.7033045537345263e-8,6.9624167100915044e-9,3.295130379547966e-8 +Blake2b_256/4400,3.762097766589426e-5,3.761781805268734e-5,3.762646241196175e-5,1.3706324849886531e-8,8.685069467275546e-9,2.4305960823637967e-8 +Blake2b_256/4600,3.935708902659611e-5,3.935088537561289e-5,3.937635325639546e-5,3.26237412006532e-8,1.4215842001574468e-8,6.645129270155289e-8 +Blake2b_256/4800,4.096640426936438e-5,4.0962753484191244e-5,4.097623759751222e-5,1.8517874992854646e-8,7.727854609882312e-9,3.584026005646565e-8 +Blake2b_256/5000,4.268849034021808e-5,4.2685320488257354e-5,4.2694543565759184e-5,1.4172293953710075e-8,8.372333517020742e-9,2.585871867759338e-8 +Blake2b_256/5200,4.429855133835442e-5,4.429377836325428e-5,4.4315171373753694e-5,2.7529099523604295e-8,1.0961753794713548e-8,5.367137150808221e-8 +Blake2b_256/5400,4.6037226984908686e-5,4.603187367917492e-5,4.6046777043778774e-5,2.427847310902418e-8,1.4481880195399475e-8,3.946472904324773e-8 +Blake2b_256/5600,4.764474298893469e-5,4.764042359851072e-5,4.765274026251411e-5,1.82399213074689e-8,1.0777692762808334e-8,3.2312568682154445e-8 +Blake2b_256/5800,4.937640255657871e-5,4.936990271125516e-5,4.939763384316789e-5,3.4654069788976025e-8,7.713112078173121e-9,7.021766735621154e-8 +Blake2b_256/6000,5.098188009742185e-5,5.0976197172192135e-5,5.099549330503666e-5,2.5791882224582202e-8,1.3933629656745659e-8,4.595065953006827e-8 +Blake2b_256/6200,5.2709238190420295e-5,5.270357379860091e-5,5.27233720080086e-5,2.7207988995355236e-8,1.3314159880837581e-8,4.7662637904380355e-8 +Blake2b_256/6400,5.431314078173923e-5,5.43094390641869e-5,5.431844512929772e-5,1.518303647108834e-8,1.100587024855533e-8,2.1422025645470227e-8 +Blake2b_256/6600,5.6050064518934825e-5,5.60455108671772e-5,5.6057872997102826e-5,1.9190998572163165e-8,1.0671621526096145e-8,3.183795200589128e-8 +Blake2b_256/6800,5.766230220124518e-5,5.76567313814619e-5,5.767194555599089e-5,2.3757570722944174e-8,1.5155036225327474e-8,4.0769295888800616e-8 +Blake2b_256/7000,5.9397353016723696e-5,5.938841402582762e-5,5.942447508680375e-5,4.831361859186207e-8,1.3740763684005936e-8,1.0521068855496576e-7 +Blake2b_256/7200,6.099726900051409e-5,6.0990633767817994e-5,6.1012116941403336e-5,3.185195118414369e-8,1.4063344861486461e-8,5.979424970487585e-8 +Blake2b_256/7400,6.273200143784513e-5,6.272670896781132e-5,6.274367529320596e-5,2.5797934572564404e-8,1.2659659533627229e-8,4.6208418880403974e-8 +Blake2b_256/7600,6.433155593291861e-5,6.432140475697789e-5,6.43604410677939e-5,5.757520817916718e-8,1.7892446328316484e-8,1.1579774444423305e-7 +Blake2b_256/7800,6.607146730687112e-5,6.606433846652932e-5,6.609082361861229e-5,3.648789209018239e-8,1.3108966340769922e-8,7.137254610751448e-8 +Blake2b_256/8000,6.767625127140453e-5,6.767007397655953e-5,6.768977087806725e-5,2.921279489424629e-8,1.6136969802271e-8,5.2732569791883523e-8 +Blake2b_256/8200,6.942184466773333e-5,6.941723466527503e-5,6.94313142344144e-5,2.1024971502657355e-8,1.212953481260214e-8,3.697700845238979e-8 +Blake2b_256/8400,7.10288158852353e-5,7.102078690324736e-5,7.105399407742706e-5,3.971921536868832e-8,1.6763073835055213e-8,7.981213098151587e-8 +Blake2b_256/8600,7.274111451226062e-5,7.273477478559495e-5,7.275564147857297e-5,3.1134457024810465e-8,1.4920848067450153e-8,6.108890814865239e-8 +Blake2b_256/8800,7.43507258084518e-5,7.434292272978944e-5,7.436674121760777e-5,3.624190188256835e-8,1.8856286288636077e-8,5.9527371007684465e-8 +Blake2b_256/9000,7.609387337320933e-5,7.608335542319112e-5,7.612626502677076e-5,5.583728378166835e-8,2.0996223208286096e-8,1.1081540747754856e-7 +Blake2b_256/9200,7.769820254627278e-5,7.76884624648484e-5,7.77201837821198e-5,4.3797193931657564e-8,2.040132765988409e-8,8.72337807591972e-8 +Blake2b_256/9400,7.944574380257969e-5,7.943896744177474e-5,7.946125655915157e-5,3.3517810318746686e-8,1.967609374374e-8,5.758950442145617e-8 +Blake2b_256/9600,8.10240752512156e-5,8.101773516477208e-5,8.103574956835559e-5,2.8592691494339477e-8,1.820618088248159e-8,4.3782911592730996e-8 +Blake2b_256/9800,8.278266366310807e-5,8.277062529233556e-5,8.281447378064121e-5,5.8657812684206356e-8,1.705599305028143e-8,1.0885705823190974e-7 +Keccak_256/1,2.119623831983445e-6,2.117660478586161e-6,2.122113461127322e-6,7.524671478531214e-9,6.491188876939122e-9,8.813103167756211e-9 +Keccak_256/200,1.4721877673903402e-5,1.4719730700734344e-5,1.472408573692135e-5,7.0829879017795334e-9,5.980164754134391e-9,8.625342066974133e-9 +Keccak_256/400,2.7962337291186057e-5,2.79572710061507e-5,2.7966059366088044e-5,1.4488509314263026e-8,1.0062698546798829e-8,2.2862699936578618e-8 +Keccak_256/600,4.122216953537275e-5,4.121610914069026e-5,4.122856615196656e-5,2.204487098932394e-8,1.7805896434386402e-8,2.8188359278112574e-8 +Keccak_256/800,5.446504926626837e-5,5.445767511860011e-5,5.4471971727341354e-5,2.4216661999576982e-8,2.0145903679965356e-8,2.9384759309817776e-8 +Keccak_256/1000,6.660287230208622e-5,6.659519228475825e-5,6.661063456848946e-5,2.6330659027514988e-8,2.144958735724745e-8,3.3612435396420875e-8 +Keccak_256/1200,7.985504093006549e-5,7.983755533470616e-5,7.987066661323025e-5,5.364399813046491e-8,4.281332791131613e-8,8.105055877332382e-8 +Keccak_256/1400,9.30671249609664e-5,9.30528815991411e-5,9.308178573774219e-5,5.0690920700383593e-8,4.12441554585674e-8,6.378958408200087e-8 +Keccak_256/1600,1.0633117743382898e-4,1.063162644209116e-4,1.0634660228412888e-4,5.193602612006291e-8,4.415239181251957e-8,6.44546492869931e-8 +Keccak_256/1800,1.1844621837176336e-4,1.1839153262132107e-4,1.1847210384369906e-4,1.198756079814852e-7,6.610508247211608e-8,2.4206837839844757e-7 +Keccak_256/2000,1.3172059947288867e-4,1.3170222120911971e-4,1.3174341183204847e-4,6.60152099487471e-8,5.607549179518707e-8,7.940975328221068e-8 +Keccak_256/2200,1.449095898274287e-4,1.448817074037894e-4,1.4494131257255602e-4,9.808042338926033e-8,8.064045792858041e-8,1.190371001143189e-7 +Keccak_256/2400,1.5812392846838296e-4,1.5809254945352064e-4,1.5816876844344942e-4,1.2518771233240065e-7,9.133703154525395e-8,1.9022415305442618e-7 +Keccak_256/2600,1.7029016448054471e-4,1.7025081173864951e-4,1.703297557710343e-4,1.3011177129201348e-7,1.0585048311104424e-7,1.6095363088829407e-7 +Keccak_256/2800,1.8356269103440823e-4,1.8353515531902684e-4,1.8359043537277767e-4,9.844961695342981e-8,8.47473607822112e-8,1.2200434185993461e-7 +Keccak_256/3000,1.9675360169712879e-4,1.9672025683304938e-4,1.9678177741564524e-4,1.0211391617404305e-7,8.380597863208291e-8,1.3858924178524533e-7 +Keccak_256/3200,2.0990813225171552e-4,2.097521796622388e-4,2.0998041069049308e-4,3.6132843334535667e-7,1.114922331568578e-7,6.03144861678969e-7 +Keccak_256/3400,2.2325926003393217e-4,2.2321739859981082e-4,2.2330605202436438e-4,1.5446509585534276e-7,1.2973995544269371e-7,1.935446725008533e-7 +Keccak_256/3600,2.353373815455387e-4,2.3530234506815087e-4,2.3537469238071304e-4,1.2572421822597464e-7,1.0171111371471706e-7,1.5240877149100225e-7 +Keccak_256/3800,2.486456782348034e-4,2.486049500438277e-4,2.487008656481357e-4,1.566571909125953e-7,1.2080611366944928e-7,2.286017268694379e-7 +Keccak_256/4000,2.618355158034638e-4,2.6177847847590446e-4,2.619124776202961e-4,2.2159407282666748e-7,1.608747378861492e-7,3.2465448177595205e-7 +Keccak_256/4200,2.751008016780308e-4,2.750290550686042e-4,2.7517355294234315e-4,2.4724633677392134e-7,2.030597533128157e-7,3.1716777674880106e-7 +Keccak_256/4400,2.8717162933589716e-4,2.8710063642594134e-4,2.8725769229573996e-4,2.7179216337640555e-7,2.1274457817676775e-7,3.449525094466346e-7 +Keccak_256/4600,3.0042407418784465e-4,3.0034360450958633e-4,3.005170507406859e-4,3.1522158026299357e-7,2.330835267624681e-7,4.395871998466117e-7 +Keccak_256/4800,3.136595197934971e-4,3.1359620419072577e-4,3.1372587356129914e-4,2.144255714275525e-7,1.772061884971041e-7,2.751439845392758e-7 +Keccak_256/5000,3.269263768250619e-4,3.268355605071799e-4,3.270487971069652e-4,3.722047176980163e-7,2.6836472093930853e-7,5.388475443185922e-7 +Keccak_256/5200,3.390450187177213e-4,3.38969718614612e-4,3.391260992636029e-4,2.659961490371021e-7,2.1803643827519148e-7,3.286761361561406e-7 +Keccak_256/5400,3.523150176778696e-4,3.5224141849901397e-4,3.5240209237626124e-4,2.86619358141344e-7,2.3305527076626372e-7,3.592480609197271e-7 +Keccak_256/5600,3.654861811578465e-4,3.654064812364757e-4,3.6559153226235134e-4,3.092622117774618e-7,2.162763512461934e-7,4.5741449563031794e-7 +Keccak_256/5800,3.786402690066946e-4,3.78544439351023e-4,3.787837914926812e-4,3.943532203220792e-7,2.840522877039774e-7,5.609429258968762e-7 +Keccak_256/6000,3.908321334664644e-4,3.907532819103235e-4,3.909118821609757e-4,2.6504579168163514e-7,2.228000494764467e-7,3.389571725067302e-7 +Keccak_256/6200,4.040134793111861e-4,4.0393584095729915e-4,4.041308159423752e-4,3.299085568224466e-7,2.476243832905718e-7,5.28849673966441e-7 +Keccak_256/6400,4.172631315395638e-4,4.171461942171741e-4,4.1738169659969647e-4,4.00206075025579e-7,2.8788780749224664e-7,5.380199972527884e-7 +Keccak_256/6600,4.3059063777629386e-4,4.30467009908127e-4,4.3071607624981233e-4,4.106870692985207e-7,3.1211038098645897e-7,5.970544745788835e-7 +Keccak_256/6800,4.4374308241240055e-4,4.4363131419276886e-4,4.438729415487661e-4,4.0901395929125693e-7,3.172368262981864e-7,5.444264612405225e-7 +Keccak_256/7000,4.558121895940264e-4,4.5572707190212435e-4,4.559050108940514e-4,3.17568878657108e-7,2.50789799500706e-7,4.1553096201787394e-7 +Keccak_256/7200,4.68988635960248e-4,4.6880644293814796e-4,4.691365959396795e-4,5.600696302063653e-7,3.81752594791263e-7,7.692253195393041e-7 +Keccak_256/7400,4.8026474526214073e-4,4.801567124420958e-4,4.8047562214620083e-4,4.951814970238783e-7,3.3547898968977326e-7,8.636408271531464e-7 +Keccak_256/7600,4.935498481513838e-4,4.93372383707292e-4,4.938181671438769e-4,7.471268202536786e-7,4.878908500761037e-7,1.1968337190106889e-6 +Keccak_256/7800,5.055821624747794e-4,5.054337149288023e-4,5.057526434841085e-4,5.57612382867439e-7,4.4270973801636396e-7,7.308062754140309e-7 +Keccak_256/8000,5.185818218455894e-4,5.184862257447782e-4,5.186891433870532e-4,3.3709086339469424e-7,2.766336147601653e-7,4.2238913073595927e-7 +Keccak_256/8200,5.319399421084992e-4,5.317777892098493e-4,5.321704880105788e-4,6.341241519300168e-7,4.895927897766361e-7,9.752063168233087e-7 +Keccak_256/8400,5.449265121835385e-4,5.448125762634449e-4,5.450655913745658e-4,4.2970951747823554e-7,3.515655043408215e-7,5.511816608531647e-7 +Keccak_256/8600,5.57098422601323e-4,5.569714324896527e-4,5.572255729662767e-4,4.122196391575625e-7,3.5330467388592693e-7,4.883560504310679e-7 +Keccak_256/8800,5.702763901166564e-4,5.701510822171865e-4,5.704562690128669e-4,4.867448671885882e-7,3.446722598513142e-7,7.35694791272341e-7 +Keccak_256/9000,5.834956042244992e-4,5.833460188285661e-4,5.837312331828381e-4,6.324144570742665e-7,4.410194477488264e-7,1.0210388331637715e-6 +Keccak_256/9200,5.965486022216655e-4,5.964251240134447e-4,5.966535685124219e-4,3.809771822862858e-7,3.068132454219689e-7,4.792690429158222e-7 +Keccak_256/9400,6.08519213931545e-4,6.083868961611003e-4,6.086365520756138e-4,3.928758126246287e-7,3.318199484686531e-7,4.685370516708456e-7 +Keccak_256/9600,6.216176527760476e-4,6.214608249648591e-4,6.217888527167689e-4,5.574339994917559e-7,4.6490483070838465e-7,6.783963929281594e-7 +Keccak_256/9800,6.348225826477839e-4,6.34670260580235e-4,6.349939399149155e-4,5.340790739480945e-7,4.3375692618147936e-7,7.014961822118475e-7 +Bls12_381_G1_add/18/18,1.7929474044973896e-6,1.7920497500205022e-6,1.793827700689988e-6,3.0164173298223374e-9,2.493080187195148e-9,3.6831494587066486e-9 +Bls12_381_G1_add/18/18,1.8018566623283805e-6,1.8009463767890399e-6,1.802762322080086e-6,3.099337473915172e-9,2.6385442291536233e-9,3.870815348049049e-9 +Bls12_381_G1_add/18/18,1.7991916666313543e-6,1.7983508828117548e-6,1.8001938418767695e-6,2.9568235088014015e-9,2.446092123572172e-9,3.765357266462993e-9 +Bls12_381_G1_add/18/18,1.7963790956877314e-6,1.7955940098385122e-6,1.7971970194060566e-6,2.787810656412181e-9,2.3285560665526687e-9,3.746015384929234e-9 +Bls12_381_G1_add/18/18,1.7954276585523908e-6,1.7942236210654857e-6,1.7965508614011315e-6,4.004206460908637e-9,3.369040137165447e-9,4.993141673526222e-9 +Bls12_381_G1_add/18/18,1.801318436819352e-6,1.8006273974976468e-6,1.8021070640900958e-6,2.4433968990231732e-9,2.0189017087826864e-9,3.006981748327745e-9 +Bls12_381_G1_add/18/18,1.7920804459602032e-6,1.7913473288676125e-6,1.7928638080114864e-6,2.6173916354411935e-9,2.23046631909037e-9,3.383600998698051e-9 +Bls12_381_G1_add/18/18,1.7974953438568654e-6,1.7966918756881566e-6,1.798382732717216e-6,2.921505594753795e-9,2.3162454164857017e-9,3.6226111440879083e-9 +Bls12_381_G1_add/18/18,1.793843623961214e-6,1.7930946292786354e-6,1.794511543160476e-6,2.4170493006610635e-9,2.0431356854965554e-9,2.9663637728377772e-9 +Bls12_381_G1_add/18/18,1.7946964426429219e-6,1.793737828631906e-6,1.7955644223327348e-6,3.1114283881016204e-9,2.504835012432895e-9,4.069583206295227e-9 +Bls12_381_G1_add/18/18,1.8037286375425077e-6,1.8028081550122982e-6,1.804702178449567e-6,3.0486692681208117e-9,2.549167917861421e-9,3.777153664738756e-9 +Bls12_381_G1_add/18/18,1.807337400449853e-6,1.8062126570362922e-6,1.8080661707177014e-6,2.9722787872417023e-9,2.452363287123921e-9,4.023784226759237e-9 +Bls12_381_G1_add/18/18,1.7987284800449144e-6,1.7976137352841172e-6,1.7996217008733721e-6,3.222182352527244e-9,2.570708239446067e-9,4.155674533938523e-9 +Bls12_381_G1_add/18/18,1.805289401361301e-6,1.8041841208469199e-6,1.806373889272212e-6,3.74388086968774e-9,3.1856726519061147e-9,4.684897239892366e-9 +Bls12_381_G1_add/18/18,1.7950977473037045e-6,1.7944163989150426e-6,1.795831878230486e-6,2.3621099594074228e-9,1.9814200185846303e-9,2.8671744902112347e-9 +Bls12_381_G1_add/18/18,1.8011794901238086e-6,1.7992251318584334e-6,1.8031545199391794e-6,7.024813783437104e-9,6.228471911905451e-9,7.81328231127553e-9 +Bls12_381_G1_add/18/18,1.8037364426953065e-6,1.8027268011952066e-6,1.8046954243933062e-6,3.5111944390713848e-9,2.9364571927436436e-9,4.2942416228776224e-9 +Bls12_381_G1_add/18/18,1.8062621327756251e-6,1.8056081362488538e-6,1.8070440109695607e-6,2.3442720093757924e-9,1.859390234700376e-9,2.990058250832618e-9 +Bls12_381_G1_add/18/18,1.7920324525570363e-6,1.791082955906063e-6,1.7930705570977663e-6,3.3683136801762335e-9,2.8315429309131478e-9,4.048101278689674e-9 +Bls12_381_G1_add/18/18,1.8039773381511352e-6,1.8032569878573459e-6,1.8047383288821793e-6,2.5699342492601574e-9,2.1555435792983676e-9,3.2700781343801808e-9 +Bls12_381_G1_add/18/18,1.802713890620424e-6,1.802071586175063e-6,1.8033107422841581e-6,2.014475355687384e-9,1.7264847625051751e-9,2.3749570015508405e-9 +Bls12_381_G1_add/18/18,1.8030563707352945e-6,1.8023099425982733e-6,1.8039774530278907e-6,2.6716086002347088e-9,2.1481795658764673e-9,3.294154284328948e-9 +Bls12_381_G1_add/18/18,1.8059093475486602e-6,1.8046959846870586e-6,1.8071391998572948e-6,4.045404224025391e-9,3.42615711752071e-9,4.711998202971536e-9 +Bls12_381_G1_add/18/18,1.7948708367125682e-6,1.7939786212971234e-6,1.7957063086572413e-6,2.85475251769778e-9,2.35420394472207e-9,3.7302671726773e-9 +Bls12_381_G1_add/18/18,1.8003787977386155e-6,1.7992373836576091e-6,1.8012081847668344e-6,3.268007528341527e-9,2.5227927220772845e-9,4.177566000516151e-9 +Bls12_381_G1_add/18/18,1.8067085840615306e-6,1.8060048644968744e-6,1.8073668906584248e-6,2.3282833845444454e-9,1.9055284714335385e-9,2.8349989015221743e-9 +Bls12_381_G1_add/18/18,1.7963633703315795e-6,1.7953854020046345e-6,1.7973300129833677e-6,3.1351132994669083e-9,2.6786319013524784e-9,3.928149341306736e-9 +Bls12_381_G1_add/18/18,1.8040458568882522e-6,1.8036159735352348e-6,1.8045580811093676e-6,1.5491451261440841e-9,1.3376862105647547e-9,1.8346252631306829e-9 +Bls12_381_G1_add/18/18,1.8054349210127788e-6,1.804646588503998e-6,1.8062300062273495e-6,2.6273561156481246e-9,2.195434886510042e-9,3.258898588957308e-9 +Bls12_381_G1_add/18/18,1.8077205559128815e-6,1.8067636202012673e-6,1.8087747569235902e-6,3.266182928132263e-9,2.8012214132146963e-9,3.9170706526081855e-9 +Bls12_381_G1_add/18/18,1.8069764602290116e-6,1.8060218633569905e-6,1.8078488051251087e-6,2.96058160752691e-9,2.3121193448565218e-9,4.128423352950157e-9 +Bls12_381_G1_add/18/18,1.7988505107571338e-6,1.7978580542894234e-6,1.79997720363058e-6,3.501375849472992e-9,2.95916847105194e-9,4.2815684630268486e-9 +Bls12_381_G1_add/18/18,1.7993760852185775e-6,1.7986364348689034e-6,1.8002422193576403e-6,2.7444886127636726e-9,2.3355784836633552e-9,3.4138615806910218e-9 +Bls12_381_G1_add/18/18,1.7989629895849872e-6,1.7972969247750938e-6,1.8002394810096391e-6,4.566522302799397e-9,3.5781989196805487e-9,5.621269423898061e-9 +Bls12_381_G1_add/18/18,1.8006666980629973e-6,1.799770121350582e-6,1.8014360744564966e-6,2.889965345902224e-9,2.4071817412667682e-9,3.455502412365122e-9 +Bls12_381_G1_add/18/18,1.8031136839754168e-6,1.8015311485080859e-6,1.805004086178115e-6,5.792398764665717e-9,5.1760995568225044e-9,6.529941766146633e-9 +Bls12_381_G1_add/18/18,1.809345377580285e-6,1.808666371844551e-6,1.8099103317923374e-6,2.0167632149373406e-9,1.7062037345828308e-9,2.4982929157699967e-9 +Bls12_381_G1_add/18/18,1.7969196342794435e-6,1.7962455330480938e-6,1.7976424192147112e-6,2.396262406730412e-9,2.0361082852067236e-9,2.8679815034090925e-9 +Bls12_381_G1_add/18/18,1.8084081798582579e-6,1.807452045368512e-6,1.809334167101443e-6,3.1557732222078237e-9,2.70219287796941e-9,3.759208307684837e-9 +Bls12_381_G1_add/18/18,1.8027409176446287e-6,1.8013134752644361e-6,1.8040465783915187e-6,4.634153290339523e-9,4.114278405068047e-9,5.297811651835535e-9 +Bls12_381_G1_add/18/18,1.7949556454179522e-6,1.7932353596143942e-6,1.7960588574017054e-6,4.543385434149234e-9,3.201014893593958e-9,6.991229255465331e-9 +Bls12_381_G1_add/18/18,1.8063046585549156e-6,1.8056195064585552e-6,1.8070355265734614e-6,2.468971268597384e-9,2.0289384462861594e-9,3.1748820847066096e-9 +Bls12_381_G1_add/18/18,1.806778230426418e-6,1.8058801600745272e-6,1.807538963240427e-6,2.8179354654594255e-9,2.355182921406107e-9,3.4326833808063277e-9 +Bls12_381_G1_add/18/18,1.801929793009413e-6,1.8010305159020067e-6,1.8026256892914814e-6,2.7677963211097464e-9,2.2667520841504346e-9,3.384153868123488e-9 +Bls12_381_G1_add/18/18,1.8035788120870146e-6,1.8029514477453931e-6,1.8041146472687196e-6,2.0234653967385667e-9,1.6624986858639641e-9,2.6398728648708247e-9 +Bls12_381_G1_add/18/18,1.8053833585633126e-6,1.8037776972151445e-6,1.8068685016634087e-6,5.078410363434956e-9,4.361491529588388e-9,5.900208699611361e-9 +Bls12_381_G1_add/18/18,1.7989035046248372e-6,1.797817113578896e-6,1.7999120492114778e-6,3.372982192593554e-9,2.7729145532531614e-9,4.103845049487651e-9 +Bls12_381_G1_add/18/18,1.801161217663957e-6,1.8003901680219992e-6,1.8021348508991095e-6,2.9249545832476997e-9,2.458601866426265e-9,3.605227061069638e-9 +Bls12_381_G1_add/18/18,1.7972465271048021e-6,1.7966160192877626e-6,1.7982930580654966e-6,2.598789271863491e-9,1.907649224963353e-9,4.344582881015477e-9 +Bls12_381_G1_add/18/18,1.7980574006236596e-6,1.7973722161067267e-6,1.7988175997898633e-6,2.4498395318609538e-9,2.0521051276980687e-9,2.9818530994068773e-9 +Bls12_381_G1_add/18/18,1.8027087234500804e-6,1.8017988045131558e-6,1.8034951558914171e-6,2.7608497068202236e-9,2.1919126124784494e-9,3.956837309008919e-9 +Bls12_381_G1_add/18/18,1.7999277207615157e-6,1.7988662102249608e-6,1.801087289306037e-6,3.7135766923793766e-9,3.188923626989606e-9,4.474496208303034e-9 +Bls12_381_G1_add/18/18,1.7926513854371077e-6,1.791529645550527e-6,1.793919278429069e-6,3.934051953435994e-9,2.9979795820169168e-9,5.6402612093777144e-9 +Bls12_381_G1_add/18/18,1.804539013883174e-6,1.8034189554020817e-6,1.8057412872949835e-6,3.80569004173147e-9,3.372303952206083e-9,4.4939245835117265e-9 +Bls12_381_G1_add/18/18,1.7944555900826933e-6,1.793365418165266e-6,1.7954206730543784e-6,3.246995882736636e-9,2.6598157233723157e-9,3.98745679514108e-9 +Bls12_381_G1_add/18/18,1.8014093198677703e-6,1.8009296630784942e-6,1.8018799123242262e-6,1.6192606767032137e-9,1.3125255449287646e-9,1.961307231332305e-9 +Bls12_381_G1_add/18/18,1.798632932093845e-6,1.7980735420438769e-6,1.7992047120927976e-6,1.8123048121147583e-9,1.5475459070374575e-9,2.137072217749371e-9 +Bls12_381_G1_add/18/18,1.8051990584233997e-6,1.8038602233194858e-6,1.8064144772694178e-6,4.165239739767575e-9,3.6083732724935557e-9,5.0217506438723355e-9 +Bls12_381_G1_add/18/18,1.796992163699974e-6,1.7960992131232853e-6,1.7978965984825175e-6,3.0623556590536428e-9,2.5848688691109294e-9,3.727741286962459e-9 +Bls12_381_G1_add/18/18,1.7975612857614587e-6,1.7965926737714307e-6,1.7987843194284587e-6,3.552390584035686e-9,2.90918879744431e-9,4.71414812673054e-9 +Bls12_381_G1_add/18/18,1.795933654088451e-6,1.7949842773622457e-6,1.7969485238180196e-6,3.3329350647380283e-9,2.88436822090481e-9,3.953855717541301e-9 +Bls12_381_G1_add/18/18,1.8006459027272936e-6,1.7987976056678047e-6,1.8026328223836987e-6,6.5445732035016975e-9,5.7902332414797e-9,8.07902759548741e-9 +Bls12_381_G1_add/18/18,1.79619552056633e-6,1.7955798105707658e-6,1.796792102133818e-6,2.026333912787403e-9,1.7204413478316022e-9,2.45066531657777e-9 +Bls12_381_G1_add/18/18,1.7898365392533449e-6,1.7891680513508906e-6,1.7905283313583839e-6,2.2172198602270616e-9,1.8416632145466322e-9,2.846488609641145e-9 +Bls12_381_G1_add/18/18,1.8031502101602779e-6,1.8021773272497607e-6,1.8042018402680562e-6,3.399925267841497e-9,3.0153950355015925e-9,3.901168790387912e-9 +Bls12_381_G1_add/18/18,1.7934220958967051e-6,1.7928264573878106e-6,1.7940440672976664e-6,2.1701285276593337e-9,1.7721381159353302e-9,2.6824994874473986e-9 +Bls12_381_G1_add/18/18,1.797308673241494e-6,1.7965050150964903e-6,1.7981340812534126e-6,2.708385553958383e-9,2.2973008038600687e-9,3.334710189715001e-9 +Bls12_381_G1_add/18/18,1.8012313111991798e-6,1.8004529847996782e-6,1.8019875936201252e-6,2.665555389386914e-9,2.1808130205361882e-9,3.455732183170732e-9 +Bls12_381_G1_add/18/18,1.8048191438989386e-6,1.8041434906039612e-6,1.8055451453823836e-6,2.247501072047738e-9,1.897870054422582e-9,2.860421355811274e-9 +Bls12_381_G1_add/18/18,1.8010169791054038e-6,1.799995460147905e-6,1.8018930812817857e-6,2.9929202408066635e-9,2.422079786340655e-9,3.631879653172313e-9 +Bls12_381_G1_add/18/18,1.7997950578849996e-6,1.7982646490050619e-6,1.8006556483406392e-6,3.6660584631027026e-9,2.3446592883706113e-9,6.2028524770118454e-9 +Bls12_381_G1_add/18/18,1.796690605681358e-6,1.7957100978994833e-6,1.7976715291780217e-6,3.248754447988016e-9,2.8564816270009087e-9,3.745898699891575e-9 +Bls12_381_G1_add/18/18,1.797421306995088e-6,1.7964353890964307e-6,1.7983839211527105e-6,3.3514583968896394e-9,2.848403672710362e-9,3.9810566964280795e-9 +Bls12_381_G1_add/18/18,1.7989490223222499e-6,1.7981095982994129e-6,1.7999537208649417e-6,3.04633167370073e-9,2.580156235046324e-9,3.653158897053619e-9 +Bls12_381_G1_add/18/18,1.8035166887654903e-6,1.802825855218481e-6,1.8042652260125853e-6,2.3948834780877426e-9,1.9634777487440975e-9,2.949451876307618e-9 +Bls12_381_G1_add/18/18,1.796671714369622e-6,1.7956614661216375e-6,1.797806434997244e-6,3.464364877189939e-9,2.9104077187649824e-9,4.260951596174497e-9 +Bls12_381_G1_add/18/18,1.797976635155995e-6,1.797349701310587e-6,1.7987042410281978e-6,2.2342667982716266e-9,1.7648880142612227e-9,2.9975686242030177e-9 +Bls12_381_G1_add/18/18,1.7949935600684967e-6,1.7939134848166786e-6,1.7959248958314141e-6,3.339089083453982e-9,2.8175535310596327e-9,4.178241291074354e-9 +Bls12_381_G1_add/18/18,1.7951138022632107e-6,1.7941782614879447e-6,1.7959809910240892e-6,3.0042904916790886e-9,2.530150836198151e-9,3.6492909389851193e-9 +Bls12_381_G1_add/18/18,1.7919368508474982e-6,1.790513604127839e-6,1.7935131372772804e-6,5.0378087332395e-9,4.245140341722929e-9,5.86479584681309e-9 +Bls12_381_G1_add/18/18,1.8056861123360236e-6,1.8046809674731155e-6,1.8068302642971882e-6,3.7227820466586644e-9,3.2845880812374943e-9,4.2977699991591016e-9 +Bls12_381_G1_add/18/18,1.7979887641726493e-6,1.7972155329063305e-6,1.798855406319775e-6,2.623543516341448e-9,2.181384699271989e-9,3.1931599245112663e-9 +Bls12_381_G1_add/18/18,1.8023671825321146e-6,1.801576621235922e-6,1.803024661474291e-6,2.416987799072866e-9,1.8765879581495002e-9,3.1118843769337605e-9 +Bls12_381_G1_add/18/18,1.7994024030877749e-6,1.7986864325874825e-6,1.8001792580399716e-6,2.5234766889865557e-9,2.1697192135194854e-9,3.0483703293952262e-9 +Bls12_381_G1_add/18/18,1.8004278847896972e-6,1.799225602988613e-6,1.8015838360189778e-6,4.0539879474478316e-9,3.5423787783634896e-9,4.6826625479108e-9 +Bls12_381_G1_add/18/18,1.8020325965007336e-6,1.8014014207485574e-6,1.8026123538480055e-6,2.077705508427049e-9,1.7012040931074606e-9,2.554507420174166e-9 +Bls12_381_G1_add/18/18,1.805031511203394e-6,1.8042494715639188e-6,1.8056331549175987e-6,2.3437125300942017e-9,1.92916027520039e-9,3.241553686970951e-9 +Bls12_381_G1_add/18/18,1.8057696852482374e-6,1.8050592885895396e-6,1.8065845397726877e-6,2.4993537987285544e-9,2.102114494390711e-9,3.051413961808641e-9 +Bls12_381_G1_add/18/18,1.805233739272131e-6,1.8044149840036155e-6,1.8059628108162223e-6,2.404038654265529e-9,1.947773957763554e-9,3.26542821453391e-9 +Bls12_381_G1_add/18/18,1.808562993023266e-6,1.8077478022227462e-6,1.809325301130172e-6,2.756626054435255e-9,2.3821744647408673e-9,3.2901396934722735e-9 +Bls12_381_G1_add/18/18,1.7982281510662703e-6,1.7960472239033076e-6,1.7992965548980536e-6,4.6809739924632355e-9,2.8196457359538302e-9,8.767265339176952e-9 +Bls12_381_G1_add/18/18,1.802149122311672e-6,1.8011078311793647e-6,1.8030171256785095e-6,3.080083198323346e-9,2.22458411717149e-9,4.93241883295814e-9 +Bls12_381_G1_add/18/18,1.8076000692506277e-6,1.8068623679747869e-6,1.808368694911667e-6,2.602377300701057e-9,2.1683271486091876e-9,3.1702375896601005e-9 +Bls12_381_G1_add/18/18,1.8034969143644027e-6,1.8027498161473217e-6,1.8043486656440142e-6,2.7066175273083463e-9,2.234389428526299e-9,3.4521961148218533e-9 +Bls12_381_G1_add/18/18,1.7960897231649981e-6,1.7952074554645885e-6,1.796785185446351e-6,2.6503245936831664e-9,1.965301371883873e-9,3.452050633891018e-9 +Bls12_381_G1_add/18/18,1.797893398511211e-6,1.7968959529467652e-6,1.798776153195218e-6,3.1679203185204768e-9,2.806951204351999e-9,3.632572019818148e-9 +Bls12_381_G1_add/18/18,1.7961636104097234e-6,1.7953247321977637e-6,1.7970974941036873e-6,2.8518476997860253e-9,2.3560735503808038e-9,3.6561331232960837e-9 +Bls12_381_G1_add/18/18,1.8069359543229512e-6,1.806000153922515e-6,1.8077755010862096e-6,2.98030842031493e-9,2.478514181183955e-9,3.630456236198403e-9 +Bls12_381_G1_add/18/18,1.8022752929674919e-6,1.8014373855321775e-6,1.8031346682610184e-6,2.9602306690713865e-9,2.364652250195436e-9,3.738772541211882e-9 +Bls12_381_G1_add/18/18,1.7977525525913222e-6,1.7972266569821426e-6,1.7983807730944317e-6,1.9199562036025276e-9,1.4762926968534417e-9,2.9311016418814655e-9 +Bls12_381_G1_neg/18,9.409078018962738e-7,9.401886301572346e-7,9.416148837441855e-7,2.4675615489287624e-9,2.002964441069894e-9,3.148948793824517e-9 +Bls12_381_G1_neg/18,9.413554583261367e-7,9.407911324096002e-7,9.418393495523868e-7,1.7449631864226991e-9,1.4991479655896988e-9,2.1101372232373255e-9 +Bls12_381_G1_neg/18,9.391435044200692e-7,9.377927669869001e-7,9.402300003117971e-7,3.991238341631353e-9,3.4400355817412013e-9,4.89948392626591e-9 +Bls12_381_G1_neg/18,9.396703326633051e-7,9.384773913758398e-7,9.407388299515675e-7,3.731079748556714e-9,3.2243130900774393e-9,4.385676565676549e-9 +Bls12_381_G1_neg/18,9.361066219053856e-7,9.352665114950875e-7,9.370359786712729e-7,2.950423172665252e-9,2.521446116144149e-9,3.4760568547171008e-9 +Bls12_381_G1_neg/18,9.366473681373912e-7,9.359890823300035e-7,9.375543582978353e-7,2.5249800170970297e-9,1.9549158155580324e-9,3.518829829246272e-9 +Bls12_381_G1_neg/18,9.384699042085689e-7,9.378767640096772e-7,9.390976928465272e-7,2.1255236326156867e-9,1.7804706285582993e-9,2.5694492851159592e-9 +Bls12_381_G1_neg/18,9.414592635525618e-7,9.410222514126982e-7,9.418923723735181e-7,1.467418990579118e-9,1.240163231577142e-9,1.826798164032243e-9 +Bls12_381_G1_neg/18,9.34856991971748e-7,9.345344813122996e-7,9.353313363765151e-7,1.3178349539392697e-9,1.0875467762775302e-9,1.6355174757843657e-9 +Bls12_381_G1_neg/18,9.379369003738859e-7,9.369824672975593e-7,9.388196707849573e-7,3.0949895580235086e-9,2.637621938039805e-9,3.833172031889132e-9 +Bls12_381_G1_neg/18,9.386359787061158e-7,9.377215915334009e-7,9.395399336297344e-7,3.0273992118205006e-9,2.5414842599701083e-9,4.073066494663057e-9 +Bls12_381_G1_neg/18,9.389020551309555e-7,9.382834690762467e-7,9.395591605677743e-7,2.1038658508032623e-9,1.7838045681588675e-9,2.6848769186387373e-9 +Bls12_381_G1_neg/18,9.371446987993306e-7,9.365116820270042e-7,9.376735616472584e-7,1.997932898014361e-9,1.7353361925569994e-9,2.252605597298278e-9 +Bls12_381_G1_neg/18,9.380431528082127e-7,9.374564643693461e-7,9.3859631579822e-7,1.8915718066414634e-9,1.6083872964120746e-9,2.3029736220053443e-9 +Bls12_381_G1_neg/18,9.354712620297148e-7,9.348730765009302e-7,9.360486627139808e-7,1.971668983993693e-9,1.6302331345077594e-9,2.4844414566347555e-9 +Bls12_381_G1_neg/18,9.397603702931355e-7,9.388623878517635e-7,9.408262703785957e-7,3.4849380299822664e-9,2.842293327005224e-9,4.215266583552919e-9 +Bls12_381_G1_neg/18,9.396366670976273e-7,9.391438031680711e-7,9.40162671980579e-7,1.6598218928875164e-9,1.334136528273423e-9,2.192947460215563e-9 +Bls12_381_G1_neg/18,9.389113484375312e-7,9.382650809373189e-7,9.39428641085946e-7,1.9424028264267467e-9,1.5213913227929509e-9,2.6573558750281233e-9 +Bls12_381_G1_neg/18,9.408490232628646e-7,9.400380735322471e-7,9.417454037560524e-7,2.879185502841895e-9,2.513059704659753e-9,3.3770234858061575e-9 +Bls12_381_G1_neg/18,9.363229574614992e-7,9.358102671543593e-7,9.36906685924519e-7,1.7881692171429377e-9,1.5008323640602165e-9,2.1762348906449375e-9 +Bls12_381_G1_neg/18,9.346495760562138e-7,9.340225732612337e-7,9.352592809488815e-7,2.1021591690660535e-9,1.683494464797453e-9,2.840242251272714e-9 +Bls12_381_G1_neg/18,9.383858607152856e-7,9.377673291821514e-7,9.390229280759752e-7,2.0627785697545294e-9,1.7439794504233062e-9,2.4711172656918904e-9 +Bls12_381_G1_neg/18,9.352540713758141e-7,9.34430604053209e-7,9.361007514275748e-7,2.851046416321732e-9,2.4801147434345023e-9,3.372331269518974e-9 +Bls12_381_G1_neg/18,9.397238494312997e-7,9.392046860510909e-7,9.402305435706882e-7,1.7382739970652549e-9,1.4181157272040843e-9,2.210997050826396e-9 +Bls12_381_G1_neg/18,9.408186169956822e-7,9.402760273658015e-7,9.414112977641857e-7,1.8674228509074757e-9,1.5159867435810373e-9,2.4390900799119636e-9 +Bls12_381_G1_neg/18,9.372323258788504e-7,9.365699554134301e-7,9.379776727295905e-7,2.4886562036883384e-9,2.153193724145248e-9,2.9582734439838854e-9 +Bls12_381_G1_neg/18,9.366808022912666e-7,9.361328092653879e-7,9.372118818229493e-7,1.8018402058064341e-9,1.5590102817377135e-9,2.1297543162619483e-9 +Bls12_381_G1_neg/18,9.37259878630333e-7,9.365802207220112e-7,9.378780927797501e-7,2.334763312253552e-9,1.994507415461549e-9,2.846162031714153e-9 +Bls12_381_G1_neg/18,9.375992279196051e-7,9.367761202831918e-7,9.382631192205967e-7,2.4927451821018954e-9,2.14034776397929e-9,2.9563875448615003e-9 +Bls12_381_G1_neg/18,9.391831918509759e-7,9.381222223286238e-7,9.403068081506708e-7,3.6827069701558995e-9,3.193672135007533e-9,4.319892502482317e-9 +Bls12_381_G1_neg/18,9.376152648800245e-7,9.36754847667972e-7,9.384853055343178e-7,2.9566631632138238e-9,2.5807161203468276e-9,3.527026799077082e-9 +Bls12_381_G1_neg/18,9.329323461648932e-7,9.321772444079916e-7,9.336283488856166e-7,2.4389574801497747e-9,2.0758135186434346e-9,2.968258215321657e-9 +Bls12_381_G1_neg/18,9.362263594666277e-7,9.357640295308884e-7,9.366675276987303e-7,1.569859731387699e-9,1.3167189739897745e-9,1.899609966572375e-9 +Bls12_381_G1_neg/18,9.372798721370703e-7,9.366865501270405e-7,9.379169466687841e-7,2.0432728019359635e-9,1.7618117739942186e-9,2.515481091332967e-9 +Bls12_381_G1_neg/18,9.403260528732335e-7,9.395186292025743e-7,9.410272419528295e-7,2.560635094202303e-9,2.250465244197445e-9,2.908891771245887e-9 +Bls12_381_G1_neg/18,9.361655224090873e-7,9.356997376785705e-7,9.365687673013518e-7,1.3900773947955411e-9,1.1208709581028609e-9,1.9611574032833895e-9 +Bls12_381_G1_neg/18,9.343657093694022e-7,9.335156227070553e-7,9.351144189213021e-7,2.5394607586610886e-9,2.167936850441512e-9,2.9996947301089775e-9 +Bls12_381_G1_neg/18,9.387017110702852e-7,9.379842747056445e-7,9.392997946022687e-7,2.131784415848055e-9,1.731234949885887e-9,2.685480656492348e-9 +Bls12_381_G1_neg/18,9.386084087990177e-7,9.378467359555361e-7,9.394107676468317e-7,2.6224147781108697e-9,2.2221702034169934e-9,3.1856979056278346e-9 +Bls12_381_G1_neg/18,9.389862053008526e-7,9.381806876013056e-7,9.39613246761661e-7,2.512235913141781e-9,2.0077545663464372e-9,3.066350325107926e-9 +Bls12_381_G1_neg/18,9.393416746847329e-7,9.388517727796842e-7,9.39784150238351e-7,1.532370450039629e-9,1.2612259524846249e-9,1.848747296845969e-9 +Bls12_381_G1_neg/18,9.337082257864394e-7,9.331158242051421e-7,9.342229907810678e-7,1.898714337006932e-9,1.6364874228577586e-9,2.2535152351378086e-9 +Bls12_381_G1_neg/18,9.371034952065358e-7,9.364322495958303e-7,9.378313333060152e-7,2.4179570334297253e-9,1.975498241916333e-9,3.2973602615842107e-9 +Bls12_381_G1_neg/18,9.418769406083834e-7,9.412076940548943e-7,9.424984860026947e-7,2.1278405529900405e-9,1.7763190441836421e-9,2.6432312961368306e-9 +Bls12_381_G1_neg/18,9.397716552486357e-7,9.390628341823739e-7,9.404630016536969e-7,2.3585041495260133e-9,2.0127194080966203e-9,2.8779579411346806e-9 +Bls12_381_G1_neg/18,9.387181799161974e-7,9.376726355430247e-7,9.397735046115792e-7,3.5029967091489813e-9,2.867908185541073e-9,4.4319962614499706e-9 +Bls12_381_G1_neg/18,9.402112194497945e-7,9.390412202049689e-7,9.412045879483239e-7,3.444061279099429e-9,2.9587802679210446e-9,4.082481076548847e-9 +Bls12_381_G1_neg/18,9.41092851220647e-7,9.403216823264847e-7,9.417499687178686e-7,2.451292945614853e-9,1.9429776210372257e-9,3.2532325508067177e-9 +Bls12_381_G1_neg/18,9.371578422131022e-7,9.366726169720425e-7,9.376741569655679e-7,1.60050142339853e-9,1.329012589570166e-9,2.0110288469633963e-9 +Bls12_381_G1_neg/18,9.401145560367873e-7,9.394804356403052e-7,9.407656605489573e-7,2.2022261845053634e-9,1.8134119128517778e-9,2.759788579806834e-9 +Bls12_381_G1_neg/18,9.456064066203352e-7,9.444965572343946e-7,9.464904395958075e-7,3.1885717918634483e-9,2.53489978287331e-9,4.007958991341144e-9 +Bls12_381_G1_neg/18,9.393356721261339e-7,9.38253099130191e-7,9.404215647624082e-7,3.582807708275681e-9,3.1709964481127093e-9,4.234850260539695e-9 +Bls12_381_G1_neg/18,9.360431257039668e-7,9.353590111673949e-7,9.366834253224016e-7,2.1972349305181853e-9,1.8842158268838876e-9,2.67706181384738e-9 +Bls12_381_G1_neg/18,9.348402066650932e-7,9.339936883438775e-7,9.356280671345028e-7,2.75944212773346e-9,2.2810139721344575e-9,3.312852983401961e-9 +Bls12_381_G1_neg/18,9.387573887530046e-7,9.380144934378053e-7,9.39608830788802e-7,2.78973501003861e-9,2.3322443380049335e-9,3.404786133810285e-9 +Bls12_381_G1_neg/18,9.39851014216648e-7,9.392448618208615e-7,9.404036850788144e-7,2.069637834116472e-9,1.7279460768009076e-9,2.5321796253756477e-9 +Bls12_381_G1_neg/18,9.376161073040011e-7,9.370979252597739e-7,9.38183724109235e-7,1.80395754732285e-9,1.4984023715623286e-9,2.331324478447684e-9 +Bls12_381_G1_neg/18,9.397634079340226e-7,9.392085734122794e-7,9.404354432532103e-7,2.177231848947824e-9,1.863026205553559e-9,2.708147780888497e-9 +Bls12_381_G1_neg/18,9.390630213826184e-7,9.385106306040602e-7,9.3959310821704e-7,1.8425974560342994e-9,1.5944394321269836e-9,2.1560178528235545e-9 +Bls12_381_G1_neg/18,9.323058297593741e-7,9.311752139869819e-7,9.333727894578504e-7,3.600487343244465e-9,3.1374999390873416e-9,4.151234230497631e-9 +Bls12_381_G1_neg/18,9.343112018147775e-7,9.335872639349542e-7,9.350841496917907e-7,2.5457151667006466e-9,2.154553906831647e-9,3.0874515451964544e-9 +Bls12_381_G1_neg/18,9.367723452399372e-7,9.362447308000454e-7,9.372550625992384e-7,1.8524910689039384e-9,1.5610997529559767e-9,2.2333954524973658e-9 +Bls12_381_G1_neg/18,9.376581410402516e-7,9.371157904845496e-7,9.381559671550629e-7,1.7144921466215295e-9,1.4101744317018327e-9,2.171698226452754e-9 +Bls12_381_G1_neg/18,9.358730532964905e-7,9.351116586922834e-7,9.365740922272055e-7,2.4587001065032247e-9,2.086957165494197e-9,2.9361053667834684e-9 +Bls12_381_G1_neg/18,9.408707472879207e-7,9.401135903381396e-7,9.416313395365853e-7,2.6251656391897124e-9,2.116211869772057e-9,3.4651588760276666e-9 +Bls12_381_G1_neg/18,9.36471445703631e-7,9.35830245947871e-7,9.371631315922143e-7,2.215274536540187e-9,1.8948178122120094e-9,2.715466129832496e-9 +Bls12_381_G1_neg/18,9.401145307356143e-7,9.391571880124456e-7,9.410505949993216e-7,3.178226146755778e-9,2.529067786054605e-9,3.949020440114921e-9 +Bls12_381_G1_neg/18,9.352264640457588e-7,9.348009106235625e-7,9.357090689132872e-7,1.5278318943241576e-9,1.3006244189015937e-9,1.833000287603422e-9 +Bls12_381_G1_neg/18,9.350217624495083e-7,9.344225884269136e-7,9.357066363513991e-7,2.13387431487795e-9,1.8255524640532003e-9,2.5126538957145985e-9 +Bls12_381_G1_neg/18,9.342817407978052e-7,9.330771506007484e-7,9.352151536681346e-7,3.5683393189225683e-9,2.982352126567552e-9,4.236324087449186e-9 +Bls12_381_G1_neg/18,9.358797194755913e-7,9.352202482201516e-7,9.365189564153256e-7,2.1896178246319463e-9,1.7224086693586597e-9,2.8368804044610896e-9 +Bls12_381_G1_neg/18,9.387195652934758e-7,9.381371375238104e-7,9.391855376881897e-7,1.7142768733124929e-9,1.4376253632028693e-9,2.3069388049558234e-9 +Bls12_381_G1_neg/18,9.400184240613725e-7,9.39377701459474e-7,9.407102456726833e-7,2.280633984645075e-9,1.9874476074864493e-9,2.732526045450927e-9 +Bls12_381_G1_neg/18,9.392231058872648e-7,9.386636449661591e-7,9.397845037128115e-7,1.9834452463615397e-9,1.695804724001896e-9,2.3913475368157565e-9 +Bls12_381_G1_neg/18,9.415361340413876e-7,9.408819544474276e-7,9.421099774868243e-7,2.0555890333561095e-9,1.7076791520264469e-9,2.7046067034846137e-9 +Bls12_381_G1_neg/18,9.385179058939985e-7,9.377803217683809e-7,9.393766104761993e-7,2.678759341514775e-9,2.3253021759812592e-9,3.1608896822754457e-9 +Bls12_381_G1_neg/18,9.376658877333819e-7,9.368297145761256e-7,9.385136109433896e-7,3.037071856668208e-9,2.5609240563570327e-9,3.943956701831841e-9 +Bls12_381_G1_neg/18,9.350761062440953e-7,9.344479385943743e-7,9.357677879090687e-7,2.2387054982673087e-9,1.9088607141663835e-9,2.715735346404904e-9 +Bls12_381_G1_neg/18,9.421566536855794e-7,9.415674149063757e-7,9.428334463510599e-7,2.093011806307584e-9,1.7779512565045282e-9,2.4870916627948277e-9 +Bls12_381_G1_neg/18,9.335656425183496e-7,9.327512834755554e-7,9.343404649062051e-7,2.644413316870326e-9,2.260037103965543e-9,3.098090996929345e-9 +Bls12_381_G1_neg/18,9.382028286704233e-7,9.376560876537546e-7,9.388113719978187e-7,2.100912261883016e-9,1.8151909281026723e-9,2.5386892120087474e-9 +Bls12_381_G1_neg/18,9.364357117893826e-7,9.355762562326751e-7,9.373512253683295e-7,2.844509518659544e-9,2.3774674963945026e-9,3.5013464918490303e-9 +Bls12_381_G1_neg/18,9.392202397116267e-7,9.379383871086943e-7,9.404683047559563e-7,4.432983331852863e-9,3.7052016133969863e-9,5.2531978416430755e-9 +Bls12_381_G1_neg/18,9.356232981216767e-7,9.34818263208831e-7,9.364513083625121e-7,2.6265774852776425e-9,2.3254088247500324e-9,3.0646588804077178e-9 +Bls12_381_G1_neg/18,9.375989183394202e-7,9.368432816810422e-7,9.382285698305616e-7,2.3678413081337893e-9,2.0615398293294268e-9,2.7610326317943043e-9 +Bls12_381_G1_neg/18,9.387469168970815e-7,9.378954682976143e-7,9.394605141859824e-7,2.6594487702240134e-9,2.1249014888922416e-9,3.2663760031010985e-9 +Bls12_381_G1_neg/18,9.409561833701632e-7,9.404790704087436e-7,9.415333025617481e-7,1.7921309567474659e-9,1.4920534531351858e-9,2.264298959633281e-9 +Bls12_381_G1_neg/18,9.363985419217192e-7,9.353519896683489e-7,9.374931932173513e-7,3.6643500155463783e-9,3.1786343211951664e-9,4.290870121525039e-9 +Bls12_381_G1_neg/18,9.337782250178503e-7,9.32897576377953e-7,9.346466362019537e-7,2.953609547739186e-9,2.501644117748501e-9,3.8361877630890015e-9 +Bls12_381_G1_neg/18,9.324959796703171e-7,9.315194541939491e-7,9.335149387313976e-7,3.4494892506820563e-9,2.93053105408279e-9,4.179164634176981e-9 +Bls12_381_G1_neg/18,9.362097480743018e-7,9.357559290054085e-7,9.366873048984615e-7,1.5015278756916392e-9,1.2152228510314423e-9,1.9352731358629476e-9 +Bls12_381_G1_neg/18,9.352250075362778e-7,9.344258465308505e-7,9.359115023669408e-7,2.4891071201557497e-9,2.152489654819803e-9,2.9113534013813674e-9 +Bls12_381_G1_neg/18,9.374753628097717e-7,9.364957099881086e-7,9.385532174722705e-7,3.3520853159151625e-9,2.843309336863408e-9,4.0904190138817964e-9 +Bls12_381_G1_neg/18,9.402555807130124e-7,9.391933251591863e-7,9.411281280469253e-7,3.185044360654462e-9,2.401457344470658e-9,4.492654533004793e-9 +Bls12_381_G1_neg/18,9.405682928730645e-7,9.39929714712239e-7,9.411754637835066e-7,2.042502682030873e-9,1.6907742819405268e-9,2.46386236644109e-9 +Bls12_381_G1_neg/18,9.356636083235345e-7,9.347460764218839e-7,9.366458489001733e-7,3.2107632370471473e-9,2.6903212017930433e-9,3.7680103228707236e-9 +Bls12_381_G1_neg/18,9.350128399954719e-7,9.343552550153288e-7,9.358372084350858e-7,2.487387673854262e-9,1.8907141796272095e-9,3.1181562202153147e-9 +Bls12_381_G1_neg/18,9.376581778693718e-7,9.370244274895419e-7,9.383039739698355e-7,2.2434113085674113e-9,1.90369289115184e-9,2.6309703895180308e-9 +Bls12_381_G1_neg/18,9.365473110048168e-7,9.357346498621677e-7,9.372577693317172e-7,2.516407187192888e-9,2.1206955778369348e-9,3.049612967113065e-9 +Bls12_381_G1_neg/18,9.325591137538192e-7,9.318186546917601e-7,9.333201399794329e-7,2.592083574730263e-9,2.1784213089792594e-9,3.157891275901751e-9 +Bls12_381_G1_scalarMul/1/18,7.710099384063075e-5,7.704301350193012e-5,7.713201295506112e-5,1.3309154976035886e-7,8.71761497458882e-8,2.377852842053854e-7 +Bls12_381_G1_scalarMul/2/18,7.726908981026191e-5,7.72080743361669e-5,7.73181960927715e-5,1.886379080094788e-7,1.405348943977226e-7,2.404563433019619e-7 +Bls12_381_G1_scalarMul/3/18,7.749828332052495e-5,7.745362819783538e-5,7.752556270494159e-5,1.12440400114828e-7,8.214046696243812e-8,1.7899838559562798e-7 +Bls12_381_G1_scalarMul/4/18,7.723805064466931e-5,7.721971086051897e-5,7.727028454118449e-5,7.97394598539697e-8,5.7335523887303085e-8,1.1068280250832088e-7 +Bls12_381_G1_scalarMul/5/18,7.776018492085569e-5,7.766894772174048e-5,7.781780767905522e-5,2.3336428436863395e-7,1.7832171048434557e-7,2.914144425995988e-7 +Bls12_381_G1_scalarMul/6/18,7.718980110739979e-5,7.717999890473427e-5,7.722219812142625e-5,5.034601334996342e-8,2.0306539312939565e-8,1.0671092204747328e-7 +Bls12_381_G1_scalarMul/7/18,7.726640410583734e-5,7.722622113553701e-5,7.732649398488068e-5,1.6113870492219204e-7,1.0731203732233314e-7,2.3243820784445216e-7 +Bls12_381_G1_scalarMul/8/18,7.728690192332635e-5,7.724995260566397e-5,7.733656408333213e-5,1.5250025654655e-7,1.0557148144314772e-7,2.415325932484884e-7 +Bls12_381_G1_scalarMul/9/18,7.73548960441645e-5,7.73007969233841e-5,7.742707054372103e-5,2.027746101557361e-7,1.6084582279111787e-7,2.525536497295786e-7 +Bls12_381_G1_scalarMul/10/18,7.748638256964073e-5,7.742831179851204e-5,7.755063459913378e-5,1.9743240018039458e-7,1.665801318485703e-7,2.4229318500781615e-7 +Bls12_381_G1_scalarMul/11/18,7.740345953271684e-5,7.735031262610989e-5,7.749773972114151e-5,2.1252530468627017e-7,1.4265984998278325e-7,3.520404564539788e-7 +Bls12_381_G1_scalarMul/12/18,7.745637460281797e-5,7.739101195891166e-5,7.752806653413101e-5,2.2813395425779563e-7,1.9178629552974608e-7,2.6786894291588365e-7 +Bls12_381_G1_scalarMul/13/18,7.751225527646189e-5,7.744268535126244e-5,7.759041723651608e-5,2.467998798608854e-7,2.1776811152932206e-7,2.7622608371906486e-7 +Bls12_381_G1_scalarMul/14/18,7.737179135438617e-5,7.734291434666454e-5,7.742631135524297e-5,1.2819690826413497e-7,8.563701491960296e-8,2.1826531501832697e-7 +Bls12_381_G1_scalarMul/15/18,7.747176670362803e-5,7.742268115295997e-5,7.754419566819949e-5,1.9722098296721962e-7,1.4908447159644272e-7,2.4574969973579736e-7 +Bls12_381_G1_scalarMul/16/18,7.747439407530183e-5,7.74046460404136e-5,7.758868794001762e-5,2.913670711388044e-7,2.0328593751365398e-7,4.6572704428425743e-7 +Bls12_381_G1_scalarMul/17/18,7.741126788523276e-5,7.736750030721137e-5,7.748042692953754e-5,1.8985935553352853e-7,1.3835461869935878e-7,2.5311850051355596e-7 +Bls12_381_G1_scalarMul/18/18,7.728767033981554e-5,7.72013566415036e-5,7.741026600121568e-5,3.3851851489707777e-7,2.2906997248986271e-7,5.379254760401528e-7 +Bls12_381_G1_scalarMul/19/18,7.72455458545525e-5,7.718896053847604e-5,7.727933272302038e-5,1.474523344569388e-7,1.0765928972690143e-7,1.901117426977318e-7 +Bls12_381_G1_scalarMul/20/18,7.745172814231455e-5,7.736992531311135e-5,7.774825835711176e-5,4.543474265062955e-7,1.3162289379298004e-7,9.258139353493792e-7 +Bls12_381_G1_scalarMul/21/18,7.726722941338571e-5,7.720372147530822e-5,7.729303451853192e-5,1.1993864113116874e-7,2.4662636920681804e-8,2.3474136721931735e-7 +Bls12_381_G1_scalarMul/22/18,7.742063007789756e-5,7.737574278637827e-5,7.746699938140733e-5,1.447691329825365e-7,1.2511901917331778e-7,1.8073869825785393e-7 +Bls12_381_G1_scalarMul/23/18,7.741427176844457e-5,7.737887015175229e-5,7.745270271569172e-5,1.2422673608872576e-7,1.0861672624234444e-7,1.462269019647266e-7 +Bls12_381_G1_scalarMul/24/18,7.735043540962055e-5,7.732403972505713e-5,7.744121126719602e-5,1.5107417176447768e-7,3.22733246232689e-8,3.137116666135735e-7 +Bls12_381_G1_scalarMul/25/18,7.753447994325944e-5,7.747894495028147e-5,7.759684854417101e-5,2.1288224579374126e-7,1.7442596831209002e-7,2.605833005253201e-7 +Bls12_381_G1_scalarMul/26/18,7.752803430281164e-5,7.739449023136025e-5,7.805021993370702e-5,8.197908547709665e-7,6.304233958314886e-8,1.7406436421598216e-6 +Bls12_381_G1_scalarMul/27/18,7.748216421956855e-5,7.744033126143005e-5,7.753623762968637e-5,1.5941287961226105e-7,1.2535782806382863e-7,2.1001952528827291e-7 +Bls12_381_G1_scalarMul/28/18,7.757235872729508e-5,7.749313570777972e-5,7.766030370210338e-5,2.672016639980916e-7,2.347818316827511e-7,3.18271865635362e-7 +Bls12_381_G1_scalarMul/29/18,7.74018013268058e-5,7.73847134776342e-5,7.743092215191716e-5,7.887764226357978e-8,5.372431308683657e-8,1.1142354577512245e-7 +Bls12_381_G1_scalarMul/30/18,7.755997707326884e-5,7.749388214677198e-5,7.765998635231624e-5,2.641627007699371e-7,1.9170224052254535e-7,4.163837327245656e-7 +Bls12_381_G1_scalarMul/31/18,7.752711595447289e-5,7.745808397972754e-5,7.77468139987049e-5,3.635598677804548e-7,1.3491827123069286e-7,7.184362410895058e-7 +Bls12_381_G1_scalarMul/32/18,7.754168978173356e-5,7.749182465616098e-5,7.761267425418813e-5,1.9898524428909583e-7,1.6247982628522248e-7,2.4547229490289847e-7 +Bls12_381_G1_scalarMul/33/18,7.749652683641314e-5,7.742660317064181e-5,7.756730365847517e-5,2.439798823074951e-7,1.9849747912754699e-7,3.1143733072269507e-7 +Bls12_381_G1_scalarMul/34/18,7.786230172531652e-5,7.775856251239304e-5,7.80652276174234e-5,4.695021272466593e-7,2.8978894368632367e-7,8.232300563703444e-7 +Bls12_381_G1_scalarMul/35/18,7.768590930004178e-5,7.761163098549329e-5,7.777742511089281e-5,2.585468481130966e-7,2.2582041373963635e-7,3.357254774576352e-7 +Bls12_381_G1_scalarMul/36/18,7.76348778007182e-5,7.75696556812988e-5,7.772619774024346e-5,2.5266243852241185e-7,2.0605338833751982e-7,2.974220964758091e-7 +Bls12_381_G1_scalarMul/37/18,7.759522940000301e-5,7.753045244824393e-5,7.76857200542006e-5,2.600907881695823e-7,2.1274280464085061e-7,3.2805300455878263e-7 +Bls12_381_G1_scalarMul/38/18,7.712049240789323e-5,7.70880057308942e-5,7.716585648117905e-5,1.350117545240842e-7,9.75695225956287e-8,2.0624394333180052e-7 +Bls12_381_G1_scalarMul/39/18,7.75941742660586e-5,7.75434424282567e-5,7.766283973088986e-5,1.8616705002458357e-7,1.5227544522740207e-7,2.2403283598030317e-7 +Bls12_381_G1_scalarMul/40/18,7.769727527433894e-5,7.764204245563476e-5,7.775839194363079e-5,2.0044302152927345e-7,1.697052798281533e-7,2.4132134260580605e-7 +Bls12_381_G1_scalarMul/41/18,7.783727757545671e-5,7.759914892683508e-5,7.83604990313781e-5,1.0877456141219175e-6,1.7906645417788452e-7,1.970611040310509e-6 +Bls12_381_G1_scalarMul/42/18,7.768266808802161e-5,7.76240147238355e-5,7.774917311003842e-5,1.9921605019742808e-7,1.589927147475513e-7,2.3913756183185597e-7 +Bls12_381_G1_scalarMul/43/18,7.771655096640438e-5,7.764815724558874e-5,7.778649939320857e-5,2.264303056906204e-7,1.9991537149963667e-7,2.600143514185827e-7 +Bls12_381_G1_scalarMul/44/18,7.75416843579745e-5,7.750769519993682e-5,7.760206013488059e-5,1.4324781110959263e-7,1.1098045184639458e-7,1.9741133617624934e-7 +Bls12_381_G1_scalarMul/45/18,7.758189967071999e-5,7.752936757231174e-5,7.770448629926327e-5,2.6781689627408863e-7,1.3217906792036643e-7,4.99602334092822e-7 +Bls12_381_G1_scalarMul/46/18,7.801612920432623e-5,7.793671861945381e-5,7.808166687938979e-5,2.4554223864489794e-7,2.0865143632591308e-7,2.866138392525744e-7 +Bls12_381_G1_scalarMul/47/18,7.773398400347843e-5,7.766999833597937e-5,7.7797389771022e-5,2.163308937529944e-7,1.8358781751502733e-7,2.5491230018889764e-7 +Bls12_381_G1_scalarMul/48/18,7.76481941995392e-5,7.760383018210308e-5,7.770606683555326e-5,1.7101471375531483e-7,1.4501357876927827e-7,2.0023375338162751e-7 +Bls12_381_G1_scalarMul/49/18,7.759045492080347e-5,7.756214956951309e-5,7.765730463381059e-5,1.452345138043203e-7,7.251392196419161e-8,2.527470968561131e-7 +Bls12_381_G1_scalarMul/50/18,7.763239618958097e-5,7.75888513465025e-5,7.770345596862279e-5,1.8485183114300424e-7,1.3204687641533288e-7,3.043089593957192e-7 +Bls12_381_G1_scalarMul/51/18,7.773145259256757e-5,7.7654642133035e-5,7.782082951256286e-5,2.7997706117964677e-7,2.2915407023237756e-7,3.350606712561851e-7 +Bls12_381_G1_scalarMul/52/18,7.784412914155854e-5,7.773406357803327e-5,7.813157554691461e-5,5.367341012614329e-7,2.3039849652551316e-7,9.856127112006922e-7 +Bls12_381_G1_scalarMul/53/18,7.765042823229801e-5,7.758914002754004e-5,7.785960255490975e-5,3.599026692400098e-7,6.925761174708554e-8,7.513396325917412e-7 +Bls12_381_G1_scalarMul/54/18,7.778957931622638e-5,7.771735127525089e-5,7.788384903003519e-5,2.7341466603966803e-7,2.4335919898542927e-7,2.9902079757201296e-7 +Bls12_381_G1_scalarMul/55/18,7.764101422520294e-5,7.760426150101916e-5,7.768814063673103e-5,1.409011497803307e-7,1.0889589019985227e-7,2.0957467978513254e-7 +Bls12_381_G1_scalarMul/56/18,7.768018583552137e-5,7.763720756878498e-5,7.77520365884913e-5,1.7755173026950804e-7,1.3229533173946957e-7,2.378512434243376e-7 +Bls12_381_G1_scalarMul/57/18,7.797096847340285e-5,7.787819699090323e-5,7.805359662049971e-5,2.8801950908060617e-7,2.585305312394598e-7,3.2192994927382796e-7 +Bls12_381_G1_scalarMul/58/18,7.791166410998061e-5,7.783768688846701e-5,7.798265412442307e-5,2.501305753665398e-7,2.2919774643127208e-7,2.796605812484942e-7 +Bls12_381_G1_scalarMul/59/18,7.764928644584919e-5,7.76224207412457e-5,7.769475095394678e-5,1.1569029863522047e-7,7.774793346956441e-8,1.819911765923723e-7 +Bls12_381_G1_scalarMul/60/18,7.772830362064532e-5,7.762837538556639e-5,7.783366746489222e-5,3.412285857575461e-7,2.686695285776101e-7,4.381056901917349e-7 +Bls12_381_G1_scalarMul/61/18,7.778233201231854e-5,7.772350049141712e-5,7.784996911473854e-5,2.0602709205075068e-7,1.634578450378656e-7,2.523189574021016e-7 +Bls12_381_G1_scalarMul/62/18,7.764359728473704e-5,7.759752077169276e-5,7.769733519337915e-5,1.7356001972301564e-7,1.278354919249731e-7,2.6962804859235166e-7 +Bls12_381_G1_scalarMul/63/18,7.78964112754654e-5,7.781611137311025e-5,7.798132594610565e-5,2.8525995216031257e-7,2.5629653051635647e-7,3.1284813569070085e-7 +Bls12_381_G1_scalarMul/64/18,7.777084183243271e-5,7.772185973384187e-5,7.783647233536287e-5,1.8390414165038868e-7,1.402805307184987e-7,2.5859358723023227e-7 +Bls12_381_G1_scalarMul/65/18,7.770109121156198e-5,7.761651558376901e-5,7.800469062805538e-5,4.90116000986294e-7,8.08723933061913e-8,1.0200970240722585e-6 +Bls12_381_G1_scalarMul/66/18,7.790216448661901e-5,7.783543379811734e-5,7.800153111578755e-5,2.736488599917119e-7,1.8635769001593679e-7,4.067031433898421e-7 +Bls12_381_G1_scalarMul/67/18,7.768329649768809e-5,7.764758881237045e-5,7.774988449400833e-5,1.5599074250609546e-7,7.587993981439411e-8,2.4624629602406615e-7 +Bls12_381_G1_scalarMul/68/18,7.79573874293054e-5,7.787662228973504e-5,7.803900853685215e-5,2.6789341224197665e-7,2.412739309885313e-7,2.9744977359138144e-7 +Bls12_381_G1_scalarMul/69/18,7.776475648918607e-5,7.769279911160573e-5,7.794925901351679e-5,3.6799295535287104e-7,1.3059166724540878e-7,7.304578903938958e-7 +Bls12_381_G1_scalarMul/70/18,7.801689968440406e-5,7.791574663863092e-5,7.813725303317884e-5,3.650727921734697e-7,3.136578131077478e-7,5.025689512905628e-7 +Bls12_381_G1_scalarMul/71/18,7.797292771026845e-5,7.789396883366792e-5,7.808113230725807e-5,3.037276128235317e-7,2.4372269669115686e-7,4.1739626612112473e-7 +Bls12_381_G1_scalarMul/72/18,7.792289244096335e-5,7.787375334193525e-5,7.798400974306787e-5,1.8308812613057093e-7,1.5575926810578412e-7,2.1436738842305498e-7 +Bls12_381_G1_scalarMul/73/18,7.799883312541168e-5,7.791092293193817e-5,7.807419663876884e-5,2.7724779320606195e-7,2.5514158944840107e-7,3.0037877766610656e-7 +Bls12_381_G1_scalarMul/74/18,7.811654414698425e-5,7.803436589545043e-5,7.81928082611683e-5,2.6681174272229005e-7,2.2118712519266305e-7,2.974718430093928e-7 +Bls12_381_G1_scalarMul/75/18,7.793629261031562e-5,7.78534420719033e-5,7.80395443440634e-5,3.0182735905195303e-7,2.74992198733564e-7,3.2499274645518683e-7 +Bls12_381_G1_scalarMul/76/18,7.786228854092972e-5,7.776490570144468e-5,7.794591679872294e-5,2.944296394188711e-7,2.3220931972702236e-7,3.959619833787061e-7 +Bls12_381_G1_scalarMul/77/18,7.793577322015032e-5,7.78600582862549e-5,7.80155498886452e-5,2.721890688603306e-7,2.349812727234775e-7,3.036069382559088e-7 +Bls12_381_G1_scalarMul/78/18,7.787142077551568e-5,7.782535392602734e-5,7.792214820197397e-5,1.693337403109971e-7,1.316406493775882e-7,2.2245641805819918e-7 +Bls12_381_G1_scalarMul/79/18,7.790084582407615e-5,7.786019031161863e-5,7.794866277420542e-5,1.4280846611714414e-7,1.1945159135535134e-7,1.885197711127004e-7 +Bls12_381_G1_scalarMul/80/18,7.775623400007967e-5,7.773560170356733e-5,7.779197758580782e-5,9.067316464936756e-8,5.94477873032215e-8,1.3212949614457365e-7 +Bls12_381_G1_scalarMul/81/18,7.789342111029015e-5,7.784245816233098e-5,7.795510635400493e-5,1.8227265965538887e-7,1.5558274834372508e-7,2.3114546985792482e-7 +Bls12_381_G1_scalarMul/82/18,7.830944763213454e-5,7.82394158033575e-5,7.835227827971956e-5,1.8290918922530347e-7,1.2944494160504207e-7,2.50053927997393e-7 +Bls12_381_G1_scalarMul/83/18,7.782350976775117e-5,7.778837590646963e-5,7.787565389398968e-5,1.454002594339918e-7,9.62317375387641e-8,2.1197973551157049e-7 +Bls12_381_G1_scalarMul/84/18,7.838450249137152e-5,7.832094204803358e-5,7.841564336684214e-5,1.415771301215882e-7,9.562519156417548e-8,2.131686699235845e-7 +Bls12_381_G1_scalarMul/85/18,7.835825873785818e-5,7.831109681215268e-5,7.838386107588701e-5,1.0951390437982412e-7,7.375853781336468e-8,1.7968634435604304e-7 +Bls12_381_G1_scalarMul/86/18,7.788226086142922e-5,7.783359933196925e-5,7.79594105524064e-5,2.0042085679662138e-7,1.428858833370932e-7,2.6371342728858234e-7 +Bls12_381_G1_scalarMul/87/18,7.828685625787067e-5,7.821222119216306e-5,7.834459137244337e-5,2.2222990291057091e-7,1.7666127430959368e-7,2.611651336226799e-7 +Bls12_381_G1_scalarMul/88/18,7.83891732200468e-5,7.833608176155842e-5,7.842302414582486e-5,1.4000506355316157e-7,9.307948828989088e-8,2.2216269891141107e-7 +Bls12_381_G1_scalarMul/89/18,7.82702256684168e-5,7.820644814862482e-5,7.832805337345679e-5,2.1383545619469579e-7,1.7929354395124955e-7,2.582875421269239e-7 +Bls12_381_G1_scalarMul/90/18,7.810658024969737e-5,7.803340613988236e-5,7.819291634902133e-5,2.7212833023275885e-7,2.4617815464469263e-7,2.9992473532263027e-7 +Bls12_381_G1_scalarMul/91/18,7.810181904447687e-5,7.803258655331659e-5,7.820124982914631e-5,2.737949637525262e-7,2.417074079073469e-7,3.038489424897443e-7 +Bls12_381_G1_scalarMul/92/18,7.813992881326646e-5,7.802125317398956e-5,7.825072790093525e-5,3.788657803129464e-7,3.3769935857670573e-7,4.794094954388204e-7 +Bls12_381_G1_scalarMul/93/18,7.788928679465023e-5,7.785965088461227e-5,7.794049629911316e-5,1.2884748834968721e-7,8.69633709057452e-8,1.9028930297607077e-7 +Bls12_381_G1_scalarMul/94/18,7.818777521923068e-5,7.809901502956272e-5,7.827131575467943e-5,3.0055934630687077e-7,2.703324352214315e-7,3.5719504763191715e-7 +Bls12_381_G1_scalarMul/95/18,7.778603670148527e-5,7.772810180380521e-5,7.78445878826395e-5,2.0211513065889854e-7,1.730542405614137e-7,2.672071053159005e-7 +Bls12_381_G1_scalarMul/96/18,7.791203793247934e-5,7.788305959190164e-5,7.795570362218306e-5,1.1210487228862095e-7,8.566444962105931e-8,1.492969261944345e-7 +Bls12_381_G1_scalarMul/97/18,7.798860242918733e-5,7.794039367975952e-5,7.805861883876676e-5,1.9190785952055142e-7,1.470087891996212e-7,2.4203912907496213e-7 +Bls12_381_G1_scalarMul/98/18,7.833057977992817e-5,7.824575348417232e-5,7.841002222302437e-5,2.792686794217637e-7,2.3692804515858624e-7,3.0796679775898943e-7 +Bls12_381_G1_scalarMul/99/18,7.797304552460867e-5,7.792833659617216e-5,7.805520419813533e-5,1.9459880438803713e-7,1.1435555294313921e-7,2.771309122711044e-7 +Bls12_381_G1_scalarMul/100/18,7.807920491959857e-5,7.800789656387276e-5,7.814835216258971e-5,2.4414244529387145e-7,2.014070433568277e-7,3.242007846904936e-7 +Bls12_381_G1_equal/18/18,1.2874567097071325e-6,1.2868733126027498e-6,1.2879391945872734e-6,1.7937887702858637e-9,1.5567927603393856e-9,2.098128037298675e-9 +Bls12_381_G1_equal/18/18,1.2815678738794673e-6,1.280514392942426e-6,1.2826258799737414e-6,3.5999740699896235e-9,3.0854536483101187e-9,4.214777901970821e-9 +Bls12_381_G1_equal/18/18,1.286249972865508e-6,1.2853673543236597e-6,1.2872814426278093e-6,3.2459683385062394e-9,2.6763952185224538e-9,4.027580534481357e-9 +Bls12_381_G1_equal/18/18,1.2834888565729563e-6,1.2827334001563105e-6,1.2843458382213771e-6,2.5856342110441243e-9,2.164561219364776e-9,3.1781034595547722e-9 +Bls12_381_G1_equal/18/18,1.2799053699172623e-6,1.2788366714572003e-6,1.2809737669638265e-6,3.6673911656484225e-9,3.0180931389708887e-9,4.8329843697497595e-9 +Bls12_381_G1_equal/18/18,1.2779445140541694e-6,1.2771547513927655e-6,1.2786849239104302e-6,2.567346297025384e-9,2.2235965314088033e-9,3.030208230318648e-9 +Bls12_381_G1_equal/18/18,1.2792450896922567e-6,1.2785556503306859e-6,1.280079528259804e-6,2.5786168134132727e-9,2.129601307727504e-9,3.266048378542153e-9 +Bls12_381_G1_equal/18/18,1.281943834434272e-6,1.2812331588936332e-6,1.282808189428855e-6,2.4834093985988797e-9,1.977168419409351e-9,3.2850117930770903e-9 +Bls12_381_G1_equal/18/18,1.2798730817735203e-6,1.2793183076415019e-6,1.2803682965747343e-6,1.7289122739937779e-9,1.4603033297383708e-9,2.1200084044109637e-9 +Bls12_381_G1_equal/18/18,1.277998121788142e-6,1.2773028752660223e-6,1.2786746125072037e-6,2.24198051723277e-9,1.8535458138414243e-9,2.738228534857598e-9 +Bls12_381_G1_equal/18/18,1.278712239076788e-6,1.278158835488356e-6,1.2791779261420395e-6,1.6809751577489405e-9,1.4179827927845546e-9,2.185464332635021e-9 +Bls12_381_G1_equal/18/18,1.2760299825354829e-6,1.2753854478262844e-6,1.2767062083419168e-6,2.1338954426384247e-9,1.8355769594915777e-9,2.5841983374081837e-9 +Bls12_381_G1_equal/18/18,1.2746773147972585e-6,1.2739822338607157e-6,1.2755480286731155e-6,2.517090751174229e-9,2.078618002717038e-9,3.1153607055264285e-9 +Bls12_381_G1_equal/18/18,1.2802182788514846e-6,1.2793716982427415e-6,1.280910932779366e-6,2.578476630541445e-9,2.20989617718127e-9,3.1652567808986375e-9 +Bls12_381_G1_equal/18/18,1.2831108889951256e-6,1.2825251766552654e-6,1.283837982415936e-6,2.2406782049353347e-9,1.902541528468499e-9,2.701542219471943e-9 +Bls12_381_G1_equal/18/18,1.2839169682715194e-6,1.2832738303495222e-6,1.2846517593531039e-6,2.1879168961590814e-9,1.7799036159136815e-9,2.859872732303741e-9 +Bls12_381_G1_equal/18/18,1.278976218549776e-6,1.278182927461497e-6,1.2798382533093904e-6,2.8362591501160593e-9,2.287593444152756e-9,3.6835341789277125e-9 +Bls12_381_G1_equal/18/18,1.2842685025300203e-6,1.2830242931620374e-6,1.2856483234084938e-6,4.161857682034649e-9,3.562178888506169e-9,4.899769270380063e-9 +Bls12_381_G1_equal/18/18,1.2728457700988925e-6,1.2721494261601426e-6,1.2735061236559716e-6,2.3435915099363585e-9,1.9192385359291925e-9,2.960659530674782e-9 +Bls12_381_G1_equal/18/18,1.277011482457488e-6,1.2761644359426202e-6,1.2779383610625407e-6,2.8116607006619604e-9,2.330187311926399e-9,3.4146357213530976e-9 +Bls12_381_G1_equal/18/18,1.2702144609315557e-6,1.2693972759736034e-6,1.2709333876380094e-6,2.4826234330553645e-9,2.054563368976105e-9,3.108989637773249e-9 +Bls12_381_G1_equal/18/18,1.2810664699345642e-6,1.2803686590984898e-6,1.2818137332930254e-6,2.53437855154004e-9,2.113567652076265e-9,3.179961943720145e-9 +Bls12_381_G1_equal/18/18,1.2807009346860726e-6,1.279925185317553e-6,1.2815101762447339e-6,2.7189440404724028e-9,2.273830665990639e-9,3.2808617770305492e-9 +Bls12_381_G1_equal/18/18,1.2827975313796985e-6,1.2822298069184316e-6,1.2833777960950773e-6,1.9592083059727223e-9,1.647493065951293e-9,2.37726590895384e-9 +Bls12_381_G1_equal/18/18,1.2907784350025534e-6,1.2899871455546827e-6,1.291527128363453e-6,2.5022759650686124e-9,2.0329995460976925e-9,3.0880807383618155e-9 +Bls12_381_G1_equal/18/18,1.28342568020889e-6,1.2826310361146183e-6,1.2842863381682935e-6,2.7905054453160425e-9,2.2612020494603757e-9,3.6207622104937726e-9 +Bls12_381_G1_equal/18/18,1.2834666546118088e-6,1.282772519861353e-6,1.2841147462004485e-6,2.2578704431208396e-9,1.8922421493431937e-9,2.8166855711553956e-9 +Bls12_381_G1_equal/18/18,1.2803265277556352e-6,1.2792716838985197e-6,1.2812896497679706e-6,3.2763992865441576e-9,2.911866433701052e-9,3.989114030515464e-9 +Bls12_381_G1_equal/18/18,1.2795437317119525e-6,1.2787135857201476e-6,1.2805617166764927e-6,3.095019702331896e-9,2.4119546553929864e-9,4.036605657126511e-9 +Bls12_381_G1_equal/18/18,1.275964246996609e-6,1.2752025336551417e-6,1.2765845754273862e-6,2.2610257123667566e-9,1.9102516354451754e-9,3.1724407246690687e-9 +Bls12_381_G1_equal/18/18,1.2816684890970743e-6,1.2806571348230367e-6,1.282574946822439e-6,3.1741827210566323e-9,2.58339203067977e-9,4.037305398911644e-9 +Bls12_381_G1_equal/18/18,1.2820621448367545e-6,1.2813319606569528e-6,1.2827709835811045e-6,2.499419436404907e-9,2.192267939803742e-9,2.9501697849923007e-9 +Bls12_381_G1_equal/18/18,1.2813138960625467e-6,1.2806414845183429e-6,1.2819115408556129e-6,2.1249305346978636e-9,1.7508445536146406e-9,2.651427785222759e-9 +Bls12_381_G1_equal/18/18,1.2796898346573888e-6,1.2783263366362504e-6,1.2810738800648802e-6,4.383954112290001e-9,3.889918102666569e-9,4.9967913735488465e-9 +Bls12_381_G1_equal/18/18,1.281469588635668e-6,1.2806109355696816e-6,1.2821520631233412e-6,2.6391265353651164e-9,2.0680295840505956e-9,3.3477928822445365e-9 +Bls12_381_G1_equal/18/18,1.2773106989440382e-6,1.2763900530144828e-6,1.2780878983501762e-6,2.8281672618072382e-9,2.3352294336064774e-9,3.562652766973585e-9 +Bls12_381_G1_equal/18/18,1.2828675428188992e-6,1.2822152222316416e-6,1.2835685191886433e-6,2.2869473102270065e-9,1.962565747321362e-9,2.656567998184062e-9 +Bls12_381_G1_equal/18/18,1.2772962027943954e-6,1.2765117707403844e-6,1.2778988567934892e-6,2.2195369705559894e-9,1.800966425316838e-9,2.899269282480648e-9 +Bls12_381_G1_equal/18/18,1.2790792169939855e-6,1.278447391660284e-6,1.2795498248169128e-6,1.8152344886984504e-9,1.471259698290628e-9,2.3033549639396355e-9 +Bls12_381_G1_equal/18/18,1.2773159885054328e-6,1.2763410912818539e-6,1.2784212404121242e-6,3.4795071136221067e-9,2.9616953976062704e-9,4.276317639385809e-9 +Bls12_381_G1_equal/18/18,1.2795268218818583e-6,1.2784810411646042e-6,1.2803243978716362e-6,3.004309882547687e-9,2.3057339534781184e-9,4.027163719161519e-9 +Bls12_381_G1_equal/18/18,1.275839987297089e-6,1.2751523526370501e-6,1.2764294453885687e-6,2.166795210034601e-9,1.8774392380531564e-9,2.606897075187136e-9 +Bls12_381_G1_equal/18/18,1.2788783398718942e-6,1.277983053442669e-6,1.2798218527804855e-6,2.995044448325708e-9,2.488650590285966e-9,3.730703156447288e-9 +Bls12_381_G1_equal/18/18,1.2740413562784529e-6,1.2731744741578093e-6,1.2749680878046305e-6,2.9291429363574088e-9,2.41889448468115e-9,3.988575163553121e-9 +Bls12_381_G1_equal/18/18,1.28949574081003e-6,1.2889122387239366e-6,1.290196485978308e-6,2.142052351527943e-9,1.761052615034385e-9,2.7126447321261106e-9 +Bls12_381_G1_equal/18/18,1.2710348518570488e-6,1.270169026012067e-6,1.2718870448867644e-6,2.8203016060882834e-9,2.4867940348920005e-9,3.2598442703638594e-9 +Bls12_381_G1_equal/18/18,1.2808012153826793e-6,1.2800499770751017e-6,1.2815260375172382e-6,2.4234777986776506e-9,2.0411412214366786e-9,2.9767307186997203e-9 +Bls12_381_G1_equal/18/18,1.273810368436979e-6,1.27317730531055e-6,1.2744600116226882e-6,2.11198784882392e-9,1.7171668316136055e-9,2.5566867737853767e-9 +Bls12_381_G1_equal/18/18,1.2829949403303984e-6,1.2820940727932862e-6,1.2838811160576897e-6,3.0134375843302176e-9,2.518944110282081e-9,3.826609405423661e-9 +Bls12_381_G1_equal/18/18,1.2830965864130102e-6,1.282386427424415e-6,1.2838239650734686e-6,2.3847368858675713e-9,2.0154481776060325e-9,2.899721927710339e-9 +Bls12_381_G1_equal/18/18,1.2812463555758558e-6,1.280347670336523e-6,1.282044775323024e-6,2.795126583835766e-9,2.2343125262786606e-9,3.9541376388920945e-9 +Bls12_381_G1_equal/18/18,1.2798627292225236e-6,1.2789998016615983e-6,1.2807176342966012e-6,2.943195000928759e-9,2.506246117087194e-9,3.5812945816897193e-9 +Bls12_381_G1_equal/18/18,1.2814840853822447e-6,1.2808755327516416e-6,1.2820708723685241e-6,1.9850777207893827e-9,1.7018840991103809e-9,2.5331685538876155e-9 +Bls12_381_G1_equal/18/18,1.285018476250087e-6,1.284476728273375e-6,1.2856006102389547e-6,1.926093866348728e-9,1.644302725909963e-9,2.379805182237016e-9 +Bls12_381_G1_equal/18/18,1.2759443548717503e-6,1.2750242608763422e-6,1.2768617100035595e-6,3.2208121120713135e-9,2.7297610523019293e-9,4.038634211280343e-9 +Bls12_381_G1_equal/18/18,1.2814512312530792e-6,1.2808969524927185e-6,1.282148859609071e-6,2.045442580031912e-9,1.6691436864813792e-9,2.62387329867252e-9 +Bls12_381_G1_equal/18/18,1.2792556723100953e-6,1.2785770531606949e-6,1.2798696240529651e-6,2.15228168012522e-9,1.6793214701725504e-9,2.9797708102666065e-9 +Bls12_381_G1_equal/18/18,1.278030601492116e-6,1.277472629145719e-6,1.2785761252716236e-6,1.8638425031679723e-9,1.5571321987238105e-9,2.243741060753542e-9 +Bls12_381_G1_equal/18/18,1.2800991706880796e-6,1.2791422425671962e-6,1.2809757135201136e-6,3.048091149323533e-9,2.583584780646657e-9,3.76405880029243e-9 +Bls12_381_G1_equal/18/18,1.283174068359132e-6,1.2824168916809816e-6,1.2840407974572135e-6,2.5952796336115714e-9,2.0701510634685793e-9,3.2773418057385257e-9 +Bls12_381_G1_equal/18/18,1.2802529858363134e-6,1.2795980958461431e-6,1.280851715611343e-6,2.23763486993103e-9,1.8614687587740032e-9,2.7533192364015733e-9 +Bls12_381_G1_equal/18/18,1.2795227619727156e-6,1.2782307587131586e-6,1.2805967868320467e-6,3.931313741067605e-9,3.1050354016138224e-9,5.0309737400955656e-9 +Bls12_381_G1_equal/18/18,1.2743141761611544e-6,1.2733774510381893e-6,1.275061113321422e-6,2.7754317709481322e-9,2.0368994990083123e-9,3.7550980924778646e-9 +Bls12_381_G1_equal/18/18,1.275562227175315e-6,1.2749049967040578e-6,1.276212140378422e-6,2.257926994431631e-9,1.8550968166241657e-9,2.858535307465259e-9 +Bls12_381_G1_equal/18/18,1.2732662528730129e-6,1.2726577754043226e-6,1.2739773621046266e-6,2.1545992230275793e-9,1.840874509374737e-9,2.6669810318319044e-9 +Bls12_381_G1_equal/18/18,1.2723871305457867e-6,1.2717306328828258e-6,1.2730048458379733e-6,2.1196421278848935e-9,1.6474036572143383e-9,2.6012647743337052e-9 +Bls12_381_G1_equal/18/18,1.2781764553800844e-6,1.277465756554613e-6,1.2789274778911714e-6,2.4408751134498133e-9,2.050492981118938e-9,2.998524290955429e-9 +Bls12_381_G1_equal/18/18,1.280130621669344e-6,1.279116308699652e-6,1.2811606445698813e-6,3.4327848886763715e-9,2.9137625402481693e-9,4.123769647063013e-9 +Bls12_381_G1_equal/18/18,1.2815136154142161e-6,1.2804548752408718e-6,1.2825130665990627e-6,3.5530618128343817e-9,3.0031908765264048e-9,4.186975436881936e-9 +Bls12_381_G1_equal/18/18,1.2789906227902345e-6,1.2783801573417696e-6,1.279596365270203e-6,1.9815255650298863e-9,1.6106241704288656e-9,2.488447567866567e-9 +Bls12_381_G1_equal/18/18,1.2774388492792922e-6,1.2765686924631908e-6,1.278249321979242e-6,2.746744473337364e-9,2.325988635611233e-9,3.282663801812753e-9 +Bls12_381_G1_equal/18/18,1.277452121124016e-6,1.2765566154517066e-6,1.2783230495562753e-6,2.9506291635084102e-9,2.4856441729294625e-9,3.6581441390654863e-9 +Bls12_381_G1_equal/18/18,1.2870144403408554e-6,1.2860624759610247e-6,1.2882248421458999e-6,3.865437860204455e-9,3.0861070940655032e-9,4.798481869658906e-9 +Bls12_381_G1_equal/18/18,1.2841093483573555e-6,1.283380849650326e-6,1.2849907944891148e-6,2.693692630779629e-9,2.2684879369809833e-9,3.3119897557864545e-9 +Bls12_381_G1_equal/18/18,1.2881120027915456e-6,1.2876751943714532e-6,1.2884764009076074e-6,1.3603170830525617e-9,1.0789617965047549e-9,1.6984781046062776e-9 +Bls12_381_G1_equal/18/18,1.2786478387227688e-6,1.277740723997407e-6,1.2793217613447537e-6,2.698987977685712e-9,2.2986310570717952e-9,3.319211890218564e-9 +Bls12_381_G1_equal/18/18,1.280833318033625e-6,1.2803458663602575e-6,1.2813308996010356e-6,1.585921849879344e-9,1.3645144000329737e-9,1.8755510654260297e-9 +Bls12_381_G1_equal/18/18,1.2790676149980881e-6,1.2781771969289859e-6,1.2799256876182855e-6,2.9558138372126827e-9,2.530092578204264e-9,3.5644546054174427e-9 +Bls12_381_G1_equal/18/18,1.2805010637195973e-6,1.2793511588944808e-6,1.2814983266701185e-6,3.6301979246172394e-9,3.02882431852457e-9,4.3522832811766945e-9 +Bls12_381_G1_equal/18/18,1.2814164319919219e-6,1.2807350770264483e-6,1.2820964948311853e-6,2.257818489538042e-9,1.8417729603394823e-9,2.9030070376326893e-9 +Bls12_381_G1_equal/18/18,1.2807641905921853e-6,1.2801582741101343e-6,1.2812705847757726e-6,1.8858984613410505e-9,1.580834816202297e-9,2.267779845430892e-9 +Bls12_381_G1_equal/18/18,1.2861025311803067e-6,1.2853181210540697e-6,1.2868801539351742e-6,2.5918528281027325e-9,2.052920017805209e-9,3.3688658382530283e-9 +Bls12_381_G1_equal/18/18,1.2833386853722709e-6,1.2826084319013373e-6,1.2842869413743704e-6,2.801037910543131e-9,2.292637710636906e-9,3.496812340472413e-9 +Bls12_381_G1_equal/18/18,1.2774501886853246e-6,1.2768546271186914e-6,1.2781245290088907e-6,2.1619788611068416e-9,1.770970377365876e-9,2.86339179485586e-9 +Bls12_381_G1_equal/18/18,1.283934326506933e-6,1.283016567773132e-6,1.2849200210733031e-6,3.099397386818772e-9,2.6089319679808603e-9,3.732858010205184e-9 +Bls12_381_G1_equal/18/18,1.2790367283611628e-6,1.278253470655687e-6,1.2798169497276775e-6,2.703962221732936e-9,2.272198279367008e-9,3.2525610951969647e-9 +Bls12_381_G1_equal/18/18,1.2771070845395599e-6,1.2763402247861848e-6,1.2779775061378351e-6,2.8066788718400515e-9,2.390092815260336e-9,3.658348106300242e-9 +Bls12_381_G1_equal/18/18,1.2857156978509112e-6,1.284650427055723e-6,1.286644162903301e-6,3.522052208921037e-9,2.9114837185510314e-9,4.279538166315705e-9 +Bls12_381_G1_equal/18/18,1.2806110092681167e-6,1.2799040281655433e-6,1.281302110763541e-6,2.3291797545628713e-9,1.911058194652557e-9,2.936730951177094e-9 +Bls12_381_G1_equal/18/18,1.2759885349591516e-6,1.2751296050353065e-6,1.2769079335728627e-6,2.79458120803867e-9,2.36168456149473e-9,3.309858920257428e-9 +Bls12_381_G1_equal/18/18,1.2759030491048134e-6,1.275283680193902e-6,1.2766662470897057e-6,2.2686585203737805e-9,1.9436142072612335e-9,2.763930998688026e-9 +Bls12_381_G1_equal/18/18,1.278750678904854e-6,1.2781235452856448e-6,1.279327121138804e-6,2.004563914668135e-9,1.687071859372704e-9,2.4363486277059896e-9 +Bls12_381_G1_equal/18/18,1.2825097094330633e-6,1.2816389782469672e-6,1.2834672775647174e-6,3.089495002028343e-9,2.6418086756469996e-9,3.731402595483493e-9 +Bls12_381_G1_equal/18/18,1.2876372554843473e-6,1.2868332910234915e-6,1.2884427509306494e-6,2.8049972539968863e-9,2.297139646334929e-9,3.6236983491429554e-9 +Bls12_381_G1_equal/18/18,1.2888799855105682e-6,1.2881248790528412e-6,1.2895401031167595e-6,2.4352728935195814e-9,1.992477086071726e-9,3.0689319148554055e-9 +Bls12_381_G1_equal/18/18,1.2836084345270755e-6,1.281978644073817e-6,1.2849548891775126e-6,5.126370040248492e-9,4.064813444714181e-9,7.3705010591111794e-9 +Bls12_381_G1_equal/18/18,1.2799439285917539e-6,1.2791965334169465e-6,1.2807915598918533e-6,2.7348961935734934e-9,2.225280435038207e-9,3.7878693322579654e-9 +Bls12_381_G1_equal/18/18,1.2831788797680776e-6,1.2823849175140287e-6,1.2838927180547464e-6,2.435807597057098e-9,2.0729428273320196e-9,2.9240503032643208e-9 +Bls12_381_G1_equal/18/18,1.2751252590083923e-6,1.2741842215382484e-6,1.2759232889682488e-6,2.8771433918573227e-9,2.296728894503714e-9,3.72558351106921e-9 +Bls12_381_G1_equal/18/18,1.2759910182520899e-6,1.2751587100851342e-6,1.276740419716269e-6,2.6484482109458996e-9,2.100611032274195e-9,3.3980812497802813e-9 +Bls12_381_G1_hashToGroup/218/32,5.419700311669843e-5,5.4157678763722125e-5,5.437817492110109e-5,2.3549993844858108e-7,2.497738726946008e-8,5.29825445493215e-7 +Bls12_381_G1_hashToGroup/204/32,5.41397982583214e-5,5.4103323229279503e-5,5.422060767505049e-5,1.8290808627846108e-7,8.784955352930296e-8,3.245895517148069e-7 +Bls12_381_G1_hashToGroup/321/32,5.456406710268886e-5,5.4559976440008504e-5,5.456873458903333e-5,1.4297236561622026e-8,1.1068967991016381e-8,1.8786818263394056e-8 +Bls12_381_G1_hashToGroup/102/32,5.370941482953395e-5,5.3695712223555306e-5,5.3755103605662674e-5,7.846983395346707e-8,2.4500882541059882e-8,1.5980656409895063e-7 +Bls12_381_G1_hashToGroup/347/32,5.465077390165519e-5,5.4639104762920076e-5,5.4688144199885426e-5,6.493994166796885e-8,1.508966076990297e-8,1.3533448402175712e-7 +Bls12_381_G1_hashToGroup/360/32,5.470621037612793e-5,5.469053022300318e-5,5.471595759527183e-5,4.153770365233884e-8,2.7674914484959314e-8,5.806112615694137e-8 +Bls12_381_G1_hashToGroup/206/32,5.411429636963184e-5,5.411063595880418e-5,5.411882500702994e-5,1.3833542844282187e-8,1.1906017010508709e-8,1.6900506298504702e-8 +Bls12_381_G1_hashToGroup/306/32,5.450169990734345e-5,5.449592665137342e-5,5.45082668307358e-5,2.06182984945689e-8,1.7442722261191166e-8,2.4346064857338402e-8 +Bls12_381_G1_hashToGroup/240/32,5.428578510185024e-5,5.4278053016237706e-5,5.429761409806303e-5,3.29301155054737e-8,2.3702711526712984e-8,4.5719644213798713e-8 +Bls12_381_G1_hashToGroup/277/32,5.441057222388923e-5,5.44042820861511e-5,5.4418734158851496e-5,2.3643699554699814e-8,1.8589293493619153e-8,3.127139757397561e-8 +Bls12_381_G1_hashToGroup/242/32,5.42713275889354e-5,5.426421864502945e-5,5.4281404885974876e-5,2.9331514785094733e-8,2.2311221885568177e-8,3.8557734872711825e-8 +Bls12_381_G1_hashToGroup/19/32,5.342998335304085e-5,5.341277934708083e-5,5.3461999012117655e-5,7.879792503919525e-8,4.901901217557705e-8,1.3571097655836847e-7 +Bls12_381_G1_hashToGroup/295/32,5.449817727493086e-5,5.448938457958164e-5,5.450965902717586e-5,3.230138505630518e-8,2.485988104939692e-8,4.5230112940250575e-8 +Bls12_381_G1_hashToGroup/142/32,5.38843119918105e-5,5.3877294312085085e-5,5.3891206097064846e-5,2.4398370083848678e-8,2.1029774015512046e-8,3.071907153765025e-8 +Bls12_381_G1_hashToGroup/242/32,5.426277184974273e-5,5.425676113208102e-5,5.426856171521019e-5,1.9992943409986275e-8,1.6851538052142815e-8,2.4742880041169487e-8 +Bls12_381_G1_hashToGroup/180/32,5.4038108367411534e-5,5.4030018789283026e-5,5.404771853931459e-5,2.768534993135167e-8,2.4294854388397545e-8,3.224059563783521e-8 +Bls12_381_G1_hashToGroup/189/32,5.409966757178773e-5,5.406876158459214e-5,5.4209520124101614e-5,1.8912288511041085e-7,2.8477536571366455e-8,4.0004896721562245e-7 +Bls12_381_G1_hashToGroup/86/32,5.3694971826289545e-5,5.368637067377224e-5,5.370459207774498e-5,3.1814172195095165e-8,2.5751971170207693e-8,3.958883348655327e-8 +Bls12_381_G1_hashToGroup/187/32,5.41131020284033e-5,5.407776554165718e-5,5.426565081439577e-5,2.0853553301041624e-7,3.453263082660327e-8,4.725835825175709e-7 +Bls12_381_G1_hashToGroup/252/32,5.43105220751873e-5,5.430304594784344e-5,5.431927100922997e-5,2.710147407070079e-8,2.2473849423588883e-8,3.38498742016747e-8 +Bls12_381_G1_hashToGroup/180/32,5.4047557282365145e-5,5.40387773599282e-5,5.405650613524234e-5,3.038688334911528e-8,2.504873209399814e-8,4.100558939995651e-8 +Bls12_381_G1_hashToGroup/132/32,5.3841082641393445e-5,5.3831855006795595e-5,5.385092254595622e-5,3.0927030351826417e-8,2.6292161098270804e-8,3.744971864308708e-8 +Bls12_381_G1_hashToGroup/355/32,5.472525896704642e-5,5.470143887708323e-5,5.483230812599074e-5,1.3709949034627753e-7,2.53491253509172e-8,3.060824670852675e-7 +Bls12_381_G1_hashToGroup/317/32,5.457592683791673e-5,5.4567752082131e-5,5.45861242105001e-5,3.24001882809375e-8,2.666349582815968e-8,4.1849422709045836e-8 +Bls12_381_G1_hashToGroup/154/32,5.395979496574041e-5,5.395216407767445e-5,5.396892466865114e-5,2.7802413600104998e-8,2.2605138275347085e-8,3.402055439287327e-8 +Bls12_381_G1_hashToGroup/217/32,5.4170363730388424e-5,5.415300801400441e-5,5.418619712460485e-5,5.666437932260321e-8,4.45205120897317e-8,7.03773296705091e-8 +Bls12_381_G1_hashToGroup/322/32,5.458609986960851e-5,5.4577929644407546e-5,5.4595827765714244e-5,3.071883394243831e-8,2.536237580114363e-8,4.20584000760535e-8 +Bls12_381_G1_hashToGroup/281/32,5.443825211832194e-5,5.44306644217694e-5,5.4446350043298296e-5,2.5740623025666085e-8,2.1481445950527197e-8,3.2789508566766745e-8 +Bls12_381_G1_hashToGroup/23/32,5.3510751178422315e-5,5.349804966629489e-5,5.352374466462288e-5,4.724540958703606e-8,3.933031477640991e-8,5.790788133314651e-8 +Bls12_381_G1_hashToGroup/104/32,5.373418040614531e-5,5.372426512854719e-5,5.376755347409098e-5,5.409791649914546e-8,2.2665363932493276e-8,1.0829056168428746e-7 +Bls12_381_G1_hashToGroup/308/32,5.4510024987183924e-5,5.4503566562906646e-5,5.452224135952401e-5,2.925232608643747e-8,1.550507658256324e-8,5.267543438815633e-8 +Bls12_381_G1_hashToGroup/215/32,5.417265229157334e-5,5.416450207927948e-5,5.4188908989037764e-5,3.677436393632362e-8,2.3169905307548463e-8,5.645676458525279e-8 +Bls12_381_G1_hashToGroup/237/32,5.424715312131527e-5,5.423543801285036e-5,5.42670097052065e-5,5.058290643245132e-8,3.5031824510881334e-8,6.95368988310773e-8 +Bls12_381_G1_hashToGroup/267/32,5.43798122097917e-5,5.437112551074458e-5,5.439716312259962e-5,3.7923746856055087e-8,2.7463033640726585e-8,5.678977382386136e-8 +Bls12_381_G1_hashToGroup/27/32,5.345527404773711e-5,5.344770113377706e-5,5.3471245315710166e-5,3.518723535816339e-8,2.228885467397154e-8,6.340002535442185e-8 +Bls12_381_G1_hashToGroup/13/32,5.339470108762967e-5,5.338418296532915e-5,5.34082381247794e-5,3.8952272462579004e-8,2.9702770747035034e-8,5.192224580067721e-8 +Bls12_381_G1_hashToGroup/161/32,5.393417266582326e-5,5.3922802250583635e-5,5.3962631294945006e-5,5.367385572484509e-8,3.213833781915065e-8,9.984448694036726e-8 +Bls12_381_G1_hashToGroup/299/32,5.4463023866246575e-5,5.445551968985206e-5,5.447388608580879e-5,3.085113553280971e-8,2.1611328318913952e-8,5.0601082037172435e-8 +Bls12_381_G1_hashToGroup/102/32,5.37369358403801e-5,5.373080775669011e-5,5.374546463111257e-5,2.494329512087e-8,1.999362634395636e-8,3.246973735237737e-8 +Bls12_381_G1_hashToGroup/271/32,5.434888977977512e-5,5.4323946407782934e-5,5.437213106690251e-5,8.213084173528923e-8,7.5727387257844e-8,9.046197304135501e-8 +Bls12_381_G1_hashToGroup/74/32,5.360737710620567e-5,5.3590052763471815e-5,5.364088699689018e-5,8.223016622483109e-8,5.133283751247535e-8,1.5054347788599777e-7 +Bls12_381_G1_hashToGroup/5/32,5.339839514894725e-5,5.3389070452300305e-5,5.3416974914596946e-5,4.34046830544217e-8,2.5235127761112143e-8,7.99476738597424e-8 +Bls12_381_G1_hashToGroup/30/32,5.348799960091275e-5,5.3478152356963924e-5,5.350125628707443e-5,3.754205753307511e-8,2.6222420617858085e-8,6.217331461246385e-8 +Bls12_381_G1_hashToGroup/132/32,5.385894014612828e-5,5.384835169316862e-5,5.38984282585368e-5,5.7593742105853036e-8,2.4737741643983982e-8,1.1211597293852753e-7 +Bls12_381_G1_hashToGroup/78/32,5.3669400346559686e-5,5.3660105518975886e-5,5.368251455241467e-5,3.603646482085222e-8,2.4290998285153008e-8,5.7570357718199855e-8 +Bls12_381_G1_hashToGroup/153/32,5.394566669273179e-5,5.393904208213553e-5,5.3956109512548176e-5,2.7868268628773965e-8,1.963402280952658e-8,4.3925158331433764e-8 +Bls12_381_G1_hashToGroup/203/32,5.4135575785002734e-5,5.412409533361552e-5,5.416162646747002e-5,5.787401020379775e-8,3.3215850432286775e-8,1.0262137299059691e-7 +Bls12_381_G1_hashToGroup/364/32,5.476793220212148e-5,5.4756791194002935e-5,5.477773046931845e-5,3.600634307704036e-8,3.1669134868194206e-8,4.113333391884919e-8 +Bls12_381_G1_hashToGroup/1/32,5.3413203870171164e-5,5.340556494610232e-5,5.3421308426089656e-5,2.5756236273035467e-8,2.058414751611574e-8,3.349133291381566e-8 +Bls12_381_G1_hashToGroup/62/32,5.3628153580923575e-5,5.360222285518215e-5,5.370610524387536e-5,1.373601326243791e-7,5.2084536274800216e-8,3.001407689815627e-7 +Bls12_381_G1_hashToGroup/119/32,5.3856941490370475e-5,5.384373239060271e-5,5.387205965435302e-5,4.4285888947662e-8,3.5837853345787624e-8,5.8718552492200933e-8 +Bls12_381_G1_hashToGroup/59/32,5.3584416699116016e-5,5.357394414722478e-5,5.360256342844957e-5,4.62221602516276e-8,3.4397269642203126e-8,7.07693978924155e-8 +Bls12_381_G1_hashToGroup/61/32,5.35691428974937e-5,5.356007825535686e-5,5.358012908595039e-5,3.3166109650475e-8,2.6479683692577612e-8,4.345043801406271e-8 +Bls12_381_G1_hashToGroup/265/32,5.435756957651953e-5,5.43518028509891e-5,5.4364267088354156e-5,2.0504768238811962e-8,1.4880682202174204e-8,3.0104818606382475e-8 +Bls12_381_G1_hashToGroup/164/32,5.3951697282574e-5,5.3942897700893045e-5,5.396445921940848e-5,3.3534535017877507e-8,2.2399159366350966e-8,4.7986458891179144e-8 +Bls12_381_G1_hashToGroup/262/32,5.433094103605182e-5,5.431669600026484e-5,5.434310292242973e-5,4.408163201570973e-8,3.072142636904598e-8,6.04684831981696e-8 +Bls12_381_G1_hashToGroup/336/32,5.462806826953347e-5,5.4621182495085454e-5,5.4646177006149035e-5,3.710340375513712e-8,1.4784618544571134e-8,6.76097689784518e-8 +Bls12_381_G1_hashToGroup/30/32,5.34445973009279e-5,5.3436691795265815e-5,5.345403747752179e-5,3.0503144607360586e-8,2.4633190814169284e-8,4.1099610577352016e-8 +Bls12_381_G1_hashToGroup/14/32,5.343404721680731e-5,5.342051176695466e-5,5.344311345330404e-5,3.65340313476573e-8,2.87573529655404e-8,4.898272029232251e-8 +Bls12_381_G1_hashToGroup/73/32,5.366923531194589e-5,5.365888974778386e-5,5.368128766499131e-5,3.7319366833676855e-8,2.6652881385379635e-8,5.367327917126819e-8 +Bls12_381_G1_hashToGroup/310/32,5.45454329286408e-5,5.453313974398162e-5,5.4562200506745e-5,4.7131025954526635e-8,3.1136982496512506e-8,8.059948211687255e-8 +Bls12_381_G1_hashToGroup/115/32,5.3829417596605024e-5,5.3821178422298954e-5,5.3840081626098505e-5,3.15992515927596e-8,2.5713688356601335e-8,3.9528203714061894e-8 +Bls12_381_G1_hashToGroup/32/32,5.350939163575755e-5,5.348713937382791e-5,5.357914927819547e-5,1.2229701261922276e-7,3.726613218696599e-8,2.5441018643370517e-7 +Bls12_381_G1_hashToGroup/355/32,5.473136462805857e-5,5.4693328283067315e-5,5.4843867748757205e-5,2.0892937350954461e-7,6.472715558653755e-8,4.319556708092554e-7 +Bls12_381_G1_hashToGroup/307/32,5.455624493321865e-5,5.4549511555683416e-5,5.4565305987974294e-5,2.5525303704525917e-8,2.1075805017452168e-8,3.0956402336110765e-8 +Bls12_381_G1_hashToGroup/151/32,5.400091167670703e-5,5.398545734266055e-5,5.406026617118017e-5,9.185937402218064e-8,2.7405238726319796e-8,1.8971004087467302e-7 +Bls12_381_G1_hashToGroup/42/32,5.354944790640393e-5,5.354261140292383e-5,5.355614848980751e-5,2.287895282308069e-8,1.9415054807120996e-8,2.809039853463636e-8 +Bls12_381_G1_hashToGroup/196/32,5.414702069265375e-5,5.4138152233506755e-5,5.415809044522428e-5,3.257819074827872e-8,2.5469269593054166e-8,4.5666960489127045e-8 +Bls12_381_G1_hashToGroup/364/32,5.472824470518754e-5,5.469897193969268e-5,5.475710930488786e-5,9.727025944354291e-8,8.178793420949593e-8,1.2891716955036076e-7 +Bls12_381_G1_hashToGroup/152/32,5.40097185139594e-5,5.400084759551209e-5,5.402016473180914e-5,3.204599597119264e-8,2.602548312692368e-8,4.15346188566666e-8 +Bls12_381_G1_hashToGroup/310/32,5.455476492397679e-5,5.453805597619281e-5,5.457109242029461e-5,5.6024943188410566e-8,4.565404430045811e-8,6.835723378859675e-8 +Bls12_381_G1_hashToGroup/69/32,5.366515574303288e-5,5.3652430002163556e-5,5.3696100272320255e-5,6.185861049338698e-8,3.55635664104422e-8,1.1799849279969118e-7 +Bls12_381_G1_hashToGroup/21/32,5.344600117651175e-5,5.3425617135635276e-5,5.3464280957850994e-5,6.534568588069865e-8,5.506470523374655e-8,7.64046825134363e-8 +Bls12_381_G1_hashToGroup/290/32,5.447482338956924e-5,5.446800804405146e-5,5.448320483715795e-5,2.6307364932136067e-8,2.1454067026118102e-8,3.2764646760444054e-8 +Bls12_381_G1_hashToGroup/166/32,5.4050777088989964e-5,5.400304717728589e-5,5.420255214298096e-5,2.5064542705817943e-7,3.1528249487126206e-8,4.930907431676497e-7 +Bls12_381_G1_hashToGroup/318/32,5.462884901454968e-5,5.458332939927159e-5,5.4806752676241005e-5,2.7872513520432234e-7,2.688831764885083e-8,5.911566733660963e-7 +Bls12_381_G1_hashToGroup/118/32,5.384255407440784e-5,5.382935956768179e-5,5.387428589210409e-5,6.633135423659471e-8,3.130197500074523e-8,1.3381418152708388e-7 +Bls12_381_G1_hashToGroup/197/32,5.410917175898575e-5,5.4082191302301116e-5,5.413134709176243e-5,7.663489600133634e-8,6.367682835219214e-8,9.377330313657027e-8 +Bls12_381_G1_hashToGroup/294/32,5.457140196307201e-5,5.4491271399127514e-5,5.496203079550245e-5,4.955279280236959e-7,3.249042358782392e-8,1.1364544810494392e-6 +Bls12_381_G1_hashToGroup/336/32,5.4688699425034615e-5,5.466983823757282e-5,5.4779085397436246e-5,1.0570721286878666e-7,2.792158940863099e-8,2.5034976126371396e-7 +Bls12_381_G1_hashToGroup/214/32,5.4148070109255435e-5,5.412796639092016e-5,5.416699761598091e-5,6.694138823775414e-8,5.6719863789711806e-8,7.680826632697937e-8 +Bls12_381_G1_hashToGroup/17/32,5.344578770695744e-5,5.343580608557023e-5,5.345808471618115e-5,3.775571098706709e-8,3.065090398962867e-8,4.5597903188062154e-8 +Bls12_381_G1_hashToGroup/275/32,5.439645935626203e-5,5.43901994750976e-5,5.440323613142208e-5,2.340422437346319e-8,1.9147376124595522e-8,3.0927304347000944e-8 +Bls12_381_G1_hashToGroup/310/32,5.444119897447983e-5,5.4420132054236724e-5,5.4466293107687606e-5,7.762153943302494e-8,7.130613681810602e-8,8.457033178433901e-8 +Bls12_381_G1_hashToGroup/169/32,5.404072269920511e-5,5.4011380228653374e-5,5.411390214793527e-5,1.3818848777225705e-7,3.778594919510667e-8,2.448186095859032e-7 +Bls12_381_G1_hashToGroup/232/32,5.429296226359431e-5,5.4272133958192335e-5,5.436327971242381e-5,1.1677647394014443e-7,3.113252636004302e-8,2.39977148975658e-7 +Bls12_381_G1_hashToGroup/342/32,5.466170816016232e-5,5.4653081074614226e-5,5.4674544860986745e-5,3.448305213516227e-8,2.4928984204029276e-8,4.725781028354035e-8 +Bls12_381_G1_hashToGroup/217/32,5.418208947033687e-5,5.415888928440487e-5,5.4294894783002906e-5,1.3159246754687444e-7,3.24383956419856e-8,2.8724683502522103e-7 +Bls12_381_G1_hashToGroup/71/32,5.366136327580775e-5,5.36512984772833e-5,5.367119144077475e-5,3.362512136909886e-8,2.978950695367729e-8,3.927694777954028e-8 +Bls12_381_G1_hashToGroup/81/32,5.3716128331918726e-5,5.3706819678397026e-5,5.3724843918131845e-5,3.095191289317062e-8,2.6528023485061724e-8,3.7818957767150506e-8 +Bls12_381_G1_hashToGroup/192/32,5.411793604104279e-5,5.4112735494880026e-5,5.412553331395185e-5,2.1393546499227856e-8,1.7366427836407708e-8,2.8437507816033137e-8 +Bls12_381_G1_hashToGroup/60/32,5.354567530409642e-5,5.351466390107369e-5,5.360351958679967e-5,1.4011547407663097e-7,6.769946448848537e-8,2.2285657424292467e-7 +Bls12_381_G1_hashToGroup/106/32,5.377981998510288e-5,5.376968983922252e-5,5.379128284984386e-5,3.638783325230587e-8,2.990981655725611e-8,4.7691153116646746e-8 +Bls12_381_G1_hashToGroup/295/32,5.44759719163983e-5,5.446897037622089e-5,5.448369794310717e-5,2.524878112377328e-8,2.12826767895793e-8,3.049338860547413e-8 +Bls12_381_G1_hashToGroup/169/32,5.40374671955417e-5,5.403010949942979e-5,5.4044387710404485e-5,2.5147234995233162e-8,2.1903957362952422e-8,2.9521030284733338e-8 +Bls12_381_G1_hashToGroup/281/32,5.444125542373344e-5,5.443332111250009e-5,5.4449516330299845e-5,2.7571176681997202e-8,2.2434117082689247e-8,3.444388309180565e-8 +Bls12_381_G1_hashToGroup/49/32,5.359063652210867e-5,5.3567052410447886e-5,5.365841435326875e-5,1.4184354637492739e-7,2.483892127676646e-8,2.722334663167635e-7 +Bls12_381_G1_hashToGroup/318/32,5.45730949025478e-5,5.456470435244266e-5,5.458195138714505e-5,2.917252202185341e-8,2.4107916382288815e-8,3.719942292743118e-8 +Bls12_381_G1_hashToGroup/138/32,5.3899887583020895e-5,5.3892600158081135e-5,5.390733967119332e-5,2.544696683951698e-8,2.1933053215976463e-8,3.0082453915677874e-8 +Bls12_381_G1_hashToGroup/124/32,5.384717162619968e-5,5.384117928355832e-5,5.3855493409191304e-5,2.2644569954928904e-8,1.6161188923557244e-8,3.438634775847739e-8 +Bls12_381_G1_compress/18,3.4574232824670392e-6,3.4564405762281304e-6,3.4586788365278658e-6,3.929869246122758e-9,3.1530415463573346e-9,5.3638097442508745e-9 +Bls12_381_G1_compress/18,3.4474387581994894e-6,3.4463955830415083e-6,3.4484951744513137e-6,3.4490794897795723e-9,2.9107197561072874e-9,4.082086511252518e-9 +Bls12_381_G1_compress/18,3.4548063258109603e-6,3.4537075337502486e-6,3.4560617135225005e-6,3.951823433199139e-9,3.2258422864428406e-9,5.199839938493002e-9 +Bls12_381_G1_compress/18,3.4534681320784866e-6,3.452274120703343e-6,3.4548175751266457e-6,4.471433782219849e-9,3.7237977813537584e-9,5.448562262309341e-9 +Bls12_381_G1_compress/18,3.454998982705272e-6,3.4537982465945448e-6,3.4565330961937538e-6,4.6194739772277264e-9,3.963778326871006e-9,5.399994034894169e-9 +Bls12_381_G1_compress/18,3.455820173659794e-6,3.4542703791403677e-6,3.4576583216736096e-6,5.463315450146409e-9,4.409150750777628e-9,6.607389866521192e-9 +Bls12_381_G1_compress/18,3.4503754305200067e-6,3.44881057288961e-6,3.4519781555748357e-6,5.484917078983319e-9,4.571695437244131e-9,6.558394190740482e-9 +Bls12_381_G1_compress/18,3.451324417949978e-6,3.4500018749326348e-6,3.452703460850251e-6,4.5981133463395345e-9,3.864841565988554e-9,5.459127494811257e-9 +Bls12_381_G1_compress/18,3.4551326325536457e-6,3.454187869636412e-6,3.456109257057569e-6,3.372183463640449e-9,2.8060976042936593e-9,4.281650339350546e-9 +Bls12_381_G1_compress/18,3.452091905789176e-6,3.451024643416586e-6,3.4533327904457614e-6,4.008402250190828e-9,3.3494978702446125e-9,4.933977262892855e-9 +Bls12_381_G1_compress/18,3.4497078609731607e-6,3.44791703086081e-6,3.4514875647814655e-6,6.104128852719415e-9,5.320023963862647e-9,7.106075625143811e-9 +Bls12_381_G1_compress/18,3.455314131112576e-6,3.4538020718061122e-6,3.457209937805517e-6,5.878837957626986e-9,4.977310020470257e-9,7.213877007495259e-9 +Bls12_381_G1_compress/18,3.45250318640347e-6,3.4512198851727957e-6,3.454016635876505e-6,4.8338921478080665e-9,4.07034264502741e-9,5.918848999577793e-9 +Bls12_381_G1_compress/18,3.455246953520427e-6,3.453939420454229e-6,3.457128694087013e-6,5.444494265370034e-9,4.518251066972466e-9,6.750507400007958e-9 +Bls12_381_G1_compress/18,3.4491088873468815e-6,3.4474701854742065e-6,3.4505010769801623e-6,5.185236891266967e-9,4.241358525401857e-9,6.458598588025395e-9 +Bls12_381_G1_compress/18,3.444412827619995e-6,3.442974401981819e-6,3.445815476874619e-6,4.830602240597757e-9,4.048091899162656e-9,6.027531616257102e-9 +Bls12_381_G1_compress/18,3.448720861173425e-6,3.4472773101971093e-6,3.450353503513542e-6,5.432384026597138e-9,4.3788733746440034e-9,6.675974076294845e-9 +Bls12_381_G1_compress/18,3.4532850609142527e-6,3.451934343615018e-6,3.4544995446614016e-6,4.338064976397083e-9,3.758163054356489e-9,5.4251320434648626e-9 +Bls12_381_G1_compress/18,3.4521563324809662e-6,3.4508719129809235e-6,3.453288953287072e-6,4.094418568648093e-9,3.434966656714799e-9,5.0425760193765095e-9 +Bls12_381_G1_compress/18,3.44626884533098e-6,3.4444760080315207e-6,3.44822173693718e-6,6.37272029732924e-9,5.291531895488614e-9,8.803248121418478e-9 +Bls12_381_G1_compress/18,3.450037470388279e-6,3.44827449120087e-6,3.4515497219560865e-6,5.635178598134919e-9,4.651714625931166e-9,7.251048301743589e-9 +Bls12_381_G1_compress/18,3.4514551889527003e-6,3.4500359728002984e-6,3.453128142893519e-6,5.1768504358915886e-9,4.299225014671171e-9,6.377170266448639e-9 +Bls12_381_G1_compress/18,3.450863875284667e-6,3.4491472871037677e-6,3.4523467185331435e-6,5.219078560011486e-9,4.299049795300644e-9,6.298519128472544e-9 +Bls12_381_G1_compress/18,3.44559300929604e-6,3.4444326188696516e-6,3.4467457395893155e-6,3.877723481388428e-9,3.259752353052496e-9,4.844241435381477e-9 +Bls12_381_G1_compress/18,3.446306368730261e-6,3.445110304397302e-6,3.447537415786075e-6,4.209884909636838e-9,3.6164144115491827e-9,5.000731158166784e-9 +Bls12_381_G1_compress/18,3.4553541480460977e-6,3.453969826828815e-6,3.4567584071983036e-6,4.875219978637066e-9,4.0821565678651284e-9,6.06916716500982e-9 +Bls12_381_G1_compress/18,3.4497730961168586e-6,3.4487952550599608e-6,3.450862515137992e-6,3.447034763456649e-9,2.830027844668071e-9,4.28935785605368e-9 +Bls12_381_G1_compress/18,3.4465975306348502e-6,3.445484607872166e-6,3.4479951921346564e-6,4.3708952430436985e-9,3.665140973580608e-9,5.300986949476629e-9 +Bls12_381_G1_compress/18,3.4551218008723678e-6,3.453575290639293e-6,3.4568988108496113e-6,5.356341496195245e-9,4.330930286313361e-9,6.830894778992006e-9 +Bls12_381_G1_compress/18,3.4447240065359367e-6,3.4436556260809665e-6,3.4457963290023893e-6,3.659530499432202e-9,3.0837085515929553e-9,4.359454872029035e-9 +Bls12_381_G1_compress/18,3.453910671282545e-6,3.4521122531967427e-6,3.456022844380822e-6,6.7963419910524576e-9,5.723437226579981e-9,8.028569391559221e-9 +Bls12_381_G1_compress/18,3.452721094843447e-6,3.4514154525652232e-6,3.4545847252382643e-6,5.234836925794866e-9,4.2270727360606216e-9,6.417101319704262e-9 +Bls12_381_G1_compress/18,3.4462598987022957e-6,3.4453275565393197e-6,3.4471743118577957e-6,3.283327823076362e-9,2.8390837564450134e-9,3.915566988392481e-9 +Bls12_381_G1_compress/18,3.4469342906787026e-6,3.445311034557383e-6,3.448508000324332e-6,5.578467251595216e-9,4.864181598699715e-9,6.8472015372623605e-9 +Bls12_381_G1_compress/18,3.453547655547271e-6,3.4523875827731927e-6,3.4547369570227503e-6,3.872077081579545e-9,3.236015422253746e-9,4.68523887823492e-9 +Bls12_381_G1_compress/18,3.4503672170417782e-6,3.4491587674135808e-6,3.451619329770791e-6,4.114229943119373e-9,3.3434210273439713e-9,5.018100842154313e-9 +Bls12_381_G1_compress/18,3.457645008822958e-6,3.4560517961176663e-6,3.459559067321795e-6,5.986854512043956e-9,5.0193592476669525e-9,7.938805010951683e-9 +Bls12_381_G1_compress/18,3.448572091398646e-6,3.446770730730185e-6,3.4502952459165263e-6,5.566999461706163e-9,4.716547971187355e-9,6.693352455571918e-9 +Bls12_381_G1_compress/18,3.4543173190957346e-6,3.453131219731542e-6,3.455349046455808e-6,3.858144747307075e-9,3.177706561059047e-9,4.75185468732781e-9 +Bls12_381_G1_compress/18,3.4496419921325334e-6,3.44868917898757e-6,3.450826319342051e-6,3.596908724796997e-9,2.888336923363473e-9,4.547996082873289e-9 +Bls12_381_G1_compress/18,3.446248254685751e-6,3.4451589226289075e-6,3.447548169941701e-6,3.984785887765284e-9,3.3128754938311335e-9,4.76708695745654e-9 +Bls12_381_G1_compress/18,3.4515062088212963e-6,3.45021091927424e-6,3.452895122375063e-6,4.653745960214547e-9,3.91936074703118e-9,5.6441929154611755e-9 +Bls12_381_G1_compress/18,3.452738072342738e-6,3.4513399246330753e-6,3.454200791479656e-6,4.613096854821775e-9,3.891209802398133e-9,5.535329455361559e-9 +Bls12_381_G1_compress/18,3.4521858806952224e-6,3.4508246794795446e-6,3.4536716139609202e-6,4.6732302452592266e-9,4.093329973009401e-9,5.40362545623702e-9 +Bls12_381_G1_compress/18,3.45138000050193e-6,3.450424302345878e-6,3.4523739415481133e-6,3.4182940816302425e-9,2.8248804640726463e-9,4.333807881532558e-9 +Bls12_381_G1_compress/18,3.453677851535455e-6,3.4521869690403944e-6,3.4551199297299263e-6,5.132962162827635e-9,4.39411817023737e-9,6.072806770707793e-9 +Bls12_381_G1_compress/18,3.451778996927324e-6,3.450305418919457e-6,3.453871963609592e-6,5.62235202330656e-9,4.171232688198643e-9,8.149200031901344e-9 +Bls12_381_G1_compress/18,3.453543751440831e-6,3.4519607725002536e-6,3.455277396515217e-6,5.908491068543932e-9,4.830544758837043e-9,6.958411353597793e-9 +Bls12_381_G1_compress/18,3.446333046510615e-6,3.44477115549909e-6,3.4480717348634267e-6,5.6965689502733364e-9,4.930050141792938e-9,6.967474669600142e-9 +Bls12_381_G1_compress/18,3.4482117406398424e-6,3.44695432019199e-6,3.4494897196886783e-6,4.052610205280097e-9,3.299273492774947e-9,5.239343914847096e-9 +Bls12_381_G1_compress/18,3.4456946361977855e-6,3.4440288285397467e-6,3.4473673860130162e-6,5.595655872834914e-9,4.64529972473921e-9,6.939893309777164e-9 +Bls12_381_G1_compress/18,3.4499853429834793e-6,3.4488377833723687e-6,3.4514693073357508e-6,4.3844326883439444e-9,3.558937499519849e-9,5.6171212538302314e-9 +Bls12_381_G1_compress/18,3.4481511526095e-6,3.447171557400188e-6,3.449235412664736e-6,3.523644197997975e-9,2.955161788458349e-9,4.458005530744908e-9 +Bls12_381_G1_compress/18,3.4508798077549156e-6,3.4493628047399033e-6,3.452699308163765e-6,5.443196473434362e-9,4.586721858972012e-9,6.6039295575494465e-9 +Bls12_381_G1_compress/18,3.4484532459000125e-6,3.447182222927743e-6,3.44974608067314e-6,4.3266428831355715e-9,3.534196102562885e-9,6.316107979161285e-9 +Bls12_381_G1_compress/18,3.450070624526435e-6,3.4489774431402093e-6,3.4515205334558737e-6,4.083024652578788e-9,3.3288025909530263e-9,5.066510486458591e-9 +Bls12_381_G1_compress/18,3.4534622868678867e-6,3.45185617479561e-6,3.455594604990068e-6,6.02213629873159e-9,4.801383670118145e-9,7.448165225992558e-9 +Bls12_381_G1_compress/18,3.459598023259644e-6,3.4580709563733396e-6,3.4613348303439963e-6,5.510028429950647e-9,4.487818155426192e-9,6.798834879091624e-9 +Bls12_381_G1_compress/18,3.4524590809969576e-6,3.4515077856625654e-6,3.4534598117517198e-6,3.378686274353818e-9,2.827793941066142e-9,4.401110033163869e-9 +Bls12_381_G1_compress/18,3.4464531693481613e-6,3.44516688705452e-6,3.4478518694590866e-6,4.5584546038882364e-9,3.850774741556312e-9,5.7381828445063406e-9 +Bls12_381_G1_compress/18,3.4528468921545137e-6,3.45131657386934e-6,3.4546424804060137e-6,5.53537160756748e-9,4.674843048286095e-9,7.162873398740675e-9 +Bls12_381_G1_compress/18,3.4509152444179355e-6,3.4499576685769368e-6,3.451976465741088e-6,3.3135868219896194e-9,2.5176061859327283e-9,4.673058439593445e-9 +Bls12_381_G1_compress/18,3.449080423044806e-6,3.4478522409047583e-6,3.4505839926919857e-6,4.594713262145137e-9,3.827421146668889e-9,5.667032834900157e-9 +Bls12_381_G1_compress/18,3.4524766312196793e-6,3.4511508030071892e-6,3.4539302132292006e-6,4.566357618998103e-9,3.3563113201144616e-9,6.093816898065603e-9 +Bls12_381_G1_compress/18,3.4456264262853205e-6,3.444249800377073e-6,3.4472494813881567e-6,5.173367246150327e-9,4.367625073107248e-9,6.050119463780612e-9 +Bls12_381_G1_compress/18,3.4458821511606043e-6,3.4445897620964397e-6,3.4474941214462866e-6,4.703296230098008e-9,3.860804515140648e-9,5.903732695597669e-9 +Bls12_381_G1_compress/18,3.450134415139191e-6,3.448876775774775e-6,3.4515737539453236e-6,4.644830568006344e-9,3.581671402070374e-9,6.3012204813338204e-9 +Bls12_381_G1_compress/18,3.447448178536525e-6,3.4459756694882207e-6,3.449374886658369e-6,5.4569746389981114e-9,4.425234291138081e-9,6.6200857245496964e-9 +Bls12_381_G1_compress/18,3.4482668894212495e-6,3.4472185679429047e-6,3.449856953132433e-6,4.4098352055079325e-9,3.267608924490466e-9,6.1409864837663266e-9 +Bls12_381_G1_compress/18,3.4472917111552193e-6,3.445882079152604e-6,3.448822065814396e-6,5.162681111927004e-9,4.474657417038626e-9,5.971549297670417e-9 +Bls12_381_G1_compress/18,3.453679830822815e-6,3.4522469448893048e-6,3.455120893079221e-6,4.792190346413139e-9,4.032266062151695e-9,5.766805463812521e-9 +Bls12_381_G1_compress/18,3.446932179652341e-6,3.4454344258656316e-6,3.448404542423889e-6,5.059204807957019e-9,4.128385395387092e-9,6.816849428477296e-9 +Bls12_381_G1_compress/18,3.453517722545987e-6,3.4522160326551286e-6,3.454720468810718e-6,4.336212644073259e-9,3.6323474994796953e-9,5.328536974631982e-9 +Bls12_381_G1_compress/18,3.4522336820299313e-6,3.4504007960010126e-6,3.454125241865298e-6,6.431956456200449e-9,5.743272933748085e-9,7.329540097092265e-9 +Bls12_381_G1_compress/18,3.4475491231711854e-6,3.4460305584397577e-6,3.449340730966055e-6,5.63321971288207e-9,3.996944532507526e-9,7.686930656881668e-9 +Bls12_381_G1_compress/18,3.4476066840066737e-6,3.4464030546154474e-6,3.4488028709990118e-6,4.324388502608938e-9,3.764579569903632e-9,5.046261751196402e-9 +Bls12_381_G1_compress/18,3.450268258102499e-6,3.4486569061895895e-6,3.4521019758040727e-6,5.655990349332508e-9,4.579464122972619e-9,7.774220911437638e-9 +Bls12_381_G1_compress/18,3.4462420685714854e-6,3.4449900577434665e-6,3.447543084324402e-6,4.485937747221145e-9,3.7161268239722495e-9,5.359957593257285e-9 +Bls12_381_G1_compress/18,3.443309104777751e-6,3.4421788318515716e-6,3.4445554047739374e-6,3.8780790574633666e-9,3.1847995925323043e-9,5.139438862450891e-9 +Bls12_381_G1_compress/18,3.4491599497807236e-6,3.4478402285026154e-6,3.4510333096930653e-6,5.234790396722232e-9,4.317131320525377e-9,6.270699994404248e-9 +Bls12_381_G1_compress/18,3.459881560729452e-6,3.458776507026763e-6,3.461090732661753e-6,3.9239959861698235e-9,3.1731370531404242e-9,4.958664231908461e-9 +Bls12_381_G1_compress/18,3.4490000230448954e-6,3.4478938359302313e-6,3.450385863075316e-6,4.132859217417207e-9,3.3365729195025526e-9,5.253966181688094e-9 +Bls12_381_G1_compress/18,3.447609139699611e-6,3.446551168855038e-6,3.448753914662072e-6,3.763195526066143e-9,3.159613320002811e-9,4.679595291530467e-9 +Bls12_381_G1_compress/18,3.4521307661132444e-6,3.4511386136967423e-6,3.4534085501994044e-6,3.728255399614379e-9,2.8459930736125614e-9,5.591665899957079e-9 +Bls12_381_G1_compress/18,3.4496752912120573e-6,3.448237295705574e-6,3.4511786071564602e-6,5.021668089652968e-9,4.184130551278225e-9,6.273493531804184e-9 +Bls12_381_G1_compress/18,3.441590205841017e-6,3.4402734926904757e-6,3.4429212805811648e-6,4.34694373471042e-9,3.6365885530684266e-9,5.6419515039700215e-9 +Bls12_381_G1_compress/18,3.451122406658899e-6,3.449814189031586e-6,3.452753456273406e-6,4.935316549486615e-9,3.7042558186279503e-9,7.027831406989086e-9 +Bls12_381_G1_compress/18,3.4508796001614317e-6,3.449705277410317e-6,3.4517351287749927e-6,3.3193083898220915e-9,2.744192576878716e-9,4.122538222085442e-9 +Bls12_381_G1_compress/18,3.44762329439129e-6,3.446551698011267e-6,3.4488674596821723e-6,3.961126332779542e-9,3.119589854645842e-9,4.993824713399942e-9 +Bls12_381_G1_compress/18,3.447699617285001e-6,3.4459741381518397e-6,3.44957032380096e-6,5.907305903674667e-9,4.864719815181058e-9,7.226281554899306e-9 +Bls12_381_G1_compress/18,3.449807349358973e-6,3.4482307139650126e-6,3.451576046754115e-6,5.786100782083964e-9,4.798918250254417e-9,6.8003956151756376e-9 +Bls12_381_G1_compress/18,3.452761049700618e-6,3.4513490788125297e-6,3.454291618428325e-6,5.009668939120776e-9,4.135303162203377e-9,6.704942330735984e-9 +Bls12_381_G1_compress/18,3.455133478170277e-6,3.453622335187275e-6,3.456852381655344e-6,5.266686741351191e-9,4.559006284200641e-9,6.2248330163854545e-9 +Bls12_381_G1_compress/18,3.451027269074101e-6,3.4491514417850317e-6,3.452892853758173e-6,6.672738631876229e-9,5.77656651533023e-9,7.838735767336562e-9 +Bls12_381_G1_compress/18,3.449822158308194e-6,3.448432820859676e-6,3.451162949238125e-6,4.4376571989388055e-9,3.6305962934821145e-9,5.5099384009369e-9 +Bls12_381_G1_compress/18,3.44739497813901e-6,3.4466538501572145e-6,3.4483216465095497e-6,2.8140128381113325e-9,2.3177657751621128e-9,3.49765058931534e-9 +Bls12_381_G1_compress/18,3.4452398772670197e-6,3.4436346346569477e-6,3.4472726912549257e-6,5.978639506735044e-9,4.925948690209362e-9,7.535823079427742e-9 +Bls12_381_G1_compress/18,3.4490060885192735e-6,3.447950196496873e-6,3.450150142562265e-6,3.7725327208729854e-9,3.102918142453158e-9,4.825956499607755e-9 +Bls12_381_G1_compress/18,3.4540502961698583e-6,3.4527656707392798e-6,3.4554528492363063e-6,4.591388758891418e-9,3.883797633236555e-9,5.498388018139533e-9 +Bls12_381_G1_compress/18,3.4489716240341912e-6,3.447717172882736e-6,3.4501029094376485e-6,4.087814812238424e-9,3.4948188370195466e-9,4.68107576620493e-9 +Bls12_381_G1_uncompress/6,5.37340873954313e-5,5.372454985706837e-5,5.374574016799813e-5,3.5438653936964377e-8,2.652309068618638e-8,5.415811244902153e-8 +Bls12_381_G1_uncompress/6,5.374194906077078e-5,5.37309700738528e-5,5.375825989425036e-5,4.192437422716207e-8,2.952630279133892e-8,6.616568958698692e-8 +Bls12_381_G1_uncompress/6,5.373743518410845e-5,5.3727848324934356e-5,5.3746421629711874e-5,3.212653376294817e-8,2.536013216414912e-8,4.1576081467537005e-8 +Bls12_381_G1_uncompress/6,5.375535409816436e-5,5.37452190082859e-5,5.377477180990869e-5,4.527961460594479e-8,2.792777824244608e-8,8.119603551543956e-8 +Bls12_381_G1_uncompress/6,5.374821226703089e-5,5.373838391322935e-5,5.37628946778369e-5,4.006550274842397e-8,2.735298853091044e-8,6.457123709431232e-8 +Bls12_381_G1_uncompress/6,5.37370365339584e-5,5.372888813010696e-5,5.374652271858084e-5,2.9029841039483605e-8,2.3979457420066296e-8,3.8991997829497636e-8 +Bls12_381_G1_uncompress/6,5.3725693023442166e-5,5.370383925721667e-5,5.374392520313348e-5,6.697486819661505e-8,3.987450236771927e-8,1.1075136682306671e-7 +Bls12_381_G1_uncompress/6,5.3718259796044645e-5,5.370381527637687e-5,5.3732618434376395e-5,4.981661993697378e-8,3.733621369792981e-8,6.663883769234216e-8 +Bls12_381_G1_uncompress/6,5.362013653410849e-5,5.355742074431612e-5,5.367077078196481e-5,1.911025728826002e-7,1.5756575677384362e-7,2.128218221423404e-7 +Bls12_381_G1_uncompress/6,5.3757818811485005e-5,5.3746368853355205e-5,5.377343963672007e-5,4.560813859626913e-8,3.219842254083901e-8,7.532339678851503e-8 +Bls12_381_G1_uncompress/6,5.373701396790129e-5,5.37208998880177e-5,5.3753878616131936e-5,5.648075604395568e-8,4.366802883307236e-8,8.091353459777174e-8 +Bls12_381_G1_uncompress/6,5.3734457174213096e-5,5.372258615024672e-5,5.375664597043271e-5,5.424213861136683e-8,3.428876529721768e-8,9.385697299144453e-8 +Bls12_381_G1_uncompress/6,5.373307210222745e-5,5.3722585526172535e-5,5.3746590577372443e-5,4.147940294736997e-8,2.9237418645285128e-8,6.674712749200623e-8 +Bls12_381_G1_uncompress/6,5.372480760065165e-5,5.3713056239020736e-5,5.373500034813741e-5,3.798884965391544e-8,2.9487436749980496e-8,4.882687045365975e-8 +Bls12_381_G1_uncompress/6,5.372854290317597e-5,5.371684047115463e-5,5.374905820451415e-5,5.044288933029881e-8,3.32591878175889e-8,8.454365593885922e-8 +Bls12_381_G1_uncompress/6,5.3731594161893295e-5,5.372016207999097e-5,5.374705633220152e-5,4.5110087570122176e-8,3.4234472092681014e-8,6.653325486185396e-8 +Bls12_381_G1_uncompress/6,5.375879319896582e-5,5.3747867314184e-5,5.378028529209944e-5,5.063874028922892e-8,3.373584032788388e-8,8.831160649238237e-8 +Bls12_381_G1_uncompress/6,5.374134370472296e-5,5.370186773017365e-5,5.376204287963306e-5,9.851802015771928e-8,5.465263290963895e-8,1.5547312256858325e-7 +Bls12_381_G1_uncompress/6,5.37591701010213e-5,5.375271559693556e-5,5.3766445707384344e-5,2.2298434423311523e-8,1.8190599489261012e-8,2.903824364085424e-8 +Bls12_381_G1_uncompress/6,5.3753476137161665e-5,5.3743288328203825e-5,5.3774645313606544e-5,4.725607058361298e-8,2.8645498880103776e-8,8.126370310869022e-8 +Bls12_381_G1_uncompress/6,5.3667540432395503e-5,5.363269866406141e-5,5.3703402253309035e-5,1.26283248809954e-7,1.0763391024179037e-7,1.4690475987684968e-7 +Bls12_381_G1_uncompress/6,5.3751370338780896e-5,5.374080927167896e-5,5.3763376032239025e-5,3.7327173436006834e-8,3.125493918346022e-8,4.535783524893859e-8 +Bls12_381_G1_uncompress/6,5.374088779335769e-5,5.37319574957077e-5,5.375115841624498e-5,3.3072149335823614e-8,2.7329020401705434e-8,4.504703359047408e-8 +Bls12_381_G1_uncompress/6,5.374870076510708e-5,5.373939842129442e-5,5.376204124043524e-5,3.63318246152199e-8,2.5434327603985025e-8,5.619059745972286e-8 +Bls12_381_G1_uncompress/6,5.3726174624975965e-5,5.371742551015865e-5,5.374393178573226e-5,4.25672641135619e-8,2.5178774270979198e-8,7.61591696828451e-8 +Bls12_381_G1_uncompress/6,5.3724812990922605e-5,5.371374803774552e-5,5.373868710170126e-5,4.274576519822386e-8,3.27951907898373e-8,5.707114262076167e-8 +Bls12_381_G1_uncompress/6,5.3760397233792626e-5,5.375135293702659e-5,5.3772645985075334e-5,3.449885714876562e-8,2.5089861382677035e-8,4.876856050332467e-8 +Bls12_381_G1_uncompress/6,5.3743323156667214e-5,5.373320441880877e-5,5.375781549002514e-5,4.0469660990240465e-8,2.6152544816981128e-8,7.182466778868011e-8 +Bls12_381_G1_uncompress/6,5.374620603594343e-5,5.373633005662284e-5,5.375645752326359e-5,3.5451804956178585e-8,2.800501766208171e-8,4.916332333034525e-8 +Bls12_381_G1_uncompress/6,5.377404304670229e-5,5.376290996382092e-5,5.379646606649501e-5,5.5851561460940605e-8,2.9599032904650818e-8,9.83050300562594e-8 +Bls12_381_G1_uncompress/6,5.3749822336758696e-5,5.373986107913052e-5,5.376385376958114e-5,4.105093266356105e-8,3.1224432547386566e-8,5.972720196852123e-8 +Bls12_381_G1_uncompress/6,5.375085965781594e-5,5.372882045652544e-5,5.376392161559601e-5,5.6764187061654596e-8,3.398619399507234e-8,9.313703673690667e-8 +Bls12_381_G1_uncompress/6,5.37564890312911e-5,5.374371119680318e-5,5.378004582804513e-5,5.704066458689631e-8,3.7166381384611095e-8,9.860606480035968e-8 +Bls12_381_G1_uncompress/6,5.374824093638706e-5,5.3740747992609295e-5,5.376307664197799e-5,3.6084611453100364e-8,2.287473544099507e-8,6.474236049989069e-8 +Bls12_381_G1_uncompress/6,5.376899975469428e-5,5.375956465541314e-5,5.3780048976890296e-5,3.317271758576574e-8,2.7234680079308134e-8,4.100421682925636e-8 +Bls12_381_G1_uncompress/6,5.37412087156129e-5,5.373099515631218e-5,5.375682352408007e-5,4.251931804709727e-8,2.7832949580808337e-8,7.440581910690582e-8 +Bls12_381_G1_uncompress/6,5.376559833023347e-5,5.375315408508744e-5,5.377743623554343e-5,4.2033402457525044e-8,3.3610344975030344e-8,5.317393174692332e-8 +Bls12_381_G1_uncompress/6,5.377277129033447e-5,5.376118897008188e-5,5.380422937011195e-5,5.66469844789805e-8,2.84131765020501e-8,1.2122082276661954e-7 +Bls12_381_G1_uncompress/6,5.378747657396545e-5,5.378014153950462e-5,5.379687171723557e-5,2.7819591962116206e-8,2.347094356961116e-8,3.3526291995634735e-8 +Bls12_381_G1_uncompress/6,5.3756049525683445e-5,5.374734083925248e-5,5.376534778259965e-5,3.254092739158834e-8,2.6016267209014676e-8,4.196905202314506e-8 +Bls12_381_G1_uncompress/6,5.37520622447657e-5,5.3739642378670685e-5,5.377138527679804e-5,5.041291675648573e-8,3.5276536113338974e-8,9.110156958032825e-8 +Bls12_381_G1_uncompress/6,5.375904467777192e-5,5.3747977960076357e-5,5.377004414610851e-5,3.865025848846444e-8,3.1027350476106866e-8,5.1973734750430376e-8 +Bls12_381_G1_uncompress/6,5.377892329691277e-5,5.3766298659181885e-5,5.380462603728354e-5,5.820489020932414e-8,3.126591767734956e-8,1.1133681733303804e-7 +Bls12_381_G1_uncompress/6,5.373627465941737e-5,5.371219348642192e-5,5.3756118300555636e-5,6.995196199855518e-8,4.663892782136303e-8,1.0647180044144216e-7 +Bls12_381_G1_uncompress/6,5.374549273473072e-5,5.3732079432668505e-5,5.375833071379016e-5,4.6574288921315033e-8,3.831486997892411e-8,5.7951076584849726e-8 +Bls12_381_G1_uncompress/6,5.3768154839190254e-5,5.375669178181766e-5,5.3791106965568476e-5,5.193770091704998e-8,2.6704719296701268e-8,9.288354489741236e-8 +Bls12_381_G1_uncompress/6,5.3761142749248195e-5,5.375226494346007e-5,5.3770911399861134e-5,3.086373353532577e-8,2.45302548659442e-8,4.325980441207573e-8 +Bls12_381_G1_uncompress/6,5.3750517783863534e-5,5.374100497484542e-5,5.376025068662079e-5,3.46046883685779e-8,2.716878831838394e-8,4.3990177963794115e-8 +Bls12_381_G1_uncompress/6,5.375817422214368e-5,5.374177231202603e-5,5.3772833227019505e-5,5.2222352601627004e-8,3.9539960012889654e-8,7.112257007832962e-8 +Bls12_381_G1_uncompress/6,5.375960673964955e-5,5.375176297013066e-5,5.376859007736051e-5,3.011512542244879e-8,2.3984397978254592e-8,3.9939194170669284e-8 +Bls12_381_G1_uncompress/6,5.374141031357812e-5,5.372698928258777e-5,5.375989694839982e-5,5.4330836225661574e-8,3.9634253001580366e-8,8.252234843017642e-8 +Bls12_381_G1_uncompress/6,5.374199555777266e-5,5.3732398311467095e-5,5.375219461671873e-5,3.34657562907554e-8,2.3703578458224383e-8,4.845621431523616e-8 +Bls12_381_G1_uncompress/6,5.3563026618714444e-5,5.352863826377874e-5,5.3601959890797934e-5,1.276992330021259e-7,1.1137494290075643e-7,1.4196898423200906e-7 +Bls12_381_G1_uncompress/6,5.345082198554724e-5,5.339187279990964e-5,5.3529497560326126e-5,2.248087668197811e-7,1.8417074464154044e-7,3.200113946780449e-7 +Bls12_381_G1_uncompress/6,5.326810952208477e-5,5.322047325599561e-5,5.329910729196567e-5,1.354746765065176e-7,9.69229954823384e-8,1.7716982959956526e-7 +Bls12_381_G1_uncompress/6,5.3287763069151736e-5,5.3221006173655375e-5,5.332795225065986e-5,1.800077521977663e-7,1.3607018940714507e-7,2.2519697605927277e-7 +Bls12_381_G1_uncompress/6,5.332235439808187e-5,5.331278934645042e-5,5.333274935803456e-5,3.39192098521782e-8,2.8060371870528606e-8,4.593087096368525e-8 +Bls12_381_G1_uncompress/6,5.328087006917836e-5,5.3242767625529794e-5,5.330084436411315e-5,8.496568888921614e-8,4.795996365703047e-8,1.4594637491901895e-7 +Bls12_381_G1_uncompress/6,5.3318715865203555e-5,5.329789536608468e-5,5.333258304032439e-5,5.8817681056804893e-8,3.549319832482909e-8,9.852402342152282e-8 +Bls12_381_G1_uncompress/6,5.3283083420895406e-5,5.325482759300538e-5,5.330255670280954e-5,7.807192352623215e-8,5.1354326018038634e-8,1.2257533680561748e-7 +Bls12_381_G1_uncompress/6,5.3299331699853076e-5,5.328759850581472e-5,5.330876373980363e-5,3.604771409752167e-8,2.8427311228047974e-8,4.9198775238286184e-8 +Bls12_381_G1_uncompress/6,5.330701387226638e-5,5.3279699061780206e-5,5.3320032678743735e-5,6.024469553096808e-8,3.066201910007113e-8,1.1321390592300787e-7 +Bls12_381_G1_uncompress/6,5.3339782380045555e-5,5.333146723046197e-5,5.3348848126014716e-5,2.992128586748388e-8,2.544026163395278e-8,3.650960132293586e-8 +Bls12_381_G1_uncompress/6,5.3329612459251335e-5,5.3301177070323726e-5,5.3376372573168e-5,1.183974743386517e-7,6.65621135542167e-8,2.1487139139311043e-7 +Bls12_381_G1_uncompress/6,5.328225770140957e-5,5.324122029502699e-5,5.331297597753069e-5,1.177123218090221e-7,8.333972021413082e-8,1.5157612102281954e-7 +Bls12_381_G1_uncompress/6,5.3358640207239184e-5,5.3338065964777765e-5,5.3369969921671906e-5,5.333167187111801e-8,2.327104785580755e-8,9.503835802765762e-8 +Bls12_381_G1_uncompress/6,5.325728130477894e-5,5.3194681727390515e-5,5.330054022894487e-5,1.7853308709800232e-7,1.440648388742464e-7,2.0765873016663456e-7 +Bls12_381_G1_uncompress/6,5.333996142137847e-5,5.333218903798016e-5,5.3345422543656265e-5,2.1686557110224975e-8,1.6011617050544784e-8,3.3570173966514205e-8 +Bls12_381_G1_uncompress/6,5.33534936176895e-5,5.3346832622788235e-5,5.33599105164998e-5,2.1667116572410048e-8,1.7842758943959773e-8,2.7441863625226244e-8 +Bls12_381_G1_uncompress/6,5.331575951434793e-5,5.327122002255752e-5,5.3337177456798037e-5,1.034327077922843e-7,4.006679233452094e-8,1.7205296603490834e-7 +Bls12_381_G1_uncompress/6,5.3350238480893476e-5,5.334012393235821e-5,5.336325218749971e-5,3.970999307694875e-8,2.5782971218568098e-8,6.55380063753106e-8 +Bls12_381_G1_uncompress/6,5.3351259073271914e-5,5.3325257316385486e-5,5.3363069332450877e-5,5.7302636009834096e-8,3.3048083076927416e-8,1.0109654813659039e-7 +Bls12_381_G1_uncompress/6,5.335026466680071e-5,5.331365099297037e-5,5.337108165987304e-5,8.735530042133755e-8,5.303512241314681e-8,1.2930528760729585e-7 +Bls12_381_G1_uncompress/6,5.333040781160632e-5,5.3317339828403954e-5,5.3343995062406754e-5,4.385821889908465e-8,3.5243598250356e-8,5.7977652582366915e-8 +Bls12_381_G1_uncompress/6,5.335305179549783e-5,5.333883858482146e-5,5.336412671303755e-5,4.433777806392562e-8,3.271216201649346e-8,6.657300480651539e-8 +Bls12_381_G1_uncompress/6,5.3240480920784585e-5,5.319087648791652e-5,5.3281265953237596e-5,1.5132924061756475e-7,1.3187449156695487e-7,1.77247994585552e-7 +Bls12_381_G1_uncompress/6,5.32872755270545e-5,5.32357310697613e-5,5.331994990652274e-5,1.3632452135800102e-7,1.0393625553333832e-7,1.8004785298098238e-7 +Bls12_381_G1_uncompress/6,5.334077178380526e-5,5.332706192124267e-5,5.3352878531590385e-5,4.370236641602945e-8,3.448971010754758e-8,5.504032605656453e-8 +Bls12_381_G1_uncompress/6,5.321313641567535e-5,5.315925172391615e-5,5.32595345473662e-5,1.6665837261018063e-7,1.4231236257705432e-7,2.063560449254248e-7 +Bls12_381_G1_uncompress/6,5.326041139182708e-5,5.3218280394147284e-5,5.3294233967603736e-5,1.3243803261578104e-7,1.015670011934266e-7,1.654522478015833e-7 +Bls12_381_G1_uncompress/6,5.347726119374462e-5,5.342318528101522e-5,5.3585769734983004e-5,2.3565828123760427e-7,1.3924137112029278e-7,4.4882322514993337e-7 +Bls12_381_G1_uncompress/6,5.368472586165092e-5,5.365806334288925e-5,5.371616638663266e-5,9.306735775618085e-8,5.6507359645273156e-8,1.4310905372220347e-7 +Bls12_381_G1_uncompress/6,5.3687864265695004e-5,5.367704589985189e-5,5.369800399256804e-5,3.674247351585582e-8,2.7894320435825392e-8,5.652910860368277e-8 +Bls12_381_G1_uncompress/6,5.3623542307307396e-5,5.3586600325155755e-5,5.365092074406961e-5,1.0885582354100158e-7,6.955097776523972e-8,1.4886208321115198e-7 +Bls12_381_G1_uncompress/6,5.3666212289785825e-5,5.365258729025437e-5,5.368209936351611e-5,4.88983205313055e-8,3.5136035419882906e-8,7.52460421224434e-8 +Bls12_381_G1_uncompress/6,5.373705242309313e-5,5.3723139274972815e-5,5.3765269466101455e-5,6.469849986169967e-8,3.572432150540691e-8,1.149242892006479e-7 +Bls12_381_G1_uncompress/6,5.3747233444836635e-5,5.373783931291506e-5,5.375674298404208e-5,3.263354758623797e-8,2.6746861951408238e-8,4.188634609308768e-8 +Bls12_381_G1_uncompress/6,5.372520596466852e-5,5.369794177862179e-5,5.374804488709536e-5,7.847628757731304e-8,4.896315066475677e-8,1.2802525848923738e-7 +Bls12_381_G1_uncompress/6,5.3721058521267154e-5,5.370965683400443e-5,5.3732951051558273e-5,3.8679365990997505e-8,3.320737217083746e-8,4.743498026229587e-8 +Bls12_381_G1_uncompress/6,5.3716341341906074e-5,5.369083380767426e-5,5.373437573749032e-5,7.417517766611085e-8,5.1872198692106273e-8,1.2384649540439196e-7 +Bls12_381_G1_uncompress/6,5.373127816974751e-5,5.3714884859074604e-5,5.378347489804644e-5,8.734295297230874e-8,3.2829147340934003e-8,1.8580412575534014e-7 +Bls12_381_G1_uncompress/6,5.3745726432871e-5,5.373850135413621e-5,5.3752033455036684e-5,2.2368308917910276e-8,1.8979428650361795e-8,2.6498601700190554e-8 +Bls12_381_G1_uncompress/6,5.3759294156894214e-5,5.3725365588925105e-5,5.384934157147276e-5,1.7770013729544994e-7,4.387415239709673e-8,3.8498028471938383e-7 +Bls12_381_G1_uncompress/6,5.37133715500985e-5,5.365979103788839e-5,5.383484110392851e-5,2.529592244435553e-7,1.3637432024476528e-7,4.979963648173283e-7 +Bls12_381_G1_uncompress/6,5.371005860273979e-5,5.3677355468322984e-5,5.3733731710370275e-5,9.312592143703797e-8,6.59176958329482e-8,1.1997457480517994e-7 +Bls12_381_G1_uncompress/6,5.367759846347588e-5,5.3637319500146326e-5,5.3713974850551356e-5,1.2712345673375783e-7,1.0662700609780306e-7,1.4888237483790114e-7 +Bls12_381_G1_uncompress/6,5.382098255710599e-5,5.3767059519253684e-5,5.3993970896152425e-5,2.7267486906021213e-7,1.4101928189267848e-7,5.525161285426959e-7 +Bls12_381_G1_uncompress/6,5.3775077009365186e-5,5.375821556430107e-5,5.382256022360987e-5,9.133990164765672e-8,2.532492518871324e-8,1.8848839124754546e-7 +Bls12_381_G1_uncompress/6,5.371560580226657e-5,5.367924157336664e-5,5.378499125105045e-5,1.5988727026215363e-7,7.764548038617914e-8,3.135201462094736e-7 +Bls12_381_G1_uncompress/6,5.360482469147087e-5,5.3551373089809714e-5,5.3643684272678594e-5,1.5171612433449353e-7,1.1386029640214876e-7,1.8631447643462594e-7 +Bls12_381_G2_add/36/36,2.843708103193199e-6,2.8427246561709473e-6,2.8446071551296554e-6,3.223929923338483e-9,2.7425631930277855e-9,3.9511863886443926e-9 +Bls12_381_G2_add/36/36,2.8444164468077628e-6,2.8435630202986578e-6,2.84562677521171e-6,3.308243147254189e-9,2.599286640524333e-9,4.864302487458678e-9 +Bls12_381_G2_add/36/36,2.843173064067509e-6,2.8419111084352575e-6,2.844367446844918e-6,4.153188201123895e-9,3.467638211560389e-9,5.200989554774185e-9 +Bls12_381_G2_add/36/36,2.838863727493461e-6,2.8377056857253708e-6,2.839958817788337e-6,3.818768314782858e-9,3.26123743171407e-9,4.463458190359708e-9 +Bls12_381_G2_add/36/36,2.8508415790760975e-6,2.849659006401849e-6,2.851974437330621e-6,3.937193580518999e-9,3.254435935742467e-9,4.768129551350934e-9 +Bls12_381_G2_add/36/36,2.838137300358439e-6,2.8363194497759775e-6,2.8417325649896985e-6,8.118560653760897e-9,4.935369385510835e-9,1.4753340846696004e-8 +Bls12_381_G2_add/36/36,2.83608557888854e-6,2.82671810703507e-6,2.870316935931691e-6,5.603722448872795e-8,7.967043111596536e-9,1.1772705895138926e-7 +Bls12_381_G2_add/36/36,2.831827769417043e-6,2.830945813646896e-6,2.8327610806954116e-6,3.145690000519636e-9,2.5389975347343608e-9,4.266358755421234e-9 +Bls12_381_G2_add/36/36,2.8274894693144917e-6,2.8267328808610977e-6,2.828238411555674e-6,2.416220326808127e-9,1.879968595090295e-9,3.2247381385160257e-9 +Bls12_381_G2_add/36/36,2.8295046408262617e-6,2.828686379743229e-6,2.8305341146185506e-6,3.041711778899998e-9,2.412353244761476e-9,4.472696574562947e-9 +Bls12_381_G2_add/36/36,2.8332591581083583e-6,2.8320159433420375e-6,2.834833258651798e-6,4.528395854824006e-9,3.7911658340974475e-9,5.45850580665435e-9 +Bls12_381_G2_add/36/36,2.8322089465214113e-6,2.831339006387807e-6,2.833125473336168e-6,2.9462871814500844e-9,2.5181733816861522e-9,3.452500088298623e-9 +Bls12_381_G2_add/36/36,2.8377147389125245e-6,2.8369022929117964e-6,2.8384272374238394e-6,2.512705038282718e-9,2.0455592575081566e-9,3.351483441746217e-9 +Bls12_381_G2_add/36/36,2.83227116642552e-6,2.8315002942093797e-6,2.8330091993699275e-6,2.5693258683079184e-9,2.178172429560987e-9,3.053882452566079e-9 +Bls12_381_G2_add/36/36,2.839079751482424e-6,2.8381133275409086e-6,2.8400867694110976e-6,3.438260582437652e-9,2.922706358487115e-9,4.16038465530392e-9 +Bls12_381_G2_add/36/36,2.8364806723685615e-6,2.83576197634434e-6,2.8372066288867533e-6,2.487517779756414e-9,2.1100692874562847e-9,3.010163820684838e-9 +Bls12_381_G2_add/36/36,2.8343990863257174e-6,2.8336785298135544e-6,2.8351591054405234e-6,2.5016454675219652e-9,2.0828648365742824e-9,3.19089319880689e-9 +Bls12_381_G2_add/36/36,2.840851018023297e-6,2.8400703373288533e-6,2.841675817689093e-6,2.846583897481098e-9,2.401576448841783e-9,3.5989391814375064e-9 +Bls12_381_G2_add/36/36,2.8338146410330863e-6,2.832721556031324e-6,2.834756983178721e-6,3.4584656835934307e-9,2.8049871232962517e-9,4.76070465687431e-9 +Bls12_381_G2_add/36/36,2.837857753252483e-6,2.8365813972434435e-6,2.839181004525682e-6,4.29058848376221e-9,3.518216492454032e-9,5.3226553396936365e-9 +Bls12_381_G2_add/36/36,2.8362517617782535e-6,2.83486349874271e-6,2.8376505203837e-6,4.6904329222810925e-9,4.004337047443595e-9,5.9877517259426255e-9 +Bls12_381_G2_add/36/36,2.83434413002965e-6,2.8334506167041013e-6,2.8353849487606716e-6,3.276002826387359e-9,2.7839854686525144e-9,4.03598225488766e-9 +Bls12_381_G2_add/36/36,2.8324714411475045e-6,2.831519753075022e-6,2.8333123624433326e-6,3.0534737128183375e-9,2.32077504854862e-9,4.107118314293465e-9 +Bls12_381_G2_add/36/36,2.8245479963109753e-6,2.823694786636398e-6,2.8254666808757695e-6,3.095060174038127e-9,2.6518938120980285e-9,3.726227797621087e-9 +Bls12_381_G2_add/36/36,2.8398966012199588e-6,2.8388048073305766e-6,2.8411578040112438e-6,4.050939416538999e-9,3.486830023732263e-9,4.720822760489588e-9 +Bls12_381_G2_add/36/36,2.8382000374406276e-6,2.836460752952908e-6,2.8398121002483888e-6,5.6825446735720525e-9,5.074531338241276e-9,6.434426525529587e-9 +Bls12_381_G2_add/36/36,2.8390553278513934e-6,2.837982274593575e-6,2.840068153968024e-6,3.6867473083796786e-9,3.125036722965905e-9,4.443691132044984e-9 +Bls12_381_G2_add/36/36,2.8402496559405354e-6,2.8392992192299143e-6,2.841209430476185e-6,3.4062586304424073e-9,2.7661785860045863e-9,4.171451453885715e-9 +Bls12_381_G2_add/36/36,2.8429556332968952e-6,2.8419315872758072e-6,2.843794917593868e-6,3.2521019652311903e-9,2.7033358037848937e-9,3.7932973562922605e-9 +Bls12_381_G2_add/36/36,2.8335739001983167e-6,2.832597783552893e-6,2.8347060635359125e-6,3.752828253496737e-9,3.1661606129215227e-9,4.549017816218592e-9 +Bls12_381_G2_add/36/36,2.8332926132062663e-6,2.832220970580042e-6,2.834490101906423e-6,3.766243709874726e-9,3.2440329925878117e-9,4.681312271317794e-9 +Bls12_381_G2_add/36/36,2.825225289210786e-6,2.8243251697911135e-6,2.8260861680113326e-6,2.9245526311786874e-9,2.50572674910718e-9,3.4957587892020434e-9 +Bls12_381_G2_add/36/36,2.8286362489147686e-6,2.827855058671269e-6,2.8294641142775103e-6,2.7085581345737427e-9,2.3412677121178786e-9,3.2901048392909574e-9 +Bls12_381_G2_add/36/36,2.836260159770313e-6,2.8354017361607714e-6,2.8370263862605125e-6,2.7196059024866557e-9,2.3466425365983275e-9,3.2268904507584654e-9 +Bls12_381_G2_add/36/36,2.8407850537958754e-6,2.839974759869353e-6,2.841649205290844e-6,2.855972375835134e-9,2.4452020318425907e-9,3.774149608069969e-9 +Bls12_381_G2_add/36/36,2.8360383845957576e-6,2.835033595534285e-6,2.8370366054619576e-6,3.5409321254223364e-9,2.966015121889807e-9,4.320333859929682e-9 +Bls12_381_G2_add/36/36,2.831746406785212e-6,2.831010196925675e-6,2.8324890658047436e-6,2.393455435736023e-9,1.8198820742983399e-9,3.2296852811838794e-9 +Bls12_381_G2_add/36/36,2.834442371805229e-6,2.83355548479955e-6,2.8357543461330462e-6,3.5468230593597195e-9,2.7961226002760637e-9,4.989032268252095e-9 +Bls12_381_G2_add/36/36,2.8340074481116057e-6,2.833079914774194e-6,2.834884075790901e-6,3.007851316717134e-9,2.491662285121774e-9,3.692208722511907e-9 +Bls12_381_G2_add/36/36,2.839562592135666e-6,2.838562070123541e-6,2.8405735880325196e-6,3.4065304639588957e-9,2.800044272548746e-9,4.2919115322971185e-9 +Bls12_381_G2_add/36/36,2.8427514524870653e-6,2.842042567576001e-6,2.843562676386307e-6,2.5391427488861745e-9,2.2439680494205387e-9,2.9293283086143802e-9 +Bls12_381_G2_add/36/36,2.842585536461615e-6,2.841182194586408e-6,2.8438490631719705e-6,4.75558503599343e-9,3.983537213447536e-9,5.7210936071912564e-9 +Bls12_381_G2_add/36/36,2.845808506731919e-6,2.845011018538859e-6,2.8467107784634263e-6,2.9432089805951348e-9,2.4333644484353487e-9,3.69264824585175e-9 +Bls12_381_G2_add/36/36,2.830389289165311e-6,2.82935514243045e-6,2.83138220355844e-6,3.5579383785147013e-9,3.0393012964045292e-9,4.855151529723559e-9 +Bls12_381_G2_add/36/36,2.8362889743990418e-6,2.8354704962007154e-6,2.8371559549606567e-6,2.9640402365932333e-9,2.4704111676185094e-9,3.744280963322414e-9 +Bls12_381_G2_add/36/36,2.8343808314051388e-6,2.8332672604758244e-6,2.835533817174779e-6,3.87581291951072e-9,3.2053931007539805e-9,4.9028772913168815e-9 +Bls12_381_G2_add/36/36,2.8399063655768407e-6,2.8390864102639987e-6,2.8406958923770212e-6,2.5922600852703464e-9,2.1366822616032272e-9,3.305255939348887e-9 +Bls12_381_G2_add/36/36,2.8364839910596446e-6,2.835682133913178e-6,2.8372558247778072e-6,2.645550872684076e-9,2.252721785788402e-9,3.2136365877882013e-9 +Bls12_381_G2_add/36/36,2.8274815318050037e-6,2.8263850565636493e-6,2.828840034525426e-6,3.835221881154373e-9,3.232270676693066e-9,4.6210198988111605e-9 +Bls12_381_G2_add/36/36,2.833265408863783e-6,2.8325895655875007e-6,2.8340605449460673e-6,2.472888471823739e-9,2.098062966124814e-9,3.0071162799802563e-9 +Bls12_381_G2_add/36/36,2.843452203249529e-6,2.8424594329446015e-6,2.844656556794387e-6,3.701392931041364e-9,3.1863189123426877e-9,4.391610418864173e-9 +Bls12_381_G2_add/36/36,2.8422992728768296e-6,2.8412232819893257e-6,2.8432210151195424e-6,3.2831043889063203e-9,2.6983651042972737e-9,4.058649163039139e-9 +Bls12_381_G2_add/36/36,2.834882578002137e-6,2.8339976892523403e-6,2.835954006313595e-6,3.3708345800386332e-9,2.7458787589704115e-9,4.081794113412023e-9 +Bls12_381_G2_add/36/36,2.839972398400831e-6,2.839258199152237e-6,2.8407733730146675e-6,2.603058108210259e-9,2.161758583402645e-9,3.2124530576629877e-9 +Bls12_381_G2_add/36/36,2.839995442692112e-6,2.839140319436637e-6,2.8408203102587425e-6,2.710771686493166e-9,2.287851484249273e-9,3.338408586617729e-9 +Bls12_381_G2_add/36/36,2.8337643858533956e-6,2.832936572951814e-6,2.8348770247629385e-6,3.253475547756706e-9,2.6378132810293114e-9,4.2351767528653525e-9 +Bls12_381_G2_add/36/36,2.837300260512774e-6,2.8359760910364663e-6,2.8385648574783696e-6,4.291095036582593e-9,3.6398080835466016e-9,5.169527675354317e-9 +Bls12_381_G2_add/36/36,2.8350016721797206e-6,2.8342041455505045e-6,2.836003231691841e-6,3.0020266950439904e-9,2.443844540910885e-9,3.941740238950323e-9 +Bls12_381_G2_add/36/36,2.833153340935208e-6,2.832507522376306e-6,2.8338993030658706e-6,2.328965822751808e-9,1.996887978470591e-9,2.8744197426127217e-9 +Bls12_381_G2_add/36/36,2.840442666535799e-6,2.8393990832640016e-6,2.8416159366430295e-6,3.849689622567167e-9,3.121422169074406e-9,5.0775824100102595e-9 +Bls12_381_G2_add/36/36,2.8349512484230995e-6,2.8340034310671834e-6,2.8360665768779947e-6,3.4747273229096046e-9,2.8769274627520685e-9,4.504565403676449e-9 +Bls12_381_G2_add/36/36,2.833725916709335e-6,2.832884019723299e-6,2.834596964237377e-6,2.8375505754929084e-9,2.338780082811545e-9,3.4967242705345796e-9 +Bls12_381_G2_add/36/36,2.833935645068888e-6,2.8331339188715288e-6,2.8349838532437995e-6,3.091269842008102e-9,2.6054599491506607e-9,3.6933125580985444e-9 +Bls12_381_G2_add/36/36,2.833294261799759e-6,2.8317082221613347e-6,2.8344761268854537e-6,4.743266527195599e-9,3.960808693590624e-9,6.283398231277591e-9 +Bls12_381_G2_add/36/36,2.8389853976980895e-6,2.8379287787771734e-6,2.8400915867829586e-6,3.5585185269057838e-9,2.9936029340509066e-9,4.333457548012785e-9 +Bls12_381_G2_add/36/36,2.8391048093691815e-6,2.838242619241171e-6,2.8399154988313584e-6,2.7819812469964877e-9,2.168908606176392e-9,3.813988254922466e-9 +Bls12_381_G2_add/36/36,2.838333944882001e-6,2.8373517792730383e-6,2.8395321660820416e-6,3.5289695113078505e-9,2.9981660562734256e-9,4.310094119535447e-9 +Bls12_381_G2_add/36/36,2.8358052521082216e-6,2.8350740226548155e-6,2.8365985584875138e-6,2.6882495713980705e-9,2.182973019267116e-9,3.4265427149367553e-9 +Bls12_381_G2_add/36/36,2.838684281284887e-6,2.8378045313519204e-6,2.839556223844379e-6,3.0377387562869307e-9,2.5849729244828398e-9,3.6764976556472542e-9 +Bls12_381_G2_add/36/36,2.831562838962697e-6,2.8301457915506443e-6,2.832561417639816e-6,3.9471936899075175e-9,2.6109863193266246e-9,6.3838189055681105e-9 +Bls12_381_G2_add/36/36,2.8297888695603247e-6,2.8284773876529975e-6,2.8313935462707543e-6,5.055539751170975e-9,4.38755706405671e-9,5.820942146843514e-9 +Bls12_381_G2_add/36/36,2.828758357664625e-6,2.8276856742801608e-6,2.8298604388648732e-6,3.7127203185511842e-9,3.014192003967955e-9,4.666939930229414e-9 +Bls12_381_G2_add/36/36,2.8249972921323205e-6,2.8235032352340815e-6,2.826492634041087e-6,4.818057999641215e-9,4.053898625357046e-9,6.434328539188068e-9 +Bls12_381_G2_add/36/36,2.8313954404239075e-6,2.8305527493256457e-6,2.832247928264278e-6,2.863622664360149e-9,2.4459223635375044e-9,3.4865886003252962e-9 +Bls12_381_G2_add/36/36,2.8251671782822117e-6,2.8236602734743587e-6,2.826616666266787e-6,4.789403812798666e-9,4.0452515844150545e-9,5.973307850423574e-9 +Bls12_381_G2_add/36/36,2.8268434005447456e-6,2.825916291332541e-6,2.8277806605021923e-6,3.2273896530656743e-9,2.6720502483824464e-9,4.3319441061093326e-9 +Bls12_381_G2_add/36/36,2.8199050478651346e-6,2.818031567993248e-6,2.8238534121283553e-6,8.78010345362401e-9,4.856316184659937e-9,1.779817765793882e-8 +Bls12_381_G2_add/36/36,2.8212524155453963e-6,2.8200736621910117e-6,2.822728846894803e-6,4.484980206155302e-9,3.624879268172646e-9,5.626644649792828e-9 +Bls12_381_G2_add/36/36,2.8261196749808035e-6,2.824722112501718e-6,2.8274625362299433e-6,4.6665373863954385e-9,4.076709529001598e-9,5.382455968681134e-9 +Bls12_381_G2_add/36/36,2.8311747453944208e-6,2.8300272611900455e-6,2.8324197306524957e-6,3.91720166770471e-9,3.2248240125150285e-9,4.956037972393165e-9 +Bls12_381_G2_add/36/36,2.8321257942690415e-6,2.8312410782298354e-6,2.8330332775371588e-6,3.03987587213349e-9,2.6384663637126904e-9,3.52533199647633e-9 +Bls12_381_G2_add/36/36,2.8328364755671234e-6,2.832045586151153e-6,2.833610349389815e-6,2.654973561962023e-9,2.1575149113728217e-9,3.418322786867578e-9 +Bls12_381_G2_add/36/36,2.833382580399691e-6,2.8323400762398993e-6,2.834377917885463e-6,3.2898519241921704e-9,2.6526625242841246e-9,4.151159775325877e-9 +Bls12_381_G2_add/36/36,2.836842859794901e-6,2.835929053515776e-6,2.8375603939513954e-6,2.7747862962577825e-9,2.275022900360466e-9,3.580696849779945e-9 +Bls12_381_G2_add/36/36,2.8336949375209446e-6,2.832693915792809e-6,2.834664250065783e-6,3.309325707319494e-9,2.7959126896642014e-9,4.2458998174952405e-9 +Bls12_381_G2_add/36/36,2.8305987894123426e-6,2.8296505691136425e-6,2.8314215543996206e-6,2.8604626883841122e-9,2.2860157461002184e-9,3.611114679945928e-9 +Bls12_381_G2_add/36/36,2.8276491701841802e-6,2.8262522415079324e-6,2.8288038945639993e-6,4.4200371839403756e-9,3.4707601449336335e-9,5.90786282613248e-9 +Bls12_381_G2_add/36/36,2.8243531577590853e-6,2.8233145896576555e-6,2.8268222156913377e-6,4.716686684202024e-9,3.0191296746454774e-9,8.30431072342142e-9 +Bls12_381_G2_add/36/36,2.837338463151148e-6,2.8364008121204486e-6,2.838373943885259e-6,3.409716075090296e-9,2.878923852594185e-9,4.185809375305838e-9 +Bls12_381_G2_add/36/36,2.8251798030557493e-6,2.82426648581293e-6,2.826255578016502e-6,3.37119260690534e-9,2.821206537348465e-9,4.366875244987395e-9 +Bls12_381_G2_add/36/36,2.8203161562117757e-6,2.8193338522809983e-6,2.821459358337891e-6,3.597836399316319e-9,2.985737601999185e-9,4.850415467549238e-9 +Bls12_381_G2_add/36/36,2.825269968632085e-6,2.824583577002034e-6,2.8259434846338014e-6,2.3182089723705526e-9,1.8889698840067374e-9,2.8884064258459697e-9 +Bls12_381_G2_add/36/36,2.8146463065863918e-6,2.8133195953334915e-6,2.817118429177961e-6,6.107968841711307e-9,3.856744611865891e-9,1.0386388066927323e-8 +Bls12_381_G2_add/36/36,2.8235836029490377e-6,2.822878405420687e-6,2.82431126386822e-6,2.3367886850401584e-9,1.9458213826366615e-9,2.931457037032767e-9 +Bls12_381_G2_add/36/36,2.8325845171393334e-6,2.831909274893136e-6,2.8332014216884233e-6,2.169865000022776e-9,1.871911072030151e-9,2.5079018410953603e-9 +Bls12_381_G2_add/36/36,2.8319041599730387e-6,2.831000609458662e-6,2.832807448884567e-6,2.9466777479168136e-9,2.498722828906715e-9,3.5612100022094883e-9 +Bls12_381_G2_add/36/36,2.834218297121485e-6,2.8333911505975226e-6,2.8349431509339146e-6,2.627520392598212e-9,2.1609949549266773e-9,3.48296151427881e-9 +Bls12_381_G2_add/36/36,2.8265587510790012e-6,2.825439224500957e-6,2.8275414160020692e-6,3.532750323850781e-9,2.771964462485365e-9,4.517189424439872e-9 +Bls12_381_G2_add/36/36,2.8302210100941805e-6,2.828781694600979e-6,2.831602129495994e-6,4.831235213088566e-9,3.920883934069599e-9,6.2415524526255285e-9 +Bls12_381_G2_add/36/36,2.823236215618911e-6,2.822218462715526e-6,2.8242939875625668e-6,3.3054415275089527e-9,2.6263703378782943e-9,4.4860342938629566e-9 +Bls12_381_G2_neg/36,9.56767558912791e-7,9.55918428555709e-7,9.57648318824736e-7,2.9183449167957046e-9,2.443464754098014e-9,3.7058009693960917e-9 +Bls12_381_G2_neg/36,9.556205045503036e-7,9.548144859400764e-7,9.564146316165336e-7,2.714389309325954e-9,2.248544340502924e-9,3.4701159677357213e-9 +Bls12_381_G2_neg/36,9.571703749710608e-7,9.563319746872906e-7,9.579095671628864e-7,2.669865248630413e-9,2.259775828864206e-9,3.1727783519665063e-9 +Bls12_381_G2_neg/36,9.486892845369465e-7,9.474218387501052e-7,9.502049497797651e-7,4.693689710042966e-9,3.8694079296889555e-9,5.8436848802596694e-9 +Bls12_381_G2_neg/36,9.588676684977573e-7,9.579053021554222e-7,9.6034199506586e-7,4.089007004064218e-9,2.806500586286574e-9,6.525918630369824e-9 +Bls12_381_G2_neg/36,9.463700113245012e-7,9.453363499298104e-7,9.473568111974965e-7,3.525549208841762e-9,2.885907002127383e-9,4.504577404126069e-9 +Bls12_381_G2_neg/36,9.484126102091196e-7,9.477508811900425e-7,9.490482379328865e-7,2.2001524443253496e-9,1.896904642594864e-9,2.666198918400754e-9 +Bls12_381_G2_neg/36,9.550997595960146e-7,9.545715196690384e-7,9.555755750398843e-7,1.7099682042729827e-9,1.4197554985343636e-9,2.1990865664773247e-9 +Bls12_381_G2_neg/36,9.571829392240084e-7,9.566225320582605e-7,9.57790174911918e-7,1.9283596800635767e-9,1.5653326031619207e-9,2.644121674032077e-9 +Bls12_381_G2_neg/36,9.538218395234304e-7,9.531284621960125e-7,9.543852427545034e-7,2.069575663955661e-9,1.6419002887937038e-9,2.680623542623326e-9 +Bls12_381_G2_neg/36,9.51413920256578e-7,9.504742899880323e-7,9.52233497576656e-7,2.88830172507927e-9,2.4836836538072425e-9,3.467439099291475e-9 +Bls12_381_G2_neg/36,9.539163166113678e-7,9.531988139230542e-7,9.546643924559605e-7,2.4416325511742337e-9,2.046174559310211e-9,3.0251380930666755e-9 +Bls12_381_G2_neg/36,9.527768146833428e-7,9.519647828885595e-7,9.534884275291465e-7,2.527696602676789e-9,2.078747845289578e-9,3.125463638838649e-9 +Bls12_381_G2_neg/36,9.549102935278488e-7,9.54072329448667e-7,9.555765844866808e-7,2.53144996797273e-9,1.989608780700789e-9,3.260301709117054e-9 +Bls12_381_G2_neg/36,9.558060826305278e-7,9.550885013661595e-7,9.566179674201708e-7,2.5162320254840776e-9,2.1782995479693565e-9,2.9616790719198033e-9 +Bls12_381_G2_neg/36,9.57987748894279e-7,9.572055787442565e-7,9.58770555587873e-7,2.785356423637462e-9,2.343636405104464e-9,3.380830458366201e-9 +Bls12_381_G2_neg/36,9.564742134867092e-7,9.558080139671606e-7,9.572728278523431e-7,2.495566695318915e-9,2.1303978241227916e-9,3.0432157622772964e-9 +Bls12_381_G2_neg/36,9.580191305903304e-7,9.575064323039575e-7,9.584850894638708e-7,1.6307115600274442e-9,1.3832137900247138e-9,1.9183393289754325e-9 +Bls12_381_G2_neg/36,9.579980166095181e-7,9.574979274413678e-7,9.585019090413414e-7,1.7065142680185446e-9,1.4712991270034989e-9,2.03786826917713e-9 +Bls12_381_G2_neg/36,9.550463376443517e-7,9.541987283191082e-7,9.558352971417044e-7,2.7838475230825814e-9,2.3275728393955914e-9,3.371290424086788e-9 +Bls12_381_G2_neg/36,9.512486916592608e-7,9.505465534462353e-7,9.519459638805046e-7,2.3090267032763607e-9,1.9804887873635767e-9,2.7624965493971715e-9 +Bls12_381_G2_neg/36,9.492235350785932e-7,9.482154909116507e-7,9.50179630197565e-7,3.2166686731191433e-9,2.7181594574105187e-9,3.883570449560512e-9 +Bls12_381_G2_neg/36,9.515727633981701e-7,9.50914319693961e-7,9.521660241467517e-7,2.1348965641453455e-9,1.7409924538640427e-9,2.7800677477826878e-9 +Bls12_381_G2_neg/36,9.526654937562382e-7,9.513999692411163e-7,9.53814988054439e-7,4.292880281730021e-9,3.6952092136808835e-9,5.3456442475328e-9 +Bls12_381_G2_neg/36,9.503875612844372e-7,9.49829321148724e-7,9.510390295461371e-7,2.042259010117393e-9,1.70725409076203e-9,2.364082529008436e-9 +Bls12_381_G2_neg/36,9.554159056411427e-7,9.547156633353737e-7,9.560607195256887e-7,2.3533408052327953e-9,2.0134958237928275e-9,2.8543199071366634e-9 +Bls12_381_G2_neg/36,9.534697531620489e-7,9.528086542206106e-7,9.54133089929096e-7,2.2140823033846454e-9,1.8897644558222308e-9,2.775323121846284e-9 +Bls12_381_G2_neg/36,9.565949984166972e-7,9.56188905018791e-7,9.570424764982598e-7,1.4385874604845574e-9,1.1830247853120436e-9,1.7884486717562618e-9 +Bls12_381_G2_neg/36,9.485983975495471e-7,9.479379781453807e-7,9.491760086366465e-7,2.0285880241946236e-9,1.728192634204531e-9,2.4383972831391265e-9 +Bls12_381_G2_neg/36,9.513455616671002e-7,9.502636685162708e-7,9.524091353209364e-7,3.6149348007860796e-9,3.1366172437642516e-9,4.2408968505952416e-9 +Bls12_381_G2_neg/36,9.54786987000127e-7,9.540912313880319e-7,9.555380003425662e-7,2.411295716494699e-9,1.96871055153233e-9,3.230868256300612e-9 +Bls12_381_G2_neg/36,9.526504102522131e-7,9.5214922534043e-7,9.5318298343648e-7,1.766489954556682e-9,1.4410035386163908e-9,2.193214833994659e-9 +Bls12_381_G2_neg/36,9.55521299103383e-7,9.550258058913273e-7,9.560721720713853e-7,1.7794961010797765e-9,1.5048010506481793e-9,2.1051614591567697e-9 +Bls12_381_G2_neg/36,9.496050235828675e-7,9.488538624082795e-7,9.504005272410005e-7,2.4874483982344537e-9,2.09996824773222e-9,3.2412235574710907e-9 +Bls12_381_G2_neg/36,9.532124807047209e-7,9.526904053206357e-7,9.537323828165565e-7,1.7196356386684074e-9,1.4776544499192667e-9,2.0759319636224406e-9 +Bls12_381_G2_neg/36,9.502562846757975e-7,9.496053624212594e-7,9.509851105511458e-7,2.2830549130860566e-9,1.9108879138875646e-9,2.8094528350378786e-9 +Bls12_381_G2_neg/36,9.551007937313397e-7,9.541820334418347e-7,9.558626036587744e-7,2.9220477438163695e-9,2.3257996222638345e-9,3.6619535932720455e-9 +Bls12_381_G2_neg/36,9.597588045583507e-7,9.589828190277036e-7,9.603538405028201e-7,2.355442569827881e-9,1.8949356930800394e-9,3.1173881725100668e-9 +Bls12_381_G2_neg/36,9.515038085178496e-7,9.502286294820939e-7,9.529218687175874e-7,4.53502633917201e-9,3.6625137647022445e-9,5.735379843845009e-9 +Bls12_381_G2_neg/36,9.47607643102347e-7,9.470500188544378e-7,9.481794490223718e-7,2.0182634593300173e-9,1.664570336925625e-9,2.4966651178144718e-9 +Bls12_381_G2_neg/36,9.515908453907949e-7,9.509303163031129e-7,9.5225367625171e-7,2.175837528780834e-9,1.7756598256287764e-9,2.739248111807546e-9 +Bls12_381_G2_neg/36,9.56875262410515e-7,9.561994586296635e-7,9.574186927090637e-7,2.076462295312915e-9,1.7103952505228802e-9,2.587806227494681e-9 +Bls12_381_G2_neg/36,9.506026945429602e-7,9.498957671731465e-7,9.514706326924175e-7,2.7351034474621475e-9,2.2252937849868405e-9,3.276648098978356e-9 +Bls12_381_G2_neg/36,9.562893520798879e-7,9.555574340304565e-7,9.569288919832113e-7,2.2811089104556927e-9,1.9193888493787046e-9,2.8320580388405883e-9 +Bls12_381_G2_neg/36,9.490128024036216e-7,9.483100998827123e-7,9.497673350043355e-7,2.4059757047067456e-9,2.0913526047426556e-9,2.9077493644766296e-9 +Bls12_381_G2_neg/36,9.48657032150809e-7,9.478900509653632e-7,9.496301052194412e-7,3.029441447563149e-9,2.396311742041794e-9,3.790707799140428e-9 +Bls12_381_G2_neg/36,9.54746456269359e-7,9.540307340333657e-7,9.553568460872661e-7,2.264502017144828e-9,1.969983805620135e-9,2.7801971638188515e-9 +Bls12_381_G2_neg/36,9.510972652162041e-7,9.496691838518557e-7,9.52781585568583e-7,5.355618265311979e-9,4.602096141225477e-9,6.394561587238057e-9 +Bls12_381_G2_neg/36,9.527083943060809e-7,9.518476509874586e-7,9.533857656042427e-7,2.4280661734340428e-9,2.0553127817060844e-9,2.9127881724938533e-9 +Bls12_381_G2_neg/36,9.553406164219138e-7,9.547070119929366e-7,9.560420327199029e-7,2.2031314222996508e-9,1.8558947190539143e-9,2.704176630650659e-9 +Bls12_381_G2_neg/36,9.55452004367079e-7,9.544695784609927e-7,9.56404377545318e-7,3.1649789581564955e-9,2.7419533940861097e-9,3.7063403555218292e-9 +Bls12_381_G2_neg/36,9.570538820281455e-7,9.563767511704888e-7,9.57702513453711e-7,2.142509691235796e-9,1.7479557624225256e-9,2.7210454896264053e-9 +Bls12_381_G2_neg/36,9.612850355114021e-7,9.605681053390603e-7,9.620949827901721e-7,2.5748584500672674e-9,2.1935300586645903e-9,3.1823069460315566e-9 +Bls12_381_G2_neg/36,9.524057926753577e-7,9.518375093104263e-7,9.52995258276743e-7,2.034719534391314e-9,1.6749777755342088e-9,2.5522595220175456e-9 +Bls12_381_G2_neg/36,9.512319284825458e-7,9.504509362453816e-7,9.520681687417172e-7,2.6444502355179365e-9,2.265530366313322e-9,3.0423749603230966e-9 +Bls12_381_G2_neg/36,9.548196024313574e-7,9.540892400564709e-7,9.556493422961607e-7,2.700081823499615e-9,2.2646505773264804e-9,3.2970803066698018e-9 +Bls12_381_G2_neg/36,9.532295095168445e-7,9.523611391691504e-7,9.53961593642108e-7,2.642761711148676e-9,2.174976248460016e-9,3.200052865552552e-9 +Bls12_381_G2_neg/36,9.531360163338772e-7,9.519725058432738e-7,9.542929007417779e-7,3.954069290620504e-9,3.3696999843625654e-9,4.752727004475035e-9 +Bls12_381_G2_neg/36,9.55647667997753e-7,9.548987348467227e-7,9.565272695682198e-7,2.7421829823799824e-9,2.348114050936837e-9,3.4131552109582695e-9 +Bls12_381_G2_neg/36,9.535480326653024e-7,9.524610707263169e-7,9.550762134988488e-7,4.2067930843956284e-9,3.5860620986089363e-9,5.158615537363617e-9 +Bls12_381_G2_neg/36,9.57786198061598e-7,9.567291389916036e-7,9.58704616161024e-7,3.2570876780946713e-9,2.7137360988294056e-9,3.817559425326115e-9 +Bls12_381_G2_neg/36,9.608438785933319e-7,9.599721004481284e-7,9.617742310920704e-7,3.0037554379632927e-9,2.6113416126895332e-9,3.6320175432333496e-9 +Bls12_381_G2_neg/36,9.534154081250387e-7,9.528311850949729e-7,9.54007695965043e-7,2.00530802408994e-9,1.6695851695506128e-9,2.540025831661434e-9 +Bls12_381_G2_neg/36,9.580161124216492e-7,9.574703883411075e-7,9.58514544732438e-7,1.7459738805563197e-9,1.4461730036659575e-9,2.1805011383991133e-9 +Bls12_381_G2_neg/36,9.535895599597408e-7,9.528824815705356e-7,9.542790036015633e-7,2.2942706111166796e-9,1.937061236332039e-9,2.780020976495607e-9 +Bls12_381_G2_neg/36,9.540851615157018e-7,9.531072010465902e-7,9.549092147111576e-7,2.8828741446902434e-9,2.4808217966603272e-9,3.486162827189124e-9 +Bls12_381_G2_neg/36,9.566487491239105e-7,9.560067550261213e-7,9.571947537530115e-7,1.9664658006957723e-9,1.6600081440116416e-9,2.429170034788846e-9 +Bls12_381_G2_neg/36,9.555649045020089e-7,9.54888424504122e-7,9.562625354691207e-7,2.338755349681202e-9,2.013336577968617e-9,2.828007039986103e-9 +Bls12_381_G2_neg/36,9.57511280860447e-7,9.563390741651608e-7,9.58569607551716e-7,3.60902131840433e-9,3.1505865038659557e-9,4.213599852421611e-9 +Bls12_381_G2_neg/36,9.562349743791407e-7,9.557578089026151e-7,9.56738656520611e-7,1.6425128081152924e-9,1.35121249743716e-9,2.1701341073733216e-9 +Bls12_381_G2_neg/36,9.547886233916272e-7,9.535693200926194e-7,9.559223627543341e-7,4.039248636037394e-9,3.3989588540920803e-9,4.907398279534186e-9 +Bls12_381_G2_neg/36,9.564267322987335e-7,9.5566874708547e-7,9.572233655908884e-7,2.5662267707504162e-9,2.1953870913870035e-9,3.273931897223891e-9 +Bls12_381_G2_neg/36,9.573181938081905e-7,9.564603539643192e-7,9.581806399980091e-7,2.7880217554318087e-9,2.2918375236599255e-9,3.462986058238601e-9 +Bls12_381_G2_neg/36,9.55324993186238e-7,9.547034564695967e-7,9.558263360790452e-7,1.805919434584963e-9,1.497513011351027e-9,2.4135414373058e-9 +Bls12_381_G2_neg/36,9.543936369193701e-7,9.536963328605337e-7,9.551911222188148e-7,2.546790518390988e-9,2.121632442442018e-9,3.154524702995426e-9 +Bls12_381_G2_neg/36,9.63649135278991e-7,9.627068178923729e-7,9.643160489424192e-7,2.5828242648228025e-9,1.9073166385045103e-9,3.865859449390436e-9 +Bls12_381_G2_neg/36,9.544777854057158e-7,9.535870731977482e-7,9.553423214488835e-7,2.9907774671701295e-9,2.445395262248228e-9,3.734898576175585e-9 +Bls12_381_G2_neg/36,9.513836498674231e-7,9.503509454913368e-7,9.525027376703517e-7,3.5781615092009293e-9,2.830092916853599e-9,4.491592715082463e-9 +Bls12_381_G2_neg/36,9.573280669686206e-7,9.567250680758225e-7,9.5802463767217e-7,2.1148519860674084e-9,1.7004425275407344e-9,2.787744590713622e-9 +Bls12_381_G2_neg/36,9.596435830287558e-7,9.589634801803519e-7,9.60357749866344e-7,2.3209432667615705e-9,1.8693685064532566e-9,2.9798459305710996e-9 +Bls12_381_G2_neg/36,9.60335399635162e-7,9.597065561442099e-7,9.610618602835444e-7,2.223671703808731e-9,1.655155438811907e-9,3.0715009037205817e-9 +Bls12_381_G2_neg/36,9.583277057150347e-7,9.576611502258466e-7,9.589657279106395e-7,2.0985883753128486e-9,1.727871949107607e-9,2.6992891290028463e-9 +Bls12_381_G2_neg/36,9.608582888358374e-7,9.602566985531872e-7,9.615566842320544e-7,2.110757227802657e-9,1.7678709686806333e-9,2.6327176310848895e-9 +Bls12_381_G2_neg/36,9.560361458039405e-7,9.55013923778001e-7,9.56915793191576e-7,3.147266658539921e-9,2.756976340036607e-9,3.7246493971705623e-9 +Bls12_381_G2_neg/36,9.557305265483823e-7,9.536136930598362e-7,9.57511237018811e-7,6.775399613358763e-9,6.033026676996336e-9,7.895148247642145e-9 +Bls12_381_G2_neg/36,9.513780782199921e-7,9.503731831902617e-7,9.523717676122996e-7,3.4282336269077955e-9,2.820430842365832e-9,4.554812311175453e-9 +Bls12_381_G2_neg/36,9.514385471801967e-7,9.501274341604797e-7,9.528582686884973e-7,4.516255515207625e-9,3.888953598929028e-9,5.5389058446517105e-9 +Bls12_381_G2_neg/36,9.547822973789365e-7,9.54079102994969e-7,9.555935474836825e-7,2.5209522509073025e-9,2.1298747266413655e-9,3.0354663603675986e-9 +Bls12_381_G2_neg/36,9.522718791414305e-7,9.518793721887171e-7,9.526749104475361e-7,1.3888345953729244e-9,1.2001161329195e-9,1.6227275566379806e-9 +Bls12_381_G2_neg/36,9.51239481778395e-7,9.50436520119729e-7,9.520537304928864e-7,2.705047580364381e-9,2.2130847707811736e-9,3.4611070569208876e-9 +Bls12_381_G2_neg/36,9.529431991687457e-7,9.523951618474212e-7,9.534946537741163e-7,1.8756069435621875e-9,1.524911825524778e-9,2.4259909301463833e-9 +Bls12_381_G2_neg/36,9.561854162496785e-7,9.555700708099169e-7,9.569529384064319e-7,2.398401052082684e-9,1.9511240991464665e-9,3.002440933713112e-9 +Bls12_381_G2_neg/36,9.58280201547478e-7,9.577320672248008e-7,9.588482702414038e-7,1.8338227196797762e-9,1.5659337066738319e-9,2.1698015426663587e-9 +Bls12_381_G2_neg/36,9.56121431853171e-7,9.555178295954017e-7,9.567012750239411e-7,1.8531412343245091e-9,1.585307917604307e-9,2.2630776965605397e-9 +Bls12_381_G2_neg/36,9.554415718389238e-7,9.54949998828373e-7,9.559532454656887e-7,1.6148522136742277e-9,1.3348597854654556e-9,2.071768038240774e-9 +Bls12_381_G2_neg/36,9.528665284202347e-7,9.520789096230855e-7,9.536219685451981e-7,2.8244442768595508e-9,2.3775499978398256e-9,3.662632233417191e-9 +Bls12_381_G2_neg/36,9.55270817485615e-7,9.54057600789601e-7,9.563443117889205e-7,3.6739328233813238e-9,3.21227859350123e-9,4.293932949815162e-9 +Bls12_381_G2_neg/36,9.541533584507186e-7,9.530859808582361e-7,9.552513686799133e-7,3.6134690724943517e-9,3.1600401455922567e-9,4.194477001366156e-9 +Bls12_381_G2_neg/36,9.5168998549205e-7,9.507837163050052e-7,9.526311529204097e-7,3.1449111236079423e-9,2.707262282428015e-9,3.9308123222833345e-9 +Bls12_381_G2_neg/36,9.47885464465755e-7,9.474003343553947e-7,9.484022492838935e-7,1.6572696402905404e-9,1.3612184311537641e-9,2.075897154577209e-9 +Bls12_381_G2_scalarMul/1/36,1.589361717494723e-4,1.5892206902341395e-4,1.5895424150978534e-4,5.2887370140596366e-8,4.0934404705783583e-8,8.416356831546156e-8 +Bls12_381_G2_scalarMul/2/36,1.591005197415283e-4,1.5907977071038368e-4,1.5911973830143436e-4,6.49015738311858e-8,5.5938253607560116e-8,7.562075059744145e-8 +Bls12_381_G2_scalarMul/3/36,1.5933614259643918e-4,1.5931820011539003e-4,1.593633986119759e-4,7.347446354370529e-8,4.9198994794065205e-8,1.2466046237681093e-7 +Bls12_381_G2_scalarMul/4/36,1.5952985274494995e-4,1.5950880080350805e-4,1.595691434217851e-4,9.315312315979833e-8,6.411465608690468e-8,1.5798755650901008e-7 +Bls12_381_G2_scalarMul/5/36,1.5951868470073018e-4,1.59502942605769e-4,1.595413960690079e-4,6.312199078146538e-8,4.624506038289825e-8,8.148001517632465e-8 +Bls12_381_G2_scalarMul/6/36,1.5954526560590324e-4,1.5952318324582675e-4,1.5956649341143948e-4,7.220556133365869e-8,6.1867957378521e-8,8.610324094780328e-8 +Bls12_381_G2_scalarMul/7/36,1.595501630029228e-4,1.5953382562372732e-4,1.5957810348316294e-4,7.168791090989638e-8,4.465402312046124e-8,1.2003846654323656e-7 +Bls12_381_G2_scalarMul/8/36,1.595086653483784e-4,1.5948963322154523e-4,1.5953038910848554e-4,6.80671519733413e-8,5.678119210421548e-8,8.369855251038893e-8 +Bls12_381_G2_scalarMul/9/36,1.5953334870675396e-4,1.5951686816129858e-4,1.5955503928836553e-4,6.451715276259899e-8,4.872652180815675e-8,1.0115399014858885e-7 +Bls12_381_G2_scalarMul/10/36,1.5949346089186103e-4,1.5947351425544626e-4,1.5953345911277805e-4,9.328083188335207e-8,5.122942921989625e-8,1.697676475741103e-7 +Bls12_381_G2_scalarMul/11/36,1.595766503061691e-4,1.5955904520378053e-4,1.5959565265982764e-4,6.220793352079664e-8,5.2006036375503246e-8,8.227202485709545e-8 +Bls12_381_G2_scalarMul/12/36,1.5958112499987712e-4,1.5956048721559949e-4,1.5960374931317292e-4,7.221842539359742e-8,5.987502793484606e-8,9.120639672761764e-8 +Bls12_381_G2_scalarMul/13/36,1.5953198902253962e-4,1.5951770160984783e-4,1.5954721930469122e-4,4.833719897055588e-8,3.823540953219916e-8,6.495748374778423e-8 +Bls12_381_G2_scalarMul/14/36,1.5957481224996905e-4,1.5955609480591457e-4,1.5959038065723401e-4,6.021519689991766e-8,4.662176633586054e-8,9.502875893179271e-8 +Bls12_381_G2_scalarMul/15/36,1.5956273989060354e-4,1.595415870650396e-4,1.5958549356162097e-4,7.570465929789436e-8,6.492915192848723e-8,8.760349096394231e-8 +Bls12_381_G2_scalarMul/16/36,1.5959151190726557e-4,1.5957214277806218e-4,1.5961109236499905e-4,6.544237998435977e-8,5.334624298527966e-8,8.122255949269536e-8 +Bls12_381_G2_scalarMul/17/36,1.5959857001325296e-4,1.5958282750445387e-4,1.596212064361375e-4,6.10847332953767e-8,4.711751431324028e-8,8.013536745494333e-8 +Bls12_381_G2_scalarMul/18/36,1.5962561532750674e-4,1.5960723243773687e-4,1.5964495545058705e-4,6.068797174092812e-8,5.005556037960793e-8,7.76599672821359e-8 +Bls12_381_G2_scalarMul/19/36,1.5965961487898332e-4,1.5964094057522327e-4,1.5967653807339095e-4,6.009659214484727e-8,4.930417335310678e-8,7.598681732707861e-8 +Bls12_381_G2_scalarMul/20/36,1.5965176596125627e-4,1.595981408942602e-4,1.5986368432503105e-4,3.1985558685188463e-7,3.7155923268851676e-8,6.750067856011771e-7 +Bls12_381_G2_scalarMul/21/36,1.596340506086237e-4,1.5962065062853683e-4,1.596512386530822e-4,4.933703694529459e-8,4.146118518785954e-8,5.949991094304867e-8 +Bls12_381_G2_scalarMul/22/36,1.5957291580929683e-4,1.5955995975181267e-4,1.5958417929060376e-4,4.152384175735598e-8,3.4288776378685466e-8,5.07467006454863e-8 +Bls12_381_G2_scalarMul/23/36,1.5962716936690624e-4,1.5961211400521816e-4,1.5964598808012202e-4,5.7051991587966075e-8,4.727467274760042e-8,7.684849466559938e-8 +Bls12_381_G2_scalarMul/24/36,1.5961554615222942e-4,1.5960220139445776e-4,1.5963038602058753e-4,4.7313606811798206e-8,3.8265011032795566e-8,6.047477215135846e-8 +Bls12_381_G2_scalarMul/25/36,1.6035855193283072e-4,1.5966563403526087e-4,1.6311710280031975e-4,4.448707993416512e-6,5.451592897529686e-8,9.450811537441742e-6 +Bls12_381_G2_scalarMul/26/36,1.5969963623145334e-4,1.5968188443223863e-4,1.597164466496202e-4,5.6676360156267374e-8,4.7946497413066086e-8,6.767317564878811e-8 +Bls12_381_G2_scalarMul/27/36,1.596949705405847e-4,1.5968136589432285e-4,1.5971078551164236e-4,4.835580753018671e-8,3.886967476741454e-8,6.252237205657785e-8 +Bls12_381_G2_scalarMul/28/36,1.5965333780809115e-4,1.596408634586451e-4,1.5966705646660182e-4,4.286182576182476e-8,3.529755142114105e-8,5.418827115330252e-8 +Bls12_381_G2_scalarMul/29/36,1.5971725045900494e-4,1.5970014038562932e-4,1.5973355829475077e-4,5.990300173949492e-8,4.9702668397368095e-8,7.956694637919036e-8 +Bls12_381_G2_scalarMul/30/36,1.5965558439611578e-4,1.5963726142918485e-4,1.5967510701430827e-4,5.99189638799254e-8,4.996697630314679e-8,7.411398415988633e-8 +Bls12_381_G2_scalarMul/31/36,1.5966342283378943e-4,1.5965034015094217e-4,1.5967771401775112e-4,4.462613442448772e-8,3.690195136511301e-8,5.7059028591980035e-8 +Bls12_381_G2_scalarMul/32/36,1.5974482914649183e-4,1.5970099259137227e-4,1.598892603016554e-4,2.44956952859746e-7,8.946035039502137e-8,5.584484674363664e-7 +Bls12_381_G2_scalarMul/33/36,1.597481986646283e-4,1.597362656477663e-4,1.59764274350779e-4,4.6421896482166064e-8,3.707104088828793e-8,6.274593878459281e-8 +Bls12_381_G2_scalarMul/34/36,1.5974060951580416e-4,1.597233947124492e-4,1.597570556363929e-4,5.2066236927411054e-8,4.3131997803954666e-8,6.903481392067332e-8 +Bls12_381_G2_scalarMul/35/36,1.5983375897782505e-4,1.5980306477312632e-4,1.5989820087928514e-4,1.5131940613535022e-7,6.444244465690069e-8,2.905695100292609e-7 +Bls12_381_G2_scalarMul/36/36,1.5975755270786687e-4,1.597460160104253e-4,1.5978105580266547e-4,5.115857903928932e-8,3.386742357532684e-8,8.945924850996272e-8 +Bls12_381_G2_scalarMul/37/36,1.5975370839229223e-4,1.597362122024813e-4,1.5977255999738223e-4,6.297658789240002e-8,5.0305792066334936e-8,8.910826160193739e-8 +Bls12_381_G2_scalarMul/38/36,1.597223812099559e-4,1.5970584308629956e-4,1.5973698890879568e-4,4.887906462397995e-8,3.845456909004806e-8,6.116385819612785e-8 +Bls12_381_G2_scalarMul/39/36,1.5974258138358598e-4,1.5972525647145816e-4,1.5975920287711042e-4,5.6869122367445834e-8,4.922384618542405e-8,6.713713107791141e-8 +Bls12_381_G2_scalarMul/40/36,1.597603116188992e-4,1.5974907217967236e-4,1.5977908669056952e-4,4.783404213101427e-8,3.313157414685998e-8,7.240383203046933e-8 +Bls12_381_G2_scalarMul/41/36,1.5975907839750722e-4,1.597440381730968e-4,1.5977745031719483e-4,5.550978854501149e-8,4.0091047196122376e-8,8.440224903703221e-8 +Bls12_381_G2_scalarMul/42/36,1.597682450442099e-4,1.5975223918831654e-4,1.5979044438064013e-4,6.225688267931053e-8,4.414042315515515e-8,8.845125126116122e-8 +Bls12_381_G2_scalarMul/43/36,1.597707659749419e-4,1.5975437430392413e-4,1.5978877976771902e-4,5.776218217134002e-8,4.636479438105211e-8,7.345141452618279e-8 +Bls12_381_G2_scalarMul/44/36,1.598704752974508e-4,1.5983393593044207e-4,1.6002988623988064e-4,2.1125687455794983e-7,5.405596858279663e-8,4.683029422581494e-7 +Bls12_381_G2_scalarMul/45/36,1.5980178224594778e-4,1.5978603084023678e-4,1.59822019800525e-4,5.934282608572983e-8,4.737087689441979e-8,7.815363677141014e-8 +Bls12_381_G2_scalarMul/46/36,1.5987838678255262e-4,1.5986233500559402e-4,1.5989360060151973e-4,5.258296506964481e-8,4.377632014959017e-8,6.320034219170864e-8 +Bls12_381_G2_scalarMul/47/36,1.5980825052881712e-4,1.597954328190144e-4,1.5981985960792527e-4,4.3431514401706525e-8,3.6653141325110144e-8,5.399840782808266e-8 +Bls12_381_G2_scalarMul/48/36,1.5986754198383783e-4,1.5985366527943883e-4,1.598837820662291e-4,5.385588887552457e-8,4.3861336369546756e-8,6.903909591471833e-8 +Bls12_381_G2_scalarMul/49/36,1.598570594182546e-4,1.5983839953029796e-4,1.5987787071786947e-4,6.683081311049503e-8,5.548010601601789e-8,8.503855494961292e-8 +Bls12_381_G2_scalarMul/50/36,1.599371716569338e-4,1.5991843555254113e-4,1.5995651375997965e-4,6.387015864676881e-8,4.942094659657535e-8,8.824963220598847e-8 +Bls12_381_G2_scalarMul/51/36,1.5992873422085232e-4,1.5990708082455916e-4,1.5995083934660718e-4,7.297012853749278e-8,5.9460011798935774e-8,9.068279625560178e-8 +Bls12_381_G2_scalarMul/52/36,1.5992102030738163e-4,1.599036581034076e-4,1.5993931595938512e-4,6.08026843256159e-8,5.1644314950940626e-8,7.584063727618059e-8 +Bls12_381_G2_scalarMul/53/36,1.599135014474852e-4,1.5989437880298418e-4,1.5993539173991917e-4,6.606271314906602e-8,5.3840002447539405e-8,9.060643021391899e-8 +Bls12_381_G2_scalarMul/54/36,1.599095098427975e-4,1.5989648526893054e-4,1.5992189607971725e-4,4.443954356420683e-8,3.369820852910496e-8,6.020740879246526e-8 +Bls12_381_G2_scalarMul/55/36,1.599355020265087e-4,1.5991890102735255e-4,1.599518433361527e-4,5.460765894311752e-8,4.579021533506094e-8,6.754298847075781e-8 +Bls12_381_G2_scalarMul/56/36,1.599009909015412e-4,1.5984667487108873e-4,1.6003555431956618e-4,2.583512218007693e-7,4.4120991161118527e-8,4.904180977274946e-7 +Bls12_381_G2_scalarMul/57/36,1.6100650236153434e-4,1.6098193190975012e-4,1.6103683580808223e-4,9.019107208910167e-8,6.796137783353885e-8,1.3640652703716012e-7 +Bls12_381_G2_scalarMul/58/36,1.6102069504273054e-4,1.6099240791253428e-4,1.6107866774636563e-4,1.2974385700415497e-7,7.085187636720213e-8,2.3733092867727606e-7 +Bls12_381_G2_scalarMul/59/36,1.610451271954243e-4,1.6102231355642725e-4,1.610748014327893e-4,9.014968198187693e-8,7.143557846874836e-8,1.228457834299313e-7 +Bls12_381_G2_scalarMul/60/36,1.610823084551961e-4,1.6104280468304765e-4,1.6116203793369567e-4,1.8195587942925015e-7,1.0598156419348462e-7,3.21662899177446e-7 +Bls12_381_G2_scalarMul/61/36,1.6115288622166015e-4,1.6112658198690118e-4,1.6118653567196472e-4,1.0109610392290893e-7,7.905658205239476e-8,1.3958591652206352e-7 +Bls12_381_G2_scalarMul/62/36,1.611497696636417e-4,1.6112558618262073e-4,1.6117471251934576e-4,7.984386830505845e-8,6.76607574193828e-8,9.435301545912886e-8 +Bls12_381_G2_scalarMul/63/36,1.6110790553227673e-4,1.6107905906669046e-4,1.6115176069719285e-4,1.1429611889977189e-7,6.988691461714818e-8,1.7606880326501227e-7 +Bls12_381_G2_scalarMul/64/36,1.6113206042494402e-4,1.611032514693109e-4,1.6116318820001336e-4,1.0485580775068011e-7,8.501496609346431e-8,1.4078238273451881e-7 +Bls12_381_G2_scalarMul/65/36,1.6110612022119842e-4,1.6107480903239233e-4,1.6114163605914755e-4,1.1462071219135017e-7,8.992353867906967e-8,1.615990309552238e-7 +Bls12_381_G2_scalarMul/66/36,1.6117905931264172e-4,1.6115212960684448e-4,1.6121125347904618e-4,1.0115885519283101e-7,8.377627070055258e-8,1.3313511017955172e-7 +Bls12_381_G2_scalarMul/67/36,1.6120291196215658e-4,1.6117212416809443e-4,1.612499020300499e-4,1.2158844541333068e-7,9.150046914568551e-8,1.840174364778753e-7 +Bls12_381_G2_scalarMul/68/36,1.6117394651386075e-4,1.6115097681572468e-4,1.6120589990136148e-4,9.008817865424165e-8,6.730905901686182e-8,1.2589512967118033e-7 +Bls12_381_G2_scalarMul/69/36,1.6120393629516817e-4,1.611792890063112e-4,1.6125331401104314e-4,1.1629824896094559e-7,7.081146622295652e-8,2.0766342820798663e-7 +Bls12_381_G2_scalarMul/70/36,1.6129969731617177e-4,1.6126766849533674e-4,1.6132718395077492e-4,9.843261474823004e-8,8.185571451321674e-8,1.4218910919832048e-7 +Bls12_381_G2_scalarMul/71/36,1.6133260271146435e-4,1.6130983158240628e-4,1.6135898391338372e-4,7.942095016340655e-8,6.221863065893002e-8,1.0558921220818062e-7 +Bls12_381_G2_scalarMul/72/36,1.6134403579234316e-4,1.613061528618325e-4,1.614107249449897e-4,1.665307356898039e-7,9.517882340401255e-8,2.5523470018034527e-7 +Bls12_381_G2_scalarMul/73/36,1.613579761764646e-4,1.6132677369677662e-4,1.613822251342477e-4,9.56911119897937e-8,7.651007417595534e-8,1.2345191743393985e-7 +Bls12_381_G2_scalarMul/74/36,1.612058296800619e-4,1.611795217238812e-4,1.612570912736288e-4,1.1302038237492314e-7,6.768605373913924e-8,2.1498700379256913e-7 +Bls12_381_G2_scalarMul/75/36,1.6126474895237968e-4,1.6124203623561577e-4,1.6128862560224174e-4,7.691593147544399e-8,6.522009066892109e-8,9.529409317864277e-8 +Bls12_381_G2_scalarMul/76/36,1.6132005479668125e-4,1.6129340315029043e-4,1.6135123203469856e-4,9.737872458330404e-8,7.51106504078027e-8,1.5091912156216904e-7 +Bls12_381_G2_scalarMul/77/36,1.612770229628543e-4,1.6125068956456744e-4,1.6130550388689167e-4,9.050572911878533e-8,7.295485138854408e-8,1.1756157165530111e-7 +Bls12_381_G2_scalarMul/78/36,1.6135375334541633e-4,1.6132270528881952e-4,1.614097899465197e-4,1.268229203319759e-7,8.269746765364253e-8,2.1236124807491954e-7 +Bls12_381_G2_scalarMul/79/36,1.6125763742862336e-4,1.6122546355781854e-4,1.6129155888093002e-4,1.0429969581892025e-7,8.122836731883837e-8,1.5787316753780456e-7 +Bls12_381_G2_scalarMul/80/36,1.6131621676872515e-4,1.6128164019407222e-4,1.613621821509903e-4,1.329610454954099e-7,1.1022042483421798e-7,1.7031571803072915e-7 +Bls12_381_G2_scalarMul/81/36,1.6137398878804534e-4,1.6135209859290928e-4,1.6139974934600604e-4,8.219043855496728e-8,6.501580934804344e-8,1.1267446349634255e-7 +Bls12_381_G2_scalarMul/82/36,1.614039932645982e-4,1.6137757953099737e-4,1.614218001784428e-4,7.325668623410214e-8,5.542770899649194e-8,1.1248917185891018e-7 +Bls12_381_G2_scalarMul/83/36,1.6142426911765973e-4,1.6140576870519338e-4,1.6144349922676276e-4,6.298920962985404e-8,5.187603436221653e-8,8.406948295388811e-8 +Bls12_381_G2_scalarMul/84/36,1.6146865767319624e-4,1.6143588406870288e-4,1.6157784733082707e-4,1.8145354768436236e-7,7.387480475255307e-8,3.619483923371201e-7 +Bls12_381_G2_scalarMul/85/36,1.614356795343087e-4,1.6141628898752922e-4,1.6145614691290074e-4,6.729075390822273e-8,5.7872388207369165e-8,7.970662400140032e-8 +Bls12_381_G2_scalarMul/86/36,1.6146834714274115e-4,1.6144413830597223e-4,1.6149288731929536e-4,8.311331271762493e-8,6.595250681487872e-8,1.0555569446269877e-7 +Bls12_381_G2_scalarMul/87/36,1.6147031252954373e-4,1.6144867615862753e-4,1.6149712457380066e-4,8.426429974480256e-8,6.228545768508211e-8,1.1796521343725401e-7 +Bls12_381_G2_scalarMul/88/36,1.6145630081127856e-4,1.6142915634643346e-4,1.614973062126199e-4,1.0586512065349018e-7,7.432148525764112e-8,1.5891604885166342e-7 +Bls12_381_G2_scalarMul/89/36,1.612624297845158e-4,1.6123597799496536e-4,1.6129760842254677e-4,1.0026371873933929e-7,7.970742476764583e-8,1.426327793479637e-7 +Bls12_381_G2_scalarMul/90/36,1.613522294038243e-4,1.6133444602754374e-4,1.6137630519175243e-4,7.154784445680287e-8,5.340802068823839e-8,1.0727562517674076e-7 +Bls12_381_G2_scalarMul/91/36,1.6134248393763237e-4,1.613158120154541e-4,1.6137933595460638e-4,1.0428998047827829e-7,7.642153920012326e-8,1.6075931849492572e-7 +Bls12_381_G2_scalarMul/92/36,1.6136214440677974e-4,1.6133485870511736e-4,1.6139651575586923e-4,1.0575864723717565e-7,8.012826633732498e-8,1.493704555817291e-7 +Bls12_381_G2_scalarMul/93/36,1.6148233160874603e-4,1.614525878418012e-4,1.6154380088827158e-4,1.38808390215074e-7,7.944834990843158e-8,2.604211701872425e-7 +Bls12_381_G2_scalarMul/94/36,1.6150219237371554e-4,1.6147347792386916e-4,1.615303032019507e-4,9.519969996268385e-8,7.012799163184565e-8,1.436783582427192e-7 +Bls12_381_G2_scalarMul/95/36,1.6146757843258727e-4,1.6143507678421164e-4,1.6153254106471347e-4,1.5310346559426297e-7,8.789410623566419e-8,2.796315798240143e-7 +Bls12_381_G2_scalarMul/96/36,1.6139732724237117e-4,1.6136956410221572e-4,1.614325446122244e-4,1.0131403420335295e-7,7.451718659499337e-8,1.5350126613571064e-7 +Bls12_381_G2_scalarMul/97/36,1.6152422641723123e-4,1.614848034551404e-4,1.616314957864299e-4,1.9577525712773127e-7,1.0278283032919097e-7,3.692615978401267e-7 +Bls12_381_G2_scalarMul/98/36,1.6146511065134853e-4,1.614344165263457e-4,1.6150886648802362e-4,1.2001451845278292e-7,8.380378194940098e-8,1.8791707612428677e-7 +Bls12_381_G2_scalarMul/99/36,1.614464234100897e-4,1.614225353706382e-4,1.6147679660583286e-4,8.747146106543662e-8,6.300700253660946e-8,1.2658165857918926e-7 +Bls12_381_G2_scalarMul/100/36,1.614816814137317e-4,1.6145296534586946e-4,1.615254753637502e-4,1.1811372662391987e-7,8.494468546096243e-8,1.9452501702144165e-7 +Bls12_381_G2_equal/36/36,1.73381154393756e-6,1.7331452558296043e-6,1.73457095628916e-6,2.266686510372578e-9,1.9207353010756544e-9,2.7401912271754137e-9 +Bls12_381_G2_equal/36/36,1.7407851424076486e-6,1.7397272652353862e-6,1.74165174451096e-6,3.2689163080955806e-9,2.8245335106030896e-9,3.861614303737178e-9 +Bls12_381_G2_equal/36/36,1.7353835919819122e-6,1.734759318695374e-6,1.7361039690662546e-6,2.289005017023627e-9,1.9009956391912444e-9,3.072781328565414e-9 +Bls12_381_G2_equal/36/36,1.736966962580886e-6,1.7362089176179305e-6,1.7377262917063432e-6,2.4998888716626693e-9,2.016899556006019e-9,3.1461484486254345e-9 +Bls12_381_G2_equal/36/36,1.7309145893260093e-6,1.7300858977325574e-6,1.7316741535355444e-6,2.542179132028711e-9,2.1706612917208725e-9,3.2680946117882058e-9 +Bls12_381_G2_equal/36/36,1.7427616841117978e-6,1.7416885828145546e-6,1.743955974007175e-6,3.75529242585456e-9,3.319216965608299e-9,4.343562215923223e-9 +Bls12_381_G2_equal/36/36,1.7379551814153876e-6,1.73722994856991e-6,1.73864219869413e-6,2.299393665769963e-9,1.9838139163400328e-9,2.767498174801036e-9 +Bls12_381_G2_equal/36/36,1.74591498551474e-6,1.7452585685201791e-6,1.746534413255408e-6,2.130012493467693e-9,1.6573589226353686e-9,2.7036134360189157e-9 +Bls12_381_G2_equal/36/36,1.7356072420930362e-6,1.734937390756206e-6,1.7362181304533804e-6,2.126441011850512e-9,1.79497075010654e-9,2.5934875779046306e-9 +Bls12_381_G2_equal/36/36,1.7443794123418966e-6,1.7435739093910705e-6,1.7451142205229225e-6,2.712993784860694e-9,2.2460725070011453e-9,3.469348480800002e-9 +Bls12_381_G2_equal/36/36,1.7438411614620777e-6,1.742698337693444e-6,1.7449806309662334e-6,3.755869143071925e-9,3.224554303521606e-9,4.688977961076319e-9 +Bls12_381_G2_equal/36/36,1.7445449044728176e-6,1.7437489919495793e-6,1.7453801046542411e-6,2.814595373083243e-9,2.4083177467596485e-9,3.479184456688296e-9 +Bls12_381_G2_equal/36/36,1.746500515955777e-6,1.7453548805126915e-6,1.7475336620610214e-6,3.488057437683792e-9,2.818265794433803e-9,4.454895529571968e-9 +Bls12_381_G2_equal/36/36,1.7380885147365167e-6,1.737538484130959e-6,1.7387665609009574e-6,2.030011321583382e-9,1.6921421936317313e-9,2.561013913463086e-9 +Bls12_381_G2_equal/36/36,1.7333566310535898e-6,1.732698348023464e-6,1.7341165939120364e-6,2.338977519392371e-9,1.706355392821052e-9,3.494181341550609e-9 +Bls12_381_G2_equal/36/36,1.7387757910696178e-6,1.7377950607618021e-6,1.7396507235571746e-6,3.213163760683806e-9,2.739786803372542e-9,3.7914780898319535e-9 +Bls12_381_G2_equal/36/36,1.7408583684504296e-6,1.7399923763776358e-6,1.7417270950464387e-6,3.0257197500142884e-9,2.618143065316437e-9,3.6237850420961056e-9 +Bls12_381_G2_equal/36/36,1.7376945346019897e-6,1.7367991853425e-6,1.7384422085231802e-6,2.855998771644657e-9,2.2117336728336153e-9,3.816361935813361e-9 +Bls12_381_G2_equal/36/36,1.7349319302033424e-6,1.7342652205691408e-6,1.7355778947294587e-6,2.3124140186512092e-9,1.96146482784656e-9,2.816647581390365e-9 +Bls12_381_G2_equal/36/36,1.743311769129159e-6,1.7425486972797974e-6,1.7441385856251822e-6,2.7631701788233964e-9,2.372697190965831e-9,3.3739378755505327e-9 +Bls12_381_G2_equal/36/36,1.7341161930206033e-6,1.7335735008340098e-6,1.7347684820522684e-6,2.065505538780705e-9,1.661911479061631e-9,2.7440143722714782e-9 +Bls12_381_G2_equal/36/36,1.735064998998574e-6,1.7343444263687235e-6,1.7358249940288495e-6,2.52720641964605e-9,2.1299556743187872e-9,3.0475078102745126e-9 +Bls12_381_G2_equal/36/36,1.7381089244963784e-6,1.7371838493217061e-6,1.7390514145931172e-6,3.092895046720411e-9,2.603938278818099e-9,3.6847274999299833e-9 +Bls12_381_G2_equal/36/36,1.7408438876195944e-6,1.74012684510993e-6,1.7415894684621826e-6,2.4395184525955958e-9,2.0864839821279345e-9,3.0090365415012386e-9 +Bls12_381_G2_equal/36/36,1.7433318291752901e-6,1.7425168956820026e-6,1.7440749930134e-6,2.7756177348412437e-9,2.299431251312494e-9,3.3438113760308704e-9 +Bls12_381_G2_equal/36/36,1.7392243519115772e-6,1.7384229736524004e-6,1.7399237566761384e-6,2.518343286948854e-9,2.2227551475615e-9,2.946709940637824e-9 +Bls12_381_G2_equal/36/36,1.743072169553821e-6,1.74225939170336e-6,1.7437906498279463e-6,2.507604134582191e-9,1.9446323221281245e-9,3.1302049328074275e-9 +Bls12_381_G2_equal/36/36,1.7369918104916266e-6,1.7360378922726368e-6,1.7377893811544751e-6,2.7480414591127667e-9,2.3739566627964097e-9,3.2785769573698847e-9 +Bls12_381_G2_equal/36/36,1.7351482912171905e-6,1.7344388897874698e-6,1.7359287041931658e-6,2.41974992482118e-9,1.990878098389364e-9,3.035491942427587e-9 +Bls12_381_G2_equal/36/36,1.7408050215809064e-6,1.7401148028514062e-6,1.7415188921658477e-6,2.4319264482004276e-9,2.016064509114256e-9,2.9846537056717318e-9 +Bls12_381_G2_equal/36/36,1.7378603512812033e-6,1.7372002184256798e-6,1.7383597298309887e-6,1.9585155323894143e-9,1.6139325433884945e-9,2.474653838014128e-9 +Bls12_381_G2_equal/36/36,1.7367588754508024e-6,1.735870094290793e-6,1.7377194980592933e-6,2.9598540957291308e-9,2.5047332366034767e-9,3.504860888576433e-9 +Bls12_381_G2_equal/36/36,1.7364475542741625e-6,1.7354388231993355e-6,1.7375060106159974e-6,3.493716231575255e-9,3.0485870072039676e-9,4.253748757091873e-9 +Bls12_381_G2_equal/36/36,1.7393862411328893e-6,1.7385265050250998e-6,1.740425914389135e-6,2.9490586206632684e-9,2.4126090708113453e-9,3.5456548298454296e-9 +Bls12_381_G2_equal/36/36,1.7433994660983866e-6,1.7425865801245027e-6,1.7441536109119644e-6,2.497340915296349e-9,1.953521207439697e-9,3.1863640050614857e-9 +Bls12_381_G2_equal/36/36,1.7409791213960219e-6,1.7405351279557432e-6,1.7416007176278127e-6,1.8191667116704733e-9,1.4673639551632037e-9,2.495302669984586e-9 +Bls12_381_G2_equal/36/36,1.739902447936843e-6,1.739376535564058e-6,1.7405678724901327e-6,2.105744392680229e-9,1.6628274653595443e-9,2.8069482416785775e-9 +Bls12_381_G2_equal/36/36,1.7389923001555197e-6,1.7381481737600574e-6,1.739770875779209e-6,2.723799323733686e-9,2.2196937860051978e-9,3.4436598394661837e-9 +Bls12_381_G2_equal/36/36,1.735824967307309e-6,1.734912610476095e-6,1.736561637705869e-6,2.759828291877998e-9,2.2390991844469572e-9,3.609471742929813e-9 +Bls12_381_G2_equal/36/36,1.739805226638237e-6,1.7393096723675625e-6,1.7404132048559746e-6,1.8862373046212458e-9,1.557042772283645e-9,2.3084072592954027e-9 +Bls12_381_G2_equal/36/36,1.7376883095454826e-6,1.737037424257685e-6,1.738505365906464e-6,2.4683834372294604e-9,2.099677157306755e-9,2.9015178958500517e-9 +Bls12_381_G2_equal/36/36,1.7469926096453863e-6,1.7462613963437764e-6,1.747660177978767e-6,2.437078734583431e-9,2.038064961786592e-9,2.896075842096236e-9 +Bls12_381_G2_equal/36/36,1.7397639208049602e-6,1.738720829119945e-6,1.74080738514152e-6,3.4629972312601294e-9,2.98167912241192e-9,4.029725128470549e-9 +Bls12_381_G2_equal/36/36,1.7388239111399906e-6,1.738271005963487e-6,1.7394298186700636e-6,1.9979212368504124e-9,1.594203708105993e-9,2.7005092003738145e-9 +Bls12_381_G2_equal/36/36,1.7372400617582368e-6,1.7360129343929914e-6,1.738721800242513e-6,4.475460182640252e-9,3.925006914451476e-9,5.125257213357425e-9 +Bls12_381_G2_equal/36/36,1.7411130246549553e-6,1.7400445579094493e-6,1.7421052355510816e-6,3.6549493814335683e-9,3.0274612060091088e-9,4.3718951905894365e-9 +Bls12_381_G2_equal/36/36,1.7491872695258004e-6,1.7482696613027033e-6,1.750165526122501e-6,3.2107666674353244e-9,2.655417220144543e-9,4.012274283636506e-9 +Bls12_381_G2_equal/36/36,1.7481781879444098e-6,1.7470280981601303e-6,1.7494652891822856e-6,3.8532587693382994e-9,3.3063089078520554e-9,4.646987391787606e-9 +Bls12_381_G2_equal/36/36,1.7385466722665524e-6,1.7378576155409385e-6,1.7392827005216801e-6,2.4597175750904058e-9,2.118007911195457e-9,2.903488981516256e-9 +Bls12_381_G2_equal/36/36,1.7393893465151654e-6,1.738732705482897e-6,1.739984462877652e-6,2.0400130106581858e-9,1.6037814362481426e-9,2.6404193795166453e-9 +Bls12_381_G2_equal/36/36,1.7373744537005975e-6,1.73676445507005e-6,1.7380974040288978e-6,2.2040848443284245e-9,1.8709600917859476e-9,2.5945402455993624e-9 +Bls12_381_G2_equal/36/36,1.7412372489471232e-6,1.7401963702551901e-6,1.7422683341038186e-6,3.530673841090763e-9,2.8247980457547215e-9,4.483221159770878e-9 +Bls12_381_G2_equal/36/36,1.7353029213748498e-6,1.734464336906707e-6,1.7361364185544112e-6,2.985341022204387e-9,2.513917402529402e-9,3.6556997210831493e-9 +Bls12_381_G2_equal/36/36,1.7372019180538055e-6,1.7364804820681825e-6,1.7378454213548444e-6,2.3079176342527287e-9,1.9101765633804987e-9,2.909604549626938e-9 +Bls12_381_G2_equal/36/36,1.739193407611463e-6,1.7386008525410608e-6,1.7398935627054673e-6,2.213975532578861e-9,1.6926689477246379e-9,3.1995011924259657e-9 +Bls12_381_G2_equal/36/36,1.7425110438434108e-6,1.7407823124018366e-6,1.7440261984982664e-6,5.746215185265256e-9,4.694382002649364e-9,6.805545305079761e-9 +Bls12_381_G2_equal/36/36,1.7339532319473285e-6,1.7332335248346043e-6,1.7347561425148394e-6,2.5821859115171294e-9,2.144748881732544e-9,3.2677342959356815e-9 +Bls12_381_G2_equal/36/36,1.7373537107324426e-6,1.7363447156100874e-6,1.7383844579325094e-6,3.3055257819869483e-9,2.889584677870102e-9,3.760012760810133e-9 +Bls12_381_G2_equal/36/36,1.7329649670989788e-6,1.7322362150932273e-6,1.7337181009784766e-6,2.544579862085067e-9,2.1059365971039663e-9,3.1191627429183404e-9 +Bls12_381_G2_equal/36/36,1.7414937199832424e-6,1.7407752865370691e-6,1.742274334427154e-6,2.6414144404208217e-9,2.199588479498125e-9,3.2541144182056665e-9 +Bls12_381_G2_equal/36/36,1.7476261660803759e-6,1.7467365105874148e-6,1.7483754368346293e-6,2.735830045599146e-9,1.9324418221745543e-9,3.6750697558837e-9 +Bls12_381_G2_equal/36/36,1.7385214314843026e-6,1.737565746702471e-6,1.7394284387810568e-6,3.022142585023209e-9,2.5850947799074534e-9,3.743711896720545e-9 +Bls12_381_G2_equal/36/36,1.7388433173691697e-6,1.7381020800020924e-6,1.7395542602209339e-6,2.3726886660404147e-9,1.9539372034202284e-9,2.9117176548859623e-9 +Bls12_381_G2_equal/36/36,1.7388370863763088e-6,1.7382019305595669e-6,1.7395485935204012e-6,2.290645713356134e-9,1.889757046739637e-9,2.8680648599560555e-9 +Bls12_381_G2_equal/36/36,1.7369131367784216e-6,1.7360768248732115e-6,1.7378685977146517e-6,3.2502731723000523e-9,2.8204146114560805e-9,3.884221388651083e-9 +Bls12_381_G2_equal/36/36,1.7348900489647792e-6,1.7341072067428525e-6,1.7355207552313043e-6,2.3508905857158334e-9,1.9131579877904885e-9,2.99267649761721e-9 +Bls12_381_G2_equal/36/36,1.7386799863884214e-6,1.7381190491812296e-6,1.73957485945564e-6,2.413690228964795e-9,1.7188698575335578e-9,4.358493482286004e-9 +Bls12_381_G2_equal/36/36,1.7433444944323946e-6,1.742292222996404e-6,1.7442875448284288e-6,3.2193343509458492e-9,2.7501834881638403e-9,3.827982362497266e-9 +Bls12_381_G2_equal/36/36,1.7390301803132262e-6,1.7382748147639617e-6,1.7397166987804105e-6,2.3347728752560553e-9,1.877568900984094e-9,2.998829677722616e-9 +Bls12_381_G2_equal/36/36,1.7470499992288916e-6,1.7462745939835384e-6,1.7479239450467267e-6,2.7436976659097603e-9,2.236531598035992e-9,3.514381860388641e-9 +Bls12_381_G2_equal/36/36,1.7415734806735595e-6,1.7408697560410448e-6,1.7423781999309562e-6,2.5844558077350506e-9,2.1335551977322462e-9,3.1352715257159705e-9 +Bls12_381_G2_equal/36/36,1.7423694727115e-6,1.7416295871614126e-6,1.743071885665149e-6,2.387538668664857e-9,1.999138523687322e-9,2.9018912151650287e-9 +Bls12_381_G2_equal/36/36,1.7369439035878626e-6,1.7360599132878537e-6,1.7377732815024859e-6,2.8129272672085245e-9,2.2957089624989466e-9,3.4363531037366505e-9 +Bls12_381_G2_equal/36/36,1.7375917429839973e-6,1.7367869089030656e-6,1.7383141683395322e-6,2.512747637026546e-9,2.0846600169879573e-9,3.163095041945806e-9 +Bls12_381_G2_equal/36/36,1.742363387734516e-6,1.7410346447323799e-6,1.7433441918020093e-6,3.620658928292462e-9,2.800248753343641e-9,4.912829449086334e-9 +Bls12_381_G2_equal/36/36,1.7416851569983022e-6,1.7411145589166512e-6,1.742250220958784e-6,1.972151321824814e-9,1.6767444010939092e-9,2.492467430161581e-9 +Bls12_381_G2_equal/36/36,1.7412855246620214e-6,1.7405501859745005e-6,1.7421813112924007e-6,2.7565549647643417e-9,2.2246717580262973e-9,3.395041208203641e-9 +Bls12_381_G2_equal/36/36,1.7450052273486157e-6,1.744049789145095e-6,1.746169062389393e-6,3.446286016861764e-9,2.8261601738675175e-9,4.201756905610876e-9 +Bls12_381_G2_equal/36/36,1.7382570192661189e-6,1.737389268104894e-6,1.7391493923827054e-6,2.964267290606365e-9,2.4985490136997003e-9,3.64551392138491e-9 +Bls12_381_G2_equal/36/36,1.7398577260334017e-6,1.7392112857988713e-6,1.740424597083932e-6,2.0027269196933092e-9,1.6333165838255074e-9,2.479718569130456e-9 +Bls12_381_G2_equal/36/36,1.7455946379291896e-6,1.7449592089375959e-6,1.7461874612552655e-6,2.1161603545424482e-9,1.7514551585826035e-9,2.7191992821606553e-9 +Bls12_381_G2_equal/36/36,1.7410702823663637e-6,1.740229834500227e-6,1.7420223857789974e-6,2.9745775167134398e-9,2.334992361039477e-9,4.3800343881698204e-9 +Bls12_381_G2_equal/36/36,1.7379685767159523e-6,1.7373181674427371e-6,1.7387102939499662e-6,2.3428616671360113e-9,1.7723980143944508e-9,4.196217863170157e-9 +Bls12_381_G2_equal/36/36,1.7331029288449846e-6,1.7322689214350293e-6,1.733765448338467e-6,2.4010784267462735e-9,1.970189197929301e-9,3.1200608238470375e-9 +Bls12_381_G2_equal/36/36,1.7368417261738527e-6,1.7363467040325386e-6,1.7374477517906872e-6,1.7720681183295923e-9,1.4838346402702463e-9,2.0864022964215754e-9 +Bls12_381_G2_equal/36/36,1.7407751251613574e-6,1.7400240161987924e-6,1.7414943486762599e-6,2.3669545545812953e-9,1.9748755212903654e-9,3.0798855925472173e-9 +Bls12_381_G2_equal/36/36,1.7355972748722813e-6,1.7349032196878776e-6,1.7362878046043225e-6,2.4466838231688807e-9,1.9814243580656443e-9,3.3664008797208585e-9 +Bls12_381_G2_equal/36/36,1.7425228407878117e-6,1.7417609728355983e-6,1.7433721665889504e-6,2.617847500432719e-9,2.2115009177190983e-9,3.250236018346719e-9 +Bls12_381_G2_equal/36/36,1.7424366219193302e-6,1.7417324957049891e-6,1.7436115783830897e-6,3.0525613973201855e-9,2.0652207897461586e-9,4.9643509138274704e-9 +Bls12_381_G2_equal/36/36,1.738939812473263e-6,1.738311794065228e-6,1.73965333948322e-6,2.268354501885531e-9,1.841904438553693e-9,2.8472469808407764e-9 +Bls12_381_G2_equal/36/36,1.7364710113548115e-6,1.7358345423348166e-6,1.737128046523203e-6,2.352471655425632e-9,1.9891508871780733e-9,2.746226449879177e-9 +Bls12_381_G2_equal/36/36,1.7399122581701472e-6,1.73929869262855e-6,1.7406641307921438e-6,2.290042057115874e-9,1.8069108272117118e-9,3.4222296678450022e-9 +Bls12_381_G2_equal/36/36,1.7382527927551928e-6,1.7377183619099003e-6,1.738776964013607e-6,1.8195259588913369e-9,1.516365040337517e-9,2.3201898371601613e-9 +Bls12_381_G2_equal/36/36,1.7355034761140105e-6,1.7345528966046827e-6,1.7366259646354576e-6,3.4572896469911153e-9,2.7950553720387503e-9,4.609084080026865e-9 +Bls12_381_G2_equal/36/36,1.7388246034546197e-6,1.7381853321535574e-6,1.7395550519454937e-6,2.2899070154877463e-9,1.965616091930657e-9,2.6741412099414222e-9 +Bls12_381_G2_equal/36/36,1.731802533819697e-6,1.730762365458249e-6,1.7328213647541473e-6,3.4420847203869155e-9,2.917740376777667e-9,4.115745983371154e-9 +Bls12_381_G2_equal/36/36,1.7363475201373881e-6,1.7356388595833376e-6,1.7369437976746916e-6,2.3230176843176877e-9,1.9527485846179163e-9,2.88271437833055e-9 +Bls12_381_G2_equal/36/36,1.7343191571188902e-6,1.7336670502091129e-6,1.7348862189392957e-6,2.070342288669201e-9,1.7809937502808192e-9,2.684513884872725e-9 +Bls12_381_G2_equal/36/36,1.7373358421312063e-6,1.7366562885709234e-6,1.7381583385971165e-6,2.5620077336815935e-9,2.098503045583679e-9,3.158424891342774e-9 +Bls12_381_G2_equal/36/36,1.736836930886477e-6,1.7360260000822713e-6,1.737638142093268e-6,2.7192016851631385e-9,2.273484491346446e-9,3.2152208761898425e-9 +Bls12_381_G2_hashToGroup/218/32,1.6886588858792108e-4,1.688300709007636e-4,1.689588679902121e-4,1.8517727152725161e-7,7.676032185315204e-8,3.6375492422537104e-7 +Bls12_381_G2_hashToGroup/204/32,1.6873186748477326e-4,1.6870359396705344e-4,1.6876120649246412e-4,9.542949619174462e-8,7.099009573198195e-8,1.343627859564339e-7 +Bls12_381_G2_hashToGroup/321/32,1.6924278756412533e-4,1.6920266173568515e-4,1.6927519184180487e-4,1.1595007021571218e-7,8.903949345809844e-8,1.581040773250371e-7 +Bls12_381_G2_hashToGroup/102/32,1.6832100775614697e-4,1.6829428468069887e-4,1.6834494568774945e-4,8.55011676520653e-8,6.646434877087638e-8,1.1067745706289172e-7 +Bls12_381_G2_hashToGroup/347/32,1.6946466565677618e-4,1.6943995389427603e-4,1.695004512805379e-4,9.337554099462518e-8,7.008154737896605e-8,1.3417206764437102e-7 +Bls12_381_G2_hashToGroup/360/32,1.6955980176004836e-4,1.6947300923410993e-4,1.698815269179054e-4,5.371867176986621e-7,5.479617658971036e-8,1.1390128818249835e-6 +Bls12_381_G2_hashToGroup/206/32,1.6879143879739025e-4,1.6877025681005345e-4,1.6881127756461723e-4,6.974799348498833e-8,5.5074007567961525e-8,9.807081285528642e-8 +Bls12_381_G2_hashToGroup/306/32,1.6922490641058105e-4,1.6919812938275835e-4,1.6925374952382608e-4,9.30338256163514e-8,7.758980415687638e-8,1.2539216068373396e-7 +Bls12_381_G2_hashToGroup/240/32,1.6896715760612255e-4,1.6894613305389565e-4,1.6899030597854534e-4,7.361145639319143e-8,6.000179102606545e-8,9.246426937951696e-8 +Bls12_381_G2_hashToGroup/277/32,1.6908907342498116e-4,1.6906956086952768e-4,1.691093253236705e-4,6.591380870070395e-8,5.3099400353279754e-8,8.531833900906121e-8 +Bls12_381_G2_hashToGroup/242/32,1.689286195492946e-4,1.6890434944913122e-4,1.6895333969932572e-4,8.290493656495169e-8,6.642598615634584e-8,1.041582283550201e-7 +Bls12_381_G2_hashToGroup/19/32,1.6794456032816272e-4,1.6792410180422777e-4,1.6796756024839063e-4,7.222610968601317e-8,5.985948145523373e-8,8.989147982528204e-8 +Bls12_381_G2_hashToGroup/295/32,1.6909197924514757e-4,1.690638856481933e-4,1.6912543449816345e-4,9.657865862636227e-8,7.811450855935823e-8,1.3109424986895768e-7 +Bls12_381_G2_hashToGroup/142/32,1.6846700609939985e-4,1.6843256865418433e-4,1.6854965639069404e-4,1.6040543200894852e-7,7.660001997187532e-8,2.9744905636234235e-7 +Bls12_381_G2_hashToGroup/242/32,1.6886166291879017e-4,1.6883249666738582e-4,1.6889161605657932e-4,1.0078749248557818e-7,8.395888268131487e-8,1.2401797416820566e-7 +Bls12_381_G2_hashToGroup/180/32,1.685696059147578e-4,1.685420775852341e-4,1.6860438259480977e-4,1.0534397846201437e-7,8.655212879947478e-8,1.3148018692120897e-7 +Bls12_381_G2_hashToGroup/189/32,1.686411654739114e-4,1.6860979564459994e-4,1.686793931102845e-4,1.2080234036180016e-7,8.779933615199689e-8,1.7385701442046138e-7 +Bls12_381_G2_hashToGroup/86/32,1.6814994974671124e-4,1.6812956527168413e-4,1.681768770115149e-4,7.792808205371077e-8,5.662104366255235e-8,1.0732254508652556e-7 +Bls12_381_G2_hashToGroup/187/32,1.6860439044742544e-4,1.6856786277527915e-4,1.686687192319728e-4,1.623994043657333e-7,8.777177164893489e-8,3.110097231432464e-7 +Bls12_381_G2_hashToGroup/252/32,1.688553661711421e-4,1.6883006580926138e-4,1.6888395111661116e-4,8.647855668182836e-8,7.19682337028977e-8,1.0753294877998416e-7 +Bls12_381_G2_hashToGroup/180/32,1.6851658817011915e-4,1.6848710759722994e-4,1.685578147219653e-4,1.1822909846189374e-7,8.871132672597821e-8,1.7251852961955854e-7 +Bls12_381_G2_hashToGroup/132/32,1.683110463768103e-4,1.6828812509371512e-4,1.6833755130822264e-4,8.55855144939295e-8,6.944034124205528e-8,1.132183270933442e-7 +Bls12_381_G2_hashToGroup/355/32,1.6913667264642268e-4,1.691054352364488e-4,1.6918463344079907e-4,1.2799627348042336e-7,8.207680271427781e-8,2.2619947057181612e-7 +Bls12_381_G2_hashToGroup/317/32,1.6905646648268934e-4,1.6903068872086362e-4,1.6909385893631667e-4,1.0341576038083419e-7,8.008450188440128e-8,1.3223259664061418e-7 +Bls12_381_G2_hashToGroup/154/32,1.6838462575878894e-4,1.6835717278489794e-4,1.6843028780026928e-4,1.1799770622837054e-7,7.925431340413457e-8,2.1086607673601437e-7 +Bls12_381_G2_hashToGroup/217/32,1.6857931126435405e-4,1.6854969343897734e-4,1.6862299602787164e-4,1.224043411687953e-7,8.594699708810306e-8,2.06004615729851e-7 +Bls12_381_G2_hashToGroup/322/32,1.6901662386113292e-4,1.6898258432175434e-4,1.690736437882643e-4,1.4145533819499943e-7,8.349333410009916e-8,2.472060679267154e-7 +Bls12_381_G2_hashToGroup/281/32,1.6884080622745428e-4,1.688020370810637e-4,1.688867903094223e-4,1.5017150217387172e-7,1.236006632261609e-7,1.904115406692745e-7 +Bls12_381_G2_hashToGroup/23/32,1.67864763121281e-4,1.678332421658768e-4,1.6790349291724924e-4,1.208444435265014e-7,8.234672828922509e-8,2.0311127878629862e-7 +Bls12_381_G2_hashToGroup/104/32,1.6813742665419982e-4,1.6810742619819617e-4,1.6817262096772398e-4,1.0333320697195473e-7,8.320756378777282e-8,1.429424928474937e-7 +Bls12_381_G2_hashToGroup/308/32,1.689637032270047e-4,1.6892774493373167e-4,1.6904636815272763e-4,1.7347289787910083e-7,9.466971702774028e-8,3.094252605942748e-7 +Bls12_381_G2_hashToGroup/215/32,1.685770464218705e-4,1.685420921160199e-4,1.6860877991324891e-4,1.1327351758300483e-7,8.779360728962514e-8,1.5888030391085309e-7 +Bls12_381_G2_hashToGroup/237/32,1.6861475561829163e-4,1.6858238557320267e-4,1.686437764276958e-4,1.0835022423942991e-7,8.900632340259096e-8,1.3219567029518706e-7 +Bls12_381_G2_hashToGroup/267/32,1.6875115661368922e-4,1.6871460020119504e-4,1.6879516759739263e-4,1.2810137141651618e-7,1.0103763230381708e-7,1.9174250845502378e-7 +Bls12_381_G2_hashToGroup/27/32,1.678202502261352e-4,1.6778823543961766e-4,1.6785648076216245e-4,1.1242877363402292e-7,8.887180126471199e-8,1.5515841586957434e-7 +Bls12_381_G2_hashToGroup/13/32,1.6771913679696827e-4,1.6768631031412217e-4,1.67769883347248e-4,1.3331674601815576e-7,9.187368199259465e-8,2.171993487256531e-7 +Bls12_381_G2_hashToGroup/161/32,1.6838798815115564e-4,1.683632985796751e-4,1.6841780680388777e-4,9.161690167753634e-8,7.400754345102384e-8,1.242366530066924e-7 +Bls12_381_G2_hashToGroup/299/32,1.68925132403048e-4,1.6889934435749017e-4,1.68977456516185e-4,1.193483003894657e-7,7.664820074266496e-8,2.026828268094121e-7 +Bls12_381_G2_hashToGroup/102/32,1.6811129503915137e-4,1.6808184980310488e-4,1.6815412341272674e-4,1.1714053627063228e-7,8.448654240914627e-8,1.5525926980355834e-7 +Bls12_381_G2_hashToGroup/271/32,1.6879223205232635e-4,1.6876621189395604e-4,1.6882490889205044e-4,9.74288503251562e-8,7.145605453564685e-8,1.5017455392068942e-7 +Bls12_381_G2_hashToGroup/74/32,1.6802598111381127e-4,1.6800460065148387e-4,1.6805348213630377e-4,8.14909382445941e-8,6.731368501000633e-8,1.0256345778558418e-7 +Bls12_381_G2_hashToGroup/5/32,1.6769471792067844e-4,1.676683609027293e-4,1.677428272100934e-4,1.1692165479560088e-7,7.067193679367945e-8,2.2413337468142283e-7 +Bls12_381_G2_hashToGroup/30/32,1.677923627830692e-4,1.677615632453253e-4,1.6781710268764068e-4,8.716152915595343e-8,6.695224113212798e-8,1.1438197195509926e-7 +Bls12_381_G2_hashToGroup/132/32,1.6825227583782939e-4,1.6821102389925132e-4,1.683081477493233e-4,1.544545264781794e-7,1.0860296956896384e-7,2.3209136549556018e-7 +Bls12_381_G2_hashToGroup/78/32,1.6807764407463096e-4,1.6805491904050177e-4,1.681016059416327e-4,7.949796020753779e-8,5.8852090326206264e-8,1.1077039801318497e-7 +Bls12_381_G2_hashToGroup/153/32,1.6837537157449113e-4,1.6834573573171766e-4,1.68447539479843e-4,1.517758727147795e-7,9.712227058288218e-8,2.67101776322012e-7 +Bls12_381_G2_hashToGroup/203/32,1.6861414104708713e-4,1.6858978242886375e-4,1.6863963601184402e-4,8.660656819850115e-8,7.072014620820036e-8,1.0967670545901729e-7 +Bls12_381_G2_hashToGroup/364/32,1.6925666503763803e-4,1.6921674241060503e-4,1.6928834234144054e-4,1.1667988228710877e-7,9.013857615707134e-8,1.5920903356333003e-7 +Bls12_381_G2_hashToGroup/1/32,1.6771788999123558e-4,1.6769901996267067e-4,1.677408280646864e-4,6.743841692272479e-8,5.3992067509665054e-8,8.233107270358798e-8 +Bls12_381_G2_hashToGroup/62/32,1.6811625653074868e-4,1.68010372996971e-4,1.685046875797948e-4,6.013183998301734e-7,7.31601296604138e-8,1.2241096214060468e-6 +Bls12_381_G2_hashToGroup/119/32,1.682898691166902e-4,1.6827169793155934e-4,1.6831370519636334e-4,6.738051724385999e-8,5.430383876269321e-8,8.68018404201454e-8 +Bls12_381_G2_hashToGroup/59/32,1.679823483003112e-4,1.6796829161495422e-4,1.6800485663464695e-4,6.030378742781402e-8,4.114118653761596e-8,9.642749920374033e-8 +Bls12_381_G2_hashToGroup/61/32,1.6802595439277667e-4,1.68001632605152e-4,1.68055398983537e-4,9.158826617813555e-8,7.252780900686465e-8,1.1775363855411064e-7 +Bls12_381_G2_hashToGroup/265/32,1.6891173867313107e-4,1.6888661536329942e-4,1.6893677853082944e-4,8.46258112955866e-8,6.895969783014404e-8,1.0939236485908542e-7 +Bls12_381_G2_hashToGroup/164/32,1.685112038193072e-4,1.6848897122202772e-4,1.685686848384744e-4,1.124806858562991e-7,5.753171365307398e-8,2.106435949304984e-7 +Bls12_381_G2_hashToGroup/262/32,1.6893374978339476e-4,1.6891014664868946e-4,1.6895635816437067e-4,7.847161930459847e-8,6.393238761985387e-8,9.638409013405089e-8 +Bls12_381_G2_hashToGroup/336/32,1.6924803919852191e-4,1.6922036074152865e-4,1.6928598314825446e-4,1.0408264138835546e-7,8.154289530294452e-8,1.5132206596521356e-7 +Bls12_381_G2_hashToGroup/30/32,1.6786696438386443e-4,1.6784888820495081e-4,1.6788806250436842e-4,6.28014006128324e-8,5.0485981636430504e-8,7.951719498944423e-8 +Bls12_381_G2_hashToGroup/14/32,1.6779176749760755e-4,1.677733326881266e-4,1.6781471581565167e-4,6.557627205147119e-8,4.880271016949723e-8,9.158341735041208e-8 +Bls12_381_G2_hashToGroup/73/32,1.680630207976846e-4,1.680417951950268e-4,1.6808282934540933e-4,6.904250601540777e-8,5.557373777065832e-8,8.874379787268403e-8 +Bls12_381_G2_hashToGroup/310/32,1.690995697670791e-4,1.6906537170756936e-4,1.6919386529714174e-4,1.676362519136023e-7,8.079191597330901e-8,3.385635498366715e-7 +Bls12_381_G2_hashToGroup/115/32,1.6824025604212354e-4,1.6821894206097766e-4,1.682744750003442e-4,9.113167488232567e-8,6.06689729323114e-8,1.5271919138196152e-7 +Bls12_381_G2_hashToGroup/32/32,1.678713225917211e-4,1.6784948052419996e-4,1.6789908712611107e-4,8.396903705614126e-8,6.615848234225672e-8,1.1430353263731681e-7 +Bls12_381_G2_hashToGroup/355/32,1.6916000004769613e-4,1.6912965979822884e-4,1.6918726196065378e-4,9.912436589596438e-8,8.453125518095619e-8,1.196520783999895e-7 +Bls12_381_G2_hashToGroup/307/32,1.6896923360769307e-4,1.6894141358064806e-4,1.689956678316362e-4,9.136685709300101e-8,7.046578521169152e-8,1.2064604367805033e-7 +Bls12_381_G2_hashToGroup/151/32,1.684271082401548e-4,1.684020409756418e-4,1.6845489204638274e-4,8.67720111212701e-8,6.917546313081433e-8,1.1089700956712634e-7 +Bls12_381_G2_hashToGroup/42/32,1.6789567379620052e-4,1.6787846526838084e-4,1.6791405018741913e-4,6.216491314480177e-8,5.0759854430573845e-8,7.857817829089686e-8 +Bls12_381_G2_hashToGroup/196/32,1.685854897210023e-4,1.6855896906951948e-4,1.6861812708569572e-4,9.009415848407043e-8,7.164143119667081e-8,1.234110197192786e-7 +Bls12_381_G2_hashToGroup/364/32,1.6927234704863626e-4,1.6921771451339663e-4,1.6950043615177423e-4,3.112372467351891e-7,8.537272758490195e-8,6.868829359063179e-7 +Bls12_381_G2_hashToGroup/152/32,1.6846388881900848e-4,1.68437052202964e-4,1.6848567274130132e-4,8.404164896400661e-8,6.97310713661467e-8,1.0984249756212301e-7 +Bls12_381_G2_hashToGroup/310/32,1.6906021238660178e-4,1.6903337134337653e-4,1.6908937196940903e-4,9.044708959284006e-8,7.2288737888343e-8,1.1505053108902521e-7 +Bls12_381_G2_hashToGroup/69/32,1.680625760357124e-4,1.680416394172725e-4,1.6808751655838274e-4,7.410268477369522e-8,6.145946942542415e-8,9.01273201007942e-8 +Bls12_381_G2_hashToGroup/21/32,1.6791967607271402e-4,1.6780871653902126e-4,1.682124963666765e-4,5.297846720417657e-7,9.216827215890062e-8,9.64952860318356e-7 +Bls12_381_G2_hashToGroup/290/32,1.690976321893967e-4,1.6899128424139305e-4,1.6947037600299834e-4,5.604233169503221e-7,9.901172953701525e-8,1.1189796982416562e-6 +Bls12_381_G2_hashToGroup/166/32,1.6846922263903406e-4,1.6845060767130474e-4,1.684933834321021e-4,6.8076232539746e-8,5.707807139736483e-8,8.271266684963801e-8 +Bls12_381_G2_hashToGroup/318/32,1.6909303252043918e-4,1.690689764137479e-4,1.6912153986553804e-4,8.507408205699161e-8,6.689770737911074e-8,1.1511868969989545e-7 +Bls12_381_G2_hashToGroup/118/32,1.6828681820724536e-4,1.68264524550098e-4,1.683055672041662e-4,6.938543040158297e-8,5.528138701038265e-8,8.983731630824404e-8 +Bls12_381_G2_hashToGroup/197/32,1.6862561911463585e-4,1.6858421187735084e-4,1.686743660992643e-4,1.4155930083793103e-7,1.0641841284271737e-7,2.2569597922210087e-7 +Bls12_381_G2_hashToGroup/294/32,1.6898170449457876e-4,1.6895767133663216e-4,1.690148764709421e-4,9.502280812757772e-8,7.413281101477148e-8,1.2501200328517706e-7 +Bls12_381_G2_hashToGroup/336/32,1.6920859189257842e-4,1.6918086621270416e-4,1.6924322289895411e-4,1.0489445272259179e-7,8.345620096571778e-8,1.5152114340332248e-7 +Bls12_381_G2_hashToGroup/214/32,1.6873784419967362e-4,1.686754165619067e-4,1.6891658004026072e-4,3.7005451196944865e-7,6.984190587827118e-8,7.09194580672882e-7 +Bls12_381_G2_hashToGroup/17/32,1.6783600520498036e-4,1.6780244279098266e-4,1.6786925491414328e-4,1.1345496428109264e-7,8.865951171138519e-8,1.6133897496919728e-7 +Bls12_381_G2_hashToGroup/275/32,1.689135043761218e-4,1.688827066522292e-4,1.6894816124727636e-4,1.1385193976590393e-7,8.863494578725434e-8,1.579364367856835e-7 +Bls12_381_G2_hashToGroup/310/32,1.6907692717688872e-4,1.690499813399152e-4,1.6910594598129632e-4,9.229788614459398e-8,7.592698921298142e-8,1.2055428611839815e-7 +Bls12_381_G2_hashToGroup/169/32,1.6849673907616439e-4,1.684720431147386e-4,1.6852260337072908e-4,8.107640921972555e-8,6.760326865368874e-8,1.1114188332492846e-7 +Bls12_381_G2_hashToGroup/232/32,1.6875923699470515e-4,1.6873644117399917e-4,1.6878340392102641e-4,8.137193334283773e-8,6.60762808972526e-8,1.083445475526437e-7 +Bls12_381_G2_hashToGroup/342/32,1.691770035189961e-4,1.691350741957483e-4,1.6930675119521785e-4,2.2056844919727446e-7,7.909266173718095e-8,4.7579722261676116e-7 +Bls12_381_G2_hashToGroup/217/32,1.6864595101176425e-4,1.6861764832313677e-4,1.686808538612852e-4,1.0217814662145528e-7,8.12056457088725e-8,1.408292461980261e-7 +Bls12_381_G2_hashToGroup/71/32,1.6814303671685654e-4,1.6810452614859908e-4,1.6827105951144864e-4,2.046621710648949e-7,6.061265573910166e-8,4.499409246267281e-7 +Bls12_381_G2_hashToGroup/81/32,1.681328781593773e-4,1.681057701832957e-4,1.68162902430165e-4,9.828267177866868e-8,8.274043420853204e-8,1.2316939474500887e-7 +Bls12_381_G2_hashToGroup/192/32,1.68578791412997e-4,1.6855222915911145e-4,1.6860642520211475e-4,9.186172170182768e-8,7.772039734639507e-8,1.0954747214444815e-7 +Bls12_381_G2_hashToGroup/60/32,1.6799512106204577e-4,1.679702724325957e-4,1.6801675525372983e-4,7.70892320203085e-8,6.364694983739796e-8,9.627968100286181e-8 +Bls12_381_G2_hashToGroup/106/32,1.6815374011219276e-4,1.68129756833979e-4,1.6817887550901454e-4,8.458132525767306e-8,6.939982875331142e-8,1.0905315283187292e-7 +Bls12_381_G2_hashToGroup/295/32,1.6899031180227377e-4,1.6893004841970983e-4,1.6920299504540862e-4,3.419431650105214e-7,7.985800647361031e-8,7.050201370081299e-7 +Bls12_381_G2_hashToGroup/169/32,1.685922919227464e-4,1.684982392703214e-4,1.6895434093134852e-4,5.75816755301957e-7,5.186057415275795e-8,1.2201480976488133e-6 +Bls12_381_G2_hashToGroup/281/32,1.6892113590929816e-4,1.6888813542969883e-4,1.6895442865542907e-4,1.1310963254579138e-7,9.487947153478897e-8,1.3879288140894325e-7 +Bls12_381_G2_hashToGroup/49/32,1.679493322965907e-4,1.6792640837396368e-4,1.6797255797393424e-4,7.854253255646911e-8,6.28416373922948e-8,1.0488699798271522e-7 +Bls12_381_G2_hashToGroup/318/32,1.6909762449094425e-4,1.6905240528967643e-4,1.6922143389729613e-4,2.349114292880867e-7,9.345335072988346e-8,4.624659720128592e-7 +Bls12_381_G2_hashToGroup/138/32,1.683552185638359e-4,1.6833484637756037e-4,1.6837324225460752e-4,6.596253566997983e-8,5.505930564172522e-8,8.088021481256071e-8 +Bls12_381_G2_hashToGroup/124/32,1.683072748186872e-4,1.6828739884970973e-4,1.683283635253694e-4,6.693336328483757e-8,5.4510616387478326e-8,8.679599887008804e-8 +Bls12_381_G2_compress/36,3.897844980774585e-6,3.895578449209729e-6,3.9000101437088725e-6,7.449746605942786e-9,6.538176641826836e-9,8.63449151857895e-9 +Bls12_381_G2_compress/36,3.899956048953716e-6,3.8985257868182094e-6,3.901615910729337e-6,5.1716661669841945e-9,4.370037253282636e-9,6.2789962611934105e-9 +Bls12_381_G2_compress/36,3.8948947289547104e-6,3.893598962757989e-6,3.896206035375505e-6,4.426345355819538e-9,3.800057925661588e-9,5.121983261649693e-9 +Bls12_381_G2_compress/36,3.9024590472408366e-6,3.901091563685487e-6,3.903702367668106e-6,4.419389667207926e-9,3.575407444364744e-9,5.550997381671335e-9 +Bls12_381_G2_compress/36,3.901970566723655e-6,3.9004973336007595e-6,3.903766500280307e-6,5.364467730075169e-9,4.479159642190114e-9,6.634939423105457e-9 +Bls12_381_G2_compress/36,3.896143251370088e-6,3.894686500486526e-6,3.897448263307738e-6,4.692140750853655e-9,3.807222046192701e-9,5.778487817858233e-9 +Bls12_381_G2_compress/36,3.893542737601484e-6,3.891994987571997e-6,3.8951099399301454e-6,5.274824597767516e-9,4.230736271180923e-9,6.6030378120678795e-9 +Bls12_381_G2_compress/36,3.903923337822466e-6,3.902076694174592e-6,3.9057019242816e-6,5.968433935708292e-9,5.048573504501133e-9,6.991559725576984e-9 +Bls12_381_G2_compress/36,3.903091250971282e-6,3.901984706896653e-6,3.904278676530264e-6,3.926515140613729e-9,3.271895176023799e-9,4.936494787030326e-9 +Bls12_381_G2_compress/36,3.896955865154406e-6,3.894834486171427e-6,3.898990335089895e-6,6.839368096076378e-9,5.367934075555848e-9,9.424911385669595e-9 +Bls12_381_G2_compress/36,3.895596814727585e-6,3.893823120853221e-6,3.897351814698745e-6,5.934402089053237e-9,5.040860926549135e-9,7.257001923358878e-9 +Bls12_381_G2_compress/36,3.901545854627539e-6,3.900533903899843e-6,3.9029048859141105e-6,4.026958011479242e-9,3.081999029928041e-9,5.764612070981228e-9 +Bls12_381_G2_compress/36,3.893535544563733e-6,3.892635523843498e-6,3.894632979092652e-6,3.3705676313383285e-9,2.711052983667309e-9,4.154837467295319e-9 +Bls12_381_G2_compress/36,3.9061567622138305e-6,3.904466697812408e-6,3.907557998048383e-6,5.178320643763956e-9,4.361690903478428e-9,6.4359760422177784e-9 +Bls12_381_G2_compress/36,3.89857523266036e-6,3.897505641236526e-6,3.899822934795108e-6,3.911437268081656e-9,3.202687860507631e-9,5.271606875229346e-9 +Bls12_381_G2_compress/36,3.899219169539974e-6,3.897893840134921e-6,3.900500283340439e-6,4.400681300629217e-9,3.6095177867703325e-9,5.677335140462049e-9 +Bls12_381_G2_compress/36,3.894449077459788e-6,3.892563680256991e-6,3.89622248095229e-6,5.958658081365661e-9,5.302689308498976e-9,7.065415831744766e-9 +Bls12_381_G2_compress/36,3.900051944484323e-6,3.89893139037365e-6,3.901119425015013e-6,3.6542396487335926e-9,3.0431270909270884e-9,4.779842359563848e-9 +Bls12_381_G2_compress/36,3.8963895276890345e-6,3.895642841517483e-6,3.897109592758626e-6,2.5677820511322165e-9,2.0463229833501887e-9,3.2624688497312456e-9 +Bls12_381_G2_compress/36,3.905858429538701e-6,3.903881366795215e-6,3.907555674173276e-6,6.17579572018722e-9,5.185718880725475e-9,7.52189471231828e-9 +Bls12_381_G2_compress/36,3.891341052995848e-6,3.889333503596592e-6,3.893261862254057e-6,6.628618467491315e-9,5.535403808515243e-9,8.200281537255188e-9 +Bls12_381_G2_compress/36,3.9063853036482785e-6,3.9051348835731894e-6,3.9074909203799785e-6,4.007013583274647e-9,3.2953099416637245e-9,5.138123721098534e-9 +Bls12_381_G2_compress/36,3.901850867233663e-6,3.900407604480113e-6,3.903434107649786e-6,4.895193049585321e-9,4.0520869704685645e-9,5.992571537945676e-9 +Bls12_381_G2_compress/36,3.901185935408199e-6,3.899720752781994e-6,3.902748156870113e-6,4.947188455499884e-9,4.2120608654121395e-9,5.951178986288281e-9 +Bls12_381_G2_compress/36,3.896136181300045e-6,3.895042305895594e-6,3.897200475766726e-6,3.5940722764185586e-9,3.0187408695803343e-9,4.355831513816908e-9 +Bls12_381_G2_compress/36,3.894210190871213e-6,3.8928399611382085e-6,3.895576489829845e-6,4.532203823870048e-9,3.727035352977457e-9,6.1770931077322945e-9 +Bls12_381_G2_compress/36,3.898553190740037e-6,3.897254613930598e-6,3.899800426486193e-6,4.300718900531449e-9,3.567925096587263e-9,5.445738242882187e-9 +Bls12_381_G2_compress/36,3.899104080477366e-6,3.897937848993239e-6,3.900234164036714e-6,3.848607025551674e-9,3.200321370365303e-9,4.72902559063969e-9 +Bls12_381_G2_compress/36,3.900113301993267e-6,3.8985676728477045e-6,3.901694970110513e-6,5.3072534949865565e-9,4.452768949343896e-9,6.444475062645602e-9 +Bls12_381_G2_compress/36,3.895131100268198e-6,3.892822678642453e-6,3.896981428212855e-6,6.813957283538026e-9,5.4078493621904075e-9,9.779266974505233e-9 +Bls12_381_G2_compress/36,3.891798634960827e-6,3.889989803852982e-6,3.893830752848553e-6,6.528198610671001e-9,5.576227704943023e-9,7.63460942059252e-9 +Bls12_381_G2_compress/36,3.894082516399817e-6,3.892172836048177e-6,3.895347420263677e-6,5.356528671043814e-9,4.219079586454928e-9,8.075230479974417e-9 +Bls12_381_G2_compress/36,3.896848834057479e-6,3.895506245724552e-6,3.8983118968086695e-6,4.505240604446765e-9,3.6990746237801244e-9,5.905919515165939e-9 +Bls12_381_G2_compress/36,3.89314374070488e-6,3.891902842208796e-6,3.894271760233414e-6,4.088746504099001e-9,3.403618558589428e-9,5.1510403388365406e-9 +Bls12_381_G2_compress/36,3.899389420134305e-6,3.897658791336046e-6,3.901098974594658e-6,5.6071534196262525e-9,4.867533531265624e-9,6.856990715384931e-9 +Bls12_381_G2_compress/36,3.897084201269656e-6,3.895764539036283e-6,3.898589037400824e-6,4.497310575798901e-9,3.7022944986352986e-9,5.530020951160263e-9 +Bls12_381_G2_compress/36,3.905590155127565e-6,3.904485875271756e-6,3.906776801924028e-6,4.065425027957255e-9,3.3297344484528426e-9,4.894414648633789e-9 +Bls12_381_G2_compress/36,3.896975638688223e-6,3.895825906699428e-6,3.898111480574252e-6,3.706626523919446e-9,3.046862044635071e-9,4.538774683085542e-9 +Bls12_381_G2_compress/36,3.9009230305955464e-6,3.8994754140837975e-6,3.902177210960174e-6,4.421778226589009e-9,3.5505610819956854e-9,5.309928967944176e-9 +Bls12_381_G2_compress/36,3.9015075496156795e-6,3.898766589555646e-6,3.904024170987989e-6,8.831788636788336e-9,7.597382183011923e-9,1.0951349911422895e-8 +Bls12_381_G2_compress/36,3.896081501849582e-6,3.894484041376219e-6,3.897701814932436e-6,5.2429420556484904e-9,4.492986946236928e-9,6.469575947944212e-9 +Bls12_381_G2_compress/36,3.895040224825582e-6,3.894111739196914e-6,3.895897215234087e-6,3.079911795459385e-9,2.562436708799706e-9,3.819014645704137e-9 +Bls12_381_G2_compress/36,3.904364109410791e-6,3.903047287416744e-6,3.9059761900742464e-6,4.841879879730614e-9,4.052508667573219e-9,6.130072227600094e-9 +Bls12_381_G2_compress/36,3.900467148243952e-6,3.898865348284639e-6,3.901846902822351e-6,4.725153820931845e-9,3.6791432244049382e-9,6.722717690444401e-9 +Bls12_381_G2_compress/36,3.903775284290729e-6,3.902547201140479e-6,3.905233251969531e-6,4.719183122753799e-9,4.088493996549237e-9,5.507950193146768e-9 +Bls12_381_G2_compress/36,3.903501086087163e-6,3.902059563795227e-6,3.90522661923995e-6,5.265897598643439e-9,4.388115548360925e-9,6.216785837244935e-9 +Bls12_381_G2_compress/36,3.901017564991383e-6,3.899376060876031e-6,3.902859472189107e-6,5.808189126853598e-9,4.966456909912966e-9,7.439305726083935e-9 +Bls12_381_G2_compress/36,3.892284146924306e-6,3.891027850193701e-6,3.893475930956386e-6,4.019561550253371e-9,3.3145109729897363e-9,5.1916793347830306e-9 +Bls12_381_G2_compress/36,3.8881719935506805e-6,3.886889506095714e-6,3.88948325549355e-6,4.739715735231636e-9,4.005895803023592e-9,5.770476853089232e-9 +Bls12_381_G2_compress/36,3.893615646964413e-6,3.892260797031996e-6,3.894778313914292e-6,4.131909193608504e-9,3.196664493318874e-9,5.566714002489462e-9 +Bls12_381_G2_compress/36,3.894539409892079e-6,3.892967081890506e-6,3.895867714101751e-6,4.743030378656298e-9,3.936329704605754e-9,5.842393853811788e-9 +Bls12_381_G2_compress/36,3.902811293598075e-6,3.901626179528046e-6,3.904134802540067e-6,4.411443382162497e-9,3.5806135793848257e-9,5.534911821834848e-9 +Bls12_381_G2_compress/36,3.902158070102224e-6,3.9000558622127056e-6,3.903869294472452e-6,6.330716788438815e-9,5.061547080358683e-9,8.164292413150997e-9 +Bls12_381_G2_compress/36,3.906764953294962e-6,3.905709517141725e-6,3.90793218686443e-6,3.5028250591812057e-9,2.7981614003204463e-9,4.82391340710853e-9 +Bls12_381_G2_compress/36,3.8956234447479635e-6,3.89410420507141e-6,3.897300895985241e-6,5.460697527955498e-9,4.515392513309628e-9,6.995402156139726e-9 +Bls12_381_G2_compress/36,3.891290543520318e-6,3.8897246037010695e-6,3.893034766012589e-6,5.81897573984285e-9,5.006988402358175e-9,6.986501188020755e-9 +Bls12_381_G2_compress/36,3.893654226318461e-6,3.892445794097519e-6,3.895283680777367e-6,4.637891065143829e-9,3.6712910347443634e-9,6.479838317697106e-9 +Bls12_381_G2_compress/36,3.896434861792308e-6,3.894919550538222e-6,3.898066801108767e-6,5.361054414774262e-9,4.488429977755119e-9,7.069782621170583e-9 +Bls12_381_G2_compress/36,3.897283419805043e-6,3.894533988964208e-6,3.900031635033969e-6,8.96423164288213e-9,8.075038004382979e-9,1.0209290651569269e-8 +Bls12_381_G2_compress/36,3.895744142579172e-6,3.89417401945624e-6,3.8972011255440665e-6,4.996434541630865e-9,4.275080395156097e-9,6.731257400102666e-9 +Bls12_381_G2_compress/36,3.8980498494245825e-6,3.896823825205663e-6,3.899436963314342e-6,4.377529091513272e-9,3.2687121148804658e-9,6.369709288231772e-9 +Bls12_381_G2_compress/36,3.895313155671808e-6,3.894130357997605e-6,3.896740808661421e-6,4.3322282484464004e-9,3.428795493818278e-9,5.783067313152127e-9 +Bls12_381_G2_compress/36,3.8953348490286216e-6,3.894032020896416e-6,3.897130826418131e-6,5.161872851213358e-9,4.080608907570032e-9,7.3843948935035115e-9 +Bls12_381_G2_compress/36,3.8958871251702435e-6,3.89464561125317e-6,3.89765014345901e-6,4.934499656885124e-9,4.060114860115082e-9,6.841950393536653e-9 +Bls12_381_G2_compress/36,3.9010114474063345e-6,3.899576921095472e-6,3.9026327234924894e-6,4.981831318943106e-9,4.361985050155128e-9,6.240576667042682e-9 +Bls12_381_G2_compress/36,3.895119071258264e-6,3.893766382680922e-6,3.89688430921182e-6,4.871481907074975e-9,3.602944896548109e-9,7.457104848875446e-9 +Bls12_381_G2_compress/36,3.900036834358414e-6,3.898807455089076e-6,3.901799605753472e-6,4.965376807935719e-9,3.9288928601138726e-9,7.22116835134552e-9 +Bls12_381_G2_compress/36,3.89503657174205e-6,3.8936674918845e-6,3.896913736545845e-6,5.252193619177196e-9,4.385697660777074e-9,6.7694706957482234e-9 +Bls12_381_G2_compress/36,3.8973701881502704e-6,3.896083652804703e-6,3.898829161050755e-6,4.558436646567367e-9,3.745395577055802e-9,6.194882408934657e-9 +Bls12_381_G2_compress/36,3.899696342778329e-6,3.898169688001135e-6,3.901841022426167e-6,6.159096209700726e-9,5.005260044414473e-9,8.351607421284095e-9 +Bls12_381_G2_compress/36,3.897904527632982e-6,3.896255901774244e-6,3.899414102956013e-6,5.3690485210132295e-9,4.5459319856920605e-9,6.766263109380723e-9 +Bls12_381_G2_compress/36,3.89537283328579e-6,3.894234498040356e-6,3.897455100311641e-6,4.867868261826592e-9,3.4838218607489844e-9,8.058528412803972e-9 +Bls12_381_G2_compress/36,3.896048765146598e-6,3.894552640275343e-6,3.897664214673533e-6,4.991735993442199e-9,3.955126118963969e-9,6.709005425904124e-9 +Bls12_381_G2_compress/36,3.890490459153847e-6,3.8887575014915364e-6,3.892532630162504e-6,5.773499117329446e-9,4.807384830162779e-9,6.8950734644873175e-9 +Bls12_381_G2_compress/36,3.902997838876328e-6,3.901810678606691e-6,3.904425370099068e-6,4.426079041406806e-9,3.519393701291679e-9,5.7453154680131424e-9 +Bls12_381_G2_compress/36,3.9001361708248465e-6,3.898932209193605e-6,3.901551674978321e-6,4.335696185959836e-9,3.706831444163765e-9,5.5205632330943134e-9 +Bls12_381_G2_compress/36,3.90558237216749e-6,3.904158939881852e-6,3.907201241646856e-6,5.108462522262282e-9,4.149585464002797e-9,6.372992115711663e-9 +Bls12_381_G2_compress/36,3.891653457333779e-6,3.8904739192116e-6,3.892994584226105e-6,4.354095568849117e-9,3.747747900047359e-9,5.2927249834000665e-9 +Bls12_381_G2_compress/36,3.897326907470427e-6,3.895936262122247e-6,3.8989778835173844e-6,5.260249501583801e-9,4.479766212920585e-9,6.420006192955269e-9 +Bls12_381_G2_compress/36,3.897354325618135e-6,3.895601699228839e-6,3.899164471991944e-6,6.1876970513791946e-9,5.188759760761278e-9,7.525549889495787e-9 +Bls12_381_G2_compress/36,3.8945182716031955e-6,3.893065148340536e-6,3.896110243641919e-6,5.101689144154799e-9,3.998082061833531e-9,6.675702736850452e-9 +Bls12_381_G2_compress/36,3.893562607681535e-6,3.892463536950531e-6,3.8951341997853735e-6,4.2344178706943525e-9,3.118707831507507e-9,5.638668410930283e-9 +Bls12_381_G2_compress/36,3.897764832415132e-6,3.8967618363118044e-6,3.899152335692595e-6,4.055328646125299e-9,3.1716859452116874e-9,5.38487165787289e-9 +Bls12_381_G2_compress/36,3.893593272690094e-6,3.8921363379949515e-6,3.89511508619678e-6,5.162961968241846e-9,4.358853415067572e-9,6.467462904360637e-9 +Bls12_381_G2_compress/36,3.8965326851843954e-6,3.895397558602796e-6,3.89787727894231e-6,4.122554864816795e-9,3.31581197497809e-9,5.371466813104663e-9 +Bls12_381_G2_compress/36,3.897499540995442e-6,3.896441394670981e-6,3.8988034227478435e-6,3.867504022451316e-9,3.073437997364153e-9,5.6814346214957475e-9 +Bls12_381_G2_compress/36,3.897322367873654e-6,3.8962390582814175e-6,3.898860548431954e-6,4.239889293675343e-9,3.521913494905464e-9,5.324288177187975e-9 +Bls12_381_G2_compress/36,3.894299670793192e-6,3.893031291427591e-6,3.895469557464456e-6,4.226230603473609e-9,3.447731401574805e-9,5.4555999312556994e-9 +Bls12_381_G2_compress/36,3.893740978656302e-6,3.892276344469115e-6,3.895174078249925e-6,4.867371033722408e-9,4.141326800564565e-9,6.07086572438444e-9 +Bls12_381_G2_compress/36,3.900214176864324e-6,3.898349533616278e-6,3.901809166662808e-6,5.754899358053371e-9,4.558100248308356e-9,7.978328549138912e-9 +Bls12_381_G2_compress/36,3.901410411524856e-6,3.899649244557973e-6,3.904227498689574e-6,7.344756931638301e-9,4.841056639863258e-9,1.2898754909797024e-8 +Bls12_381_G2_compress/36,3.897851295583603e-6,3.896601657520967e-6,3.899434296075555e-6,4.5954400475088674e-9,3.9188212285561734e-9,5.534432631165413e-9 +Bls12_381_G2_compress/36,3.897147387808354e-6,3.895320272782027e-6,3.898835373418188e-6,6.067858511192416e-9,4.963727200362908e-9,7.966247428095108e-9 +Bls12_381_G2_compress/36,3.895897773216195e-6,3.8947820010544725e-6,3.897329559152216e-6,4.188227867075036e-9,3.385228102569154e-9,5.257770549626928e-9 +Bls12_381_G2_compress/36,3.894667705592718e-6,3.893191998139768e-6,3.896801420020345e-6,5.6978462866445e-9,4.066633839101611e-9,9.141819013658627e-9 +Bls12_381_G2_compress/36,3.889606550868571e-6,3.888335104522954e-6,3.891050086066184e-6,4.3735538694186076e-9,3.7601357874937485e-9,5.2199324245642075e-9 +Bls12_381_G2_compress/36,3.8949162413879425e-6,3.893555588943827e-6,3.896522662270183e-6,5.267011950188139e-9,4.281655977700876e-9,6.912085705435248e-9 +Bls12_381_G2_compress/36,3.8976164440605e-6,3.896039496848452e-6,3.899106082954006e-6,5.216857187986961e-9,4.248103621155184e-9,7.126901708740869e-9 +Bls12_381_G2_compress/36,3.892463657062058e-6,3.891396396910297e-6,3.893532309207352e-6,3.4817572664889614e-9,2.7496526778291235e-9,4.9063019728799536e-9 +Bls12_381_G2_compress/36,3.900657312493707e-6,3.898964634138499e-6,3.9024607787371306e-6,6.1762617163235814e-9,5.17488009612165e-9,7.3950022684864065e-9 +Bls12_381_G2_uncompress/12,7.532197819766583e-5,7.53028485729149e-5,7.534193144364607e-5,6.43540139460991e-8,5.15185062899634e-8,8.528743089391173e-8 +Bls12_381_G2_uncompress/12,7.528576435429272e-5,7.526910856086151e-5,7.53054118862169e-5,6.355102389024747e-8,5.030184028249632e-8,8.035275031727576e-8 +Bls12_381_G2_uncompress/12,7.538894774049717e-5,7.537151423233253e-5,7.540548955838857e-5,5.8579980492616594e-8,4.8348254895237684e-8,7.291765772710423e-8 +Bls12_381_G2_uncompress/12,7.528896279713455e-5,7.527076848581855e-5,7.530626634206994e-5,6.100474767270826e-8,4.846424041875843e-8,8.010907347956086e-8 +Bls12_381_G2_uncompress/12,7.539936182462541e-5,7.537888562461422e-5,7.542018375455025e-5,6.740332889542617e-8,5.228216563510792e-8,1.0028550270316973e-7 +Bls12_381_G2_uncompress/12,7.534725749490223e-5,7.532551386088104e-5,7.539042307451972e-5,9.829349142933436e-8,6.074660969861785e-8,1.6940637627632622e-7 +Bls12_381_G2_uncompress/12,7.536197078870294e-5,7.534844375116163e-5,7.537617318992765e-5,4.9355775774657773e-8,4.126720173207886e-8,6.154504233811012e-8 +Bls12_381_G2_uncompress/12,7.54161610915074e-5,7.539896497167579e-5,7.544168908634626e-5,6.96589824220552e-8,4.808924684484962e-8,1.1925933802409574e-7 +Bls12_381_G2_uncompress/12,7.5411437118137e-5,7.539910261981658e-5,7.542574217007632e-5,4.71306125736659e-8,4.093881499194441e-8,5.775602044489664e-8 +Bls12_381_G2_uncompress/12,7.537119373372591e-5,7.535439952260506e-5,7.539248264770117e-5,6.337441631498806e-8,5.0870902486435214e-8,8.245804504238034e-8 +Bls12_381_G2_uncompress/12,7.53317931602546e-5,7.531314709003784e-5,7.535045950989692e-5,6.288834717395078e-8,5.1915858661094803e-8,8.228990347303354e-8 +Bls12_381_G2_uncompress/12,7.535493493070151e-5,7.53327432638285e-5,7.541670530907862e-5,1.1819871260771624e-7,6.069686186704406e-8,2.2240972939623975e-7 +Bls12_381_G2_uncompress/12,7.5384936673253e-5,7.536585495765042e-5,7.540839561491784e-5,7.020341356025508e-8,5.5890925729546784e-8,9.112359889858737e-8 +Bls12_381_G2_uncompress/12,7.534875268771341e-5,7.532937510705201e-5,7.536636245917386e-5,6.108067126770713e-8,5.0921151212626646e-8,7.478586401517374e-8 +Bls12_381_G2_uncompress/12,7.538131279637364e-5,7.536072371910802e-5,7.541142656308874e-5,8.336123806459574e-8,5.836310229494953e-8,1.4024883467468803e-7 +Bls12_381_G2_uncompress/12,7.540256650496419e-5,7.538698013963887e-5,7.541601810424165e-5,5.2373949017452144e-8,4.467021169765962e-8,6.577227551561822e-8 +Bls12_381_G2_uncompress/12,7.534055793629529e-5,7.532237471122594e-5,7.535870069865979e-5,6.612163098674714e-8,5.597827314793432e-8,8.228456874695432e-8 +Bls12_381_G2_uncompress/12,7.532073352041478e-5,7.530393432654878e-5,7.533823870467631e-5,5.579141581846914e-8,4.5360811814846815e-8,6.76786205360679e-8 +Bls12_381_G2_uncompress/12,7.53632007015415e-5,7.534436631014457e-5,7.540653804861622e-5,8.748646670106258e-8,5.009848738566003e-8,1.6915284019070524e-7 +Bls12_381_G2_uncompress/12,7.540953716608186e-5,7.53971594779598e-5,7.542232898749539e-5,4.234110261356261e-8,3.503321778187082e-8,5.3407082922044566e-8 +Bls12_381_G2_uncompress/12,7.534606062369808e-5,7.532127933525334e-5,7.544083403732223e-5,1.393778154136815e-7,5.7307418854302375e-8,2.755419218193302e-7 +Bls12_381_G2_uncompress/12,7.539550177642527e-5,7.53779121464206e-5,7.541288085812308e-5,5.972152121710449e-8,4.942308248081403e-8,7.454103503789895e-8 +Bls12_381_G2_uncompress/12,7.533951701440548e-5,7.531757303585207e-5,7.536324593645594e-5,7.790315253229704e-8,6.684436588142088e-8,9.586789041694749e-8 +Bls12_381_G2_uncompress/12,7.5382055796561e-5,7.536647536204447e-5,7.539726265889168e-5,4.922818727214308e-8,3.879398763233437e-8,7.208944482724382e-8 +Bls12_381_G2_uncompress/12,7.53245457430743e-5,7.529669380491157e-5,7.535153469337847e-5,9.168860933656017e-8,7.626040037180579e-8,1.3696034988888913e-7 +Bls12_381_G2_uncompress/12,7.541210029953416e-5,7.539020805021193e-5,7.543199747432311e-5,6.887275327499317e-8,5.8058288523390183e-8,8.359523072044639e-8 +Bls12_381_G2_uncompress/12,7.541337650104165e-5,7.539218374869921e-5,7.543295760723871e-5,6.697442691437367e-8,5.432064771864455e-8,8.700251837789343e-8 +Bls12_381_G2_uncompress/12,7.532302199530271e-5,7.530449196653328e-5,7.534144559583803e-5,6.202725420585811e-8,4.778659857938473e-8,8.222542114352841e-8 +Bls12_381_G2_uncompress/12,7.533076335286333e-5,7.53097298670918e-5,7.535559595095514e-5,7.53983940143309e-8,6.26006567291906e-8,1.0100523831484774e-7 +Bls12_381_G2_uncompress/12,7.540910396165832e-5,7.538300895151561e-5,7.550557520540984e-5,1.4583339354581104e-7,5.320527638338219e-8,3.147972788196735e-7 +Bls12_381_G2_uncompress/12,7.535853053136779e-5,7.534073223246078e-5,7.53767356110225e-5,5.997521585942002e-8,4.9052891338114824e-8,8.460232102257102e-8 +Bls12_381_G2_uncompress/12,7.532781485679237e-5,7.530973707112987e-5,7.534845195221874e-5,6.434140795071e-8,5.0075551568485643e-8,8.372537322978739e-8 +Bls12_381_G2_uncompress/12,7.538279114021717e-5,7.535851381691533e-5,7.540291204062698e-5,7.244464173114654e-8,6.243256630506474e-8,8.774543931949049e-8 +Bls12_381_G2_uncompress/12,7.535891497542966e-5,7.53385321653413e-5,7.538004543317339e-5,7.136219682986749e-8,6.136522398957822e-8,8.79744650600056e-8 +Bls12_381_G2_uncompress/12,7.53900493048031e-5,7.537181519044937e-5,7.540666800557433e-5,5.659925529876327e-8,4.771942063672544e-8,6.929877441439658e-8 +Bls12_381_G2_uncompress/12,7.534095452453035e-5,7.531895179484083e-5,7.536714366041462e-5,8.266156831950669e-8,6.951293861249284e-8,1.0245454428624811e-7 +Bls12_381_G2_uncompress/12,7.532966823192235e-5,7.530582883744307e-5,7.535362409085962e-5,8.407989699305905e-8,7.216835039429648e-8,9.910582699546792e-8 +Bls12_381_G2_uncompress/12,7.539229695577785e-5,7.537455122783215e-5,7.541006763433891e-5,5.834633151664594e-8,4.8973102607493774e-8,6.926580030080593e-8 +Bls12_381_G2_uncompress/12,7.53576095846569e-5,7.534115832494549e-5,7.537337351333675e-5,5.2841493596131007e-8,4.358497605612348e-8,6.757790466729611e-8 +Bls12_381_G2_uncompress/12,7.54107743863426e-5,7.539255656139487e-5,7.543257168094375e-5,6.748327463064108e-8,5.193514216854356e-8,9.66881046189701e-8 +Bls12_381_G2_uncompress/12,7.536289648476007e-5,7.534324340976938e-5,7.538242210331792e-5,6.632964944848324e-8,5.3614980159005105e-8,8.23006615557939e-8 +Bls12_381_G2_uncompress/12,7.535870760709012e-5,7.534103748543843e-5,7.538271235418556e-5,6.958653531927376e-8,5.706360161791191e-8,8.689606874731304e-8 +Bls12_381_G2_uncompress/12,7.534418753248366e-5,7.532585709474303e-5,7.536479657253456e-5,6.557153128907679e-8,5.354319786126902e-8,8.269627691138296e-8 +Bls12_381_G2_uncompress/12,7.529762947290613e-5,7.52836197979274e-5,7.531312094977524e-5,4.960363735971246e-8,3.986104277767746e-8,6.517349817998482e-8 +Bls12_381_G2_uncompress/12,7.532334300826446e-5,7.530775376311904e-5,7.534160431348831e-5,5.783701692604783e-8,4.270020666298545e-8,8.625522501970074e-8 +Bls12_381_G2_uncompress/12,7.53263669907951e-5,7.530857887499834e-5,7.534631358122957e-5,6.485218045786801e-8,5.606327470888817e-8,7.980930018589855e-8 +Bls12_381_G2_uncompress/12,7.531252695898582e-5,7.528876256840061e-5,7.53381021277676e-5,8.238805043300325e-8,6.743462998050643e-8,1.0516266577428063e-7 +Bls12_381_G2_uncompress/12,7.539053403794831e-5,7.5374840842516e-5,7.54094979378625e-5,6.007337264920964e-8,4.8483777595782664e-8,8.585581682582073e-8 +Bls12_381_G2_uncompress/12,7.533938070973414e-5,7.532120159383709e-5,7.535965200878353e-5,6.45041443259151e-8,5.294032807594583e-8,8.122115526936765e-8 +Bls12_381_G2_uncompress/12,7.542080584370733e-5,7.539870760321447e-5,7.54766784669469e-5,1.0716923210340556e-7,5.208276573722404e-8,2.0469580821411636e-7 +Bls12_381_G2_uncompress/12,7.538519880936648e-5,7.535669115582153e-5,7.542845560957718e-5,1.1105134989973355e-7,7.52397496584218e-8,1.9572526942165407e-7 +Bls12_381_G2_uncompress/12,7.53024391370448e-5,7.528123821965905e-5,7.532495605639426e-5,7.066088718040158e-8,5.5521447695146114e-8,9.355351918515957e-8 +Bls12_381_G2_uncompress/12,7.531983537100706e-5,7.53035019089226e-5,7.533826875001942e-5,6.060157024235302e-8,5.08348681819491e-8,7.214627895846904e-8 +Bls12_381_G2_uncompress/12,7.539079055548571e-5,7.536775695494859e-5,7.541918369923577e-5,8.409656983914636e-8,6.317702316702308e-8,1.1508934032569025e-7 +Bls12_381_G2_uncompress/12,7.536334415585811e-5,7.534122751412426e-5,7.539342583129898e-5,8.728992012362619e-8,7.120763432765664e-8,1.0628516987448321e-7 +Bls12_381_G2_uncompress/12,7.537779816738919e-5,7.535661096469294e-5,7.541281458116398e-5,9.047250422178654e-8,5.363874142811299e-8,1.67635887610515e-7 +Bls12_381_G2_uncompress/12,7.539354361503474e-5,7.537290735637903e-5,7.541582092372213e-5,7.191983835776961e-8,5.911823932673409e-8,8.610963488642978e-8 +Bls12_381_G2_uncompress/12,7.541550112426252e-5,7.538643481951594e-5,7.54448006699182e-5,1.0057660404049009e-7,8.527472445485181e-8,1.279012099294896e-7 +Bls12_381_G2_uncompress/12,7.542694371236257e-5,7.540452797577653e-5,7.544138107218822e-5,6.216454270741418e-8,4.248245924682383e-8,8.875910294708388e-8 +Bls12_381_G2_uncompress/12,7.536556859505717e-5,7.535164983637166e-5,7.538025093943338e-5,5.0168391521178564e-8,4.0491924252759533e-8,6.469907945287397e-8 +Bls12_381_G2_uncompress/12,7.539536068823635e-5,7.537950152884792e-5,7.540893004474642e-5,4.799838352695894e-8,3.986052956670839e-8,5.858512306365732e-8 +Bls12_381_G2_uncompress/12,7.543368985540644e-5,7.542005882649753e-5,7.544379883138437e-5,3.915983670719044e-8,3.162495891267461e-8,4.987538901612919e-8 +Bls12_381_G2_uncompress/12,7.534564571847702e-5,7.532126837118645e-5,7.536653813676725e-5,7.605669314965202e-8,6.370730985433948e-8,9.104735020367672e-8 +Bls12_381_G2_uncompress/12,7.536969223336869e-5,7.533031013005233e-5,7.5485849067494e-5,2.0806278840467258e-7,8.424586419835392e-8,4.324480517259919e-7 +Bls12_381_G2_uncompress/12,7.538194501697626e-5,7.536452224173719e-5,7.541204499036625e-5,7.607621990960535e-8,5.1727243818086296e-8,1.279142747691049e-7 +Bls12_381_G2_uncompress/12,7.542358687847002e-5,7.539145065696954e-5,7.554954167752761e-5,1.8036149562196105e-7,6.091800979531923e-8,3.932519149652827e-7 +Bls12_381_G2_uncompress/12,7.53987500142741e-5,7.538537167937384e-5,7.541471663764813e-5,5.190213362607348e-8,4.3959383204064335e-8,6.710520408539513e-8 +Bls12_381_G2_uncompress/12,7.544823506572726e-5,7.543517901255039e-5,7.546272672491388e-5,4.8695013286281963e-8,3.89497715746703e-8,6.549222713698977e-8 +Bls12_381_G2_uncompress/12,7.54127518353171e-5,7.538858099475196e-5,7.545771561630587e-5,1.0024156313574947e-7,6.521565099178149e-8,1.7128212224577805e-7 +Bls12_381_G2_uncompress/12,7.53590520890995e-5,7.533945560523456e-5,7.537957155245101e-5,6.947153100769943e-8,5.75171197127264e-8,8.296254632212578e-8 +Bls12_381_G2_uncompress/12,7.538245390144401e-5,7.535620690437528e-5,7.543543080331274e-5,1.2088570816693345e-7,7.131252822855458e-8,2.1940939946530378e-7 +Bls12_381_G2_uncompress/12,7.538994513494178e-5,7.536568572367231e-5,7.540816271290269e-5,7.229984079991358e-8,5.4563435484660394e-8,9.708728165798917e-8 +Bls12_381_G2_uncompress/12,7.536420239428309e-5,7.534033017932218e-5,7.541197556019315e-5,1.086526587505918e-7,5.643791547944172e-8,2.0352289268523115e-7 +Bls12_381_G2_uncompress/12,7.534672506304814e-5,7.5328382037398e-5,7.536848590696397e-5,6.617839215536415e-8,5.55599936461143e-8,7.868006404448484e-8 +Bls12_381_G2_uncompress/12,7.535931776677865e-5,7.534144865751096e-5,7.537501546110057e-5,5.51677922827735e-8,4.789041011158777e-8,6.321058789178484e-8 +Bls12_381_G2_uncompress/12,7.534175357152286e-5,7.532366399338382e-5,7.536069112940265e-5,6.683116495024485e-8,5.509055234992277e-8,8.494713368359454e-8 +Bls12_381_G2_uncompress/12,7.536645316730855e-5,7.534781402761603e-5,7.539344925746588e-5,7.386364686142358e-8,5.008090524994932e-8,1.0650188026267845e-7 +Bls12_381_G2_uncompress/12,7.540479332377261e-5,7.53796687188949e-5,7.542894318405966e-5,8.098254952184424e-8,6.832462427169426e-8,1.0504613886669038e-7 +Bls12_381_G2_uncompress/12,7.540354604801388e-5,7.53683642386442e-5,7.551558945494347e-5,1.875935673999958e-7,7.298877466981218e-8,3.7605872257551306e-7 +Bls12_381_G2_uncompress/12,7.542304436224197e-5,7.540812270881553e-5,7.54478021494725e-5,6.787839306855271e-8,4.630822495898874e-8,1.0966385504434978e-7 +Bls12_381_G2_uncompress/12,7.539876994394508e-5,7.538246264287418e-5,7.541284085195104e-5,5.171296873792569e-8,4.2377368188812135e-8,6.433429801264309e-8 +Bls12_381_G2_uncompress/12,7.535598066451205e-5,7.5337209887915e-5,7.539051581272094e-5,8.154619272671956e-8,5.4181284325278074e-8,1.516744410744282e-7 +Bls12_381_G2_uncompress/12,7.536174120652942e-5,7.534595850301402e-5,7.53814740497576e-5,5.6239772711606196e-8,4.694045468287337e-8,6.793805717249858e-8 +Bls12_381_G2_uncompress/12,7.540160071321592e-5,7.538716469883359e-5,7.5416108701819e-5,5.145535678517857e-8,4.2621757936068764e-8,6.405470003499794e-8 +Bls12_381_G2_uncompress/12,7.542084976578612e-5,7.540031065385685e-5,7.543949135883526e-5,6.83320234061959e-8,5.769147944326753e-8,7.996044482163336e-8 +Bls12_381_G2_uncompress/12,7.537939607901096e-5,7.536298834023587e-5,7.539711795904104e-5,5.95175927746743e-8,4.9634573345137015e-8,7.245105626896145e-8 +Bls12_381_G2_uncompress/12,7.541192231372766e-5,7.539446282863825e-5,7.544800419511656e-5,8.229891463726204e-8,4.836018853277921e-8,1.4617010571816038e-7 +Bls12_381_G2_uncompress/12,7.540387848526237e-5,7.53864794633435e-5,7.542197343486198e-5,5.8992231472774524e-8,4.790269648056886e-8,7.331168843501255e-8 +Bls12_381_G2_uncompress/12,7.535029797227812e-5,7.533241418550554e-5,7.536780141335142e-5,6.010580647561074e-8,5.173109954586439e-8,7.16296044938592e-8 +Bls12_381_G2_uncompress/12,7.534782263318157e-5,7.532849408663386e-5,7.536654223807775e-5,6.377653260495363e-8,5.5854652926222264e-8,7.522094229053935e-8 +Bls12_381_G2_uncompress/12,7.537382151984167e-5,7.535306510677268e-5,7.539354419458604e-5,6.739166027842973e-8,5.5099612767534504e-8,7.829108827209013e-8 +Bls12_381_G2_uncompress/12,7.539952198154616e-5,7.53726466931992e-5,7.545739526916751e-5,1.2501638218821688e-7,7.65873442964209e-8,2.1650958643394684e-7 +Bls12_381_G2_uncompress/12,7.530464815558181e-5,7.52855556226909e-5,7.532463665069997e-5,6.833350029157752e-8,5.652917573590629e-8,9.14934618904797e-8 +Bls12_381_G2_uncompress/12,7.525736152392718e-5,7.523831327525097e-5,7.528114445888604e-5,7.351668863030974e-8,6.157661588648303e-8,8.988416946003825e-8 +Bls12_381_G2_uncompress/12,7.531653524245582e-5,7.529151670784494e-5,7.534060371190693e-5,8.08289939517961e-8,6.384925883275933e-8,1.128413863602526e-7 +Bls12_381_G2_uncompress/12,7.525125561008841e-5,7.522678264952904e-5,7.527705026377028e-5,8.294775500288683e-8,6.795061592316673e-8,1.0374892151006583e-7 +Bls12_381_G2_uncompress/12,7.535682382289462e-5,7.531904844102918e-5,7.540904421805411e-5,1.4320718751976264e-7,1.0564376126229865e-7,2.1648345375726018e-7 +Bls12_381_G2_uncompress/12,7.53888197321818e-5,7.537520542346043e-5,7.540315057345615e-5,4.7745246056686754e-8,3.963620887502253e-8,6.04817580730195e-8 +Bls12_381_G2_uncompress/12,7.546037065007358e-5,7.544645714973272e-5,7.54724638015486e-5,4.471725060460238e-8,3.6262892342959105e-8,5.769890943637464e-8 +Bls12_381_G2_uncompress/12,7.544663387978015e-5,7.541804889189589e-5,7.550501437057511e-5,1.3489775596618031e-7,6.986976903735979e-8,2.6515183357504717e-7 +Bls12_381_millerLoop/18/36,2.549698876428293e-4,2.549280343405962e-4,2.5502595551855304e-4,1.644638060823725e-7,1.2829298985421355e-7,2.4272330709078385e-7 +Bls12_381_millerLoop/18/36,2.550485172649629e-4,2.54998514400265e-4,2.5513377538937987e-4,2.176884334229398e-7,1.2068723118732747e-7,3.791555068184051e-7 +Bls12_381_millerLoop/18/36,2.5514873697965684e-4,2.5508594561492675e-4,2.5520764073288995e-4,2.0619940372284716e-7,1.7210083050475202e-7,2.608713959971925e-7 +Bls12_381_millerLoop/18/36,2.5529025996112135e-4,2.5522470886995906e-4,2.553354179872699e-4,1.8103596021806098e-7,1.1731910797046425e-7,2.9685401127466823e-7 +Bls12_381_millerLoop/18/36,2.5523573561382683e-4,2.5497077935685654e-4,2.553164763140054e-4,4.435755449354828e-7,1.0694245116781091e-7,9.219507150120411e-7 +Bls12_381_millerLoop/18/36,2.552985412751259e-4,2.55265008339864e-4,2.5532779702659063e-4,1.0271091501254319e-7,8.420402004059859e-8,1.2576313773384558e-7 +Bls12_381_millerLoop/18/36,2.553234138007557e-4,2.5528412964775915e-4,2.553654562844729e-4,1.4270239235854764e-7,1.1644380705893354e-7,1.8560446515472258e-7 +Bls12_381_millerLoop/18/36,2.552954589094052e-4,2.5519741632784544e-4,2.553400828428343e-4,2.0740630719157056e-7,1.1221210902439232e-7,4.090749959684433e-7 +Bls12_381_millerLoop/18/36,2.553083185687532e-4,2.552583950117468e-4,2.553570933375465e-4,1.7115618074798572e-7,1.371097904922878e-7,2.2836023432620395e-7 +Bls12_381_millerLoop/18/36,2.5521281309321065e-4,2.551760705751384e-4,2.5529011542354445e-4,1.7099405117235593e-7,9.61720179768746e-8,3.169417147041754e-7 +Bls12_381_millerLoop/18/36,2.551806396016141e-4,2.551427260415584e-4,2.552240488995231e-4,1.3711878776222475e-7,1.1025075098381345e-7,1.7347259821431385e-7 +Bls12_381_millerLoop/18/36,2.552809850324607e-4,2.5522061815724865e-4,2.5542086204815765e-4,3.088025502225327e-7,1.5466676245197265e-7,5.834518643328562e-7 +Bls12_381_millerLoop/18/36,2.554182254730207e-4,2.55383974063703e-4,2.5544824178678696e-4,1.0770530318691246e-7,9.052819606513618e-8,1.444717814238131e-7 +Bls12_381_millerLoop/18/36,2.55167185515727e-4,2.5511428309604755e-4,2.552550570032672e-4,2.3229417192057427e-7,1.274845634693815e-7,4.3722493143514056e-7 +Bls12_381_millerLoop/18/36,2.551505620633906e-4,2.5510463281578786e-4,2.552075152173615e-4,1.7432753417381683e-7,1.3161125006287513e-7,2.6498845430870497e-7 +Bls12_381_millerLoop/18/36,2.551869153422098e-4,2.551550985577094e-4,2.552275265871224e-4,1.2104795066121797e-7,1.0185085483627002e-7,1.6282354712345738e-7 +Bls12_381_millerLoop/18/36,2.55118504191666e-4,2.5506857358440356e-4,2.551907902143911e-4,2.0580188645177107e-7,1.4615119967052388e-7,3.0318161589091786e-7 +Bls12_381_millerLoop/18/36,2.5513161581996725e-4,2.550894836417523e-4,2.5518863273036983e-4,1.694765741329424e-7,1.270516296618569e-7,2.6003725093450474e-7 +Bls12_381_millerLoop/18/36,2.550923232777587e-4,2.550488258661377e-4,2.5515778234564464e-4,1.7848545295468903e-7,1.1636847295217228e-7,2.815488976146624e-7 +Bls12_381_millerLoop/18/36,2.551311553941073e-4,2.5508651857209734e-4,2.5517927561653005e-4,1.5990836647020354e-7,1.265740780409661e-7,2.0966896084516268e-7 +Bls12_381_millerLoop/18/36,2.551616376412887e-4,2.551075249256484e-4,2.552759089975972e-4,2.61818303363424e-7,1.3649890293926017e-7,4.860313674129207e-7 +Bls12_381_millerLoop/18/36,2.5514633258106456e-4,2.551011839447959e-4,2.551968248752963e-4,1.6433321516577293e-7,1.2709745343432328e-7,2.1850594394156735e-7 +Bls12_381_millerLoop/18/36,2.5505732650676894e-4,2.550193359269846e-4,2.5509963154102483e-4,1.3498262459860165e-7,1.1350612357583738e-7,1.637576297040781e-7 +Bls12_381_millerLoop/18/36,2.5520788173702863e-4,2.551617282287895e-4,2.552912377809131e-4,2.069511091025685e-7,1.351291238387234e-7,3.5529353830235256e-7 +Bls12_381_millerLoop/18/36,2.551535211603688e-4,2.5511613555029294e-4,2.5519086485213937e-4,1.324003812128686e-7,1.1142009698085239e-7,1.7867558432333763e-7 +Bls12_381_millerLoop/18/36,2.551893783106109e-4,2.5514760679054365e-4,2.5526186031131915e-4,1.8594726728190996e-7,1.1572526821145735e-7,3.1513099627643074e-7 +Bls12_381_millerLoop/18/36,2.552162619373419e-4,2.5517566203974075e-4,2.552764215664728e-4,1.674344350488165e-7,1.1209627098428472e-7,2.6081259716374715e-7 +Bls12_381_millerLoop/18/36,2.551884849521685e-4,2.5510238211813276e-4,2.5544858782163314e-4,4.622792937270799e-7,1.59068389402738e-7,9.807532773309777e-7 +Bls12_381_millerLoop/18/36,2.551614599225804e-4,2.551187740688593e-4,2.5522663865738967e-4,1.844724030391809e-7,1.328582439636923e-7,2.9304615561703806e-7 +Bls12_381_millerLoop/18/36,2.5510613180865287e-4,2.550634385476078e-4,2.551560458262443e-4,1.590102946767786e-7,1.260262933471934e-7,2.0525483434335317e-7 +Bls12_381_millerLoop/18/36,2.55128645245713e-4,2.550848107526708e-4,2.5521812654549574e-4,2.11882337720223e-7,1.1859355246860197e-7,4.095119135393505e-7 +Bls12_381_millerLoop/18/36,2.553058601596654e-4,2.5525012431091795e-4,2.5540916230768656e-4,2.4542291913422315e-7,1.349304075768421e-7,3.742764151155496e-7 +Bls12_381_millerLoop/18/36,2.552345386411649e-4,2.551884208696105e-4,2.553270634538111e-4,2.1755131937832732e-7,1.2186876015602209e-7,3.8391245189590156e-7 +Bls12_381_millerLoop/18/36,2.553333344300189e-4,2.5528788743050905e-4,2.553896409997905e-4,1.6354935998741999e-7,1.2613498406068465e-7,2.372229448512136e-7 +Bls12_381_millerLoop/18/36,2.553803920475135e-4,2.553445007636462e-4,2.5541518275311385e-4,1.1656143605192447e-7,9.693207050105873e-8,1.4722668495747187e-7 +Bls12_381_millerLoop/18/36,2.552789695948197e-4,2.552313871966219e-4,2.5533598894396966e-4,1.7336558266793597e-7,1.3334505660144527e-7,2.429306391022282e-7 +Bls12_381_millerLoop/18/36,2.55300550736034e-4,2.552549951341018e-4,2.553442971613889e-4,1.578533603860763e-7,1.2980825936595368e-7,1.9663722786366388e-7 +Bls12_381_millerLoop/18/36,2.552346502178869e-4,2.5518419785659194e-4,2.5535560347727485e-4,2.480385901911188e-7,1.3628073107954945e-7,4.6697956830447725e-7 +Bls12_381_millerLoop/18/36,2.546290941883657e-4,2.54612014546676e-4,2.546558236388404e-4,6.998962066932909e-8,5.227639071119714e-8,1.0209361414003187e-7 +Bls12_381_millerLoop/18/36,2.5456523419908504e-4,2.5454449205389675e-4,2.545970877703064e-4,8.292445447759242e-8,6.000645409446845e-8,1.140579133810876e-7 +Bls12_381_millerLoop/18/36,2.5461967312454486e-4,2.545922571529948e-4,2.546485530255928e-4,9.358988866352267e-8,7.219934134228255e-8,1.2128336800424223e-7 +Bls12_381_millerLoop/18/36,2.5459201193617974e-4,2.545696728667535e-4,2.5462673523135826e-4,8.952154006428857e-8,6.232869452073471e-8,1.4414527090796071e-7 +Bls12_381_millerLoop/18/36,2.5465789949715025e-4,2.546352307590392e-4,2.546862506936537e-4,8.45847591330924e-8,6.258852758736668e-8,1.1904023835209353e-7 +Bls12_381_millerLoop/18/36,2.546135672086842e-4,2.5458556888436647e-4,2.5465939639716554e-4,1.1756982310954033e-7,7.597866338473138e-8,2.0384435388454726e-7 +Bls12_381_millerLoop/18/36,2.546547843368569e-4,2.5463653712024914e-4,2.5467989510881693e-4,7.257486272884777e-8,5.933936065327112e-8,1.0443922293270419e-7 +Bls12_381_millerLoop/18/36,2.5459242494718784e-4,2.5456630853077923e-4,2.5461826648800155e-4,8.893195341228833e-8,7.125320689974663e-8,1.1362589842365191e-7 +Bls12_381_millerLoop/18/36,2.5462934172185055e-4,2.546087887642726e-4,2.5465246237067854e-4,7.469744937867136e-8,6.120246854476785e-8,9.077713557744611e-8 +Bls12_381_millerLoop/18/36,2.546488855407406e-4,2.5462679776929386e-4,2.546762354286063e-4,8.248686245128628e-8,7.009595936150775e-8,9.927111350575362e-8 +Bls12_381_millerLoop/18/36,2.5459681162676265e-4,2.54576016465744e-4,2.546238395597157e-4,7.627485631832637e-8,5.895604964499062e-8,1.0120527601733324e-7 +Bls12_381_millerLoop/18/36,2.546220218336909e-4,2.545994696451725e-4,2.5464805121581783e-4,8.018174498803533e-8,6.029123254476716e-8,1.0642256394085871e-7 +Bls12_381_millerLoop/18/36,2.5463062574591287e-4,2.546107197483489e-4,2.5465120179523606e-4,6.805595274960221e-8,5.607271249658263e-8,8.70339771539867e-8 +Bls12_381_millerLoop/18/36,2.5458398857928214e-4,2.545455558266406e-4,2.5468867993262836e-4,1.9019540812852773e-7,8.240721536656737e-8,3.7016037785541653e-7 +Bls12_381_millerLoop/18/36,2.5460745712455225e-4,2.5459286803797683e-4,2.546344834516831e-4,6.61421861550765e-8,4.1168750180229575e-8,1.1655605338455134e-7 +Bls12_381_millerLoop/18/36,2.5464559429966494e-4,2.5461845227378734e-4,2.5468257724989166e-4,1.1060541124005697e-7,8.199070407010011e-8,1.4587916428194846e-7 +Bls12_381_millerLoop/18/36,2.545645295917434e-4,2.545472778771308e-4,2.545844784348448e-4,6.149872359357335e-8,4.796003877725553e-8,8.943238038287219e-8 +Bls12_381_millerLoop/18/36,2.5460959514974995e-4,2.5458617544227313e-4,2.546457165049943e-4,9.94293027907213e-8,7.814956195050794e-8,1.5253380098869947e-7 +Bls12_381_millerLoop/18/36,2.5460562068919154e-4,2.5458605527103385e-4,2.546281114713386e-4,7.297815110173724e-8,6.19342632255146e-8,8.529764806288908e-8 +Bls12_381_millerLoop/18/36,2.5466452941584844e-4,2.54640055063552e-4,2.546912020778841e-4,8.360188044943168e-8,6.666893397737785e-8,1.0947220130402325e-7 +Bls12_381_millerLoop/18/36,2.546402307056437e-4,2.546208508375165e-4,2.5466330584886855e-4,7.235787711764076e-8,6.17995628715135e-8,8.490594315945351e-8 +Bls12_381_millerLoop/18/36,2.5463548680129455e-4,2.546037252721598e-4,2.5472097168050787e-4,1.7560745681865555e-7,7.817140582507181e-8,3.467767585735838e-7 +Bls12_381_millerLoop/18/36,2.546330044426813e-4,2.546124543187381e-4,2.546560294503087e-4,7.450960421306117e-8,6.090937528242088e-8,9.469493843582676e-8 +Bls12_381_millerLoop/18/36,2.5466197331331183e-4,2.546311860285233e-4,2.547310969586978e-4,1.421628897981809e-7,7.791664649565506e-8,2.5886002041409773e-7 +Bls12_381_millerLoop/18/36,2.5456948753538414e-4,2.5454184280617565e-4,2.5465359586695043e-4,1.4662887367597364e-7,5.744687135264186e-8,2.909212148478391e-7 +Bls12_381_millerLoop/18/36,2.54605477371583e-4,2.5458956418572353e-4,2.546215967105707e-4,5.5750948462967626e-8,4.699829279470269e-8,6.833301755663711e-8 +Bls12_381_millerLoop/18/36,2.5467181252327565e-4,2.5463636668506386e-4,2.547229292004491e-4,1.4096667612086997e-7,1.0413683377606702e-7,2.1989174753757484e-7 +Bls12_381_millerLoop/18/36,2.5455126076438014e-4,2.545262112108322e-4,2.546207652422859e-4,1.323554729059369e-7,5.716492410332866e-8,2.7651995047438945e-7 +Bls12_381_millerLoop/18/36,2.5461440860120605e-4,2.545888693919986e-4,2.5464311080571436e-4,9.460719343667252e-8,7.669960928515368e-8,1.1530559727210374e-7 +Bls12_381_millerLoop/18/36,2.545897737174119e-4,2.5455555863952543e-4,2.5463737548721776e-4,1.4118003717299939e-7,1.0497213240491575e-7,2.2071799193863953e-7 +Bls12_381_millerLoop/18/36,2.546320338455761e-4,2.546133839042949e-4,2.5465374232029196e-4,6.256069637847654e-8,5.135080374980089e-8,7.804372473154859e-8 +Bls12_381_millerLoop/18/36,2.5463338992954486e-4,2.546116201531415e-4,2.546525834791477e-4,7.204691820157272e-8,5.902620902305476e-8,9.05008775531581e-8 +Bls12_381_millerLoop/18/36,2.546075567460926e-4,2.5459467238872214e-4,2.5462233556919513e-4,4.611664485535483e-8,3.832572981840032e-8,5.7993859833261106e-8 +Bls12_381_millerLoop/18/36,2.5458564521832136e-4,2.545717633638896e-4,2.546051833230882e-4,5.29578435738417e-8,4.165501126515378e-8,6.979749411716164e-8 +Bls12_381_millerLoop/18/36,2.5461081713413645e-4,2.545916471283114e-4,2.546378635624879e-4,7.535667485360809e-8,4.8737900050688566e-8,1.2710023392691482e-7 +Bls12_381_millerLoop/18/36,2.545976822929029e-4,2.545843483638107e-4,2.5461307533342623e-4,4.7916389198855535e-8,3.945251794733352e-8,6.04858444510856e-8 +Bls12_381_millerLoop/18/36,2.5460912091674264e-4,2.5459566194475225e-4,2.5462687003989667e-4,5.410545930299168e-8,4.093908091655219e-8,7.08141933594927e-8 +Bls12_381_millerLoop/18/36,2.546142040278385e-4,2.5458952182198704e-4,2.546491281608441e-4,9.806039976807081e-8,6.091184459831407e-8,1.4606665968528355e-7 +Bls12_381_millerLoop/18/36,2.546086226273352e-4,2.5459360998981057e-4,2.546343726090406e-4,6.473905109469427e-8,4.2385972496590136e-8,1.0253899156363783e-7 +Bls12_381_millerLoop/18/36,2.5462798920285954e-4,2.546120072559454e-4,2.5464877577306233e-4,5.886531241494888e-8,4.201976686183785e-8,8.367330441472783e-8 +Bls12_381_millerLoop/18/36,2.545977680064256e-4,2.5458408460381573e-4,2.546126437474453e-4,5.138374949720968e-8,4.0491183779798566e-8,7.747194618976002e-8 +Bls12_381_millerLoop/18/36,2.5464425313266587e-4,2.5462714135814654e-4,2.546657148723425e-4,6.680230677463276e-8,5.432860790358268e-8,8.391941365447324e-8 +Bls12_381_millerLoop/18/36,2.5471698105064566e-4,2.546370223061259e-4,2.549758876088314e-4,4.6882606065996567e-7,8.680668747131652e-8,9.854301939492153e-7 +Bls12_381_millerLoop/18/36,2.5468578556648403e-4,2.546468440831516e-4,2.5478744611351806e-4,1.9895035994697865e-7,9.718203128025064e-8,3.688971469942913e-7 +Bls12_381_millerLoop/18/36,2.546003046758693e-4,2.5447711265553553e-4,2.546377717182829e-4,2.1847786945880837e-7,6.865722619810608e-8,4.44074589546324e-7 +Bls12_381_millerLoop/18/36,2.546042089308739e-4,2.5445628994833863e-4,2.5465617301720193e-4,3.031264514081866e-7,6.529894209155268e-8,6.890051382986174e-7 +Bls12_381_millerLoop/18/36,2.546562014270103e-4,2.546383336414879e-4,2.546765422744201e-4,6.296376746291745e-8,4.782588448173984e-8,8.488722796957176e-8 +Bls12_381_millerLoop/18/36,2.545787269551102e-4,2.5444774294322136e-4,2.5461460061288865e-4,2.0955242649692763e-7,5.843475115005022e-8,4.650592434877532e-7 +Bls12_381_millerLoop/18/36,2.546281044112846e-4,2.5438828281007243e-4,2.5468388574026083e-4,3.1936802676070236e-7,6.976230730622339e-8,7.616896341211738e-7 +Bls12_381_millerLoop/18/36,2.54593786721505e-4,2.5436364386308846e-4,2.5464895863054767e-4,3.191704691511419e-7,7.599266967997558e-8,7.131555807408856e-7 +Bls12_381_millerLoop/18/36,2.5464968868217907e-4,2.546359157934648e-4,2.5466275951590726e-4,4.6392355384077826e-8,3.8430105337868814e-8,5.9328008257100535e-8 +Bls12_381_millerLoop/18/36,2.546447145347243e-4,2.546180928359813e-4,2.5465843539122205e-4,6.500700530352982e-8,4.057831289962571e-8,1.125575078659856e-7 +Bls12_381_millerLoop/18/36,2.546110131115173e-4,2.545918180307969e-4,2.546315676924218e-4,6.554760302814341e-8,5.2446156163290034e-8,8.639019944363113e-8 +Bls12_381_millerLoop/18/36,2.5467085613110446e-4,2.546535411583747e-4,2.5469206275831514e-4,6.682073939769149e-8,5.0160806369057945e-8,9.881963466009942e-8 +Bls12_381_millerLoop/18/36,2.546314515263906e-4,2.5461877571736883e-4,2.546422013207067e-4,4.1128817745556754e-8,3.488085062500825e-8,5.124462215061369e-8 +Bls12_381_millerLoop/18/36,2.546559621426359e-4,2.5464111163605257e-4,2.546737879639639e-4,5.4579666597752225e-8,4.326176896006595e-8,7.627209316942523e-8 +Bls12_381_millerLoop/18/36,2.546649545950994e-4,2.546470275458877e-4,2.5469140151630206e-4,7.078338303284777e-8,4.884250519330025e-8,1.172985845503078e-7 +Bls12_381_millerLoop/18/36,2.5463499436812734e-4,2.5462011617776717e-4,2.546618990595568e-4,6.510925871212792e-8,3.8467472531864926e-8,1.134352092348177e-7 +Bls12_381_millerLoop/18/36,2.546395135574108e-4,2.546257386970502e-4,2.5465373652279894e-4,4.6610546751796745e-8,3.8225353744135534e-8,6.125205866537212e-8 +Bls12_381_millerLoop/18/36,2.5462565833669914e-4,2.54609617478759e-4,2.5464451077100215e-4,5.6924838129167644e-8,4.6458592119524497e-8,7.16102841203903e-8 +Bls12_381_millerLoop/18/36,2.546590960140809e-4,2.546441605115412e-4,2.546810665041228e-4,6.49152946164501e-8,4.810101090114265e-8,1.0091533945491863e-7 +Bls12_381_millerLoop/18/36,2.5463217443834444e-4,2.5461704358231886e-4,2.546498566581697e-4,5.391906198726823e-8,4.373360751987274e-8,7.374998528376765e-8 +Bls12_381_mulMlResult/72/72,3.0243484085863046e-6,3.023230103498283e-6,3.0255417630625018e-6,3.862121466923924e-9,3.1920295725498807e-9,4.954522268417076e-9 +Bls12_381_mulMlResult/72/72,3.0150567944339116e-6,3.014128607805855e-6,3.015847978307748e-6,3.069666098309085e-9,2.4516576454386075e-9,4.330970172444163e-9 +Bls12_381_mulMlResult/72/72,3.019397519519436e-6,3.018412603678995e-6,3.0202956247935372e-6,3.1555205828101596e-9,2.6081644885057753e-9,3.920410199180828e-9 +Bls12_381_mulMlResult/72/72,3.021745585719636e-6,3.0207062408196745e-6,3.022695158400394e-6,3.3190806742266406e-9,2.660349462709514e-9,4.5007449440578395e-9 +Bls12_381_mulMlResult/72/72,3.0214790375452214e-6,3.020612535774324e-6,3.022404246990845e-6,3.053113776278579e-9,2.435159487016259e-9,4.054417777168967e-9 +Bls12_381_mulMlResult/72/72,3.0231217700403432e-6,3.0221706722205487e-6,3.0240122726545212e-6,3.200217012561599e-9,2.686386217460681e-9,3.954551502837772e-9 +Bls12_381_mulMlResult/72/72,3.0218987926069293e-6,3.021019336216663e-6,3.023077844386348e-6,3.501183510776533e-9,2.9372306750965014e-9,4.2693097895990355e-9 +Bls12_381_mulMlResult/72/72,3.0247299712120526e-6,3.0239103978606247e-6,3.0255745557047395e-6,2.8116278319030963e-9,2.396857807957167e-9,3.3116252997448568e-9 +Bls12_381_mulMlResult/72/72,3.020735288073705e-6,3.0201493112523704e-6,3.021344384002901e-6,2.1273888000355936e-9,1.8020859654009345e-9,2.5273211553288243e-9 +Bls12_381_mulMlResult/72/72,3.0277098235557044e-6,3.026819853715292e-6,3.028437209489059e-6,2.7611829930661915e-9,2.2414483290596335e-9,3.4138503014610287e-9 +Bls12_381_mulMlResult/72/72,3.0198018397415243e-6,3.0188462836774714e-6,3.0204905943131766e-6,2.7668583390281436e-9,2.134893545950285e-9,3.572174581786549e-9 +Bls12_381_mulMlResult/72/72,3.0157420907219188e-6,3.0145570534918206e-6,3.0168788793191565e-6,3.811795210825391e-9,3.3192617980205863e-9,4.550181616194236e-9 +Bls12_381_mulMlResult/72/72,3.0231613037481516e-6,3.0223646829934346e-6,3.0240298481555615e-6,2.8347302980855416e-9,2.4854965119232203e-9,3.3644620015841874e-9 +Bls12_381_mulMlResult/72/72,3.020968055762775e-6,3.020009846599586e-6,3.0218406334402906e-6,3.043027751641268e-9,2.496655610741032e-9,3.895470199218992e-9 +Bls12_381_mulMlResult/72/72,3.0204706440822193e-6,3.01914230262627e-6,3.021549089050326e-6,4.167042708475946e-9,3.51428062837789e-9,5.090148505271383e-9 +Bls12_381_mulMlResult/72/72,3.022882875786774e-6,3.0219443225971572e-6,3.0239796703948765e-6,3.431571352381352e-9,3.0380177394410026e-9,4.017554462696962e-9 +Bls12_381_mulMlResult/72/72,3.028562730553477e-6,3.0275878003745015e-6,3.029418531601933e-6,3.045790395478587e-9,2.575962085761717e-9,3.726082913423833e-9 +Bls12_381_mulMlResult/72/72,3.020034368873831e-6,3.019098756813753e-6,3.020847138267419e-6,2.947170094608841e-9,2.471659562021585e-9,3.5311537489888392e-9 +Bls12_381_mulMlResult/72/72,3.024569603608699e-6,3.0233313578387046e-6,3.0255713515647167e-6,3.836562034104123e-9,3.305199168920659e-9,4.4798496177229405e-9 +Bls12_381_mulMlResult/72/72,3.0226572911689344e-6,3.021331702123787e-6,3.023878247188408e-6,4.2546109014358564e-9,3.6375683480708206e-9,5.231039713573425e-9 +Bls12_381_mulMlResult/72/72,3.0233568290444545e-6,3.0225114894504487e-6,3.0242165044321337e-6,2.8590162169786223e-9,2.372828838286582e-9,3.771812384021638e-9 +Bls12_381_mulMlResult/72/72,3.013760411867137e-6,3.010456875769901e-6,3.0173203074739047e-6,1.208250985888434e-8,1.1070933538408127e-8,1.3291597498903165e-8 +Bls12_381_mulMlResult/72/72,3.0086646133870648e-6,3.0077813326207768e-6,3.009414488179157e-6,2.6930112910171047e-9,2.3521298074211486e-9,3.250985604030109e-9 +Bls12_381_mulMlResult/72/72,3.0047472988459784e-6,3.0039965853310355e-6,3.005850804151071e-6,2.961261578974383e-9,2.168995223472636e-9,4.330402576860048e-9 +Bls12_381_mulMlResult/72/72,3.0082981249633874e-6,3.0069023680053457e-6,3.011750244626037e-6,7.484732209363899e-9,3.134868349571038e-9,1.458120577357784e-8 +Bls12_381_mulMlResult/72/72,3.010846471923232e-6,3.0099558614141884e-6,3.011896580978148e-6,3.410719205756694e-9,2.945421150555853e-9,4.096141169931574e-9 +Bls12_381_mulMlResult/72/72,3.003177161209155e-6,3.0020643663840678e-6,3.0042049473614423e-6,3.5146442651671344e-9,3.021695999969089e-9,4.144933820430729e-9 +Bls12_381_mulMlResult/72/72,3.0061094750125895e-6,3.0053227104147982e-6,3.0069075639325057e-6,2.735870617717635e-9,2.2553098284596346e-9,3.36827420081686e-9 +Bls12_381_mulMlResult/72/72,3.009602585235541e-6,3.00855618204782e-6,3.0105940961322657e-6,3.3671648047099388e-9,2.916303300251882e-9,4.049549910076695e-9 +Bls12_381_mulMlResult/72/72,3.005547095676061e-6,3.004696490174027e-6,3.0065592371736536e-6,3.1444808163192694e-9,2.589855854879104e-9,3.911306085884402e-9 +Bls12_381_mulMlResult/72/72,3.011849059783903e-6,3.010612316500463e-6,3.0148974143569874e-6,6.092041373928045e-9,3.1664210816470702e-9,1.169000145817871e-8 +Bls12_381_mulMlResult/72/72,3.0065613395817894e-6,3.0054128324555034e-6,3.0075311591060736e-6,3.6148226350648696e-9,2.9736095208551343e-9,4.693403170711677e-9 +Bls12_381_mulMlResult/72/72,3.009268921215389e-6,3.008565383096969e-6,3.0102026187685384e-6,2.7128008418066187e-9,2.2341675509754726e-9,3.4362573971514537e-9 +Bls12_381_mulMlResult/72/72,3.0066879615885975e-6,3.005837188692102e-6,3.007575143995764e-6,3.037399239598186e-9,2.5410633342909035e-9,3.7952365667647445e-9 +Bls12_381_mulMlResult/72/72,3.0056089631969496e-6,3.0050069973147586e-6,3.006196636611583e-6,2.010744616856484e-9,1.6565565080160525e-9,2.507357672620118e-9 +Bls12_381_mulMlResult/72/72,3.005346116930299e-6,3.004304366301037e-6,3.0062523632948446e-6,3.263568629391862e-9,2.704096303412355e-9,4.08514104834581e-9 +Bls12_381_mulMlResult/72/72,3.0022592007469893e-6,3.0010508097698116e-6,3.0033111980449193e-6,3.811720339881134e-9,3.2779065981318106e-9,4.891902691991453e-9 +Bls12_381_mulMlResult/72/72,3.0053246868422394e-6,3.0042647144309855e-6,3.006439592209678e-6,3.714067097513892e-9,3.1134743636695787e-9,4.507184046571136e-9 +Bls12_381_mulMlResult/72/72,3.0044719588217604e-6,3.003316286302405e-6,3.0057272243145715e-6,3.940757428611376e-9,3.138671088205484e-9,5.143801652970176e-9 +Bls12_381_mulMlResult/72/72,3.00722433686674e-6,3.006411527369397e-6,3.0081051536561113e-6,2.7710829697293946e-9,2.319593944730648e-9,3.2989803596478916e-9 +Bls12_381_mulMlResult/72/72,3.006026781047175e-6,3.0052864931218858e-6,3.0068431228040665e-6,2.703601385379018e-9,2.2468594228645746e-9,3.241918011462579e-9 +Bls12_381_mulMlResult/72/72,3.005983852730608e-6,3.0050319033458705e-6,3.0068662212059507e-6,3.2234994717902085e-9,2.5962134255209856e-9,4.222842707556513e-9 +Bls12_381_mulMlResult/72/72,3.007083767739246e-6,3.0063293625303937e-6,3.0077737549469567e-6,2.5732709001504787e-9,2.1451745833816732e-9,3.484831469942964e-9 +Bls12_381_mulMlResult/72/72,3.0082593584359867e-6,3.007132899667843e-6,3.0090714317062382e-6,3.1144670915007546e-9,2.3488645949826453e-9,4.555617743877745e-9 +Bls12_381_mulMlResult/72/72,3.017795764208724e-6,3.016940245222131e-6,3.0186065341641795e-6,2.84050564213004e-9,2.3357672550684446e-9,3.722890941213872e-9 +Bls12_381_mulMlResult/72/72,3.0151118229250392e-6,3.0137608364456398e-6,3.0166821369858352e-6,4.910953061590709e-9,4.238189533142085e-9,5.9222335703893396e-9 +Bls12_381_mulMlResult/72/72,3.010419400009656e-6,3.009438824954279e-6,3.0114693169880465e-6,3.5560565010339753e-9,3.0718447048254022e-9,4.457245828559415e-9 +Bls12_381_mulMlResult/72/72,3.0078278482308805e-6,3.006837247888951e-6,3.008796472396404e-6,3.2200457249690007e-9,2.680812570497683e-9,3.986641273116914e-9 +Bls12_381_mulMlResult/72/72,3.00224870033314e-6,3.0009443866528703e-6,3.0034647573960833e-6,4.284495788851264e-9,3.6225855067473294e-9,5.070896235327724e-9 +Bls12_381_mulMlResult/72/72,3.012980997378514e-6,3.0124389250431354e-6,3.013547735199468e-6,1.9895609095676704e-9,1.6529646996144746e-9,2.4396178623578e-9 +Bls12_381_mulMlResult/72/72,3.0041009943180716e-6,3.0032517967660068e-6,3.0049442614024403e-6,2.903401740704907e-9,2.428415145273807e-9,3.5591159313177565e-9 +Bls12_381_mulMlResult/72/72,3.0097386379537087e-6,3.009064574298897e-6,3.0104258239069163e-6,2.4042000443851175e-9,1.9945808851687085e-9,2.943895764417117e-9 +Bls12_381_mulMlResult/72/72,3.0028637901107964e-6,3.0019194540380573e-6,3.0038700386180678e-6,3.2991358716097822e-9,2.666749142219235e-9,4.381958098700315e-9 +Bls12_381_mulMlResult/72/72,3.0038135489770783e-6,3.002515965884875e-6,3.0051500296063836e-6,4.346228587141728e-9,3.656087459134657e-9,5.099669194594929e-9 +Bls12_381_mulMlResult/72/72,3.0051168018184194e-6,3.0042491908942782e-6,3.0058307956704817e-6,2.819883819290874e-9,2.2449856153792186e-9,3.486845690415284e-9 +Bls12_381_mulMlResult/72/72,3.013506133367735e-6,3.0125241337979153e-6,3.0145670556037553e-6,3.5013874199458074e-9,2.865972741406251e-9,4.240164266283069e-9 +Bls12_381_mulMlResult/72/72,3.0026135349927934e-6,3.0016972572145794e-6,3.0037857857401043e-6,3.3813558116807083e-9,2.8617173084054573e-9,4.107465445607057e-9 +Bls12_381_mulMlResult/72/72,3.0064777062063116e-6,3.0053214255470003e-6,3.0074705085659884e-6,3.6216950648928498e-9,2.9086418487096547e-9,4.8809731334880395e-9 +Bls12_381_mulMlResult/72/72,3.0055599371336338e-6,3.004195328439642e-6,3.0069458733463368e-6,4.583305072425434e-9,3.8329436500050885e-9,5.645684846902197e-9 +Bls12_381_mulMlResult/72/72,3.0064361526981203e-6,3.005717704155832e-6,3.0069902570120235e-6,2.0798169870424426e-9,1.7241477393983927e-9,2.4582154170873925e-9 +Bls12_381_mulMlResult/72/72,3.001720201979924e-6,3.0009490049586717e-6,3.0024681133687794e-6,2.6900117846692418e-9,2.2436442955882657e-9,3.325295665705336e-9 +Bls12_381_mulMlResult/72/72,3.003357031644345e-6,3.0024956477852428e-6,3.0043199459673993e-6,3.03039700392332e-9,2.495199923274254e-9,3.730664945731185e-9 +Bls12_381_mulMlResult/72/72,3.0087794890215976e-6,3.0077973324177396e-6,3.0097287653504474e-6,3.3009699310139426e-9,2.7502721447741414e-9,3.8560846171780255e-9 +Bls12_381_mulMlResult/72/72,3.0124006661899965e-6,3.011334543675319e-6,3.0132347342040306e-6,3.249246946654332e-9,2.4727678693817157e-9,4.462683914599479e-9 +Bls12_381_mulMlResult/72/72,3.0068201503597643e-6,3.0054291125189625e-6,3.0081475461776477e-6,4.534052158604325e-9,3.557650867884514e-9,5.6620675492121565e-9 +Bls12_381_mulMlResult/72/72,3.0079951625761987e-6,3.0070114470113527e-6,3.008997453354939e-6,3.295274692237656e-9,2.703853771402435e-9,3.9293559070132054e-9 +Bls12_381_mulMlResult/72/72,3.0057269762391203e-6,3.0047360978063654e-6,3.00679436279362e-6,3.4230210402680236e-9,2.9814444709526865e-9,4.094770497738368e-9 +Bls12_381_mulMlResult/72/72,3.0139741238302262e-6,3.013198955623103e-6,3.014810727602111e-6,2.6657760094752524e-9,2.2891066126267354e-9,3.1727098991176335e-9 +Bls12_381_mulMlResult/72/72,3.001137045728779e-6,3.000300918485902e-6,3.002014752177224e-6,2.9397479111476055e-9,2.431372043614631e-9,3.6328448892484073e-9 +Bls12_381_mulMlResult/72/72,3.0099178424412088e-6,3.008737492611889e-6,3.0108744298266103e-6,3.528936136615427e-9,2.975528230130875e-9,4.3056940447542694e-9 +Bls12_381_mulMlResult/72/72,3.0074065759870378e-6,3.006668775983538e-6,3.0080326566263878e-6,2.279119927054574e-9,1.7365236673671996e-9,3.0246781066160012e-9 +Bls12_381_mulMlResult/72/72,3.0040928497455135e-6,3.003047729742677e-6,3.0051985823121873e-6,3.6329793561582387e-9,3.173677241723868e-9,4.300797856813609e-9 +Bls12_381_mulMlResult/72/72,3.0082179944629036e-6,3.0071857591978964e-6,3.009218538384086e-6,3.6398057729457242e-9,3.0669428227886094e-9,4.716738076014124e-9 +Bls12_381_mulMlResult/72/72,3.002286396235582e-6,3.0010383182964637e-6,3.003463008268631e-6,3.826990827764054e-9,3.2725065705793744e-9,4.550921531685902e-9 +Bls12_381_mulMlResult/72/72,3.0082693713389e-6,3.0069407777216767e-6,3.0093351516471783e-6,4.054718104965053e-9,3.3703627089634896e-9,5.196525215210273e-9 +Bls12_381_mulMlResult/72/72,3.006882223487574e-6,3.0057032127387907e-6,3.007949208675766e-6,3.763725674466879e-9,3.0351283187436855e-9,5.155675689023708e-9 +Bls12_381_mulMlResult/72/72,3.0093338584508116e-6,3.007722945176607e-6,3.0108376967703083e-6,5.159617115340663e-9,4.432071560805537e-9,6.107302982103908e-9 +Bls12_381_mulMlResult/72/72,3.010228405451242e-6,3.0093855922289744e-6,3.0110182872171797e-6,2.8112704187329646e-9,2.4457299536176417e-9,3.290600857894331e-9 +Bls12_381_mulMlResult/72/72,3.011182306028528e-6,3.0103540954778757e-6,3.0119984670035675e-6,2.680761956178842e-9,2.253074387098163e-9,3.3089259138743203e-9 +Bls12_381_mulMlResult/72/72,3.000901224120877e-6,2.9997954826551922e-6,3.002024751028665e-6,3.921392519787091e-9,3.394811347231477e-9,4.565232172263053e-9 +Bls12_381_mulMlResult/72/72,3.0007012392368608e-6,2.9999430801141325e-6,3.001508458536173e-6,2.80139183625971e-9,2.281775619735453e-9,3.552435109760212e-9 +Bls12_381_mulMlResult/72/72,3.0090957380152366e-6,3.008261008160736e-6,3.009796384705255e-6,2.7555608158557018e-9,2.321618011770055e-9,3.2700976030524815e-9 +Bls12_381_mulMlResult/72/72,3.0060200749745668e-6,3.004966705454306e-6,3.0071874275114296e-6,3.802715790443253e-9,3.320544791310171e-9,4.417579980322119e-9 +Bls12_381_mulMlResult/72/72,3.0074756569278664e-6,3.006947567768618e-6,3.0080205726668164e-6,1.8553820041042598e-9,1.585335154094183e-9,2.242568193634831e-9 +Bls12_381_mulMlResult/72/72,3.0106611884547894e-6,3.009909336051945e-6,3.0115352685284273e-6,2.7983738244243217e-9,2.381718192301056e-9,3.3871272968653338e-9 +Bls12_381_mulMlResult/72/72,3.0057388958029576e-6,3.0050987830199707e-6,3.0063868688905077e-6,2.323973206670938e-9,1.85730906862965e-9,2.9958423549297725e-9 +Bls12_381_mulMlResult/72/72,3.006502441629594e-6,3.005311024506409e-6,3.0076429412669526e-6,3.868583326871104e-9,3.282244247421346e-9,4.518227556905826e-9 +Bls12_381_mulMlResult/72/72,3.0097199925489013e-6,3.0088945922117366e-6,3.0105775614370447e-6,2.810094381327219e-9,2.376327282606721e-9,3.409260503914911e-9 +Bls12_381_mulMlResult/72/72,3.0072400205986758e-6,3.0065124086718806e-6,3.008129431271897e-6,2.703367178422249e-9,2.28760290379874e-9,3.1901654441256525e-9 +Bls12_381_mulMlResult/72/72,3.020215067601154e-6,3.0187645105089957e-6,3.0214082960357664e-6,4.4200214585131884e-9,3.4278201634234836e-9,5.8360368754220125e-9 +Bls12_381_mulMlResult/72/72,3.0302978456773267e-6,3.029574975849981e-6,3.0310801334518797e-6,2.651334277376568e-9,2.1787443995778194e-9,3.5232061614226404e-9 +Bls12_381_mulMlResult/72/72,3.0187842171403182e-6,3.01778729917979e-6,3.0198338188154623e-6,3.3271361117911914e-9,2.7400072204599016e-9,4.053740178577388e-9 +Bls12_381_mulMlResult/72/72,3.025623694356841e-6,3.0247722543136696e-6,3.026578235114378e-6,3.046259664815021e-9,2.5115798752674148e-9,3.93730157446464e-9 +Bls12_381_mulMlResult/72/72,3.0265049438379125e-6,3.025807660786948e-6,3.027313674784113e-6,2.5815466070800963e-9,2.156079906817027e-9,3.1649501422548254e-9 +Bls12_381_mulMlResult/72/72,3.0241584262809248e-6,3.02271103772476e-6,3.025548092389485e-6,4.615853074308441e-9,3.913941162934201e-9,5.528334123793167e-9 +Bls12_381_mulMlResult/72/72,3.0171160110843353e-6,3.01630347258117e-6,3.0184171235601363e-6,3.4411104071092547e-9,2.339211090830725e-9,5.653665329387584e-9 +Bls12_381_mulMlResult/72/72,3.0231276461711553e-6,3.022315855413137e-6,3.023948492481344e-6,2.8621917975663554e-9,2.3414039744707887e-9,3.6161685342657243e-9 +Bls12_381_mulMlResult/72/72,3.0253046318587445e-6,3.024614618948491e-6,3.0259324940880605e-6,2.2560128538997348e-9,1.8685667359449942e-9,2.935644773368155e-9 +Bls12_381_mulMlResult/72/72,3.0262306826774265e-6,3.025105663601665e-6,3.0272623970274567e-6,3.653894641203136e-9,3.078694097645759e-9,4.628037616861403e-9 +Bls12_381_mulMlResult/72/72,3.0186720885368147e-6,3.017673438124669e-6,3.0196993711974968e-6,3.668338441267514e-9,2.998173881479035e-9,4.70300452958185e-9 +Bls12_381_finalVerify/72/72,3.3464157986091606e-4,3.3457493151369645e-4,3.347707987687302e-4,3.124499137443514e-7,1.8582958508788535e-7,5.62424997896621e-7 +Bls12_381_finalVerify/72/72,3.3449602058938576e-4,3.344006937706188e-4,3.345769451432003e-4,2.86651819911136e-7,2.2454150218144724e-7,3.8427955486826496e-7 +Bls12_381_finalVerify/72/72,3.344768359462646e-4,3.343868359476573e-4,3.3464458004085903e-4,3.836075344933151e-7,2.490820082821171e-7,6.857148211085573e-7 +Bls12_381_finalVerify/72/72,3.346127802483149e-4,3.3454831003522123e-4,3.3471887405729e-4,2.8028720375213344e-7,2.0115639681326247e-7,4.618409213165711e-7 +Bls12_381_finalVerify/72/72,3.345277666070578e-4,3.3443848302353626e-4,3.346332096305177e-4,3.217169983422932e-7,2.6736513837525824e-7,4.113391380583127e-7 +Bls12_381_finalVerify/72/72,3.346418601614702e-4,3.345664652208278e-4,3.34723239740821e-4,2.475731927073542e-7,2.014824480517306e-7,3.280701656476807e-7 +Bls12_381_finalVerify/72/72,3.346001131817303e-4,3.3451708579750066e-4,3.3468136154028613e-4,2.7644489204048385e-7,2.1516920146027326e-7,3.855697907847766e-7 +Bls12_381_finalVerify/72/72,3.345941061700784e-4,3.3452938094686907e-4,3.3468891939506727e-4,2.664805491263272e-7,1.8477866740652306e-7,3.9900605740773663e-7 +Bls12_381_finalVerify/72/72,3.345319252286459e-4,3.344633322704428e-4,3.346054003879145e-4,2.448126181217268e-7,1.9521199534017576e-7,3.172865801760073e-7 +Bls12_381_finalVerify/72/72,3.3461461235576175e-4,3.3451572886847346e-4,3.347192326054934e-4,3.31340071033976e-7,2.475608710880853e-7,5.167956470712818e-7 +Bls12_381_finalVerify/72/72,3.345241183993841e-4,3.3441648239870315e-4,3.3463151192148773e-4,3.6258384665020794e-7,2.8275824450387354e-7,5.028536090188055e-7 +Bls12_381_finalVerify/72/72,3.34597971139742e-4,3.345268716076411e-4,3.346996379123385e-4,2.6920838717358605e-7,1.879369978260811e-7,4.3797212333448613e-7 +Bls12_381_finalVerify/72/72,3.3453987986368215e-4,3.344722521489584e-4,3.346125551895155e-4,2.3380237455634701e-7,1.9034767681328876e-7,2.8929413033608236e-7 +Bls12_381_finalVerify/72/72,3.3453618035258174e-4,3.3446010010819053e-4,3.346072109909056e-4,2.49555438038546e-7,2.058858249284505e-7,3.1925440609741323e-7 +Bls12_381_finalVerify/72/72,3.346776765418683e-4,3.3460947412061254e-4,3.347474082790404e-4,2.4123299947872293e-7,1.8869252399617334e-7,3.103982756670518e-7 +Bls12_381_finalVerify/72/72,3.346343277389338e-4,3.3456431772206993e-4,3.3470763797933484e-4,2.4399219400545576e-7,1.975076287852062e-7,3.240958264711388e-7 +Bls12_381_finalVerify/72/72,3.346511920488865e-4,3.345903844953302e-4,3.347195287243687e-4,1.9955366779789585e-7,1.6840100843722938e-7,2.43439016375588e-7 +Bls12_381_finalVerify/72/72,3.3461815753887226e-4,3.3455418285412044e-4,3.347153321508637e-4,2.5956166648333737e-7,1.8034473091722682e-7,4.2213876907708135e-7 +Bls12_381_finalVerify/72/72,3.3470384633679e-4,3.3463982738665503e-4,3.347574804743585e-4,2.0693189848036609e-7,1.693694621581469e-7,2.5249823758023586e-7 +Bls12_381_finalVerify/72/72,3.3474455203353807e-4,3.3467072982467283e-4,3.348175796418136e-4,2.5718184413047235e-7,2.0694241030518854e-7,3.343602869555392e-7 +Bls12_381_finalVerify/72/72,3.346587261135987e-4,3.346069134328498e-4,3.3471324030394996e-4,1.8175861751264784e-7,1.47598741220075e-7,2.31970897501013e-7 +Bls12_381_finalVerify/72/72,3.3477619152598513e-4,3.346865353553892e-4,3.348592055643762e-4,2.9816176533798585e-7,2.1692015244557036e-7,4.5726258432462205e-7 +Bls12_381_finalVerify/72/72,3.347600384753145e-4,3.346953138506018e-4,3.348216869040869e-4,2.2075347426131778e-7,1.9085093051834637e-7,2.715131313552036e-7 +Bls12_381_finalVerify/72/72,3.3472606783859166e-4,3.346467284228406e-4,3.347907807215274e-4,2.3747948419416964e-7,1.8563549340057606e-7,3.1098245915824547e-7 +Bls12_381_finalVerify/72/72,3.348647659301064e-4,3.3479446395496003e-4,3.3493661313202863e-4,2.338255418378592e-7,1.8597162600817325e-7,2.9533687255192183e-7 +Bls12_381_finalVerify/72/72,3.3491731364423234e-4,3.348514730147233e-4,3.349885353792418e-4,2.303439628444954e-7,1.9494022716242603e-7,2.781589973631357e-7 +Bls12_381_finalVerify/72/72,3.349090296837493e-4,3.3485241800577486e-4,3.349570420653698e-4,1.7193150577392668e-7,1.379821060485662e-7,2.124620996625169e-7 +Bls12_381_finalVerify/72/72,3.3481167667239977e-4,3.3475977415945996e-4,3.348799613500824e-4,2.002985325550827e-7,1.6489031597366405e-7,2.513658550396704e-7 +Bls12_381_finalVerify/72/72,3.3489267969545144e-4,3.348034236633847e-4,3.3496121506189423e-4,2.559787296504162e-7,1.990731595627364e-7,3.3109316212683187e-7 +Bls12_381_finalVerify/72/72,3.348445612830268e-4,3.3474962515488355e-4,3.349143331270595e-4,2.847051469430301e-7,2.087282386260806e-7,3.9764758448910344e-7 +Bls12_381_finalVerify/72/72,3.347792824960648e-4,3.3469282199806124e-4,3.3485765588380336e-4,2.758958132570517e-7,2.274933950064375e-7,3.599182669805658e-7 +Bls12_381_finalVerify/72/72,3.347869380660718e-4,3.3473879540616986e-4,3.348350968417055e-4,1.6714900563609514e-7,1.398076736709853e-7,2.1280622553652234e-7 +Bls12_381_finalVerify/72/72,3.3480525435574787e-4,3.347364200770787e-4,3.3489058569616335e-4,2.4612494858582036e-7,2.0248446952913921e-7,3.055590715854424e-7 +Bls12_381_finalVerify/72/72,3.348278099826561e-4,3.347456405475772e-4,3.3488989463536275e-4,2.280047554786816e-7,1.6827611770111717e-7,3.5794987426247753e-7 +Bls12_381_finalVerify/72/72,3.348120215544154e-4,3.3474683893645993e-4,3.348722401697611e-4,2.189210032524087e-7,1.7333157482535364e-7,3.1765555564769785e-7 +Bls12_381_finalVerify/72/72,3.3485192944310093e-4,3.347722865743975e-4,3.349217974116363e-4,2.4404199953540085e-7,1.8770043225452816e-7,3.5484142253611266e-7 +Bls12_381_finalVerify/72/72,3.348756221054001e-4,3.348250737457171e-4,3.349400488710852e-4,1.8922524668001512e-7,1.4964326802301108e-7,2.548358473456608e-7 +Bls12_381_finalVerify/72/72,3.345683220353074e-4,3.345154734505931e-4,3.346365892852631e-4,2.0159420589747818e-7,1.6537470529950688e-7,2.4823792962426223e-7 +Bls12_381_finalVerify/72/72,3.345259940416763e-4,3.3445432425266295e-4,3.346289620386873e-4,2.8490739530882657e-7,2.1612618778567904e-7,4.478036857749599e-7 +Bls12_381_finalVerify/72/72,3.3454978993841585e-4,3.344931607588909e-4,3.346194753265409e-4,2.0952170896143638e-7,1.71325289070094e-7,2.7997218108888373e-7 +Bls12_381_finalVerify/72/72,3.3458771356142215e-4,3.3451015716333697e-4,3.3471774114075093e-4,3.194016698973948e-7,2.4455787014026015e-7,4.88385921247198e-7 +Bls12_381_finalVerify/72/72,3.346249255543979e-4,3.3456219721791534e-4,3.347008235591015e-4,2.41480163950386e-7,1.9928522318158427e-7,3.0268512531416157e-7 +Bls12_381_finalVerify/72/72,3.3464665608436475e-4,3.3456628907147656e-4,3.3473044157162994e-4,2.7502292477928905e-7,2.1220200043127051e-7,4.1422050122683646e-7 +Bls12_381_finalVerify/72/72,3.3464322146592077e-4,3.3454859571883304e-4,3.347302774920055e-4,2.912542379486517e-7,2.354914338685545e-7,3.8262142589313393e-7 +Bls12_381_finalVerify/72/72,3.346241356632568e-4,3.3455498268700114e-4,3.347214492067696e-4,2.7302874438505615e-7,1.8680853943764372e-7,4.658000151262138e-7 +Bls12_381_finalVerify/72/72,3.3463246894341976e-4,3.345751064353281e-4,3.3469965927272993e-4,2.1548781585031864e-7,1.7145281807207236e-7,2.7588031766478395e-7 +Bls12_381_finalVerify/72/72,3.3458055868075407e-4,3.3448389704097004e-4,3.346970988128039e-4,3.4505129713160407e-7,2.524603928706027e-7,5.697092318880629e-7 +Bls12_381_finalVerify/72/72,3.346315386644733e-4,3.345547712930751e-4,3.3471050326058154e-4,2.5975424356152807e-7,2.1099897908329166e-7,3.3458071703662695e-7 +Bls12_381_finalVerify/72/72,3.34541598752118e-4,3.344645864972959e-4,3.3462662450461065e-4,2.7392819073119433e-7,2.2367767169554597e-7,4.082980597734315e-7 +Bls12_381_finalVerify/72/72,3.34539212596278e-4,3.3445341681679664e-4,3.34634844695647e-4,3.0087500813883556e-7,2.4692132951719503e-7,3.7193418325018664e-7 +Bls12_381_finalVerify/72/72,3.346597822637775e-4,3.3458304295775335e-4,3.347541304040477e-4,2.7702550517009077e-7,2.2731097462368966e-7,3.628264507025591e-7 +Bls12_381_finalVerify/72/72,3.3479547635372815e-4,3.347037465193488e-4,3.349089457587921e-4,3.459821592645992e-7,2.652262965463158e-7,5.251026845654372e-7 +Bls12_381_finalVerify/72/72,3.3488771952010877e-4,3.3482570936854624e-4,3.349564875331467e-4,2.2534435587884533e-7,1.7839031990431862e-7,2.996633641157644e-7 +Bls12_381_finalVerify/72/72,3.3476282445927944e-4,3.3467484275168823e-4,3.348495018382883e-4,2.8749508846072586e-7,2.2948538013591898e-7,3.570538700665679e-7 +Bls12_381_finalVerify/72/72,3.3479391732624606e-4,3.3472056081622727e-4,3.3486929118597725e-4,2.5406517492735456e-7,1.949875686519101e-7,3.8334405665013266e-7 +Bls12_381_finalVerify/72/72,3.3467510025245926e-4,3.345858851863086e-4,3.3477836989811066e-4,3.090667380122909e-7,2.49814211322119e-7,3.930182662916599e-7 +Bls12_381_finalVerify/72/72,3.347962912038059e-4,3.3468744409173194e-4,3.348784255605182e-4,3.055007150912423e-7,2.3038579522825005e-7,4.170547227853427e-7 +Bls12_381_finalVerify/72/72,3.347101951434696e-4,3.346291365002096e-4,3.347823310212086e-4,2.546482517005693e-7,1.9597129836112379e-7,3.788550585501155e-7 +Bls12_381_finalVerify/72/72,3.348284674830234e-4,3.3474998629748126e-4,3.348897372291999e-4,2.3123264390180828e-7,1.877114677466305e-7,3.025167618261891e-7 +Bls12_381_finalVerify/72/72,3.3482878316956735e-4,3.347671122914499e-4,3.3491345088321043e-4,2.3745075214012755e-7,1.8616115865935248e-7,3.318118836542458e-7 +Bls12_381_finalVerify/72/72,3.347667316301625e-4,3.346954675664377e-4,3.3482855957030634e-4,2.226540641229047e-7,1.8148776474677806e-7,2.810643347755442e-7 +Bls12_381_finalVerify/72/72,3.3475531154040486e-4,3.346749334669749e-4,3.348231558457446e-4,2.482892243185995e-7,1.8817873856969518e-7,3.14986867005265e-7 +Bls12_381_finalVerify/72/72,3.3485289840426695e-4,3.347995564369435e-4,3.349142756784926e-4,1.8992403640936687e-7,1.588855470951311e-7,2.3253510071336014e-7 +Bls12_381_finalVerify/72/72,3.348048242910015e-4,3.347402804976255e-4,3.348778644383624e-4,2.1558115273583954e-7,1.6997434244452602e-7,3.085179771909931e-7 +Bls12_381_finalVerify/72/72,3.347026949281128e-4,3.346349295864327e-4,3.3479661979614133e-4,2.618124763784274e-7,2.095545548835327e-7,3.7069814484361437e-7 +Bls12_381_finalVerify/72/72,3.3461630560175867e-4,3.345137324987815e-4,3.3471555842321503e-4,3.4043110501386934e-7,2.691022263469878e-7,4.530994375963342e-7 +Bls12_381_finalVerify/72/72,3.346628039896483e-4,3.3458508412383825e-4,3.3486879916084454e-4,3.609783840413398e-7,1.889013427572372e-7,6.715415803865074e-7 +Bls12_381_finalVerify/72/72,3.346053297963243e-4,3.345337405262864e-4,3.346663623709094e-4,2.2235870042003976e-7,1.6525657588301814e-7,2.9909152530147574e-7 +Bls12_381_finalVerify/72/72,3.34662772690498e-4,3.3457010441839723e-4,3.348304365544086e-4,4.034772822145225e-7,2.8950505759686936e-7,6.570570250573162e-7 +Bls12_381_finalVerify/72/72,3.3456254914548684e-4,3.345036578346474e-4,3.346388076012922e-4,2.1875072963503693e-7,1.5902786856278178e-7,3.246160967966227e-7 +Bls12_381_finalVerify/72/72,3.3459848279241637e-4,3.3449330232598065e-4,3.348003890066205e-4,4.851743627542338e-7,2.8077708091171106e-7,8.711997081590743e-7 +Bls12_381_finalVerify/72/72,3.345046682179053e-4,3.344031561618852e-4,3.3459547368924514e-4,3.282374857744581e-7,2.590890809037713e-7,4.3097801818968204e-7 +Bls12_381_finalVerify/72/72,3.346023511607874e-4,3.3453380467616926e-4,3.3471472996132875e-4,2.744723867562086e-7,1.9726771833377145e-7,4.277978538366554e-7 +Bls12_381_finalVerify/72/72,3.3458079905298904e-4,3.3451928971049526e-4,3.3467223070718583e-4,2.540063610300685e-7,2.0081080068825617e-7,3.456630501909837e-7 +Bls12_381_finalVerify/72/72,3.346179022941111e-4,3.3455078970305547e-4,3.346820370863703e-4,2.2963012169624942e-7,1.889726167141792e-7,2.848768252587787e-7 +Bls12_381_finalVerify/72/72,3.346205743970852e-4,3.3455517270915324e-4,3.347503079718517e-4,3.13836757728727e-7,1.7861225930237663e-7,5.63538113669778e-7 +Bls12_381_finalVerify/72/72,3.347285522173233e-4,3.3464719254808163e-4,3.34798193162882e-4,2.536172344484466e-7,1.9836010860796722e-7,3.2327510976479204e-7 +Bls12_381_finalVerify/72/72,3.346845513795956e-4,3.346075284367911e-4,3.3476098679882036e-4,2.5429696706860215e-7,2.0329820870983763e-7,3.2297936001258935e-7 +Bls12_381_finalVerify/72/72,3.347436523293923e-4,3.346824546274393e-4,3.348055131489095e-4,2.1756409291399727e-7,1.8486320176003525e-7,2.794959219153881e-7 +Bls12_381_finalVerify/72/72,3.347393815518685e-4,3.346713666978539e-4,3.3480683441882033e-4,2.3106132119279527e-7,1.938373687537384e-7,2.908214667918304e-7 +Bls12_381_finalVerify/72/72,3.3481373631914736e-4,3.3474243540896216e-4,3.3490130601507246e-4,2.486145122093018e-7,1.9908913384423183e-7,2.9981548211602193e-7 +Bls12_381_finalVerify/72/72,3.3468779879439214e-4,3.346188409929314e-4,3.347491065330384e-4,2.0954208093303864e-7,1.748573447478275e-7,2.588615471362113e-7 +Bls12_381_finalVerify/72/72,3.34698458447024e-4,3.346154734477997e-4,3.347721527093963e-4,2.5951776801847865e-7,2.0188410390582086e-7,3.325911059784922e-7 +Bls12_381_finalVerify/72/72,3.347546284378785e-4,3.3467951964116706e-4,3.348290045939257e-4,2.525562762726258e-7,2.0640833286897464e-7,3.176443526556082e-7 +Bls12_381_finalVerify/72/72,3.3467013280219813e-4,3.3459161819589294e-4,3.347470023590608e-4,2.5718248734176996e-7,1.8919440147338865e-7,3.5784663991397547e-7 +Bls12_381_finalVerify/72/72,3.345002268471628e-4,3.343973076279642e-4,3.3460912333167867e-4,3.3387558591935484e-7,2.3236134780797879e-7,4.93277176378599e-7 +Bls12_381_finalVerify/72/72,3.3450777137226945e-4,3.344590057569809e-4,3.3456508628454943e-4,1.7614555520832566e-7,1.3136465747107577e-7,2.4579030745297684e-7 +Bls12_381_finalVerify/72/72,3.3459458471574003e-4,3.3452600103924966e-4,3.3468531590650976e-4,2.55578610993151e-7,1.914308353392557e-7,3.5495538935869447e-7 +Bls12_381_finalVerify/72/72,3.345340929284194e-4,3.344597078187805e-4,3.3463070637303476e-4,2.8897774696014876e-7,2.2384217320704804e-7,4.203634662945092e-7 +Bls12_381_finalVerify/72/72,3.346582115514784e-4,3.345934793376543e-4,3.347308639782764e-4,2.3702214752575178e-7,1.9188523819911764e-7,3.1842453071619927e-7 +Bls12_381_finalVerify/72/72,3.346421005757909e-4,3.345780878203359e-4,3.347213266745841e-4,2.3455476644150006e-7,1.7437343532930988e-7,2.981234882620547e-7 +Bls12_381_finalVerify/72/72,3.345565805052802e-4,3.344732776957124e-4,3.3464982684891726e-4,3.007984858431233e-7,2.2611220098496913e-7,4.1282169810131407e-7 +Bls12_381_finalVerify/72/72,3.3463047048294263e-4,3.345626638248779e-4,3.3471238191047127e-4,2.5549239838838084e-7,2.0911041817627272e-7,3.114050961245048e-7 +Bls12_381_finalVerify/72/72,3.348847238562971e-4,3.347122246078857e-4,3.353990611681216e-4,9.768839663511381e-7,2.0482032123483634e-7,1.8508174903276752e-6 +Bls12_381_finalVerify/72/72,3.3477752064789396e-4,3.3467903169340013e-4,3.348384882744929e-4,2.537585052788157e-7,1.7260107972268975e-7,3.8046577328305134e-7 +Bls12_381_finalVerify/72/72,3.348738514277981e-4,3.3481954258814817e-4,3.3492531134703135e-4,1.902550588376981e-7,1.5388690678124454e-7,2.771746414795154e-7 +Bls12_381_finalVerify/72/72,3.348654127367372e-4,3.347610941072667e-4,3.349479331963995e-4,3.0631634638804367e-7,2.3035728587006627e-7,4.660864550823145e-7 +Bls12_381_finalVerify/72/72,3.3489424318009604e-4,3.3479133669822315e-4,3.3499786547232946e-4,3.464461229774397e-7,2.824006985528634e-7,4.259843107063618e-7 +Bls12_381_finalVerify/72/72,3.348620910602992e-4,3.347918338723425e-4,3.349299288564491e-4,2.3489922627549957e-7,1.8969142707925734e-7,2.994055019946151e-7 +Bls12_381_finalVerify/72/72,3.3485617778116524e-4,3.3477147312470595e-4,3.3492643756811134e-4,2.626624472766396e-7,2.0398473780285024e-7,3.672593146707853e-7 +ChooseData/9,1.4195791215299441e-6,1.4191627874796368e-6,1.4199179431678863e-6,1.196636217331573e-9,9.64130789376992e-10,1.5463454597584459e-9 +ChooseData/6,1.4203916704939228e-6,1.4199655404588345e-6,1.421082232259444e-6,1.7359821181180108e-9,1.2849731111948686e-9,2.6302453765741767e-9 +ChooseData/9,1.4199031563684368e-6,1.4196155820382576e-6,1.4202089495059772e-6,9.950918751926672e-10,8.114305897431031e-10,1.323527683134096e-9 +ChooseData/14,1.4185788704365537e-6,1.4180731642778108e-6,1.4191131950009699e-6,1.852787133743231e-9,1.506254297712693e-9,2.298282325898973e-9 +ChooseData/6,1.4206546484936178e-6,1.420267568579428e-6,1.4210509395929238e-6,1.2491529872926855e-9,1.064338260829564e-9,1.4603631853373854e-9 +ChooseData/14,1.4187160733972975e-6,1.4182617875257659e-6,1.4191449485283276e-6,1.5573615569998103e-9,1.2967596194427114e-9,1.874693729472282e-9 +ChooseData/14,1.425400320436375e-6,1.4238037342366483e-6,1.4267581594085064e-6,4.932120293138452e-9,4.3299926448393664e-9,5.413149732642453e-9 +ChooseData/6,1.419857303889329e-6,1.4193792903172869e-6,1.4202775961477088e-6,1.5248332397193167e-9,1.3036192540783289e-9,1.8217441885802315e-9 +ChooseData/14,1.4237306174548955e-6,1.4234415497532887e-6,1.424066333738742e-6,1.072052032955092e-9,8.679881102456903e-10,1.3903604588421197e-9 +ChooseData/14,1.4228860234519283e-6,1.422493934065921e-6,1.4233028028987028e-6,1.3915837027503516e-9,1.1738781992534386e-9,1.704643730609615e-9 +ChooseData/143,1.4221089620652554e-6,1.4215646923146057e-6,1.4226936166877375e-6,1.889280068921245e-9,1.6082306355256025e-9,2.2227313248195864e-9 +ChooseData/12,1.4288869234657331e-6,1.4284824704363138e-6,1.4293113063435396e-6,1.3958080907472083e-9,1.228923980161343e-9,1.6227544822740652e-9 +ChooseData/36,1.4345691444767134e-6,1.4338185363862198e-6,1.435342260752412e-6,2.4534085212000043e-9,2.1465996873200825e-9,2.8371444139722495e-9 +ChooseData/149,1.418176934953915e-6,1.4176312622119866e-6,1.4189761969594034e-6,2.2058671346710014e-9,1.637374614002667e-9,3.5266608714712183e-9 +ChooseData/11,1.4323958729861627e-6,1.431273466035965e-6,1.4337888694063807e-6,4.464336868931209e-9,3.837612359570356e-9,4.995973101669056e-9 +ChooseData/12,1.4290953824413431e-6,1.4287242389697054e-6,1.4295662301636876e-6,1.364289265994783e-9,1.178756869670213e-9,1.671068009806076e-9 +ChooseData/133,1.4225936609661923e-6,1.4219294463969753e-6,1.4231779787846582e-6,2.036334671126159e-9,1.577913705083042e-9,2.8057622190840356e-9 +ChooseData/4,1.4239918277244596e-6,1.4236733524787012e-6,1.4243428983063172e-6,1.126622264028685e-9,9.327773451139214e-10,1.4084294615413737e-9 +ChooseData/45,1.4230313541229104e-6,1.4227350731787153e-6,1.423396941340202e-6,1.1097017498222332e-9,8.207309775750201e-10,1.6694486230891262e-9 +ChooseData/173,1.4189972347571628e-6,1.4186646829672422e-6,1.4193438243689013e-6,1.1542897053000819e-9,9.4766221545773e-10,1.4078428754363757e-9 +ChooseData/473,1.4255852253300293e-6,1.4249602498785312e-6,1.4261837613391662e-6,2.0825367273248473e-9,1.7305441499784767e-9,2.6306749745593012e-9 +ChooseData/212,1.4185201169017345e-6,1.418152172433845e-6,1.4188874806470351e-6,1.2133684914418199e-9,1.041528692343679e-9,1.5276952322882718e-9 +ChooseData/107,1.4263436027705406e-6,1.4258033410728947e-6,1.4268413825509166e-6,1.7263011016342598e-9,1.505461205386623e-9,2.055587794604237e-9 +ChooseData/254,1.4238863411988168e-6,1.4234983975190144e-6,1.4242583260141388e-6,1.3115296158102552e-9,1.1395072289894866e-9,1.5822931745053356e-9 +ChooseData/463,1.4306795936333804e-6,1.4292295972327328e-6,1.4319174061304503e-6,4.879664682601747e-9,4.4925293503583e-9,5.4144976395705465e-9 +ChooseData/165,1.4313361046711216e-6,1.4309111421956056e-6,1.4321555010941707e-6,1.875791399665082e-9,1.269963393941154e-9,3.3281045605325945e-9 +ChooseData/4,1.435804817143675e-6,1.4341993700429706e-6,1.437253519256624e-6,5.179367534805093e-9,4.828618586062197e-9,5.6371523359270936e-9 +ChooseData/191,1.430476989719477e-6,1.4300519555092984e-6,1.430944730819417e-6,1.537638763850218e-9,1.3074047334713687e-9,1.8154730332154758e-9 +ChooseData/730,1.4293523130160802e-6,1.4289711420054135e-6,1.4298364326992957e-6,1.4364361848182338e-9,1.1273495916400087e-9,1.869457651249738e-9 +ChooseData/705,1.4230577605152595e-6,1.4224069274767666e-6,1.4237350216494787e-6,2.2453490149747476e-9,1.914507681071342e-9,2.6800273456807183e-9 +ChooseData/44,1.4302846879022463e-6,1.4299116172789372e-6,1.4306073996174023e-6,1.1909824546858157e-9,9.617041740173963e-10,1.6092266266071995e-9 +ChooseData/9,1.4270260840500571e-6,1.4265751561772579e-6,1.4275223526451853e-6,1.5307929407841928e-9,1.3644875345618805e-9,1.7486771770421037e-9 +ChooseData/44,1.4218327113714975e-6,1.421333926838968e-6,1.4226355984399217e-6,2.1294985263395074e-9,1.5514428781728033e-9,3.32011445585896e-9 +ChooseData/29,1.432477275286859e-6,1.4317289948144515e-6,1.4332159219988834e-6,2.5647191888116406e-9,2.241190648309592e-9,2.9437461954912274e-9 +ChooseData/74,1.423510455259942e-6,1.4229791490087643e-6,1.4240269917677054e-6,1.688963823527652e-9,1.391856233030942e-9,2.050646864387863e-9 +ChooseData/74,1.4230209050131507e-6,1.4225333715030234e-6,1.423625975069763e-6,1.8627256088760844e-9,1.4511495093162866e-9,2.6532466262816724e-9 +ChooseData/29,1.4254815200870215e-6,1.425094428602564e-6,1.4258417200030312e-6,1.2495038795426574e-9,1.0920713727090366e-9,1.516903895783953e-9 +ChooseData/14,1.4320419375158962e-6,1.429948422401421e-6,1.4339391893802434e-6,6.859335459068021e-9,6.1603019231237154e-9,7.689127324241646e-9 +ChooseData/49,1.4314287641271385e-6,1.4307438954723888e-6,1.4322375168790317e-6,2.4169604316875237e-9,1.9345334085358643e-9,3.01365897104695e-9 +ChooseData/14,1.4254636041297795e-6,1.4239657472132283e-6,1.4269151428002381e-6,5.068473174527024e-9,4.5010744125709076e-9,5.789582732520252e-9 +ChooseData/203,1.4228891827955178e-6,1.4225332652019367e-6,1.423342259923813e-6,1.3493283179080612e-9,1.0369873071497562e-9,2.033762884622192e-9 +ChooseData/305,1.4257007014926755e-6,1.424427112636458e-6,1.426781037414304e-6,3.89423975244773e-9,3.530648901226291e-9,4.352868891899368e-9 +ChooseData/518,1.425343642631033e-6,1.4250037114865623e-6,1.4257009171317177e-6,1.1849226448915436e-9,9.587472445141367e-10,1.5080710457665546e-9 +ChooseData/503,1.4190258822712182e-6,1.4184543621251617e-6,1.4202915118054064e-6,2.6673460613646703e-9,1.0415351711893466e-9,5.464443092928084e-9 +ChooseData/79,1.4200884567580024e-6,1.4196276621986996e-6,1.4205394383526966e-6,1.5612524067960217e-9,1.2942212258753445e-9,1.9363744698603995e-9 +ChooseData/2133,1.421569360478322e-6,1.4198508869570215e-6,1.423490014710542e-6,6.316737662512022e-9,5.3607280714601796e-9,7.0882769666713315e-9 +ChooseData/414,1.418273048959145e-6,1.4178258732664168e-6,1.4186903690361386e-6,1.449440553530015e-9,1.1334310032587105e-9,1.8793950768672606e-9 +ChooseData/1093,1.4263310751199074e-6,1.4255941987909129e-6,1.4271659581659738e-6,2.4849255969966096e-9,2.0944589544002546e-9,2.9504233933808504e-9 +ChooseData/1186,1.4403473651080757e-6,1.4397737143237156e-6,1.4408944693748119e-6,1.7680666524140049e-9,1.4866565467193412e-9,2.1539662259897962e-9 +ChooseData/645,1.4244972654424828e-6,1.4242197086371068e-6,1.424733293783213e-6,8.594361632954558e-10,7.073951759504695e-10,1.0620943764025721e-9 +ChooseData/273,1.4248007305759072e-6,1.424408683992027e-6,1.4253084688667052e-6,1.44008024896211e-9,1.2153099073417226e-9,1.7535479717410265e-9 +ChooseData/93,1.4274039331935685e-6,1.4271458074274049e-6,1.4277691196173083e-6,1.0405021632665284e-9,8.635248526300952e-10,1.3219344585463579e-9 +ChooseData/55,1.4272829288699115e-6,1.4268057553823446e-6,1.4277129841451728e-6,1.4789001291633663e-9,1.2350451334484318e-9,1.8054580525538828e-9 +ChooseData/4,1.4243860929943788e-6,1.4240312689276963e-6,1.424806260294296e-6,1.2838474216498952e-9,1.0657142434086172e-9,1.6507378267020546e-9 +ChooseData/2018,1.4196931726944249e-6,1.4185853677087629e-6,1.4210517152810895e-6,4.051529667734267e-9,3.5306231301692635e-9,4.599538053576278e-9 +ChooseData/525,1.427059546619653e-6,1.4266477097681638e-6,1.4274720585087157e-6,1.4775179960932322e-9,1.2666475377230246e-9,1.7160344084192152e-9 +ChooseData/291,1.4336580743332917e-6,1.4321372528675649e-6,1.435529725928846e-6,5.863147622983116e-9,4.887615020355308e-9,6.61170043823765e-9 +ChooseData/379,1.427622683612222e-6,1.4272787543655984e-6,1.4280430045335756e-6,1.2729976722821285e-9,1.0377424792095947e-9,1.8082931601086988e-9 +ChooseData/208,1.4244208270550312e-6,1.4241404116676432e-6,1.4247480356992443e-6,1.095583804334816e-9,8.334202809634771e-10,1.7338127353661764e-9 +ChooseData/45,1.422586689171988e-6,1.4222133569946855e-6,1.4229911305548614e-6,1.286980782380373e-9,1.0637736879747281e-9,1.7754698554267581e-9 +ChooseData/1862,1.4275367310234908e-6,1.4271997536258616e-6,1.4279483065243373e-6,1.2127801494727134e-9,1.01428555122609e-9,1.4883635526365568e-9 +ChooseData/4,1.4285667774680256e-6,1.4282213640999737e-6,1.4289316525984184e-6,1.2225971224090414e-9,1.039748309540508e-9,1.519056111332428e-9 +ChooseData/1593,1.4297482029606637e-6,1.4293199423592872e-6,1.430154700208652e-6,1.4218079018710094e-9,1.1559858922907542e-9,1.768622716129541e-9 +ChooseData/26617,1.421263983880759e-6,1.4208858393788893e-6,1.421677205683814e-6,1.3851091803655155e-9,1.1260225646244327e-9,1.7748988773054797e-9 +ChooseData/25729,1.4249465465288124e-6,1.4244590309832862e-6,1.4254478396017849e-6,1.6128174249122746e-9,1.3229542754736711e-9,1.9553264076909986e-9 +ChooseData/43,1.4299093020565286e-6,1.4293428218868802e-6,1.4304152381585333e-6,1.7649911061662984e-9,1.4914381339597222e-9,2.145774872896881e-9 +ChooseData/662,1.4266556656516166e-6,1.4262580111886735e-6,1.4270506854946162e-6,1.3081917946541852e-9,1.0667588637552025e-9,1.6843851544502293e-9 +ChooseData/1951,1.4358155876322633e-6,1.434512103009954e-6,1.4372314412424276e-6,4.744928513554237e-9,4.261565759309863e-9,5.251884117656753e-9 +ChooseData/4,1.4223872098957265e-6,1.422052120599143e-6,1.4227718695415256e-6,1.201506795439475e-9,9.575058687733281e-10,1.6378405945521471e-9 +ChooseData/4,1.4208201756454866e-6,1.4204301267973498e-6,1.4211791212803893e-6,1.2862323439319911e-9,1.052865154364967e-9,1.5528483522136128e-9 +ChooseData/940,1.4199311744059155e-6,1.4188322319800324e-6,1.4210328202692661e-6,3.8227941247466435e-9,3.4852494224194785e-9,4.287787721061489e-9 +ChooseData/4,1.4252500769404409e-6,1.42485625091357e-6,1.4257407700780639e-6,1.451081181521815e-9,1.2132838197643179e-9,1.7589886880560798e-9 +ChooseData/694,1.4261484288865236e-6,1.4257101762048522e-6,1.4265999025749337e-6,1.490689793828296e-9,1.3013113001079468e-9,1.7711347584368617e-9 +ChooseData/4,1.4255399386760525e-6,1.4248838238232108e-6,1.4261534003025163e-6,2.063127006892152e-9,1.797391784381888e-9,2.4596569725622847e-9 +ChooseData/797,1.4168942164607755e-6,1.4164152395792628e-6,1.4173265360981022e-6,1.5344535610808003e-9,1.2986597582295056e-9,1.8578673683978723e-9 +ChooseData/347,1.4242993569498052e-6,1.4239393714167409e-6,1.4247032557289442e-6,1.2694188550969897e-9,1.0307721070006708e-9,1.6466688027314214e-9 +ChooseData/4,1.4284178862699636e-6,1.4277387632549754e-6,1.4291916332295602e-6,2.6831330480387115e-9,2.0965280889892845e-9,3.5149005675556922e-9 +ChooseData/4,1.429710574496491e-6,1.429251174636413e-6,1.430245041959497e-6,1.7141831325676185e-9,1.28936844847237e-9,2.2427620779020756e-9 +ChooseData/845,1.4245205779428613e-6,1.423154045629806e-6,1.425636123410356e-6,3.957046251444219e-9,3.33162130712853e-9,4.6151713928539564e-9 +ChooseData/13,1.4259651432609847e-6,1.4253347793811462e-6,1.4265329136607347e-6,2.0522685243348805e-9,1.6433822441476828e-9,2.6020172474423783e-9 +ChooseData/5127,1.426300502959901e-6,1.4259083883517316e-6,1.4267014456248724e-6,1.3236824836309341e-9,1.0830537018320258e-9,1.5833284691136354e-9 +ChooseData/3566,1.4246274023858997e-6,1.4242070218777764e-6,1.4250895166054117e-6,1.4412032536102808e-9,1.225296375120056e-9,1.8558544356913139e-9 +ChooseData/14563,1.427191028160335e-6,1.4266967458352232e-6,1.4276188126371714e-6,1.4684481738650572e-9,1.2082428705756728e-9,1.8294180610253567e-9 +ChooseData/1324,1.4295798098683536e-6,1.4286172142203314e-6,1.4303805864440843e-6,3.190876711923895e-9,2.6328997289697425e-9,3.803126256915762e-9 +ChooseData/4124,1.4286434187363578e-6,1.4283072378037157e-6,1.4290397864961099e-6,1.246557188201632e-9,1.0111024451012587e-9,1.5886605337911766e-9 +ChooseData/3393,1.4287032239707704e-6,1.4283535599274525e-6,1.4290274578481254e-6,1.1439921111556162e-9,9.194162000182144e-10,1.4305768846601313e-9 +ChooseData/4,1.43341627893259e-6,1.432769867662532e-6,1.434133008137058e-6,2.2698920790526595e-9,1.8371475733008381e-9,2.9285381207108267e-9 +ChooseData/4,1.4281184373688596e-6,1.4275530616086338e-6,1.4287203877427822e-6,1.988106320299905e-9,1.5483061830499094e-9,2.9112371253567774e-9 +ChooseData/18921,1.4281565224908513e-6,1.4276045478450354e-6,1.4286582520454166e-6,1.8419038696852372e-9,1.5924257372766153e-9,2.153011813254655e-9 +ChooseData/22221,1.4193380608017869e-6,1.4189777135921544e-6,1.4196668463692637e-6,1.1085367225083157e-9,9.034623790571491e-10,1.3492313028121753e-9 +ChooseData/27670,1.4199994220125051e-6,1.4194777837271955e-6,1.420578654683767e-6,1.9296614707870684e-9,1.6188630083868312e-9,2.6063651971428024e-9 +ChooseData/1681,1.433931416455221e-6,1.4320859527673247e-6,1.435258370350011e-6,5.309523295899699e-9,4.351799257429712e-9,6.0195372657232104e-9 +ChooseData/1943,1.4281137863944814e-6,1.4265855567042913e-6,1.429763601546575e-6,5.447637302650325e-9,4.723817367908861e-9,5.960507757550349e-9 +ChooseData/227289,1.4234605609432988e-6,1.420993199633899e-6,1.4256112238697462e-6,7.845592137901206e-9,7.412420835069979e-9,8.28949617929537e-9 +ChooseData/1897,1.4281732000307114e-6,1.4274756901777105e-6,1.4287207595100233e-6,2.141652527644066e-9,1.7658628837258766e-9,2.5810457646162427e-9 +ChooseData/8,1.4315522441109378e-6,1.4304852198247797e-6,1.4324905960854902e-6,3.3151862270224587e-9,2.602074742424862e-9,4.1300481270578e-9 +ChooseData/5939,1.4186545300576784e-6,1.418318176140678e-6,1.4191078315775022e-6,1.2838719788454093e-9,1.07078081607035e-9,1.564068871198672e-9 +ChooseData/1662,1.4260317787514462e-6,1.4254414511668668e-6,1.426572979562301e-6,1.9434762519007726e-9,1.651201138884696e-9,2.363547023230931e-9 +ChooseData/29918,1.4325202894575637e-6,1.4318354725710177e-6,1.4331314905377996e-6,2.2724428079029904e-9,1.9597429569980987e-9,2.7367224491049083e-9 +ChooseData/78789,1.4268826386578132e-6,1.4252463777067765e-6,1.4287336871840714e-6,6.103355151301191e-9,5.247710290234438e-9,6.6796932560144144e-9 +ConstrData/1/161,8.616030595442972e-7,8.610540455651715e-7,8.621264615111529e-7,1.740011284325079e-9,1.429920786083002e-9,2.157263767355615e-9 +ConstrData/1/726,8.631432026786354e-7,8.627135841883646e-7,8.635621746382466e-7,1.41710775041454e-9,1.189609922200582e-9,1.7522922140970248e-9 +ConstrData/1/40,8.626895864856546e-7,8.620438299354406e-7,8.633516552366845e-7,2.0925308037467707e-9,1.7208453795044225e-9,2.6690608456233602e-9 +ConstrData/1/25,8.631120843394655e-7,8.624619215943573e-7,8.637233801807703e-7,2.1009786818524133e-9,1.714123920711299e-9,2.7886659854466737e-9 +ConstrData/1/45,8.593557392235873e-7,8.588214750169203e-7,8.599519439160909e-7,1.8770316579646944e-9,1.5741818547138411e-9,2.3107844922401835e-9 +ConstrData/1/514,8.614156285172888e-7,8.608972234750704e-7,8.61897375215308e-7,1.7150285267203853e-9,1.4115141729051919e-9,2.223466965371877e-9 +ConstrData/1/1089,8.631276881991393e-7,8.626364996745321e-7,8.637939987361213e-7,1.8911255609768456e-9,1.559096290767207e-9,2.4331995110218703e-9 +ConstrData/1/1182,8.623365666867949e-7,8.619810755749678e-7,8.627099396423126e-7,1.2073362440953556e-9,9.54489500236978e-10,1.7235035152398447e-9 +ConstrData/1/89,8.645371968830162e-7,8.640824359700887e-7,8.651406727322793e-7,1.8224892766724562e-9,1.4685947383893805e-9,2.276382922443069e-9 +ConstrData/1/51,8.637693008967118e-7,8.631852955767162e-7,8.643629213102618e-7,2.050819979772398e-9,1.761771158954405e-9,2.400427855511596e-9 +ConstrData/1/0,8.62468875393289e-7,8.618225386207741e-7,8.630314530183319e-7,2.0637334801730376e-9,1.692499089032197e-9,2.5351180183327704e-9 +ConstrData/1/287,8.579102804826828e-7,8.572241279868498e-7,8.585869945399211e-7,2.3460588827880123e-9,1.9652273955291486e-9,2.8328405712827253e-9 +ConstrData/1/204,8.616433008752419e-7,8.608930395720953e-7,8.623629952349424e-7,2.5073994783876256e-9,1.987721759434097e-9,3.1470086247774403e-9 +ConstrData/1/1858,8.60220212235639e-7,8.59569572959922e-7,8.60773489060645e-7,1.9433260535076992e-9,1.615364341953583e-9,2.3843143112156664e-9 +ConstrData/1/1589,8.585928945340686e-7,8.579461345451951e-7,8.593251606503077e-7,2.3996297925429646e-9,2.0249081806948002e-9,2.8840366387022854e-9 +ConstrData/1/690,8.610809670326607e-7,8.60510341538675e-7,8.617656417200128e-7,2.054848198523234e-9,1.6913436510700719e-9,2.5506142972815345e-9 +ConstrData/1/0,8.557928060353222e-7,8.55394625742851e-7,8.564371845305133e-7,1.6270547947872738e-9,1.196940224866091e-9,2.425364275078356e-9 +ConstrData/1/0,8.598127723098287e-7,8.588870713499555e-7,8.609017691535353e-7,3.5141970872473474e-9,3.173993917368045e-9,4.0047914795793466e-9 +ConstrData/1/5123,8.580893242065687e-7,8.576416604819072e-7,8.585258549983572e-7,1.4873750547051824e-9,1.2651712414575446e-9,1.7895192519422844e-9 +ConstrData/1/14559,8.580512404126503e-7,8.574669622160371e-7,8.586238614556422e-7,1.960682156570359e-9,1.6401130905060202e-9,2.354073698869807e-9 +ConstrData/2/161,8.590961575268143e-7,8.585871713927473e-7,8.59697448922406e-7,1.8456427595537403e-9,1.5304864819257344e-9,2.4469579540275202e-9 +ConstrData/2/726,8.571693749179738e-7,8.565462823107147e-7,8.578295433114631e-7,2.137913434508039e-9,1.7998360457594332e-9,2.6508588621758303e-9 +ConstrData/2/40,8.591872899965316e-7,8.583867001761267e-7,8.59931632056502e-7,2.477223918050346e-9,2.117545412139443e-9,2.954612654358185e-9 +ConstrData/2/25,8.600034361626836e-7,8.595261570742609e-7,8.60528233561434e-7,1.679002648489608e-9,1.4544010647695296e-9,1.966571086457697e-9 +ConstrData/2/45,8.609888139643111e-7,8.603118749242491e-7,8.616236081610836e-7,2.2515585653424616e-9,1.9578677550625274e-9,2.5687526586516275e-9 +ConstrData/2/514,8.602637415170481e-7,8.594381382233675e-7,8.609575495136875e-7,2.4209587388058155e-9,1.984972242731366e-9,2.8582698631188403e-9 +ConstrData/2/1089,8.570077860449454e-7,8.563698600241767e-7,8.576876029154092e-7,2.3033892702293636e-9,1.894149291771085e-9,2.8800825044961988e-9 +ConstrData/2/1182,8.58561799304264e-7,8.579349861647613e-7,8.591347004207135e-7,1.9783737327197342e-9,1.6755093593161288e-9,2.3858018156094366e-9 +ConstrData/2/89,8.579245802741618e-7,8.574030780512591e-7,8.585195744582661e-7,1.8940898840022757e-9,1.5558609441226064e-9,2.324573922738922e-9 +ConstrData/2/51,8.597288346928885e-7,8.590943865988634e-7,8.602939111420604e-7,2.153730911001014e-9,1.7837428047739084e-9,2.8563270096094243e-9 +ConstrData/2/0,8.577703166571529e-7,8.570110445794307e-7,8.584386412105389e-7,2.3471474749139403e-9,1.985735786814646e-9,2.7062669692523106e-9 +ConstrData/2/287,8.59054624177826e-7,8.583094085848923e-7,8.597522428447924e-7,2.3435678383907796e-9,2.015210102593389e-9,2.8023855801622937e-9 +ConstrData/2/204,8.598014187143755e-7,8.592616485410962e-7,8.60339153208443e-7,1.8252547339888333e-9,1.5469147893163245e-9,2.2113948001175035e-9 +ConstrData/2/1858,8.58006468236617e-7,8.574121562912714e-7,8.586152341761947e-7,1.949601130949145e-9,1.6300370110603266e-9,2.3828166123555542e-9 +ConstrData/2/1589,8.598212186733701e-7,8.592343377372657e-7,8.604066255585657e-7,1.9609339532475704e-9,1.656228548600735e-9,2.3496532975317475e-9 +ConstrData/2/690,8.591035855341485e-7,8.583271072700422e-7,8.599594310322636e-7,2.70549332756652e-9,2.2082034312315016e-9,3.372635253482892e-9 +ConstrData/2/0,8.548831735367894e-7,8.542601281740992e-7,8.556797827246528e-7,2.3370693789436546e-9,2.0116072080395716e-9,2.9086801997968593e-9 +ConstrData/2/0,8.593654269566403e-7,8.586515693600424e-7,8.599176347848549e-7,2.231909112119851e-9,1.7987362761520893e-9,2.8488901532770436e-9 +ConstrData/2/5123,8.588365646632598e-7,8.583104435104791e-7,8.593260108260243e-7,1.817349203949743e-9,1.4472932214186292e-9,2.4139784061189613e-9 +ConstrData/2/14559,8.581819070725223e-7,8.576675402212303e-7,8.58754092455252e-7,1.7935958199637756e-9,1.477421563529292e-9,2.175407504398107e-9 +ConstrData/3/161,8.584792417783445e-7,8.577714692197074e-7,8.591942706765499e-7,2.489527479646244e-9,2.1299321097494888e-9,2.9354543723690784e-9 +ConstrData/3/726,8.574995021311306e-7,8.569842331814241e-7,8.580983489275777e-7,1.927115753038447e-9,1.5814333105426624e-9,2.4075138708990826e-9 +ConstrData/3/40,8.563506290311528e-7,8.557148765758977e-7,8.573343188700318e-7,2.5065436070863916e-9,1.8105689193549894e-9,3.243749352457627e-9 +ConstrData/3/25,8.611687987768975e-7,8.603706938412209e-7,8.620149242989126e-7,2.7652602965646553e-9,2.3445212887291878e-9,3.416189744959852e-9 +ConstrData/3/45,8.592124016896619e-7,8.586333010787341e-7,8.597751271766371e-7,1.8290728217666309e-9,1.50028658278215e-9,2.2650854834798816e-9 +ConstrData/3/514,8.607528295357494e-7,8.601743441637004e-7,8.612712474523582e-7,1.8571831481736602e-9,1.596060515390386e-9,2.1745554668301825e-9 +ConstrData/3/1089,8.591293242081842e-7,8.586362553964873e-7,8.596799025121e-7,1.6994889890896744e-9,1.426963728492854e-9,2.154344774181892e-9 +ConstrData/3/1182,8.612552783840452e-7,8.600044538991372e-7,8.624826437955842e-7,4.037255137432518e-9,3.542489162814772e-9,4.6023454198611166e-9 +ConstrData/3/89,8.614364405629791e-7,8.606542794856835e-7,8.623310282403439e-7,2.8319538764381738e-9,2.354178210814504e-9,3.523580171530036e-9 +ConstrData/3/51,8.606851917156625e-7,8.6002851951526e-7,8.613152123035325e-7,2.1538559822392128e-9,1.7970037028530825e-9,2.596548047870895e-9 +ConstrData/3/0,8.577564787706773e-7,8.573431510981765e-7,8.582714040584437e-7,1.5573188626711724e-9,1.295061235909097e-9,1.9336063718313076e-9 +ConstrData/3/287,8.597759119282972e-7,8.591233807997875e-7,8.603641488473344e-7,2.1319012099038414e-9,1.8599318560311062e-9,2.525620715034116e-9 +ConstrData/3/204,8.583531516028011e-7,8.576736738690233e-7,8.59164231750527e-7,2.5009017556918687e-9,2.091945657383928e-9,3.123471851909095e-9 +ConstrData/3/1858,8.586386487776118e-7,8.58078179679491e-7,8.591081118874064e-7,1.7119823846705824e-9,1.391697716839281e-9,2.1633843384596755e-9 +ConstrData/3/1589,8.574315995261637e-7,8.569548763426869e-7,8.579690117408863e-7,1.659044613983834e-9,1.4227662661820864e-9,2.0427869814295227e-9 +ConstrData/3/690,8.577386399886517e-7,8.571342400201306e-7,8.582214239684338e-7,1.7796837779212185e-9,1.4424096596808813e-9,2.1824086366459582e-9 +ConstrData/3/0,8.607847878250038e-7,8.601241997119214e-7,8.614885272592365e-7,2.335374135028811e-9,1.9295345623009126e-9,2.88166345740287e-9 +ConstrData/3/0,8.585765303334917e-7,8.58151650051593e-7,8.590510356322763e-7,1.488072054857713e-9,1.2434113664853864e-9,1.8833146453048017e-9 +ConstrData/3/5123,8.637584744020267e-7,8.633176042837931e-7,8.642173274472943e-7,1.5763746352072163e-9,1.3437670306297409e-9,1.9796266005481303e-9 +ConstrData/3/14559,8.578817705602467e-7,8.574070897108479e-7,8.583972723875952e-7,1.7272562650853943e-9,1.4621497460489115e-9,2.1259786362227185e-9 +ConstrData/4/161,8.577325168947804e-7,8.57323490338795e-7,8.582134284469794e-7,1.551669994267252e-9,1.283081226456619e-9,1.9919050840323086e-9 +ConstrData/4/726,8.565313315511069e-7,8.556704891900406e-7,8.574464682219289e-7,2.969797898189693e-9,2.5490112383239313e-9,3.5832946004043595e-9 +ConstrData/4/40,8.607648033234313e-7,8.599879641853882e-7,8.614709377273676e-7,2.4646355021098434e-9,2.13288338407751e-9,2.9383784222545547e-9 +ConstrData/4/25,8.563827455228246e-7,8.557453112586389e-7,8.570368514105901e-7,2.2916395770133564e-9,1.9534089956445627e-9,2.8183741260415632e-9 +ConstrData/4/45,8.600926523666158e-7,8.591907603322525e-7,8.609056789947559e-7,2.890899358426279e-9,2.5302081303530914e-9,3.361827894084767e-9 +ConstrData/4/514,8.574192281267848e-7,8.569546848126467e-7,8.578951699310294e-7,1.5868769981717971e-9,1.2694329102205112e-9,2.102453394938219e-9 +ConstrData/4/1089,8.603013789839663e-7,8.597881649476492e-7,8.607583340603136e-7,1.6537854082234112e-9,1.3791089402759607e-9,2.0873242350445417e-9 +ConstrData/4/1182,8.561416135849262e-7,8.556059355592018e-7,8.567827931030393e-7,1.956096713103401e-9,1.6553089435459913e-9,2.3214926592686217e-9 +ConstrData/4/89,8.585387076741692e-7,8.579583434143577e-7,8.591763167133745e-7,2.0913779198230066e-9,1.6397737024135296e-9,2.785592942787534e-9 +ConstrData/4/51,8.598618680889227e-7,8.590026047273638e-7,8.609146181217451e-7,3.2375487566151924e-9,2.7446881540592737e-9,3.845478484604724e-9 +ConstrData/4/0,8.582428633816184e-7,8.577246524519393e-7,8.587413380778182e-7,1.696894701969077e-9,1.4253812079087163e-9,2.1114466358659036e-9 +ConstrData/4/287,8.599603618017958e-7,8.594824685445985e-7,8.604583724097763e-7,1.7258447170067792e-9,1.3937102067148835e-9,2.177795374221685e-9 +ConstrData/4/204,8.580785734249083e-7,8.574650887757165e-7,8.586275252265064e-7,1.9366426903803433e-9,1.5044986896636194e-9,2.9189310115606145e-9 +ConstrData/4/1858,8.59533679335599e-7,8.590062058670281e-7,8.600855483264788e-7,1.717384190756407e-9,1.4269879820060953e-9,2.1273041763561403e-9 +ConstrData/4/1589,8.574389588161203e-7,8.568859915238527e-7,8.579827917978314e-7,1.7669590293415244e-9,1.4878317685053205e-9,2.134267005054836e-9 +ConstrData/4/690,8.609087468621991e-7,8.603425790605743e-7,8.614682988184562e-7,1.8812882874953193e-9,1.4549833792034284e-9,2.8059281003065935e-9 +ConstrData/4/0,8.581548177961009e-7,8.573729354116288e-7,8.589931398975254e-7,2.7600088521623145e-9,2.421878048047408e-9,3.325369863097054e-9 +ConstrData/4/0,8.579878515977346e-7,8.571008179475665e-7,8.586729285715236e-7,2.58605279663956e-9,2.210126736245403e-9,3.164334630129618e-9 +ConstrData/4/5123,8.560557878504241e-7,8.554154147626508e-7,8.568377192628865e-7,2.29548542187968e-9,1.8246506167523448e-9,3.2995696206410753e-9 +ConstrData/4/14559,8.581189655494356e-7,8.577211422219837e-7,8.585855997938284e-7,1.317030362992669e-9,1.0756250211612103e-9,1.6763504919999037e-9 +ConstrData/5/161,8.590863109059587e-7,8.583991616102629e-7,8.598299759688956e-7,2.3632393465098855e-9,2.0440779961375513e-9,2.7697018684640297e-9 +ConstrData/5/726,8.619146305335021e-7,8.614027128721725e-7,8.624814540014405e-7,1.7945846505607175e-9,1.4012625539809454e-9,2.4586052566729526e-9 +ConstrData/5/40,8.585896426535509e-7,8.580492807959709e-7,8.590848009561002e-7,1.6647413654255203e-9,1.4721204443590534e-9,1.9313945040884035e-9 +ConstrData/5/25,8.602548848877716e-7,8.595291668772447e-7,8.608362543478535e-7,2.1157369243056462e-9,1.7212046993719648e-9,2.6480684848881516e-9 +ConstrData/5/45,8.585588780771884e-7,8.578947363570567e-7,8.591045401352726e-7,1.9863388204209627e-9,1.5840873031576745e-9,2.7485537559287686e-9 +ConstrData/5/514,8.575633284605213e-7,8.5696943074017e-7,8.581456519360555e-7,2.050444343119487e-9,1.6509560118571957e-9,2.6772871430973927e-9 +ConstrData/5/1089,8.592293374447015e-7,8.586014237248759e-7,8.597847418299667e-7,1.8966317799445805e-9,1.5050350197060336e-9,2.44076471501867e-9 +ConstrData/5/1182,8.606725185024952e-7,8.600352939512679e-7,8.612745798212473e-7,2.0375509154215688e-9,1.6244189111683634e-9,2.6081720986388904e-9 +ConstrData/5/89,8.608817629476969e-7,8.602380847926887e-7,8.616244063339746e-7,2.214544881991258e-9,1.8583797218070085e-9,2.717522346781034e-9 +ConstrData/5/51,8.62866972681336e-7,8.621513799087829e-7,8.635418631897747e-7,2.2629876451352325e-9,1.872809344069044e-9,2.759622257104347e-9 +ConstrData/5/0,8.581681518704815e-7,8.576727153940735e-7,8.586963153273005e-7,1.6869334304258223e-9,1.4255483058888549e-9,2.037082524597653e-9 +ConstrData/5/287,8.600871087607718e-7,8.59534206131765e-7,8.607050038615675e-7,2.0286763797856085e-9,1.7511905470494234e-9,2.4287326378767774e-9 +ConstrData/5/204,8.602861756883934e-7,8.59288620348309e-7,8.613717395563374e-7,3.653973242290846e-9,3.0756881200937225e-9,4.416480653931054e-9 +ConstrData/5/1858,8.597799824531573e-7,8.591552380670577e-7,8.603314103936319e-7,2.038812232134131e-9,1.526994051413371e-9,2.8728531437916243e-9 +ConstrData/5/1589,8.59321887951894e-7,8.588487609984999e-7,8.597458478737351e-7,1.5017031884383718e-9,1.2137255072326867e-9,1.986545870491262e-9 +ConstrData/5/690,8.597096394101847e-7,8.590015218827863e-7,8.603809166208156e-7,2.2669733296360875e-9,1.9243953618250116e-9,2.734987372532438e-9 +ConstrData/5/0,8.593581432977462e-7,8.585295744907989e-7,8.603441022866901e-7,3.1749461170148505e-9,2.64380787355992e-9,3.948671122470964e-9 +ConstrData/5/0,8.574804117644563e-7,8.569461127457097e-7,8.57961573737048e-7,1.7377361308557899e-9,1.4495651428163873e-9,2.1456737865604935e-9 +ConstrData/5/5123,8.583363714556405e-7,8.576915426673428e-7,8.59074675231314e-7,2.291303769844854e-9,1.898669026858588e-9,2.7815184587700696e-9 +ConstrData/5/14559,8.577589793691988e-7,8.573823769484609e-7,8.581022154124103e-7,1.2011107096908918e-9,1.0082682911094795e-9,1.4769852041033368e-9 +ConstrData/6/161,8.62039958570941e-7,8.613756313853759e-7,8.627485673930643e-7,2.3069192887855976e-9,1.965129667731058e-9,2.783147092079859e-9 +ConstrData/6/726,8.608962758199453e-7,8.604791092407273e-7,8.613618821463063e-7,1.5397350293155404e-9,1.2494113881143342e-9,1.9837023401604132e-9 +ConstrData/6/40,8.593889986433615e-7,8.585701556132169e-7,8.601128272640605e-7,2.4484268675366552e-9,2.068812101298675e-9,2.9243746236070023e-9 +ConstrData/6/25,8.597198527187814e-7,8.592826372290092e-7,8.602071047883746e-7,1.5154026584407708e-9,1.2374179975157159e-9,1.9080715612353954e-9 +ConstrData/6/45,8.613950734918403e-7,8.609504024613873e-7,8.61864153750467e-7,1.564083850583717e-9,1.3019537707278417e-9,2.0175588717665943e-9 +ConstrData/6/514,8.603937219430784e-7,8.595729604795719e-7,8.611827337618168e-7,2.5663053566883688e-9,2.234201350441098e-9,3.0024889856944094e-9 +ConstrData/6/1089,8.57519692797569e-7,8.569983074302927e-7,8.580596025717764e-7,1.764316594348878e-9,1.4803464738868489e-9,2.172212272986772e-9 +ConstrData/6/1182,8.596496732876703e-7,8.590668462525847e-7,8.602333284567132e-7,1.8845783146896362e-9,1.6040331304119469e-9,2.30920646295654e-9 +ConstrData/6/89,8.598845442184348e-7,8.595156094872538e-7,8.603606440753773e-7,1.3920810880893033e-9,1.15389159822941e-9,1.7430325915530402e-9 +ConstrData/6/51,8.624930466949998e-7,8.618853925406742e-7,8.630327644717526e-7,1.866168201123142e-9,1.549088336713632e-9,2.3430977106188926e-9 +ConstrData/6/0,8.594780454940923e-7,8.588694019124883e-7,8.604286345775943e-7,2.4074097945448973e-9,1.7310400101077383e-9,3.9664542450713856e-9 +ConstrData/6/287,8.587614440337475e-7,8.580667214768361e-7,8.59357578171999e-7,2.162728767772589e-9,1.773608047346795e-9,2.8018504740750524e-9 +ConstrData/6/204,8.578581317425522e-7,8.570822397783476e-7,8.588020961193418e-7,2.9560518241755488e-9,2.550582673997039e-9,3.575263220534456e-9 +ConstrData/6/1858,8.580821088269083e-7,8.575402212331784e-7,8.586017236801922e-7,1.8363818798953649e-9,1.5096420365694704e-9,2.4587139047619478e-9 +ConstrData/6/1589,8.566074872382754e-7,8.559437785659389e-7,8.572888446930825e-7,2.192605510782692e-9,1.8228228733446197e-9,2.608271161286636e-9 +ConstrData/6/690,8.576525462942535e-7,8.570103299285798e-7,8.582534959630386e-7,2.0129633397676876e-9,1.6480962225372572e-9,2.5875997272311778e-9 +ConstrData/6/0,8.598300595616178e-7,8.593044333562589e-7,8.603947571648863e-7,1.7543585957325588e-9,1.4644970418472286e-9,2.162414957198386e-9 +ConstrData/6/0,8.589153439729408e-7,8.584687988386997e-7,8.593690642606892e-7,1.4865931232611825e-9,1.2453367989014667e-9,1.844097766612087e-9 +ConstrData/6/5123,8.580648187237694e-7,8.5749486892377e-7,8.587678268839003e-7,2.1246720760636167e-9,1.84862021419923e-9,2.5178595566919855e-9 +ConstrData/6/14559,8.584994272593897e-7,8.576495810505958e-7,8.591732746653599e-7,2.587205486625192e-9,1.984051023816088e-9,3.3086742866301036e-9 +ConstrData/7/161,8.605707519051228e-7,8.601402875993219e-7,8.610235644226587e-7,1.5597136696577559e-9,1.2439421462359862e-9,1.958722064235164e-9 +ConstrData/7/726,8.582258861346152e-7,8.576604341113156e-7,8.588920853124189e-7,2.0518405736117324e-9,1.685528040141896e-9,2.6174747788894346e-9 +ConstrData/7/40,8.607119435999916e-7,8.602204374641165e-7,8.612778662624711e-7,1.753995974244806e-9,1.3669298475146965e-9,2.4773322127775917e-9 +ConstrData/7/25,8.600000154807107e-7,8.595133838264831e-7,8.605640636652366e-7,1.7419419506833807e-9,1.4692671693256417e-9,2.0638062157391015e-9 +ConstrData/7/45,8.593286030967545e-7,8.588269021971832e-7,8.597070946094323e-7,1.442959390744342e-9,1.184562212456049e-9,1.866350866461045e-9 +ConstrData/7/514,8.607121028265212e-7,8.600518074628744e-7,8.613762608235254e-7,2.239782428026138e-9,1.8450425811897938e-9,2.8426351277292536e-9 +ConstrData/7/1089,8.601237055239343e-7,8.594366519543684e-7,8.607031978732047e-7,2.0261589871522626e-9,1.6142157403236465e-9,2.5695045314572528e-9 +ConstrData/7/1182,8.613668403677018e-7,8.607721952793138e-7,8.620668410794672e-7,2.0542672226733843e-9,1.6728156687161563e-9,2.754532212411179e-9 +ConstrData/7/89,8.577473078901758e-7,8.57197504396156e-7,8.58271297699597e-7,1.8739572825859046e-9,1.5036834219392636e-9,2.4809616942612705e-9 +ConstrData/7/51,8.586076032968067e-7,8.579901730913654e-7,8.591895051250724e-7,1.954990731727056e-9,1.634311429953182e-9,2.366684181050899e-9 +ConstrData/7/0,8.584564535402225e-7,8.577639492392439e-7,8.591867071834408e-7,2.374005437448542e-9,2.0148627586962195e-9,2.8045310838528103e-9 +ConstrData/7/287,8.608404996759231e-7,8.601784971212177e-7,8.61371989319746e-7,2.0427888470664025e-9,1.6285740620024363e-9,2.5744513827330787e-9 +ConstrData/7/204,8.60340683088149e-7,8.599446069821566e-7,8.608112991030011e-7,1.396870000654089e-9,1.1615659539600576e-9,1.7723414895578446e-9 +ConstrData/7/1858,8.601055935816871e-7,8.593795833110639e-7,8.607248930925336e-7,2.274535775812102e-9,1.7921290553472284e-9,3.041258145681493e-9 +ConstrData/7/1589,8.668990673825054e-7,8.663575291876281e-7,8.675396120345881e-7,1.9769273517780666e-9,1.6052895258589762e-9,2.5967275477456003e-9 +ConstrData/7/690,8.570319243625718e-7,8.562324381860872e-7,8.583069560286013e-7,3.3089053953339024e-9,2.3071741998807335e-9,5.251468540849963e-9 +ConstrData/7/0,8.569033586981998e-7,8.562973448830865e-7,8.575279837763723e-7,2.1661541407662574e-9,1.8426870456633436e-9,2.5612349312937015e-9 +ConstrData/7/0,8.598026582214789e-7,8.592085836013222e-7,8.604059076881818e-7,1.950798030492036e-9,1.6271041772871877e-9,2.4004600427085156e-9 +ConstrData/7/5123,8.627724849522716e-7,8.621117969887808e-7,8.634587370372062e-7,2.2624602518820404e-9,1.8959527572295063e-9,2.9220740865358055e-9 +ConstrData/7/14559,8.60741696371796e-7,8.602313805726605e-7,8.612894053969861e-7,1.756017498510228e-9,1.4860435274848963e-9,2.1426970461476213e-9 +ConstrData/8/161,8.656246049940007e-7,8.652039140389347e-7,8.661173181948321e-7,1.582051234005544e-9,1.3068317545816228e-9,2.0315827507603037e-9 +ConstrData/8/726,8.617678306959487e-7,8.610828962790601e-7,8.624123275546676e-7,2.32761980702722e-9,2.0101247053570867e-9,2.780143555518118e-9 +ConstrData/8/40,8.609619582085744e-7,8.603925361976676e-7,8.614671291168419e-7,1.8167403769045587e-9,1.5711525513623854e-9,2.1046610870464848e-9 +ConstrData/8/25,8.608339490593672e-7,8.601653235895866e-7,8.61479419173678e-7,2.1104918105637176e-9,1.7934288630944065e-9,2.53240189328825e-9 +ConstrData/8/45,8.612529312001515e-7,8.606251527422379e-7,8.618509463426242e-7,2.139724699364061e-9,1.7771144384918008e-9,2.70058010044151e-9 +ConstrData/8/514,8.588287409209159e-7,8.584135154341916e-7,8.593397079551485e-7,1.4517925980177247e-9,1.1691745346643287e-9,1.864176910867167e-9 +ConstrData/8/1089,8.63784149531521e-7,8.632803319580955e-7,8.642914750183308e-7,1.6902918718299043e-9,1.4160793542496188e-9,2.0870043283078763e-9 +ConstrData/8/1182,8.590293456383e-7,8.583656662332248e-7,8.597655228177075e-7,2.3995125847450645e-9,2.0637428392775276e-9,2.9063067726757584e-9 +ConstrData/8/89,8.644581148286953e-7,8.639250250696763e-7,8.651382398081147e-7,2.055974162571086e-9,1.6398528751834963e-9,2.656789558206394e-9 +ConstrData/8/51,8.587040144009118e-7,8.582606052212959e-7,8.592684264412185e-7,1.5896698191986142e-9,1.3035605817434398e-9,1.9973663787529844e-9 +ConstrData/8/0,8.576010817765054e-7,8.570822014074563e-7,8.581304973761823e-7,1.741121372629386e-9,1.4583246381421718e-9,2.1398142785193603e-9 +ConstrData/8/287,8.61967714746676e-7,8.610091253942113e-7,8.62864856429954e-7,3.0963166814651433e-9,2.6481404980048437e-9,3.801935217640186e-9 +ConstrData/8/204,8.617634942766875e-7,8.614014701026635e-7,8.621449940536327e-7,1.3132395105369413e-9,1.1050862233998065e-9,1.562103626596794e-9 +ConstrData/8/1858,8.60009208130947e-7,8.594232754149743e-7,8.605549439224377e-7,1.951951818705172e-9,1.6322849770182802e-9,2.3366013968491185e-9 +ConstrData/8/1589,8.608008767012618e-7,8.602735915906478e-7,8.614232342659778e-7,1.93772354772325e-9,1.5994978208147778e-9,2.39554148068843e-9 +ConstrData/8/690,8.596463722788076e-7,8.590538020305715e-7,8.602650232083567e-7,2.057801717764821e-9,1.7028746125937352e-9,2.5276698920863728e-9 +ConstrData/8/0,8.616935701125664e-7,8.609394830293491e-7,8.624721628634186e-7,2.467955817756167e-9,2.115256073417735e-9,3.0170764524773362e-9 +ConstrData/8/0,8.630117171915095e-7,8.623989310614932e-7,8.636474377766888e-7,1.969446328441349e-9,1.6079320153805476e-9,2.4129085810206317e-9 +ConstrData/8/5123,8.584951562273451e-7,8.579030021383588e-7,8.592401232507471e-7,2.2061441866146916e-9,1.8644109703455925e-9,2.6939570397522984e-9 +ConstrData/8/14559,8.654970818287582e-7,8.650131897890425e-7,8.659965249864389e-7,1.6767848666069788e-9,1.3931392172978295e-9,2.0038530626840016e-9 +ConstrData/9/161,8.614926574035686e-7,8.611077746909307e-7,8.618640185039774e-7,1.2858180189356333e-9,1.102676717564595e-9,1.5985467093613203e-9 +ConstrData/9/726,8.63616460728805e-7,8.630355348934702e-7,8.641578728243966e-7,1.8848876528681588e-9,1.6131341004977361e-9,2.27207726511476e-9 +ConstrData/9/40,8.578937999963303e-7,8.573734138409441e-7,8.58422760955522e-7,1.6811269162931999e-9,1.3993245325160622e-9,2.2066472637862847e-9 +ConstrData/9/25,8.596437895964734e-7,8.591542011448303e-7,8.602650127896091e-7,1.7994986037095152e-9,1.4766876174895115e-9,2.169365404674194e-9 +ConstrData/9/45,8.59665138723693e-7,8.587685750178273e-7,8.607589361752631e-7,3.2533801937244295e-9,2.728789228723142e-9,3.776425758827153e-9 +ConstrData/9/514,8.595513288123819e-7,8.589056575874482e-7,8.602732049852837e-7,2.2809097451038696e-9,1.898542548155942e-9,2.8666198456711096e-9 +ConstrData/9/1089,8.606557425029666e-7,8.60126349475337e-7,8.611970088569583e-7,1.8408584212796972e-9,1.5202663696213594e-9,2.32997267718655e-9 +ConstrData/9/1182,8.570392724865242e-7,8.5642896110345e-7,8.575849366177753e-7,1.9911385455919013e-9,1.6675472023535425e-9,2.3496340754618132e-9 +ConstrData/9/89,8.591725686619664e-7,8.584967714565472e-7,8.597044696407888e-7,1.938933429861624e-9,1.4890785599972738e-9,2.7020331579442246e-9 +ConstrData/9/51,8.588609633673605e-7,8.585035566384816e-7,8.592284571357545e-7,1.2289913447397212e-9,1.0308068561371707e-9,1.5485917756449009e-9 +ConstrData/9/0,8.576255520536432e-7,8.572706688180503e-7,8.580529359811158e-7,1.2839631945601112e-9,1.095691423809593e-9,1.613389417496675e-9 +ConstrData/9/287,8.595039906056725e-7,8.590309203736679e-7,8.600553327073024e-7,1.7756127504119886e-9,1.5009441443960388e-9,2.1964498464790563e-9 +ConstrData/9/204,8.638444731814993e-7,8.630995730756905e-7,8.645955273347592e-7,2.4050436458714573e-9,1.973670831242321e-9,2.996587716453505e-9 +ConstrData/9/1858,8.600504809298388e-7,8.594560595476268e-7,8.605977248376336e-7,1.933718863202285e-9,1.5548165709311688e-9,2.4775705561485256e-9 +ConstrData/9/1589,8.589093107724476e-7,8.583422522845417e-7,8.593710667424982e-7,1.7906031410530203e-9,1.5003040251140543e-9,2.187294440582505e-9 +ConstrData/9/690,8.598907931712437e-7,8.594551282167853e-7,8.603379572345492e-7,1.5142458231655303e-9,1.1679084601343053e-9,2.1736621823953317e-9 +ConstrData/9/0,8.622640059712433e-7,8.61781674388585e-7,8.627425513177662e-7,1.6150608849904561e-9,1.3266523069743732e-9,1.9913978766243115e-9 +ConstrData/9/0,8.575841723777105e-7,8.569094124034348e-7,8.584045295437427e-7,2.344390690771609e-9,1.967367019312719e-9,2.9516248630085592e-9 +ConstrData/9/5123,8.571170225175733e-7,8.566421312404958e-7,8.576947566191928e-7,1.7260261473228313e-9,1.4250390658947496e-9,2.17902399419113e-9 +ConstrData/9/14559,8.614420159864937e-7,8.607948551527831e-7,8.619857984719254e-7,2.0540291570032357e-9,1.7015611430594549e-9,2.4314331332218447e-9 +ConstrData/10/161,8.60450505790362e-7,8.599289635815906e-7,8.610198524123691e-7,1.954846657269021e-9,1.6336792264200402e-9,2.489947741083469e-9 +ConstrData/10/726,8.610436994647644e-7,8.601746555915568e-7,8.617492613532041e-7,2.5453847848704344e-9,2.073830977845216e-9,3.2249324994985523e-9 +ConstrData/10/40,8.586861004919919e-7,8.581183743602106e-7,8.592186287689892e-7,1.710911272696806e-9,1.3960502923698654e-9,2.187895018409392e-9 +ConstrData/10/25,8.623227669061911e-7,8.618351924293821e-7,8.627846173837849e-7,1.5726330794962888e-9,1.2705463841499607e-9,2.0883445284141822e-9 +ConstrData/10/45,8.609280749473489e-7,8.604004615982658e-7,8.613959368564102e-7,1.691997370598679e-9,1.3784957489601591e-9,2.1328044897431326e-9 +ConstrData/10/514,8.58435785300444e-7,8.580285397591799e-7,8.588466531410822e-7,1.3248303388400522e-9,1.1426338678988079e-9,1.6783076175710833e-9 +ConstrData/10/1089,8.600295262398092e-7,8.594880869317735e-7,8.605446079282859e-7,1.69249678422379e-9,1.4115422415862108e-9,2.0514641058957024e-9 +ConstrData/10/1182,8.610287119493022e-7,8.606123507097736e-7,8.614205440797191e-7,1.3587649337776813e-9,1.0676220312894503e-9,1.8639679071916264e-9 +ConstrData/10/89,8.59717184631204e-7,8.588775959106896e-7,8.605162961681358e-7,2.6486152292126555e-9,2.098539486568472e-9,3.366165740662178e-9 +ConstrData/10/51,8.614170767388086e-7,8.610692729910123e-7,8.617864200440296e-7,1.2018057792735715e-9,1.0263399195169626e-9,1.4414742053355524e-9 +ConstrData/10/0,8.642199603459861e-7,8.636677783774633e-7,8.647655101316027e-7,1.7937869007334157e-9,1.507606763789091e-9,2.1955262361665667e-9 +ConstrData/10/287,8.5968066981171e-7,8.59244450576165e-7,8.600534690459615e-7,1.2780312881714713e-9,1.0741413115339357e-9,1.5656873933372304e-9 +ConstrData/10/204,8.609066552053948e-7,8.600855113242398e-7,8.617651695238955e-7,2.8579992617506544e-9,2.2908437121756113e-9,3.4244276006908075e-9 +ConstrData/10/1858,8.614941062999567e-7,8.607365411641779e-7,8.621357040110694e-7,2.2930095381431645e-9,1.953427610406196e-9,2.6584503357379336e-9 +ConstrData/10/1589,8.605203238587209e-7,8.600209791956843e-7,8.610807606984449e-7,1.7922500585960755e-9,1.5696872518349181e-9,2.1033702035075738e-9 +ConstrData/10/690,8.562877304746436e-7,8.556795945792999e-7,8.569734881631706e-7,2.0484992991012462e-9,1.6837932479355775e-9,2.4442479239167258e-9 +ConstrData/10/0,8.579648621843445e-7,8.573180408376433e-7,8.586487759925559e-7,2.308581511552882e-9,2.0177208462204635e-9,2.6847743665512543e-9 +ConstrData/10/0,8.604805066856494e-7,8.601133618188881e-7,8.608502738323592e-7,1.261957637996139e-9,1.078591077486722e-9,1.56901944548743e-9 +ConstrData/10/5123,8.582575354323939e-7,8.578173093482151e-7,8.587775900458255e-7,1.6096701625431343e-9,1.287720314724173e-9,1.9847001876028382e-9 +ConstrData/10/14559,8.592576948683622e-7,8.587502220768573e-7,8.597981490078736e-7,1.8029222644168803e-9,1.481204893433408e-9,2.2084451703955143e-9 +ConstrData/11/161,8.61030032668759e-7,8.602717001157186e-7,8.617120293887031e-7,2.280451042046095e-9,1.9474565840469426e-9,2.7161612593077703e-9 +ConstrData/11/726,8.616246798114116e-7,8.610344398651533e-7,8.622655983572691e-7,2.0789873377569987e-9,1.8181920027499004e-9,2.423446462862572e-9 +ConstrData/11/40,8.593176917416262e-7,8.587476221969888e-7,8.599497262529222e-7,2.025107383673182e-9,1.7275946784920547e-9,2.383301559094547e-9 +ConstrData/11/25,8.595326162643355e-7,8.590473339148321e-7,8.600802156467695e-7,1.6766122196401775e-9,1.3855382710607178e-9,2.1059772334354615e-9 +ConstrData/11/45,8.593258876502438e-7,8.587379754626707e-7,8.598524713021128e-7,1.9188789385857744e-9,1.5840622633642024e-9,2.3706049883358613e-9 +ConstrData/11/514,8.588205211537894e-7,8.582048576093393e-7,8.594484267126848e-7,2.0612083635683917e-9,1.7833320700393128e-9,2.4521258307344476e-9 +ConstrData/11/1089,8.593602820974143e-7,8.588216842515847e-7,8.600960626137652e-7,2.1873871285761915e-9,1.8008355137977595e-9,2.88298566574854e-9 +ConstrData/11/1182,8.619249856666946e-7,8.611395912454264e-7,8.626475062480453e-7,2.4821370899721475e-9,1.9505404751175448e-9,3.3128380691124052e-9 +ConstrData/11/89,8.579815936951903e-7,8.572192758069115e-7,8.588901035954861e-7,2.7523948696610944e-9,2.352585946084174e-9,3.305500585209113e-9 +ConstrData/11/51,8.589628347475549e-7,8.581109640452475e-7,8.597835083652934e-7,2.8238731115459303e-9,2.445066058962684e-9,3.3098729871181914e-9 +ConstrData/11/0,8.619323935196836e-7,8.615293291287263e-7,8.624200393065073e-7,1.4717838447536074e-9,1.2417207597578193e-9,1.7664029326332385e-9 +ConstrData/11/287,8.589674611629224e-7,8.584946544694964e-7,8.59472545554934e-7,1.6176245903094075e-9,1.3286923014388914e-9,1.993965091849548e-9 +ConstrData/11/204,8.618082621445466e-7,8.612006612756274e-7,8.624456054521092e-7,2.1421357094507185e-9,1.8865836881138723e-9,2.455310315546373e-9 +ConstrData/11/1858,8.63958849339273e-7,8.632590246635424e-7,8.646372213180204e-7,2.2188309819554435e-9,1.8622480048953827e-9,2.674442726502031e-9 +ConstrData/11/1589,8.604319811851682e-7,8.598831557683463e-7,8.609756655210869e-7,1.7976821436627696e-9,1.475866693297672e-9,2.258061808800311e-9 +ConstrData/11/690,8.603270443537644e-7,8.599509292580342e-7,8.607056693428116e-7,1.28830435042907e-9,1.0335967933571088e-9,1.6365989566037772e-9 +ConstrData/11/0,8.618523879729748e-7,8.611965822922374e-7,8.624345531338963e-7,2.196938144650902e-9,1.90978481566524e-9,2.8325928037035607e-9 +ConstrData/11/0,8.599031575842954e-7,8.593168455885278e-7,8.606196302066203e-7,2.1752312063094025e-9,1.7088278066065593e-9,3.225697036148309e-9 +ConstrData/11/5123,8.570110500209926e-7,8.564862537053803e-7,8.575688655523367e-7,1.8491381030216148e-9,1.5428577867027612e-9,2.253652774607452e-9 +ConstrData/11/14559,8.584002958631573e-7,8.577552256275547e-7,8.591493689810273e-7,2.311376138452092e-9,2.006209372977012e-9,2.713283518586757e-9 +ConstrData/12/161,8.573679074714116e-7,8.56855332605154e-7,8.579289032134725e-7,1.7506161221408414e-9,1.3385263202667638e-9,2.3569124291233686e-9 +ConstrData/12/726,8.58166516149929e-7,8.575608049956095e-7,8.589488845446476e-7,2.3299358272500395e-9,1.7623255934914876e-9,3.1963871201299773e-9 +ConstrData/12/40,8.579045522933892e-7,8.574688815109498e-7,8.583869296834044e-7,1.5467284084975175e-9,1.2851256965299593e-9,2.000910612437961e-9 +ConstrData/12/25,8.58811801816402e-7,8.582343061286148e-7,8.593158376826278e-7,1.7755952584244721e-9,1.4793435473522624e-9,2.1664819560810013e-9 +ConstrData/12/45,8.59962986505301e-7,8.593393110291533e-7,8.6055551043066e-7,2.0378905096182093e-9,1.7121645005319e-9,2.4627992227640832e-9 +ConstrData/12/514,8.568113054607185e-7,8.56320062829054e-7,8.572180237276255e-7,1.4653938156668703e-9,1.2456051261209173e-9,1.7279277519647607e-9 +ConstrData/12/1089,8.612777222123689e-7,8.60758625943635e-7,8.618533100164404e-7,1.891890554657858e-9,1.5370503860784735e-9,2.387756813527213e-9 +ConstrData/12/1182,8.618423436602616e-7,8.613421987196697e-7,8.623644880975645e-7,1.6886977123054215e-9,1.3363106770310813e-9,2.198207794951629e-9 +ConstrData/12/89,8.621351658742099e-7,8.617049611978246e-7,8.625925448114986e-7,1.4877649194699067e-9,1.187977510265565e-9,1.9218752487514967e-9 +ConstrData/12/51,8.616976590828677e-7,8.612142916141967e-7,8.622153917561047e-7,1.681506537304231e-9,1.4313808808953693e-9,2.0244578450460848e-9 +ConstrData/12/0,8.601247892854707e-7,8.594567379911975e-7,8.610142486508082e-7,2.5454717584735274e-9,2.1167126479371867e-9,3.0928012479450752e-9 +ConstrData/12/287,8.599160997104041e-7,8.594835212986958e-7,8.603239142123649e-7,1.3916132134967662e-9,1.1048960064154953e-9,1.8009892985380432e-9 +ConstrData/12/204,8.579481404255862e-7,8.573958058009896e-7,8.584864104222287e-7,1.7553512694475734e-9,1.473026005227081e-9,2.1371377542477214e-9 +ConstrData/12/1858,8.639025906284591e-7,8.632749300336855e-7,8.64526579631422e-7,2.047265762750324e-9,1.7428970751504345e-9,2.400345031818342e-9 +ConstrData/12/1589,8.588507724297997e-7,8.581376097391654e-7,8.597385240600432e-7,2.5113988992237595e-9,2.0779101924843734e-9,3.1929280257290657e-9 +ConstrData/12/690,8.57891288308832e-7,8.574211529666219e-7,8.583999825224841e-7,1.6951693820425523e-9,1.4080034008481804e-9,2.0573343426587077e-9 +ConstrData/12/0,8.65175632475579e-7,8.642348285962873e-7,8.659330860461158e-7,2.8806200431656956e-9,2.4243510499799844e-9,3.4796899731071345e-9 +ConstrData/12/0,8.597524610228555e-7,8.592145644235548e-7,8.603641175311072e-7,1.8589133215394218e-9,1.5630421546883492e-9,2.185628694194733e-9 +ConstrData/12/5123,8.593185513115124e-7,8.587965285547399e-7,8.598746434687766e-7,1.850167207512267e-9,1.5179359359817954e-9,2.3336296075401155e-9 +ConstrData/12/14559,8.583358021035917e-7,8.577896841437711e-7,8.589933983144716e-7,1.978544589259927e-9,1.6156069871061705e-9,2.505717002025301e-9 +ConstrData/13/161,8.61340543427288e-7,8.607311830645699e-7,8.621340850678295e-7,2.2115501365871116e-9,1.7469065458747306e-9,2.8005136428603744e-9 +ConstrData/13/726,8.578880497864138e-7,8.570908010842338e-7,8.588205150186817e-7,2.8667885737968763e-9,2.3144911753042497e-9,3.6527752139961636e-9 +ConstrData/13/40,8.625877551953377e-7,8.615830621822304e-7,8.63656013572041e-7,3.4774861032724677e-9,3.0816287116006678e-9,4.166067008706008e-9 +ConstrData/13/25,8.587679140149797e-7,8.581641785457548e-7,8.592820943447777e-7,1.858828098057998e-9,1.5455273524045101e-9,2.2165349854582822e-9 +ConstrData/13/45,8.591730305480985e-7,8.586317391376896e-7,8.598935091548762e-7,2.056877464452449e-9,1.6268280798876484e-9,2.5174853746443156e-9 +ConstrData/13/514,8.602934025438808e-7,8.596428440789259e-7,8.610627548103532e-7,2.402344562920667e-9,2.00746590068137e-9,2.8714413463186635e-9 +ConstrData/13/1089,8.594460362211685e-7,8.588705931912142e-7,8.600589575751055e-7,2.0555324699922914e-9,1.687821067322832e-9,2.612717369863715e-9 +ConstrData/13/1182,8.566931220133985e-7,8.560885045660524e-7,8.573499139362103e-7,2.049327922096646e-9,1.6969806307769583e-9,2.7042882611334013e-9 +ConstrData/13/89,8.586675119926628e-7,8.581197730157147e-7,8.592126411229299e-7,1.842137515214446e-9,1.558146461025567e-9,2.199907090769202e-9 +ConstrData/13/51,8.619337994928505e-7,8.613575613689632e-7,8.624040392222821e-7,1.5952506718792135e-9,1.3399858545001514e-9,2.0362445197817867e-9 +ConstrData/13/0,8.64623549117942e-7,8.642775335765008e-7,8.650079477995667e-7,1.234305476013239e-9,1.026594810539466e-9,1.5617479557286675e-9 +ConstrData/13/287,8.61652663244758e-7,8.611938565227664e-7,8.622644016526192e-7,1.8140319689112668e-9,1.400010303480896e-9,2.306356678621026e-9 +ConstrData/13/204,8.630783364753001e-7,8.623285579022568e-7,8.637521891605788e-7,2.3489437437001717e-9,1.8687019368799652e-9,3.03926767629544e-9 +ConstrData/13/1858,8.626699683527868e-7,8.619537653870012e-7,8.63345006387679e-7,2.1954572338186864e-9,1.914439481952353e-9,2.594253601918242e-9 +ConstrData/13/1589,8.58654639859651e-7,8.577969344286063e-7,8.595122617959825e-7,2.914797989820847e-9,2.517962703542569e-9,3.4894652485965037e-9 +ConstrData/13/690,8.603722467786127e-7,8.598378225980756e-7,8.609215434855552e-7,1.8265398893508918e-9,1.488679926628105e-9,2.3870671535796845e-9 +ConstrData/13/0,8.597929377691417e-7,8.593063313279581e-7,8.60228775632654e-7,1.5723068245875485e-9,1.2809827024018586e-9,1.9871233925234146e-9 +ConstrData/13/0,8.596239875312683e-7,8.589012534442858e-7,8.603156773340541e-7,2.284888769023895e-9,1.9118572802402554e-9,2.729695655165407e-9 +ConstrData/13/5123,8.587137844490779e-7,8.582016663176215e-7,8.591318766618563e-7,1.4705701862963175e-9,1.2316735246814935e-9,1.8918893844305497e-9 +ConstrData/13/14559,8.612749780113175e-7,8.60487754661429e-7,8.619908296054588e-7,2.4730309707587183e-9,2.0534854621824265e-9,3.0097373744744276e-9 +ConstrData/14/161,8.630258681165393e-7,8.624177787901736e-7,8.636570122067835e-7,2.07538246039745e-9,1.7244694847100891e-9,2.518583780318377e-9 +ConstrData/14/726,8.596103395355245e-7,8.589258857787397e-7,8.603032869418532e-7,2.219745494684318e-9,1.9073160452531512e-9,2.79409266581791e-9 +ConstrData/14/40,8.571978487634735e-7,8.566374433622461e-7,8.577409948938092e-7,1.886749918862277e-9,1.553197866951397e-9,2.4032133943853233e-9 +ConstrData/14/25,8.576517734904462e-7,8.571329188976603e-7,8.583276795302848e-7,1.9426624536773976e-9,1.648685413588167e-9,2.370820591839992e-9 +ConstrData/14/45,8.62603302089734e-7,8.619366423371537e-7,8.633440465102304e-7,2.3953862664749414e-9,2.062834920742861e-9,2.888397911717208e-9 +ConstrData/14/514,8.598183543385635e-7,8.595225410922667e-7,8.601649755288793e-7,1.0432323834250172e-9,8.38557763431489e-10,1.29724598953232e-9 +ConstrData/14/1089,8.602314964887759e-7,8.596667068375289e-7,8.608356352036994e-7,2.017881282263447e-9,1.6721803254180174e-9,2.549867504094519e-9 +ConstrData/14/1182,8.612838722598544e-7,8.605051267224823e-7,8.620092708610193e-7,2.4466953688306963e-9,2.017912510191555e-9,3.0017791529118433e-9 +ConstrData/14/89,8.604933772751747e-7,8.600109122238137e-7,8.609305572064797e-7,1.5574890671908375e-9,1.2866889740191593e-9,1.96198290477387e-9 +ConstrData/14/51,8.642546294575516e-7,8.637318494196545e-7,8.648378938926551e-7,1.907668555408802e-9,1.52343578297625e-9,2.3083626219292906e-9 +ConstrData/14/0,8.575764779687965e-7,8.570158680137581e-7,8.58105328108249e-7,1.844234101374012e-9,1.5561677289494999e-9,2.2655123517668246e-9 +ConstrData/14/287,8.588094960024079e-7,8.58421408234499e-7,8.592334252933388e-7,1.3920189732013665e-9,1.1802809769783599e-9,1.6241664335396399e-9 +ConstrData/14/204,8.613667770982709e-7,8.606278532415939e-7,8.621104348180524e-7,2.46850487872953e-9,2.064347643290641e-9,2.9673621494415433e-9 +ConstrData/14/1858,8.580150455512016e-7,8.573229601054254e-7,8.585763337720661e-7,2.10084958368757e-9,1.6826572752364078e-9,2.81106666025093e-9 +ConstrData/14/1589,8.587770533537753e-7,8.583715363245908e-7,8.592701503341761e-7,1.5449864469803548e-9,1.2570001063136183e-9,1.8676023704512643e-9 +ConstrData/14/690,8.597967986573405e-7,8.591706828026068e-7,8.605853685969216e-7,2.2681454031871733e-9,1.9582406785881753e-9,2.7987554959415415e-9 +ConstrData/14/0,8.627191653405603e-7,8.619705321683202e-7,8.635224374316262e-7,2.6016510689855176e-9,2.252326021100513e-9,3.15749651404358e-9 +ConstrData/14/0,8.617936867588305e-7,8.611560357224674e-7,8.623501156006014e-7,1.9429427768266133e-9,1.5861276562094718e-9,2.3682585923207875e-9 +ConstrData/14/5123,8.610223722505847e-7,8.600136407244926e-7,8.620416992651511e-7,3.389345658322057e-9,2.9629263932912913e-9,4.073055189542229e-9 +ConstrData/14/14559,8.591500945468313e-7,8.585024302882564e-7,8.596431420810225e-7,1.8108450289496105e-9,1.5341725948956511e-9,2.1962890779004255e-9 +ConstrData/15/161,8.617040878772166e-7,8.610691578648013e-7,8.62377559758165e-7,2.164018407760482e-9,1.785635883126037e-9,2.6911773079234487e-9 +ConstrData/15/726,8.580851411069886e-7,8.575251923003287e-7,8.586233708251277e-7,1.906855019469547e-9,1.6340368409587754e-9,2.2509684609358737e-9 +ConstrData/15/40,8.581734383149442e-7,8.577200403526174e-7,8.586560744799313e-7,1.6067524930568505e-9,1.2709240296851529e-9,2.047720652000074e-9 +ConstrData/15/25,8.579247402454008e-7,8.574810514719016e-7,8.583214205792878e-7,1.4200485397947175e-9,1.1262914905977268e-9,1.8383256017708967e-9 +ConstrData/15/45,8.606728553082849e-7,8.597503626695426e-7,8.616771593791157e-7,3.2192398147195343e-9,2.384045967436778e-9,5.084081827153778e-9 +ConstrData/15/514,8.576461793814189e-7,8.569086750989665e-7,8.582727149764186e-7,2.2855414184048914e-9,1.867056940657121e-9,2.90887985475899e-9 +ConstrData/15/1089,8.55601049613089e-7,8.550987227632399e-7,8.561062758784443e-7,1.8223914313726315e-9,1.5564569624416681e-9,2.2609874309053785e-9 +ConstrData/15/1182,8.62624328406248e-7,8.61969043173443e-7,8.633021557750811e-7,2.4000323223449007e-9,1.982154412503946e-9,2.971332913196906e-9 +ConstrData/15/89,8.596287769089327e-7,8.590740517479061e-7,8.602212033303091e-7,1.9599711186859515e-9,1.7303651847790984e-9,2.2215258904630267e-9 +ConstrData/15/51,8.566789138409282e-7,8.559972781921378e-7,8.576208367967437e-7,2.767337373247911e-9,2.2353405597868056e-9,3.546644381761749e-9 +ConstrData/15/0,8.575787004717953e-7,8.569409010513389e-7,8.582370470610469e-7,2.1255806707042768e-9,1.7003064145125685e-9,2.672388979558342e-9 +ConstrData/15/287,8.587628131567496e-7,8.579738238046312e-7,8.594930217679562e-7,2.5017890119789827e-9,2.059561822536116e-9,3.097601953150376e-9 +ConstrData/15/204,8.599550976366531e-7,8.594124958800428e-7,8.605064768291178e-7,1.9336192882259488e-9,1.6370299706744324e-9,2.2852342062630527e-9 +ConstrData/15/1858,8.566602444917727e-7,8.563588512691092e-7,8.569721807932669e-7,1.0696029416595172e-9,8.602883800530635e-10,1.3135334042401753e-9 +ConstrData/15/1589,8.557444612354397e-7,8.55104244173699e-7,8.56339888458844e-7,2.1661298499366754e-9,1.822542468218235e-9,2.7075507986603447e-9 +ConstrData/15/690,8.552516852276215e-7,8.546868535068855e-7,8.557435354191399e-7,1.8126421533310827e-9,1.5146640140244836e-9,2.162256878168553e-9 +ConstrData/15/0,8.59020271996234e-7,8.582075911461732e-7,8.59685305961514e-7,2.4919737920339777e-9,2.037504300414513e-9,3.511316178160347e-9 +ConstrData/15/0,8.596280268356727e-7,8.591443230485129e-7,8.60146998079499e-7,1.6763638615586957e-9,1.3591280422698988e-9,2.20725345396374e-9 +ConstrData/15/5123,8.592760740803886e-7,8.588741002698077e-7,8.596994715075345e-7,1.3514620687866577e-9,1.1554929568418203e-9,1.6365591606071588e-9 +ConstrData/15/14559,8.603413080147476e-7,8.599259027833379e-7,8.607975949856154e-7,1.4431069701702573e-9,1.1743505050604219e-9,1.7929659954368574e-9 +ConstrData/16/161,8.592544385014674e-7,8.587778859014138e-7,8.599168594619979e-7,1.945319005154005e-9,1.4046367230358214e-9,2.619443093403237e-9 +ConstrData/16/726,8.587955934849693e-7,8.582825126337457e-7,8.593658069991927e-7,1.7049155810092206e-9,1.39658783556208e-9,2.077336342324437e-9 +ConstrData/16/40,8.595698694896133e-7,8.591216723883297e-7,8.60090231147691e-7,1.6177933005807295e-9,1.302743641422665e-9,2.114392999711122e-9 +ConstrData/16/25,8.63596811059595e-7,8.630090874351688e-7,8.642172203927683e-7,1.991458887235939e-9,1.7009711970251925e-9,2.288271055117675e-9 +ConstrData/16/45,8.566666555534855e-7,8.561115058503514e-7,8.571649110072236e-7,1.8415988068416952e-9,1.5408775071111985e-9,2.275340685748697e-9 +ConstrData/16/514,8.610235264316772e-7,8.604804025585768e-7,8.615905810339637e-7,1.885961481264351e-9,1.5643828936143843e-9,2.3914584458048194e-9 +ConstrData/16/1089,8.624689800488597e-7,8.620567787552027e-7,8.628948741709396e-7,1.419664577609539e-9,1.1762205032773837e-9,1.7502848639796046e-9 +ConstrData/16/1182,8.587697643980938e-7,8.581291485069978e-7,8.594716828802872e-7,2.2150365246003398e-9,1.7738623833762861e-9,3.02145552781104e-9 +ConstrData/16/89,8.595731969287933e-7,8.587575037322631e-7,8.605626319874949e-7,3.154533528508346e-9,2.2638673624349887e-9,4.687827667777995e-9 +ConstrData/16/51,8.589117801339957e-7,8.582522297425635e-7,8.596753299749505e-7,2.194691558841174e-9,1.850429183910788e-9,2.6981125265899523e-9 +ConstrData/16/0,8.578563024036067e-7,8.572767520954375e-7,8.584632424473708e-7,1.9631001240601946e-9,1.6166422995652403e-9,2.4285512558566933e-9 +ConstrData/16/287,8.575520751390757e-7,8.56992100937139e-7,8.581980301772496e-7,1.934767553357576e-9,1.646286106979678e-9,2.393163395692906e-9 +ConstrData/16/204,8.581022666831932e-7,8.575841313195998e-7,8.586313104264602e-7,1.7776735820876392e-9,1.5737711080324347e-9,2.166753294215465e-9 +ConstrData/16/1858,8.589545554166e-7,8.581532205765509e-7,8.596103707025425e-7,2.368413716748475e-9,1.9335738574389477e-9,2.9699737888281386e-9 +ConstrData/16/1589,8.62647742208015e-7,8.621560273411689e-7,8.630267239502439e-7,1.4818692921954098e-9,1.1719518267011429e-9,2.071721241221894e-9 +ConstrData/16/690,8.594490684819877e-7,8.587998817485328e-7,8.601280314108508e-7,2.216059693164236e-9,1.8422479081881346e-9,2.8592418371330032e-9 +ConstrData/16/0,8.574120901828787e-7,8.569059201230477e-7,8.579157218797948e-7,1.769721234001703e-9,1.4597120878907218e-9,2.3262385386847875e-9 +ConstrData/16/0,8.594203874076357e-7,8.589643408624052e-7,8.598449959050376e-7,1.5341159556385703e-9,1.2565390765711417e-9,1.9213845409805827e-9 +ConstrData/16/5123,8.590158693660033e-7,8.582916135501115e-7,8.596608160685429e-7,2.22000437770711e-9,1.8550490844157062e-9,2.6783642238727856e-9 +ConstrData/16/14559,8.622174887751323e-7,8.615729120736093e-7,8.628450587817977e-7,2.198984791471714e-9,1.9006533512776713e-9,2.699961130473223e-9 +ConstrData/17/161,8.598647785408965e-7,8.592215551713317e-7,8.606572172311062e-7,2.3783317767690074e-9,2.0552435285723332e-9,2.7821337784635774e-9 +ConstrData/17/726,8.646931086280177e-7,8.64064231238e-7,8.653638708075206e-7,2.191696691744994e-9,1.8102452309540723e-9,2.7017836508563032e-9 +ConstrData/17/40,8.613008904342983e-7,8.607968689320366e-7,8.618136033552332e-7,1.7215054934856998e-9,1.452856790268781e-9,2.1502935195598076e-9 +ConstrData/17/25,8.683624157279876e-7,8.679179375616658e-7,8.687587653339393e-7,1.4124174472594185e-9,1.1780279807867232e-9,1.7872736213485461e-9 +ConstrData/17/45,8.654674831316602e-7,8.646443511584091e-7,8.66293952282367e-7,2.719224739018062e-9,2.308825407676479e-9,3.263642728743174e-9 +ConstrData/17/514,8.606534791357315e-7,8.600453892298635e-7,8.612227874978981e-7,1.9374474455194705e-9,1.5406643003225711e-9,2.5006646219716704e-9 +ConstrData/17/1089,8.642240738393249e-7,8.636582632202478e-7,8.647715941715494e-7,1.9195688422627865e-9,1.598456261523797e-9,2.3038746334784032e-9 +ConstrData/17/1182,8.650548061295474e-7,8.640514758305436e-7,8.661244207393513e-7,3.548059350849753e-9,3.0464742706008796e-9,4.182890156942054e-9 +ConstrData/17/89,8.645017709266048e-7,8.636903875995373e-7,8.654457800967536e-7,2.897923478276599e-9,2.390685071453808e-9,3.7689595239289984e-9 +ConstrData/17/51,8.662955451248652e-7,8.656982355304403e-7,8.669036303523702e-7,1.9684027197707693e-9,1.6658669884597403e-9,2.382211207983423e-9 +ConstrData/17/0,8.619803430171475e-7,8.614889584421343e-7,8.625560760634621e-7,1.911491728425389e-9,1.5860146089567154e-9,2.3761343153401028e-9 +ConstrData/17/287,8.595752170223408e-7,8.5897816699721e-7,8.602774014767036e-7,2.158702566499096e-9,1.7602924477770672e-9,2.7141540414077042e-9 +ConstrData/17/204,8.628549342763293e-7,8.624295549725204e-7,8.633694684034593e-7,1.5794611445640505e-9,1.2986615555093416e-9,2.003315171428105e-9 +ConstrData/17/1858,8.591766924569382e-7,8.585583945294144e-7,8.597862036558703e-7,2.116904995572318e-9,1.7186555664479577e-9,2.66481108784157e-9 +ConstrData/17/1589,8.608797125164806e-7,8.604248819726344e-7,8.614263238038101e-7,1.7257440294657303e-9,1.4374200725840935e-9,2.1879131614486875e-9 +ConstrData/17/690,8.611153406472551e-7,8.60496106234027e-7,8.617274470285303e-7,2.101767280846164e-9,1.7714209563016753e-9,2.575799528044882e-9 +ConstrData/17/0,8.628969830746189e-7,8.624828443031619e-7,8.63265354723474e-7,1.329813716572885e-9,1.1474574168293172e-9,1.5644466554083931e-9 +ConstrData/17/0,8.621916419238565e-7,8.617082570809589e-7,8.626602297012875e-7,1.5472224300760347e-9,1.2870720221108862e-9,1.895045976347749e-9 +ConstrData/17/5123,8.606010854224706e-7,8.59986575169189e-7,8.611477702369958e-7,1.8814109717917766e-9,1.5266256410123046e-9,2.4941406957264996e-9 +ConstrData/17/14559,8.625648039337674e-7,8.620289326261399e-7,8.632218546089835e-7,2.011156837652286e-9,1.68626532360965e-9,2.5172854237056632e-9 +ConstrData/18/161,8.638551384541233e-7,8.631643000789275e-7,8.646016102677972e-7,2.3061590076094664e-9,1.9171186092229894e-9,2.8872428186488565e-9 +ConstrData/18/726,8.593938150838137e-7,8.586883149990431e-7,8.600610488311173e-7,2.334420160363144e-9,1.9241389990845415e-9,2.8021009780091474e-9 +ConstrData/18/40,8.639754711035625e-7,8.63211967113483e-7,8.649727824256999e-7,2.883943535295314e-9,2.5328272649151717e-9,3.3411100837597847e-9 +ConstrData/18/25,8.619359306552916e-7,8.614882749830857e-7,8.624528261595379e-7,1.58040142609894e-9,1.3581743591902502e-9,1.8592597126677203e-9 +ConstrData/18/45,8.594265891816971e-7,8.587451909008388e-7,8.600635141734062e-7,2.292064700781796e-9,1.9436237164318e-9,2.858629616618713e-9 +ConstrData/18/514,8.617567381809687e-7,8.612567429061942e-7,8.622455430601439e-7,1.76619201356611e-9,1.4446589455477021e-9,2.3162322505155207e-9 +ConstrData/18/1089,8.637926086969803e-7,8.632263651878335e-7,8.644313938322293e-7,1.9343272209783957e-9,1.619767384780607e-9,2.444878464771364e-9 +ConstrData/18/1182,8.627555485994127e-7,8.617779641811304e-7,8.636077353324245e-7,3.1245166591803797e-9,2.5344040968656525e-9,3.768615258025304e-9 +ConstrData/18/89,8.590964088727462e-7,8.58367240746724e-7,8.598265616656883e-7,2.5155630209010302e-9,2.2106478682423738e-9,2.923005871606051e-9 +ConstrData/18/51,8.650816598871289e-7,8.645584977837812e-7,8.657516497500819e-7,1.886884402024351e-9,1.4645378635930879e-9,2.513635217565717e-9 +ConstrData/18/0,8.651161763745689e-7,8.64587930777454e-7,8.657617366508057e-7,1.901722249449035e-9,1.5980538792071602e-9,2.296289168721328e-9 +ConstrData/18/287,8.640602628182174e-7,8.635351766324785e-7,8.645389965452385e-7,1.6983680026907248e-9,1.4289885103408377e-9,1.992461705036181e-9 +ConstrData/18/204,8.626053577478679e-7,8.620234824577058e-7,8.632159043053336e-7,1.97954333728484e-9,1.650318010819212e-9,2.3819058756962975e-9 +ConstrData/18/1858,8.652389853462886e-7,8.645044466936161e-7,8.660021448081662e-7,2.543496241337687e-9,2.250141833005638e-9,3.0118590334697567e-9 +ConstrData/18/1589,8.600928702456603e-7,8.596958130851937e-7,8.605219029855357e-7,1.3710038708873328e-9,1.1006151266299252e-9,1.6845874687128337e-9 +ConstrData/18/690,8.60884737444954e-7,8.602807339357722e-7,8.616420282329833e-7,2.407548581963562e-9,2.012982232897393e-9,2.987718767525592e-9 +ConstrData/18/0,8.611792212014709e-7,8.60416589925489e-7,8.618223648678566e-7,2.318255336834976e-9,1.9652610642133785e-9,2.8895017441761647e-9 +ConstrData/18/0,8.625293733606925e-7,8.619216565983365e-7,8.631601379317064e-7,2.050378684388495e-9,1.750603927087319e-9,2.403856783669875e-9 +ConstrData/18/5123,8.637253190119499e-7,8.63333858291953e-7,8.64172523911326e-7,1.3624845175711675e-9,1.1321538107545555e-9,1.6581083134242189e-9 +ConstrData/18/14559,8.624683814668998e-7,8.618715760099679e-7,8.630863630000629e-7,1.961402950985227e-9,1.6170152968547067e-9,2.404704639048199e-9 +ConstrData/19/161,8.638016287212854e-7,8.629910259440577e-7,8.647320133671183e-7,2.9926896018019797e-9,2.3157974737760533e-9,3.94095846030783e-9 +ConstrData/19/726,8.629781632601793e-7,8.622983178940741e-7,8.635803953822562e-7,2.183126446579872e-9,1.8492524255797446e-9,2.674327559028323e-9 +ConstrData/19/40,8.608484935251428e-7,8.60318499272566e-7,8.61457940561772e-7,1.8953044300180184e-9,1.5546508355723295e-9,2.469560624442132e-9 +ConstrData/19/25,8.639884965815617e-7,8.634313991627105e-7,8.64545854781988e-7,1.9175694092715125e-9,1.6234013530677623e-9,2.333756154847033e-9 +ConstrData/19/45,8.64042358857354e-7,8.635283825518301e-7,8.645382348899301e-7,1.7100282247098443e-9,1.42285607209223e-9,2.1806898045754844e-9 +ConstrData/19/514,8.635337129653339e-7,8.629953536023801e-7,8.641208779071149e-7,1.872083298893834e-9,1.585766122636419e-9,2.2191955282095573e-9 +ConstrData/19/1089,8.61158619345595e-7,8.606038243319479e-7,8.618382693295977e-7,1.9827761067720165e-9,1.6269111435951534e-9,2.6043484500398498e-9 +ConstrData/19/1182,8.615124413829551e-7,8.610378459038856e-7,8.620843987846855e-7,1.7061388714482152e-9,1.3528694571828482e-9,2.778435426153649e-9 +ConstrData/19/89,8.62429156064062e-7,8.61623434963492e-7,8.631137843853003e-7,2.5695189047722015e-9,2.1095724314221407e-9,3.0792197559269703e-9 +ConstrData/19/51,8.6294111113813e-7,8.62603754741501e-7,8.633206398570547e-7,1.183765725331136e-9,9.670336653721291e-10,1.4332730590959656e-9 +ConstrData/19/0,8.60190843086555e-7,8.597774993278879e-7,8.605852036441596e-7,1.3478483785641469e-9,1.1128325778375386e-9,1.6920164390973342e-9 +ConstrData/19/287,8.629675859968587e-7,8.625407555963616e-7,8.635098201608472e-7,1.594747038817984e-9,1.3195389941569129e-9,1.979698564369729e-9 +ConstrData/19/204,8.604744805344454e-7,8.597518695736091e-7,8.612090347783359e-7,2.6018497495394924e-9,2.1814362001679502e-9,3.26801350573571e-9 +ConstrData/19/1858,8.613692900385733e-7,8.60844407092403e-7,8.619090544341659e-7,1.7871127995181935e-9,1.5491710352684713e-9,2.066526803810478e-9 +ConstrData/19/1589,8.623400342338413e-7,8.618330663372496e-7,8.630242893868405e-7,1.9887288408524574e-9,1.654755185140137e-9,2.5294774257236034e-9 +ConstrData/19/690,8.576055822005894e-7,8.569619643659756e-7,8.582381910252064e-7,2.148335307010437e-9,1.7329352202481958e-9,2.7312273159633176e-9 +ConstrData/19/0,8.612186946075435e-7,8.607269503303976e-7,8.616288005923729e-7,1.5120557169883688e-9,1.2230596930974713e-9,2.001138091161553e-9 +ConstrData/19/0,8.615005779436978e-7,8.608134077136616e-7,8.621522266194057e-7,2.1700761481465315e-9,1.837234240705336e-9,2.5881716109256508e-9 +ConstrData/19/5123,8.630490598009009e-7,8.624941971514417e-7,8.636256230276815e-7,1.967652010806568e-9,1.5804489067308341e-9,2.50377192200394e-9 +ConstrData/19/14559,8.617963181353079e-7,8.612474063583511e-7,8.624171361440854e-7,2.086043081401983e-9,1.7745164129072629e-9,2.5271588031035273e-9 +ConstrData/20/161,8.60229736366931e-7,8.596867977475642e-7,8.607651662997207e-7,1.7573311617893058e-9,1.4429187268648494e-9,2.321604747154122e-9 +ConstrData/20/726,8.610953556253187e-7,8.603386078907136e-7,8.618188576305345e-7,2.534243776819931e-9,2.0090736582662436e-9,3.1612780328372363e-9 +ConstrData/20/40,8.614393878916402e-7,8.608287216584784e-7,8.621818795506296e-7,2.1187126623271977e-9,1.8184580575015634e-9,2.633756755769941e-9 +ConstrData/20/25,8.603798155981896e-7,8.597766087563777e-7,8.610076548366409e-7,2.100228192006627e-9,1.8182642679307704e-9,2.4922979199087384e-9 +ConstrData/20/45,8.577754474072706e-7,8.572380338171462e-7,8.582697388327031e-7,1.7648237629710865e-9,1.4650492877497616e-9,2.1941006240904267e-9 +ConstrData/20/514,8.646952313004304e-7,8.639612878043489e-7,8.657146629673778e-7,2.9379384280463637e-9,2.411240873509316e-9,3.51201121343328e-9 +ConstrData/20/1089,8.652103035699364e-7,8.64585659456786e-7,8.657785357456763e-7,1.991392057762196e-9,1.6787615383123387e-9,2.3828370400681225e-9 +ConstrData/20/1182,8.624792196011585e-7,8.619578777756853e-7,8.629783214620278e-7,1.6404566872377096e-9,1.3574969770990564e-9,2.0008136302672977e-9 +ConstrData/20/89,8.63925447427478e-7,8.63079669150425e-7,8.646998410949547e-7,2.65805902977916e-9,2.2193328277335256e-9,3.2400272295847986e-9 +ConstrData/20/51,8.620540440054437e-7,8.614988369242143e-7,8.627298291143344e-7,1.959351985636628e-9,1.7064586850504125e-9,2.2900878541432476e-9 +ConstrData/20/0,8.676320900460595e-7,8.671643423446138e-7,8.680777681436487e-7,1.569332087884744e-9,1.297579423600527e-9,2.1813329973975844e-9 +ConstrData/20/287,8.604870030229073e-7,8.598580693743564e-7,8.6103083977261e-7,1.906584662910848e-9,1.5875084696129374e-9,2.466045740894033e-9 +ConstrData/20/204,8.598638455270393e-7,8.590699103033268e-7,8.605451283537119e-7,2.5215235370295723e-9,1.99031663199224e-9,3.2636092835163524e-9 +ConstrData/20/1858,8.629907474560621e-7,8.624919206164227e-7,8.634625244937021e-7,1.6346185008615758e-9,1.3358214471502353e-9,1.9798265244024897e-9 +ConstrData/20/1589,8.641977235176077e-7,8.637368893088756e-7,8.647087275085359e-7,1.5953880153299373e-9,1.2613521496506277e-9,2.11840596862341e-9 +ConstrData/20/690,8.643344195351042e-7,8.636756776981597e-7,8.650098099045952e-7,2.234353440644572e-9,1.8982042571575715e-9,2.6833957057762356e-9 +ConstrData/20/0,8.648180476157726e-7,8.640778106418248e-7,8.654797742430457e-7,2.3550052448730037e-9,2.002935038517408e-9,2.8780387719380373e-9 +ConstrData/20/0,8.612077863273739e-7,8.603629711616755e-7,8.62390308747808e-7,3.307826179526843e-9,2.6259142188149524e-9,4.122348638641716e-9 +ConstrData/20/5123,8.6055145713888e-7,8.600327857841022e-7,8.611171596394038e-7,1.7669676916924347e-9,1.4004387066698683e-9,2.2735827856338394e-9 +ConstrData/20/14559,8.594276202614876e-7,8.587559978597118e-7,8.601140103190341e-7,2.2742548235031947e-9,1.9157485676697054e-9,2.7612924474066556e-9 +MapData/148,7.384408654738268e-7,7.378387237997627e-7,7.389450283940523e-7,1.8892066730333732e-9,1.5829415990895016e-9,2.4398675167486403e-9 +MapData/154,7.402575330834782e-7,7.395133208526854e-7,7.409951583330638e-7,2.431277137142985e-9,2.044908349455439e-9,2.971335395161139e-9 +MapData/137,7.383492478075369e-7,7.379042765836494e-7,7.386903688756861e-7,1.3247528728092402e-9,1.0749426712375866e-9,1.776542992225296e-9 +MapData/179,7.417263642350672e-7,7.411340034842937e-7,7.422623957664494e-7,1.9151574271807176e-9,1.5019794083908044e-9,2.8708556759600668e-9 +MapData/209,7.370232446951359e-7,7.363853943120804e-7,7.376047527580244e-7,2.0777778410747662e-9,1.7610198588721582e-9,2.5337378036233163e-9 +MapData/706,7.353219509067178e-7,7.339940008309684e-7,7.367320906807972e-7,4.730217156554091e-9,4.166132440524987e-9,5.4766559810792745e-9 +MapData/44,7.374976450340962e-7,7.368474923409689e-7,7.379728992529803e-7,1.8288929533515886e-9,1.5020355854613455e-9,2.4550499428162756e-9 +MapData/77,7.35950143189082e-7,7.355640243953603e-7,7.363290209701604e-7,1.292368785902687e-9,1.067693435831676e-9,1.5993398964159874e-9 +MapData/77,7.386618553613531e-7,7.382908446472144e-7,7.390733927499907e-7,1.356451560582519e-9,1.1343044767808383e-9,1.639330485205918e-9 +MapData/11,7.375713905179825e-7,7.371556143294105e-7,7.380147728655357e-7,1.457469155577058e-9,1.2504021416168469e-9,1.7361078899827134e-9 +MapData/11,7.41623675154108e-7,7.412229601565815e-7,7.420220548868025e-7,1.2801710021941822e-9,1.084148343014779e-9,1.5463791650952948e-9 +MapData/202,7.397144067953857e-7,7.390900159455743e-7,7.405121837843419e-7,2.4114804416490676e-9,1.863417263411043e-9,3.7135764555922633e-9 +MapData/506,7.387783837454349e-7,7.383138625964608e-7,7.391463972838496e-7,1.435988424700256e-9,1.1656224080778766e-9,1.8031309958676675e-9 +MapData/76,7.396962274898565e-7,7.39211299052465e-7,7.401379050558161e-7,1.621748027491457e-9,1.401396174660201e-9,1.9388403212280572e-9 +MapData/2138,7.410467025404913e-7,7.405418125087799e-7,7.415682981322234e-7,1.717552966993526e-9,1.4159859094829879e-9,2.0802336042534205e-9 +MapData/416,7.390435119177001e-7,7.385883497822952e-7,7.395403634678401e-7,1.6024431407164023e-9,1.370889835343976e-9,1.9231437269645527e-9 +MapData/2023,7.383625846337822e-7,7.378044615366057e-7,7.388867207251085e-7,1.8271386150919755e-9,1.5668593513069136e-9,2.1838781437882503e-9 +MapData/26697,7.389965107959845e-7,7.382388223253116e-7,7.398554740899372e-7,2.817644338552381e-9,2.4397401194338133e-9,3.2352116954624682e-9 +MapData/25812,7.40396827032586e-7,7.399315312429591e-7,7.408301134604374e-7,1.4678248871162665e-9,1.2557062984797143e-9,1.7512919313451342e-9 +MapData/0,7.418587379008889e-7,7.41516238022619e-7,7.421653165227402e-7,1.0702296253896645e-9,8.272177148415078e-10,1.3898333149188332e-9 +MapData/0,7.375308063255766e-7,7.370295905842717e-7,7.381068907427835e-7,1.7414300065398618e-9,1.391247284372237e-9,2.3529113814072884e-9 +MapData/942,7.430007854827519e-7,7.425413987006092e-7,7.43417271627825e-7,1.436367233434088e-9,1.2245848317986767e-9,1.8218009510472553e-9 +MapData/798,7.411321834617881e-7,7.406383226219481e-7,7.416652894266948e-7,1.7108839359175098e-9,1.3840157126308676e-9,2.114412810678652e-9 +MapData/847,7.378003451675232e-7,7.373931142524637e-7,7.38177407762945e-7,1.3021393413907578e-9,1.0307966144750684e-9,1.7429587114452812e-9 +MapData/22226,7.350734464535009e-7,7.33704198805552e-7,7.364252158772394e-7,4.475333284993534e-9,3.534766469429104e-9,5.795216978760245e-9 +MapData/27676,7.372804764424204e-7,7.365141032012429e-7,7.377938711871228e-7,2.0839959863145716e-9,1.6047550164729905e-9,3.1090253256217025e-9 +MapData/227358,7.360180636314326e-7,7.354689519093382e-7,7.366517145157908e-7,1.9437597352900088e-9,1.5629905872776524e-9,2.5016059254266283e-9 +MapData/5938,7.379380198859616e-7,7.37368822014783e-7,7.384533473781592e-7,1.7938666321577891e-9,1.4807910047010696e-9,2.225241640192636e-9 +MapData/78813,7.376146006430509e-7,7.371237411720392e-7,7.381004579113459e-7,1.7217923834805179e-9,1.4438056621427577e-9,2.1148222736653237e-9 +MapData/707710,7.353828870475036e-7,7.350447379618843e-7,7.357925800412725e-7,1.281095374570824e-9,1.080303470683339e-9,1.5284450729374455e-9 +MapData/5536,7.374885768970528e-7,7.37010715162749e-7,7.378976944514335e-7,1.5446326339325022e-9,1.2320277349711464e-9,2.2756122578447858e-9 +MapData/60658,7.388559399116016e-7,7.383885668452381e-7,7.392221417694823e-7,1.3557491494040575e-9,1.0218613312742851e-9,1.7854997172558387e-9 +MapData/43403,7.383453358154284e-7,7.37728554699839e-7,7.389114980370567e-7,1.9314903189282172e-9,1.6307984728615641e-9,2.3806957377128017e-9 +MapData/78198,7.434458566454361e-7,7.428039774438225e-7,7.440007929071026e-7,2.034396560948796e-9,1.6614962879750568e-9,2.582843150786685e-9 +MapData/307554,7.38272344122586e-7,7.376944511326366e-7,7.388145228259552e-7,1.886141325117107e-9,1.504980384034577e-9,2.631667879683222e-9 +MapData/521872,7.354731298239591e-7,7.345446008968381e-7,7.363887380060263e-7,3.037177159571961e-9,2.6881670981939344e-9,3.540500458376345e-9 +MapData/1282,7.353699825256196e-7,7.347522325253975e-7,7.360662958828392e-7,2.1690033131836287e-9,1.780143942679618e-9,2.827232444910359e-9 +MapData/0,7.363189230990703e-7,7.356310788339727e-7,7.370321302457414e-7,2.453658075428704e-9,1.9922240228807513e-9,3.0542956086369877e-9 +MapData/5948,7.414901408411309e-7,7.41044578021018e-7,7.418727076374328e-7,1.3609501818745976e-9,1.1305100692272474e-9,1.6759133638856275e-9 +MapData/20061,7.348089604326284e-7,7.34157237333089e-7,7.353661047242848e-7,2.0173718984548335e-9,1.705072121298427e-9,2.467099364853589e-9 +MapData/35503,7.376956973408703e-7,7.371838609240608e-7,7.382354121016704e-7,1.8439466271305354e-9,1.549140027517062e-9,2.4479051428176153e-9 +MapData/489505,7.367526533002497e-7,7.362186171448103e-7,7.372588731211759e-7,1.806264412703834e-9,1.5227021003908598e-9,2.205043948287154e-9 +MapData/316509,7.375279042758133e-7,7.371441212289465e-7,7.379629841476375e-7,1.3637446889534522e-9,1.0898082013050673e-9,1.8625320357721026e-9 +MapData/227445,7.348339021250235e-7,7.343858260104947e-7,7.352489802527506e-7,1.4341291987499827e-9,1.216185265707544e-9,1.7800885892028315e-9 +MapData/1102209,7.387657420539399e-7,7.382969710262954e-7,7.393712173421601e-7,1.866547169641189e-9,1.4343379148047791e-9,2.5752438070870095e-9 +MapData/154,7.376730322305079e-7,7.372707943826769e-7,7.380726247151695e-7,1.3073809271949523e-9,1.0668082728786255e-9,1.6911861899319326e-9 +MapData/1306,7.353890835133753e-7,7.350310331794618e-7,7.357775102979415e-7,1.2653806194083929e-9,1.0368026336976581e-9,1.6378399788438386e-9 +MapData/1195,7.354636685340697e-7,7.348474803619115e-7,7.361840309498085e-7,2.3003483210709766e-9,1.8450806463794687e-9,2.8334910232243073e-9 +MapData/409,7.355899056246242e-7,7.351787223011294e-7,7.359646404526244e-7,1.3810462051802557e-9,1.1924977709407417e-9,1.6698958218286018e-9 +MapData/13325,7.367522319762021e-7,7.360445042708996e-7,7.374186234781578e-7,2.4136868911275954e-9,1.9614356655003572e-9,3.0579997451767395e-9 +ListData/161,7.017110446276379e-7,7.012931128465966e-7,7.02284636978464e-7,1.7286218846607951e-9,1.3817578214970726e-9,2.162695865247071e-9 +ListData/726,7.038989301736089e-7,7.032506153179677e-7,7.046058524835632e-7,2.2569520642596962e-9,1.8178079692714005e-9,2.9744259932382183e-9 +ListData/40,6.997879131779143e-7,6.991009487044708e-7,7.003450808230313e-7,1.9744299707490077e-9,1.6153148274470773e-9,2.539744306272824e-9 +ListData/25,7.030090287297404e-7,7.02424841150722e-7,7.036396958631088e-7,2.019041997055653e-9,1.7164496115443465e-9,2.3468328288552083e-9 +ListData/45,7.054238588791914e-7,7.049032678344891e-7,7.061579558683922e-7,2.0606408433210065e-9,1.554754860685519e-9,3.0597333452961733e-9 +ListData/514,7.040643034957776e-7,7.035539186498683e-7,7.046996514804918e-7,1.9627012074934348e-9,1.5838516321246222e-9,2.4777857676288197e-9 +ListData/1089,7.021237770528501e-7,7.01610271889121e-7,7.0259933195103e-7,1.6182024614013427e-9,1.3622819183158487e-9,1.976171854519406e-9 +ListData/1182,6.98731431118669e-7,6.981399702337585e-7,6.993460900963999e-7,1.975773641320536e-9,1.672033114584647e-9,2.363372580402949e-9 +ListData/89,7.088295586781197e-7,7.081689967462375e-7,7.094191570854033e-7,2.0393355812219946e-9,1.7512284146980903e-9,2.4422036205542967e-9 +ListData/51,7.046404246697334e-7,7.042584521022424e-7,7.049912759535131e-7,1.209112689865177e-9,1.0350826090476874e-9,1.442570670084644e-9 +ListData/0,7.032118460016828e-7,7.027624866770813e-7,7.036396021080628e-7,1.5423793728051168e-9,1.308539483810723e-9,1.841188315936993e-9 +ListData/287,7.054161952911876e-7,7.049220612492889e-7,7.058304252213729e-7,1.501833968190422e-9,1.2361631859556953e-9,1.8927409351663005e-9 +ListData/204,7.050692048354617e-7,7.045955725209153e-7,7.055430958061467e-7,1.557236002220049e-9,1.3325566972999127e-9,1.9010248392741347e-9 +ListData/1858,7.002377078765649e-7,6.997810010477465e-7,7.007572448183396e-7,1.6781873783561947e-9,1.3551406529202134e-9,2.221423754192171e-9 +ListData/1589,7.026703823952736e-7,7.021366648935768e-7,7.03120538279732e-7,1.61507890121541e-9,1.3593448876076856e-9,1.971052464906856e-9 +ListData/690,7.035835825435027e-7,7.029073869273561e-7,7.043747160565433e-7,2.5123294558102572e-9,2.1447494188675777e-9,3.11608722096921e-9 +ListData/0,7.037155085529189e-7,7.03293832275679e-7,7.041464975027257e-7,1.450105055441201e-9,1.1707357212625876e-9,1.788489628792535e-9 +ListData/0,7.039457180965499e-7,7.033692312376415e-7,7.042835444171095e-7,1.4873239253791043e-9,1.0160920443372917e-9,2.3041026130492117e-9 +ListData/5123,7.043748384418512e-7,7.039145913494539e-7,7.048456311887486e-7,1.4908273374594008e-9,1.2639947924436892e-9,1.7860742837527479e-9 +ListData/14559,7.002135895950908e-7,6.997346505416088e-7,7.007099897516998e-7,1.606545885068548e-9,1.3757509697298431e-9,1.876230527646092e-9 +ListData/4120,7.027498353983031e-7,7.019965916337599e-7,7.035389130538162e-7,2.5337257173043297e-9,2.1013170865308583e-9,3.1044088576047533e-9 +ListData/0,7.023434963262262e-7,7.017500631360953e-7,7.028326325683155e-7,1.857232392097305e-9,1.5483120329506005e-9,2.2247757135838377e-9 +ListData/18917,7.020141430677816e-7,7.012334667793127e-7,7.030679070431679e-7,2.9413068987842665e-9,2.428275361731723e-9,3.876569002711672e-9 +ListData/32438,7.051807831405172e-7,7.047337210271721e-7,7.05622069995762e-7,1.5063670535076903e-9,1.3182426938052841e-9,1.783001172680437e-9 +ListData/33456,7.048684375526695e-7,7.043004062829313e-7,7.053935734521588e-7,1.7658704322324468e-9,1.4911157589033651e-9,2.1375911331851654e-9 +ListData/7979,7.057201607844214e-7,7.049971051458001e-7,7.064120906337131e-7,2.3004191537976064e-9,1.8995273090289137e-9,2.8523642469771743e-9 +ListData/391066,7.057997605062964e-7,7.052845883985122e-7,7.063364921033412e-7,1.7004833243719928e-9,1.3869832435456343e-9,2.1295175878214272e-9 +ListData/339,7.015479810595971e-7,7.008865363224753e-7,7.021147452183019e-7,2.113417511280139e-9,1.8234421817948372e-9,2.6021896656536453e-9 +ListData/0,7.046770814591814e-7,7.042261032312015e-7,7.050698874367378e-7,1.4040190953940538e-9,1.1726337315014877e-9,1.7390599407047897e-9 +ListData/71695,7.07450933199179e-7,7.069538647518347e-7,7.07848457646223e-7,1.5104980873229148e-9,1.2442220343105809e-9,1.9732859533643775e-9 +ListData/9321,7.041488668915282e-7,7.037079201069378e-7,7.046228065010756e-7,1.5182551052580401e-9,1.2994689242549009e-9,1.7863986578937882e-9 +ListData/8244,7.045817500767979e-7,7.037419121013959e-7,7.055122171589326e-7,3.0948356921737463e-9,2.673746923383062e-9,3.6352087384887713e-9 +ListData/5760,7.084871122311744e-7,7.079945711554952e-7,7.090157243164947e-7,1.6599432769804962e-9,1.3333749575293357e-9,2.2488163280279506e-9 +ListData/16464,7.051790467352696e-7,7.047005779630992e-7,7.057787103696977e-7,1.8133617928691675e-9,1.5310105975569928e-9,2.271928212337428e-9 +ListData/126478,7.071517973556803e-7,7.067896044802146e-7,7.075319908149036e-7,1.2295749410936786e-9,9.900589211400027e-10,1.581411239036335e-9 +ListData/22049,7.060592235960568e-7,7.052854138112311e-7,7.067641772981576e-7,2.5681391418918643e-9,2.1489979089750905e-9,3.0981046549969105e-9 +ListData/693253,7.023659295366258e-7,7.014890180697824e-7,7.033284187294299e-7,3.003672263794462e-9,2.598070328327981e-9,3.6694555786531275e-9 +ListData/97073,7.039377851467595e-7,7.034509771506832e-7,7.043591417774128e-7,1.6119377782692513e-9,1.3979152160391117e-9,1.8605107495694267e-9 +ListData/0,7.042569447687006e-7,7.037008663622083e-7,7.048647220377001e-7,1.963495007313853e-9,1.695874950953255e-9,2.388804663198025e-9 +ListData/3049,7.037560067047627e-7,7.029012014031279e-7,7.045121907767588e-7,2.6289796944799935e-9,2.01600828374493e-9,3.4093091260592927e-9 +ListData/33442,7.034176478826589e-7,7.029114607340035e-7,7.039718211317426e-7,1.7610788437190453e-9,1.4702375859425144e-9,2.2067271887118502e-9 +ListData/42461,7.005595927680079e-7,7.001141812145293e-7,7.010657613799514e-7,1.6205810271087224e-9,1.4016474528149895e-9,1.896279784327441e-9 +ListData/60,7.045941546430212e-7,7.037553128460471e-7,7.054338432953459e-7,2.717403203037134e-9,2.326932505764524e-9,3.146331504562374e-9 +ListData/38,7.040707215431976e-7,7.034910197345509e-7,7.04723928456305e-7,2.027724920323695e-9,1.7371019736682714e-9,2.5017905684789945e-9 +ListData/0,7.017402190584392e-7,7.009239753300674e-7,7.024596734304557e-7,2.7540012346278717e-9,2.3251094076601043e-9,3.3952926827846606e-9 +ListData/208,7.023227873643781e-7,7.016523450723341e-7,7.028984775057717e-7,2.0339564266494767e-9,1.7725677380798097e-9,2.3837029755314843e-9 +ListData/705,7.045066754988534e-7,7.037077074827325e-7,7.05242196900749e-7,2.438976821577512e-9,2.1432713374732593e-9,2.7904443181008536e-9 +ListData/3527,7.039501255595274e-7,7.033798445380229e-7,7.046049567462106e-7,1.9682480865392224e-9,1.695694033521998e-9,2.272051321805099e-9 +ListData/571,7.03437651712763e-7,7.027368306095495e-7,7.04148403039471e-7,2.2894226309396276e-9,1.8181316846793953e-9,3.0966854538658656e-9 +ListData/450,6.999147779860633e-7,6.993080802079796e-7,7.00515264667502e-7,2.081746129809817e-9,1.6925440646655076e-9,2.5667544002123826e-9 +IData/10,6.857096362754756e-7,6.849759119014186e-7,6.866231786750775e-7,2.6782623909783833e-9,2.257431457363499e-9,3.0936000569345634e-9 +IData/10,6.876611588915939e-7,6.873182078269726e-7,6.880389647649679e-7,1.2832776316387634e-9,1.0315440649686759e-9,1.6239886990596856e-9 +IData/10,6.892188736983081e-7,6.886348109120199e-7,6.89696438823554e-7,1.7030107661010137e-9,1.4472602633894612e-9,2.0651051366325886e-9 +IData/10,6.853614156223001e-7,6.849660722496067e-7,6.857576966849359e-7,1.3643411307265156e-9,1.1241271031216496e-9,1.836233617670901e-9 +IData/10,6.853774697647751e-7,6.849054218178724e-7,6.857202290841549e-7,1.3698383429428672e-9,1.098129751554662e-9,1.767301074529535e-9 +IData/10,6.855630130229779e-7,6.850269291881373e-7,6.860583358935282e-7,1.7537660080780569e-9,1.4120163974565527e-9,2.21727918058842e-9 +IData/10,6.855576967476601e-7,6.852170478196622e-7,6.859505074760339e-7,1.1870380431125512e-9,9.916308425466346e-10,1.5136520832968638e-9 +IData/10,6.859185926463118e-7,6.854778858938551e-7,6.863315273553743e-7,1.4150309763703516e-9,1.2393577187000653e-9,1.618812089319261e-9 +IData/10,6.855384722928532e-7,6.848237861085189e-7,6.861875396019877e-7,2.1290647640086155e-9,1.7506223946214202e-9,2.691012056671423e-9 +IData/10,6.862100835126913e-7,6.85562235953011e-7,6.869158681592851e-7,2.315648226980872e-9,1.9948193857173476e-9,2.7610907590970386e-9 +IData/10,6.837327368738609e-7,6.831878298629467e-7,6.842679705316498e-7,1.7963893544118865e-9,1.537906823625703e-9,2.1830474277220366e-9 +IData/10,6.837698877397426e-7,6.832316342079311e-7,6.841917819469832e-7,1.5845124705273458e-9,1.182913341039926e-9,2.189999795636611e-9 +IData/10,6.846769281535623e-7,6.842404814363067e-7,6.851650119834856e-7,1.5611499986276953e-9,1.2210297635551946e-9,2.3986820235200093e-9 +IData/10,6.885620368256796e-7,6.878477846144501e-7,6.890609703030705e-7,1.9971010705159763e-9,1.5864682129736151e-9,2.663302158996641e-9 +IData/10,6.840620529078565e-7,6.834380355740315e-7,6.84761934267118e-7,2.2521053798155835e-9,1.9760177264374783e-9,2.6001818650823847e-9 +IData/10,6.831899011496652e-7,6.827956820093378e-7,6.837180705738335e-7,1.4889830616437902e-9,1.0957140681359103e-9,2.2266958227407932e-9 +IData/10,6.829334357214366e-7,6.825177413812607e-7,6.835726944816146e-7,1.6712930589181304e-9,1.4075097162191283e-9,2.1397037820672863e-9 +IData/10,6.85346465186042e-7,6.846737198239114e-7,6.860021982035573e-7,2.2270169035739723e-9,1.896010636450037e-9,2.6521451197507068e-9 +IData/10,6.835893118381613e-7,6.830291683396998e-7,6.84204025269154e-7,1.8217497642664396e-9,1.4956977033763633e-9,2.262686911206305e-9 +IData/10,6.84031778586993e-7,6.836429687744127e-7,6.844368735175127e-7,1.2926385462511481e-9,1.0329086882799462e-9,1.6120621161227196e-9 +IData/10,6.886991360239309e-7,6.881445928978395e-7,6.892230389613815e-7,1.814901889102951e-9,1.554674421340822e-9,2.1061528914385466e-9 +IData/10,6.870957658049797e-7,6.865974102957192e-7,6.875591528894394e-7,1.6126264800233652e-9,1.3630671403675763e-9,1.9464501646043043e-9 +IData/10,6.859846332798897e-7,6.855626292669454e-7,6.864084543073394e-7,1.3781559846877399e-9,1.1425375207241761e-9,1.706276350126993e-9 +IData/10,6.864101029615152e-7,6.859905903075327e-7,6.868474778485833e-7,1.4192230849623312e-9,1.2231324925836203e-9,1.6288697548291295e-9 +IData/10,6.843304079789123e-7,6.838758047753777e-7,6.84883975271375e-7,1.8321347813784844e-9,1.5715489349041456e-9,2.318184910515217e-9 +IData/10,6.839539929033828e-7,6.834014938696319e-7,6.844321253005626e-7,1.7155340863286902e-9,1.4167810234507396e-9,2.1308528996575026e-9 +IData/10,6.852521612982113e-7,6.847468918906825e-7,6.858638752789982e-7,1.982375414119807e-9,1.671142563896483e-9,2.4349030994390066e-9 +IData/10,6.854432399888849e-7,6.850181098105551e-7,6.860710178081089e-7,1.64734983570687e-9,1.1819706476224193e-9,2.6344057114284213e-9 +IData/10,6.851030516947779e-7,6.845557514077013e-7,6.856585658935809e-7,1.8102409210183351e-9,1.5176099190991732e-9,2.272143978910092e-9 +IData/10,6.848716102428442e-7,6.843930232294956e-7,6.853705093086625e-7,1.6308314088431632e-9,1.2837596995980107e-9,2.1998027786779443e-9 +IData/10,6.838738813735146e-7,6.83181223827773e-7,6.844652339004097e-7,2.1577627154447655e-9,1.7486080960981459e-9,2.685000674708731e-9 +IData/10,6.876661519515225e-7,6.872031848413644e-7,6.881273108619252e-7,1.5185254123709537e-9,1.2370679095882722e-9,1.937655208909458e-9 +IData/10,6.851904162925863e-7,6.846002155351446e-7,6.857866788154001e-7,1.9291565589637937e-9,1.6213569495732115e-9,2.325124396312061e-9 +IData/10,6.853959000455895e-7,6.850278841531237e-7,6.856771541704892e-7,1.0504382267067313e-9,7.886120281922741e-10,1.3577162966049077e-9 +IData/10,6.882765574044661e-7,6.877961129702341e-7,6.889070744812822e-7,1.8210064218582754e-9,1.4976479697225458e-9,2.304679435624392e-9 +IData/10,6.847731955136949e-7,6.840686437959918e-7,6.854825756445724e-7,2.2514136583871318e-9,1.9328760458815815e-9,2.62518655333638e-9 +IData/10,6.839257398915742e-7,6.835761725891011e-7,6.843102149040732e-7,1.2371225220917756e-9,1.0104851504601562e-9,1.5563570493229761e-9 +IData/10,6.842519936886367e-7,6.83781898677283e-7,6.846718454443808e-7,1.4364991972977785e-9,1.1933509304419736e-9,1.7231949635256858e-9 +IData/10,6.848961804680462e-7,6.844328319370977e-7,6.854584780618194e-7,1.6504150630442042e-9,1.2848339069837337e-9,2.2875293146211883e-9 +IData/10,6.84003973554047e-7,6.836610255769853e-7,6.84366334901236e-7,1.232555747772491e-9,1.0510744815375876e-9,1.4680074750569865e-9 +IData/10,6.843686171885842e-7,6.83805354167708e-7,6.849123192281497e-7,1.7322435662728069e-9,1.4866138634109216e-9,2.1302294709173143e-9 +IData/10,6.859145138736578e-7,6.854490782980703e-7,6.863911632530489e-7,1.6471016878321492e-9,1.4030159652439491e-9,1.9378766384021107e-9 +IData/10,6.831210912783433e-7,6.826486831346115e-7,6.83640796864427e-7,1.6145455058590834e-9,1.396313862071243e-9,1.8689609932352152e-9 +IData/10,6.840011377581962e-7,6.836429589448703e-7,6.843689119662772e-7,1.2283636122760088e-9,1.0228441506724592e-9,1.4672913170635327e-9 +IData/10,6.850222235620981e-7,6.845748580378103e-7,6.854839747804659e-7,1.4494936343736835e-9,1.2087331885521045e-9,1.85153760329789e-9 +IData/10,6.838686247484619e-7,6.834119516124474e-7,6.842965702976608e-7,1.5130363023393659e-9,1.2558845954158042e-9,1.9293498581976987e-9 +IData/10,6.824770775808418e-7,6.820426846855809e-7,6.829611514151555e-7,1.6016906745187822e-9,1.3575132167489513e-9,1.9417543629362176e-9 +IData/10,6.834902104923541e-7,6.828381984764644e-7,6.842077122122772e-7,2.249845958897062e-9,1.8953293523796734e-9,2.662854680316537e-9 +IData/10,6.858529687452293e-7,6.85068792997511e-7,6.866831191435981e-7,2.555466599766223e-9,2.1024032326582808e-9,3.0889401450119466e-9 +IData/10,6.83217887336181e-7,6.827166931373857e-7,6.837442794492869e-7,1.7004884057497966e-9,1.3709805013745636e-9,2.0818651293239387e-9 +BData/5,6.779079085516194e-7,6.774823247799055e-7,6.782709884552182e-7,1.3516722002495596e-9,1.1746793658651065e-9,1.5792991305243382e-9 +BData/2,6.781788121510771e-7,6.777863552917421e-7,6.785518653897102e-7,1.3021321105320782e-9,1.1090859593738608e-9,1.5740979129865254e-9 +BData/5,6.786381230324956e-7,6.781460996931683e-7,6.792148961566362e-7,1.781987609749495e-9,1.363558458905029e-9,2.3052933044668487e-9 +BData/2,6.807110726962152e-7,6.802172377404239e-7,6.813370089789813e-7,1.9507531239200556e-9,1.506771891634871e-9,2.735298925455673e-9 +BData/2,6.775543783318549e-7,6.771819754736161e-7,6.779732103091934e-7,1.2978184636271627e-9,1.0731072937161171e-9,1.6263893620233421e-9 +BData/2,6.794098826525351e-7,6.788552244795627e-7,6.801052180558306e-7,2.077143334804906e-9,1.709989031136351e-9,2.635298071344019e-9 +BData/5,6.804501945053708e-7,6.796316692066982e-7,6.812463164766499e-7,2.6079862692893273e-9,2.1934576337055313e-9,3.0315227784323586e-9 +BData/5,6.816598769352309e-7,6.81358468822459e-7,6.820064596111416e-7,1.0869424646044791e-9,9.508968220566084e-10,1.2710148850351065e-9 +BData/3,6.79119308808323e-7,6.787092748759414e-7,6.795102896625875e-7,1.352073403693095e-9,1.1416352076623973e-9,1.7241947381604343e-9 +BData/3,6.786505423632289e-7,6.782544707362338e-7,6.790954109001488e-7,1.3977946677099514e-9,1.1488763616784175e-9,1.7573567804905211e-9 +BData/3,6.806715224808967e-7,6.80270001136042e-7,6.81064055705142e-7,1.3083289364417058e-9,1.1123325633932459e-9,1.6052387439520528e-9 +BData/1,6.812773326884351e-7,6.809114522966263e-7,6.816277605286943e-7,1.3217519333529293e-9,1.1288355103058786e-9,1.6287570347262386e-9 +BData/1,6.798901856984031e-7,6.795048710977425e-7,6.802867497515204e-7,1.287781179935351e-9,1.058050200093243e-9,1.6247151916403166e-9 +BData/2,6.793780818542505e-7,6.787337776751352e-7,6.798693547084264e-7,1.96276042462287e-9,1.4810125606611393e-9,2.594101977327688e-9 +BData/2,6.807242236405796e-7,6.802234000611615e-7,6.813597195921516e-7,1.872077344703272e-9,1.5509850947299632e-9,2.330598564327968e-9 +BData/1,6.789196729168502e-7,6.784591936393379e-7,6.793524565219765e-7,1.49575239978324e-9,1.2552453696298863e-9,1.8424202374334074e-9 +BData/4,6.824314324009406e-7,6.818664924498932e-7,6.829547315263673e-7,1.7637293183348845e-9,1.4388544632078565e-9,2.24565657857429e-9 +BData/5,6.813924558295648e-7,6.809634787400299e-7,6.818066461603663e-7,1.420183585634959e-9,1.1132141370957264e-9,1.9114349449181963e-9 +BData/4,6.822293702483204e-7,6.817469568514702e-7,6.826580719687829e-7,1.5143320123967717e-9,1.3077227278541887e-9,1.843501428043207e-9 +BData/4,6.802353240885098e-7,6.798942107450869e-7,6.806150482457381e-7,1.2323968874404586e-9,9.973406056921023e-10,1.51721125328558e-9 +BData/1,6.840260943731648e-7,6.835431558077865e-7,6.84511092645314e-7,1.5103129057939347e-9,1.3431200074187668e-9,1.7202604273714225e-9 +BData/5,6.792055092157921e-7,6.787277028670287e-7,6.796380627410648e-7,1.4938164767024161e-9,1.2793029296094913e-9,1.8416054909243536e-9 +BData/4,6.80398264226925e-7,6.800701522049396e-7,6.807138335247383e-7,1.1090023518145968e-9,9.425484946194312e-10,1.3535961831347865e-9 +BData/3,6.811580977406829e-7,6.805965413317368e-7,6.817438033200733e-7,1.849504663563883e-9,1.5637256243253122e-9,2.1883699824040026e-9 +BData/1,6.84104891863163e-7,6.836360884612344e-7,6.845522000579669e-7,1.5442009643611394e-9,1.326066263552861e-9,1.8532223583824716e-9 +BData/5,6.833519676376687e-7,6.828303672634357e-7,6.838107701171281e-7,1.6504953769839356e-9,1.3652468807444137e-9,2.1119071564774424e-9 +BData/1,6.784408331223848e-7,6.780816443172581e-7,6.787998229003006e-7,1.1978907825080046e-9,9.56960275662789e-10,1.5459984994547616e-9 +BData/1,6.815502769511244e-7,6.812297347503706e-7,6.819530394987957e-7,1.221262492975506e-9,1.0373092806638409e-9,1.4778838146874848e-9 +BData/1,6.812253627983847e-7,6.807741881144503e-7,6.817441449331457e-7,1.5926551437525404e-9,1.3459657541693947e-9,1.9435475180482037e-9 +BData/5,6.792783022352904e-7,6.787526398620683e-7,6.798760387295876e-7,1.937137870607029e-9,1.618949777118634e-9,2.3308049437682754e-9 +BData/4,6.782963147649446e-7,6.780325153035066e-7,6.785802416898132e-7,9.079386623878821e-10,7.553501186311985e-10,1.154099621493006e-9 +BData/1,6.808728159609576e-7,6.805032180811873e-7,6.811489100980179e-7,1.0653010038715293e-9,8.65410267489641e-10,1.338012944349085e-9 +BData/2,6.78001706711001e-7,6.775583284484023e-7,6.78448790739472e-7,1.5074730440915855e-9,1.211614626409173e-9,1.985889048574396e-9 +BData/3,6.811847638406736e-7,6.807116043653114e-7,6.816609168911269e-7,1.6178609081072614e-9,1.4018599299062844e-9,1.9584169117778556e-9 +BData/4,6.830940695847177e-7,6.826994305164468e-7,6.835298159802057e-7,1.3362102554016616e-9,1.1464473111520524e-9,1.546890924790412e-9 +BData/4,6.833207235918566e-7,6.829875919979211e-7,6.836643162114762e-7,1.0948719691268261e-9,9.452810642290964e-10,1.354312643660421e-9 +BData/5,6.814950656352487e-7,6.809662411426052e-7,6.820329478384661e-7,1.714122077103486e-9,1.4675255090992146e-9,2.0695860595934026e-9 +BData/3,6.81382067623113e-7,6.807784995441726e-7,6.819636451017213e-7,1.984350487355445e-9,1.719095180460813e-9,2.266579718970996e-9 +BData/2,6.798471090640557e-7,6.79453837651201e-7,6.802789506069237e-7,1.3570491223384117e-9,1.1456487925005712e-9,1.7580244204764543e-9 +BData/3,6.807129920846992e-7,6.803231168602318e-7,6.811896141615574e-7,1.461662749162805e-9,1.1652474724143915e-9,1.9179816857210943e-9 +BData/2,6.823324761494704e-7,6.817447806721485e-7,6.828238501642424e-7,1.6728428105682393e-9,1.2954491293773377e-9,2.1968826019523567e-9 +BData/1,6.8238229657559e-7,6.820233810020218e-7,6.82811592072899e-7,1.419720207387991e-9,1.1980572073843948e-9,1.7584270224972685e-9 +BData/4,6.817814301205029e-7,6.813589037683056e-7,6.822617918841292e-7,1.4937464894807099e-9,1.2632359236153582e-9,1.7856230925849884e-9 +BData/3,6.822194631781534e-7,6.815399108249835e-7,6.82930086149711e-7,2.281118711860784e-9,2.0003643516444765e-9,2.6884638765329076e-9 +BData/2,6.832105978036576e-7,6.82771820955023e-7,6.836396296075021e-7,1.5787182678579286e-9,1.314540264500572e-9,1.9773585374943285e-9 +BData/1,6.843958312612406e-7,6.840166182815293e-7,6.847559753048662e-7,1.2369208032716265e-9,1.027774787870096e-9,1.552532590992615e-9 +BData/5,6.817487208301488e-7,6.812918036606464e-7,6.822696531626788e-7,1.657440583166673e-9,1.388430772501464e-9,2.009047048839012e-9 +BData/3,6.837953385301627e-7,6.834240328905137e-7,6.8415415555012e-7,1.172810713271777e-9,9.605516217140433e-10,1.5990254429773795e-9 +BData/1,6.832155233936311e-7,6.828066187548981e-7,6.835669863576015e-7,1.2887235899129843e-9,1.092988140867738e-9,1.5113374746203614e-9 +BData/1,6.813243856700504e-7,6.809349154171904e-7,6.816118052365153e-7,1.114253615582853e-9,8.940269535944686e-10,1.3924290605819692e-9 +UnConstrData/12,6.939174941800897e-7,6.934830784056693e-7,6.943059146115275e-7,1.4059465565354833e-9,1.167739793097481e-9,1.6973740293471267e-9 +UnConstrData/36,6.951817435169389e-7,6.947885476385481e-7,6.954939789331277e-7,1.1944989893946388e-9,1.030677589700205e-9,1.4312057237715091e-9 +UnConstrData/11,6.960585955686156e-7,6.957728437927687e-7,6.963491360024947e-7,9.861940909575835e-10,8.396226030095385e-10,1.1936456739537983e-9 +UnConstrData/12,6.942707446706839e-7,6.93996077989259e-7,6.945916253588869e-7,9.800295113189383e-10,7.830367562922101e-10,1.3559948494516941e-9 +UnConstrData/4,6.932301312638521e-7,6.92771128086852e-7,6.937428191055866e-7,1.71830125144442e-9,1.4577721739541109e-9,2.1548442041511774e-9 +UnConstrData/45,6.952725213157986e-7,6.949054286128163e-7,6.95682317188026e-7,1.309737189288646e-9,1.096836973288356e-9,1.5514310198685578e-9 +UnConstrData/473,6.957504767487123e-7,6.953421078080719e-7,6.962597554745352e-7,1.6103463035950754e-9,1.3343393524159356e-9,2.0783471789492922e-9 +UnConstrData/107,6.937578587187696e-7,6.933766595307584e-7,6.941482494865274e-7,1.2840972357673026e-9,1.0902024140012881e-9,1.5390822340855144e-9 +UnConstrData/254,6.943374556760878e-7,6.936565492356237e-7,6.950480955289446e-7,2.4148830688732548e-9,2.100084711550603e-9,2.9695935469848743e-9 +UnConstrData/463,6.946732361245541e-7,6.942512404800938e-7,6.951441893628464e-7,1.530642146423499e-9,1.310596840019554e-9,1.7929610361539043e-9 +UnConstrData/4,6.923610418291567e-7,6.920400861129325e-7,6.926593153044939e-7,1.0563692918195176e-9,8.76517920051104e-10,1.4261071980709363e-9 +UnConstrData/191,6.920934308242064e-7,6.91599449818445e-7,6.925454754585956e-7,1.6703655029919957e-9,1.4449471090590843e-9,1.9706098321805287e-9 +UnConstrData/9,6.923956700913978e-7,6.917671776177224e-7,6.931056778185916e-7,2.2963132755744332e-9,2.0298408495876455e-9,2.6071791798583914e-9 +UnConstrData/29,6.930911088129391e-7,6.925006008161712e-7,6.9379793073388e-7,2.107768846250316e-9,1.719745309972426e-9,2.673685983626862e-9 +UnConstrData/305,6.935125184728034e-7,6.930211884539125e-7,6.93979313574909e-7,1.658274298314465e-9,1.4220866171717533e-9,1.9564516731626308e-9 +UnConstrData/645,6.929078163561769e-7,6.923207554807371e-7,6.934503443650065e-7,1.9872147931285123e-9,1.7199675538041377e-9,2.4081373400925128e-9 +UnConstrData/273,6.955137515906745e-7,6.95058976148441e-7,6.959528775105748e-7,1.4492303562981084e-9,1.2139258195642739e-9,1.8105203694375011e-9 +UnConstrData/525,6.939272033146502e-7,6.930218162596457e-7,6.94787192472798e-7,3.0473184855841582e-9,2.6254611599915383e-9,3.596352985566969e-9 +UnConstrData/379,6.960632590710741e-7,6.955850160922828e-7,6.965490819601633e-7,1.5738375156220882e-9,1.2973654744561118e-9,1.9115054694794826e-9 +UnConstrData/45,6.906969302009567e-7,6.903391627749603e-7,6.911037521282756e-7,1.3527924248862467e-9,1.1091708395144992e-9,1.7047114367897189e-9 +UnConstrData/4,6.935699544452554e-7,6.931226882596095e-7,6.940906428064858e-7,1.6761442027122351e-9,1.4151362972960132e-9,2.0005716046016078e-9 +UnConstrData/43,6.933864248030163e-7,6.928593254980468e-7,6.938650853425398e-7,1.7361646672770877e-9,1.387182535069275e-9,2.331231654274417e-9 +UnConstrData/662,6.923884396542933e-7,6.91993348382014e-7,6.927696665399442e-7,1.2658885910680442e-9,1.0721277055776352e-9,1.5391053632801825e-9 +UnConstrData/1951,6.955646888137546e-7,6.950212652233269e-7,6.960886342658981e-7,1.8221135586580723e-9,1.5678846838857323e-9,2.171793017021138e-9 +UnConstrData/4,6.955216924419634e-7,6.948785501843985e-7,6.961441429904427e-7,2.0741328847341566e-9,1.7631715396029223e-9,2.5639596245102754e-9 +UnConstrData/347,6.948237794078788e-7,6.943452131006384e-7,6.953253333172641e-7,1.6417210852453922e-9,1.4045277181830317e-9,1.9985160152700335e-9 +UnConstrData/4,6.956018577392578e-7,6.949658174283172e-7,6.962849613905571e-7,2.361369326840153e-9,2.0758784761752446e-9,2.7630407477528983e-9 +UnConstrData/13,6.955089326702639e-7,6.948652857328063e-7,6.962221551441997e-7,2.4694759928229674e-9,2.1575677563995433e-9,2.845832637532502e-9 +UnConstrData/3566,6.935740365362294e-7,6.930186482675086e-7,6.940858625376764e-7,1.7036942141914496e-9,1.4687261670573023e-9,2.0267809728330525e-9 +UnConstrData/1324,6.921331806043152e-7,6.915626455875611e-7,6.928218716973998e-7,2.1991229330779334e-9,1.839259591991902e-9,2.726015101899048e-9 +UnConstrData/3393,6.955714823428793e-7,6.948641857586093e-7,6.962520288048943e-7,2.330660110874897e-9,2.0479612513060988e-9,2.7562758741130513e-9 +UnConstrData/4,6.944854182628364e-7,6.938597889028519e-7,6.950656729681687e-7,2.002436371318213e-9,1.7234873301226904e-9,2.422144182296151e-9 +UnConstrData/1681,6.903765273867841e-7,6.897498644580716e-7,6.910510873587671e-7,2.134599250102466e-9,1.7574930649286935e-9,2.616360189368249e-9 +UnConstrData/1943,6.927869210069139e-7,6.922969684522985e-7,6.933041792031229e-7,1.6911679047229025e-9,1.4588267443069218e-9,2.034430136756081e-9 +UnConstrData/1897,6.934571173836366e-7,6.930409872347868e-7,6.940586729340173e-7,1.5598222258820973e-9,1.2145153740663096e-9,2.073961915167223e-9 +UnConstrData/8,6.931643184285235e-7,6.925726615324678e-7,6.937807033811195e-7,2.018074980365888e-9,1.661890449637998e-9,2.4163597252884644e-9 +UnConstrData/1662,6.928563610145885e-7,6.923458965841366e-7,6.933071321440935e-7,1.5831925792026774e-9,1.3008040781933685e-9,2.0096998702485056e-9 +UnConstrData/29918,6.916398826566762e-7,6.910291287710602e-7,6.923438523807975e-7,2.1409327887721544e-9,1.8590115218135432e-9,2.673572933210312e-9 +UnConstrData/982,6.968149135695609e-7,6.965167006580483e-7,6.97121022922196e-7,9.958046156994774e-10,8.246710422669357e-10,1.2145527477360287e-9 +UnConstrData/12555,6.95441447825821e-7,6.945731963310637e-7,6.964566848730468e-7,3.2517268694008042e-9,2.7101246855903694e-9,3.931402665034037e-9 +UnConstrData/48640,6.99476073968936e-7,6.986890225170609e-7,7.00255248529628e-7,2.550113501268204e-9,2.1990582792857046e-9,3.10800366541632e-9 +UnConstrData/4,6.95346562839034e-7,6.947156129878474e-7,6.960131960013575e-7,2.26688369364793e-9,1.90536313504534e-9,2.6697848176654827e-9 +UnConstrData/8145,6.94552114261502e-7,6.941515262155438e-7,6.950299267871935e-7,1.441006352622224e-9,1.1282335072781008e-9,1.8225552583363195e-9 +UnConstrData/573,6.931979728745258e-7,6.92616676839877e-7,6.937677467670414e-7,1.8788012083632358e-9,1.5808077323212027e-9,2.2195310472569694e-9 +UnConstrData/1278,6.95384149516464e-7,6.949290102202709e-7,6.958604883896273e-7,1.5317678062379066e-9,1.2955820579082297e-9,1.834545691210115e-9 +UnConstrData/2452,6.955211128883973e-7,6.950567749976805e-7,6.959245973849087e-7,1.4969745398247808e-9,1.2505932213339474e-9,1.8486901525457927e-9 +UnConstrData/21357,6.988759627536941e-7,6.983826388620907e-7,6.993886739943087e-7,1.8053209152912184e-9,1.5750673278107854e-9,2.065233673127091e-9 +UnConstrData/4,6.964141963878283e-7,6.95805222366285e-7,6.970674999285851e-7,2.0588078836121806e-9,1.7865013024885344e-9,2.3976462735096786e-9 +UnConstrData/4,6.986150461219174e-7,6.981384885447801e-7,6.989481699679951e-7,1.3427514466182784e-9,1.0488913303665674e-9,1.8091269641376766e-9 +UnConstrData/72384,6.971384955982133e-7,6.96741761450471e-7,6.975545590044498e-7,1.4137260807662604e-9,1.229983660951778e-9,1.6737860641679682e-9 +UnMapData/143,6.957473617145061e-7,6.952724805579069e-7,6.963080031395521e-7,1.7029810998577533e-9,1.4405637798923773e-9,2.0117343599451278e-9 +UnMapData/149,6.950602664897048e-7,6.946941934597701e-7,6.95433650283647e-7,1.2921450690767565e-9,1.0628420512909951e-9,1.5797897407385346e-9 +UnMapData/133,6.964952611286867e-7,6.95814832189249e-7,6.970480676540898e-7,2.0212875272706623e-9,1.61264656587127e-9,2.45065914188388e-9 +UnMapData/173,6.937896471494913e-7,6.929710488287236e-7,6.944748828283126e-7,2.485808764854208e-9,2.0684140534617955e-9,2.8959478134888783e-9 +UnMapData/212,6.957253316816127e-7,6.951868281463705e-7,6.962991788114252e-7,1.7888760204578356e-9,1.5084844193764847e-9,2.118017552315837e-9 +UnMapData/705,6.946594390524784e-7,6.942272653103414e-7,6.95102968751615e-7,1.4707590441672682e-9,1.1993157022838134e-9,1.826864968584201e-9 +UnMapData/44,6.933453450362567e-7,6.929326523664452e-7,6.938124389627884e-7,1.554076420010062e-9,1.327675579977485e-9,1.849382910131923e-9 +UnMapData/74,6.951827076268539e-7,6.944955059567764e-7,6.960550244583698e-7,2.567535629433662e-9,1.9429582215101282e-9,3.636268136988748e-9 +UnMapData/74,6.949565667128818e-7,6.946018470694844e-7,6.954091800107157e-7,1.376047679991954e-9,1.1355966548282932e-9,1.6854410329648816e-9 +UnMapData/14,6.932789287423665e-7,6.92902072841143e-7,6.937185103809624e-7,1.338960643777062e-9,1.144847646915455e-9,1.6244009354050172e-9 +UnMapData/14,6.924485759424685e-7,6.921229298029709e-7,6.927829291691847e-7,1.1333559183397248e-9,9.412867525420484e-10,1.3788297126878093e-9 +UnMapData/203,6.946113416095846e-7,6.940744377667508e-7,6.950713592751629e-7,1.6275418336607288e-9,1.3641091838998669e-9,1.894745496527065e-9 +UnMapData/503,6.957509434859893e-7,6.952026979944487e-7,6.962990093588019e-7,1.919787942087093e-9,1.6611519883555817e-9,2.1995458126234886e-9 +UnMapData/79,6.965406098574804e-7,6.95999753909775e-7,6.969608249537757e-7,1.5245000131869835e-9,1.3342898911004638e-9,1.8268050254322125e-9 +UnMapData/2133,6.935201793454333e-7,6.93027368944636e-7,6.940543487380248e-7,1.6497971217638245e-9,1.3737647730898351e-9,2.018969141846446e-9 +UnMapData/414,6.940441250543673e-7,6.936413803012966e-7,6.945312176843e-7,1.442312193064825e-9,1.2038119906673943e-9,1.8246394630954324e-9 +UnMapData/2018,6.974355299319983e-7,6.969970687911086e-7,6.978829764977283e-7,1.552035541429296e-9,1.3629747606277461e-9,1.7817271928784275e-9 +UnMapData/26617,6.978759194510553e-7,6.972841254946444e-7,6.985328684162927e-7,2.032946897668026e-9,1.7149906788975e-9,2.4476730385442717e-9 +UnMapData/25729,6.925916446016744e-7,6.921694345484032e-7,6.929649329653436e-7,1.3079668976146184e-9,1.070628877158839e-9,1.6500920460167007e-9 +UnMapData/4,6.95396998026201e-7,6.948895525745993e-7,6.959005004471758e-7,1.6691707982533438e-9,1.3849399031371825e-9,2.0978632223949128e-9 +UnMapData/4,6.950232337719214e-7,6.945169289336826e-7,6.954707068197426e-7,1.577791838973331e-9,1.3194001944397147e-9,1.9074079395229294e-9 +UnMapData/940,6.940885178458649e-7,6.936362410676285e-7,6.946122065099365e-7,1.6333514349691913e-9,1.4278676103986327e-9,1.876480960010629e-9 +UnMapData/797,6.933383315682298e-7,6.928470140649093e-7,6.93843622905208e-7,1.7472282308199032e-9,1.4846395831954789e-9,2.0771550340570747e-9 +UnMapData/845,6.978223956166785e-7,6.973005232098526e-7,6.983522201370185e-7,1.7935208488726776e-9,1.518580745836268e-9,2.2177392716567093e-9 +UnMapData/22221,6.946131564130528e-7,6.942799444733887e-7,6.949519358003122e-7,1.182098968222617e-9,9.791447149791031e-10,1.4346776293964688e-9 +UnMapData/27670,6.914984189669903e-7,6.909194218085273e-7,6.91988869696954e-7,1.8128491202411893e-9,1.5190175548900277e-9,2.3452067374213893e-9 +UnMapData/227289,6.925645081408859e-7,6.92304804723445e-7,6.928477056892658e-7,9.649018992971461e-10,8.447801450005803e-10,1.143379481923793e-9 +UnMapData/5939,6.953604822214972e-7,6.948869112720304e-7,6.957811792117581e-7,1.492849126112397e-9,1.26835269088054e-9,1.7851357743316794e-9 +UnMapData/78789,6.963254206513679e-7,6.958322062752283e-7,6.970293020898373e-7,2.0639070456341672e-9,1.7108497083934722e-9,2.509478821861522e-9 +UnMapData/707645,6.948048090919947e-7,6.943967905148929e-7,6.952729601352179e-7,1.389100029667477e-9,1.0899359735038222e-9,1.8045811503214034e-9 +UnMapData/5538,6.924038165577518e-7,6.92038148892989e-7,6.92771703087646e-7,1.225638595731151e-9,1.0588543099182341e-9,1.4284498681330962e-9 +UnMapData/60657,6.974800231295685e-7,6.969263012263516e-7,6.981173473845088e-7,2.0377174439178116e-9,1.8151353004709749e-9,2.3128710178431134e-9 +UnMapData/43405,6.942299849230936e-7,6.938608390509882e-7,6.944980796979828e-7,1.0959880272392336e-9,9.335695460578698e-10,1.4170075998538574e-9 +UnMapData/78198,6.964980018382909e-7,6.961364181969111e-7,6.968881999234314e-7,1.2687964341795185e-9,1.0248927674857617e-9,1.546765820360038e-9 +UnMapData/307548,6.902743210284745e-7,6.898194011592527e-7,6.907792538378051e-7,1.5949121454949216e-9,1.3241035571605693e-9,1.927340176117083e-9 +UnMapData/521820,6.942583340737581e-7,6.937653813987328e-7,6.946837252029545e-7,1.544335507407721e-9,1.268647553763504e-9,1.9860092817743727e-9 +UnMapData/1285,6.958869012860069e-7,6.952464311618855e-7,6.965402142152564e-7,2.2006573695904135e-9,1.902617465824333e-9,2.707120207100686e-9 +UnMapData/4,6.922875254942555e-7,6.918871338404529e-7,6.927032664057439e-7,1.3383944581084896e-9,1.0797600650317122e-9,1.749800030521591e-9 +UnMapData/5949,6.944913969668473e-7,6.939571204146231e-7,6.949867692270328e-7,1.7180664469583088e-9,1.4067396231534489e-9,2.2176072133594443e-9 +UnMapData/20063,6.931500779962622e-7,6.92592974678691e-7,6.937068628093454e-7,1.8627247496278082e-9,1.5866405160075981e-9,2.1957126987442642e-9 +UnMapData/35500,6.943401886161579e-7,6.93824030900093e-7,6.954619164390902e-7,2.435996072939655e-9,1.5293770393883502e-9,4.279601449506132e-9 +UnMapData/489501,6.90894844691144e-7,6.904540382979094e-7,6.913028525200722e-7,1.4344948909168428e-9,1.217273493013454e-9,1.7631662883601937e-9 +UnMapData/316510,6.940253462461321e-7,6.936021321725063e-7,6.944498617878122e-7,1.4512631665964831e-9,1.221337779116813e-9,1.8395467840603946e-9 +UnMapData/227442,6.910065120578034e-7,6.903481821323311e-7,6.91733455384103e-7,2.300302632699908e-9,1.874932364644545e-9,3.158091013953982e-9 +UnMapData/1102203,6.953910816121904e-7,6.949449021002361e-7,6.959292231748596e-7,1.5973724624467728e-9,1.3939614319998359e-9,1.8598500977427227e-9 +UnMapData/149,6.948255338585934e-7,6.943447688291613e-7,6.953480406132504e-7,1.6941107810550523e-9,1.4301042426176241e-9,2.167381349401313e-9 +UnMapData/1231,6.939836047194206e-7,6.936076524643153e-7,6.945113887560705e-7,1.4543380373943438e-9,1.1353306068257214e-9,2.2301311792409178e-9 +UnMapData/1127,6.92709654777686e-7,6.922170078473799e-7,6.932193220377012e-7,1.6601232591184272e-9,1.393868853461717e-9,1.984485904745022e-9 +UnMapData/388,6.925438654435015e-7,6.920673406859566e-7,6.932216547106154e-7,1.8113694516485248e-9,1.4298868441491294e-9,2.4593991587107567e-9 +UnMapData/13231,6.942266289700688e-7,6.938214748689148e-7,6.946614991117979e-7,1.4193237559770615e-9,1.2141238792600866e-9,1.7113121510182232e-9 +UnListData/165,6.931111531079674e-7,6.924464258039919e-7,6.93856130136535e-7,2.2863969208251526e-9,1.8384615704107235e-9,3.685671487642205e-9 +UnListData/730,6.924591422812585e-7,6.919897918740488e-7,6.930209455946933e-7,1.7919755257810126e-9,1.4664299130450908e-9,2.269596960560169e-9 +UnListData/44,6.930826150295361e-7,6.928135346105635e-7,6.9330225506846e-7,8.395348355449613e-10,6.555627185120233e-10,1.1440301351951837e-9 +UnListData/29,6.927423437165279e-7,6.922580109757185e-7,6.932489798683704e-7,1.7252666292414494e-9,1.4459250043491356e-9,2.1131319613274476e-9 +UnListData/49,6.927056993357167e-7,6.918966302221625e-7,6.935475078675207e-7,2.504319557416269e-9,2.148764192994147e-9,2.9144449817439234e-9 +UnListData/518,6.951060195359806e-7,6.944232164554958e-7,6.956524645550526e-7,2.125703052708135e-9,1.7598709781194231e-9,2.5431958635673717e-9 +UnListData/1093,6.929397655824734e-7,6.923987112276517e-7,6.936339461608818e-7,2.0360470728288032e-9,1.8050897970378372e-9,2.307481632177903e-9 +UnListData/1186,6.916115488897125e-7,6.908861097088604e-7,6.92432949656482e-7,2.6595707765898085e-9,2.30887164800246e-9,3.0869290349599816e-9 +UnListData/93,6.91879187860219e-7,6.912934268223738e-7,6.923316264844808e-7,1.7971095796108816e-9,1.5129370547954494e-9,2.1891783278595083e-9 +UnListData/55,6.919492513257033e-7,6.913978218345879e-7,6.926209675429443e-7,1.9301841667259784e-9,1.593776961865089e-9,2.375197395956489e-9 +UnListData/4,6.92404280068966e-7,6.919951887647274e-7,6.927695625565581e-7,1.293140140196791e-9,1.0682842603243079e-9,1.6393804126844308e-9 +UnListData/291,6.91796717099026e-7,6.91455476885667e-7,6.921904886363536e-7,1.2478769344066434e-9,1.012100816573482e-9,1.5506279289901909e-9 +UnListData/208,6.933674175395142e-7,6.926770873002762e-7,6.943530553552208e-7,2.6912843094575968e-9,2.1259214976275162e-9,3.925506368922888e-9 +UnListData/1862,6.942415868120152e-7,6.939275688875181e-7,6.946715868282585e-7,1.2565394449919852e-9,9.745714938983694e-10,1.781926005871173e-9 +UnListData/1593,6.917276240020603e-7,6.913881075982445e-7,6.921177579335763e-7,1.2835859237629e-9,1.0613611582109876e-9,1.5561412634145985e-9 +UnListData/694,6.93305251922549e-7,6.926366646216709e-7,6.939960335325989e-7,2.37074115020014e-9,2.1303807304133293e-9,2.6907078549091493e-9 +UnListData/4,6.941871305745599e-7,6.938708468357828e-7,6.945064104942012e-7,1.0818568270050943e-9,8.829624981217779e-10,1.3471966697718724e-9 +UnListData/4,6.959956995144019e-7,6.956875213767272e-7,6.962883449089886e-7,1.0569665545447206e-9,8.664227586906365e-10,1.3166106499717723e-9 +UnListData/5127,6.94906893479209e-7,6.944212314305281e-7,6.955065485277033e-7,1.7719575387501923e-9,1.4320115064730884e-9,2.3068039283961136e-9 +UnListData/14563,6.963962920611379e-7,6.959818916506477e-7,6.96805183394956e-7,1.3753958536995942e-9,1.1094794432672164e-9,1.7487194399171082e-9 +UnListData/4124,6.926375092182604e-7,6.922889984607704e-7,6.930572490095905e-7,1.2220014993639639e-9,1.0103238246055677e-9,1.5933176930009774e-9 +UnListData/4,6.933654565843916e-7,6.929423628878814e-7,6.937412259867973e-7,1.331732769595552e-9,1.0963298090712284e-9,1.6816546569597158e-9 +UnListData/18921,6.932569616952164e-7,6.923236336916922e-7,6.941208479868528e-7,2.893841639715759e-9,2.4111578247698137e-9,3.3075321163046765e-9 +UnListData/32442,6.938430713773425e-7,6.934762121621961e-7,6.942392503112196e-7,1.2971700375696862e-9,1.1128209367080726e-9,1.6634000709849678e-9 +UnListData/33460,6.926801789152678e-7,6.922958001028474e-7,6.931331255853034e-7,1.4466772048975341e-9,1.1713751721798707e-9,1.9855232904547375e-9 +UnListData/7983,6.925390496997271e-7,6.919706903908559e-7,6.931806292581537e-7,1.9812325651692246e-9,1.663482314040877e-9,2.3242747503509e-9 +UnListData/391070,6.975879903464145e-7,6.970561715043257e-7,6.981845701018998e-7,1.9813601657623533e-9,1.7603889351523204e-9,2.2579797716024483e-9 +UnListData/343,6.967312020522978e-7,6.964096968437845e-7,6.970338064974452e-7,1.0649590739719743e-9,8.836988244419814e-10,1.3881735742324553e-9 +UnListData/4,6.952017783188045e-7,6.947483483787977e-7,6.957603670439683e-7,1.6925580777903708e-9,1.3553506560053818e-9,2.310345586516194e-9 +UnListData/71699,6.968442182344272e-7,6.96264982694156e-7,6.973908149912546e-7,1.9220093727229458e-9,1.6477566744883632e-9,2.2348450498189683e-9 +UnListData/9325,7.005044155608831e-7,7.000563305659631e-7,7.009139083404504e-7,1.4705606922525916e-9,1.1945585281926632e-9,1.8419950919512582e-9 +UnListData/8248,6.958514184182714e-7,6.955756284011699e-7,6.961821735949245e-7,1.0365328913393328e-9,7.850828645315665e-10,1.4108844908764677e-9 +UnListData/5764,6.965510129738634e-7,6.962193297992204e-7,6.969255007127191e-7,1.2236836030208998e-9,1.0238398136568599e-9,1.502735098429807e-9 +UnListData/16468,6.970290205903301e-7,6.966442610803813e-7,6.975756480051862e-7,1.5975457799793543e-9,1.0992988737140422e-9,2.887225845105687e-9 +UnListData/126482,6.97322795333969e-7,6.96984161761461e-7,6.976302575602742e-7,1.1647380437534172e-9,9.047358042389851e-10,1.6408884166189715e-9 +UnListData/22053,6.969737958687394e-7,6.965004035090043e-7,6.975341213652403e-7,1.7528032997090452e-9,1.5454711398149036e-9,2.03468586680978e-9 +UnListData/693257,6.974143135978602e-7,6.969178989035583e-7,6.978914768023709e-7,1.6720276638952985e-9,1.4503310121610208e-9,2.0872308764025227e-9 +UnListData/97077,6.984489042785052e-7,6.981029043804985e-7,6.988198596572881e-7,1.1599620800278083e-9,9.497903066420578e-10,1.4018078187931838e-9 +UnListData/4,6.981922973484088e-7,6.975044263022525e-7,6.989614071547793e-7,2.494668212823294e-9,2.1364296648445693e-9,2.952658748223425e-9 +UnListData/3053,6.983559105541454e-7,6.979127271084407e-7,6.987668780550168e-7,1.5345908509316534e-9,1.2388227930274758e-9,1.8832295144704e-9 +UnListData/33446,6.972211966952859e-7,6.968483914539432e-7,6.975994057708662e-7,1.3085508678561587e-9,1.094163642065632e-9,1.613839088022743e-9 +UnListData/42465,6.958287621924599e-7,6.954138423293105e-7,6.962307683306265e-7,1.3904448747267623e-9,1.2013615169028468e-9,1.691547757479151e-9 +UnListData/64,6.940765360371625e-7,6.93459413748977e-7,6.947181754127691e-7,2.0455789191947343e-9,1.7474798896380396e-9,2.4751488272491476e-9 +UnListData/42,6.928410389271838e-7,6.92336068608696e-7,6.933788466879729e-7,1.7719412081024107e-9,1.460618420298677e-9,2.1591191552877773e-9 +UnListData/4,6.952239458607287e-7,6.944257413793176e-7,6.959387507233518e-7,2.5354867351018432e-9,2.017437830016312e-9,3.2270300425014388e-9 +UnListData/212,6.951040552833009e-7,6.943768731769624e-7,6.95945953339265e-7,2.682584126136491e-9,2.2117760057471963e-9,3.2862304025583194e-9 +UnListData/709,6.953548016041118e-7,6.946959807778444e-7,6.959858841757504e-7,2.1298280523878885e-9,1.8184223364542168e-9,2.5681699353609e-9 +UnListData/3531,6.953198612829811e-7,6.950387325406119e-7,6.956171243813681e-7,9.947953344715794e-10,8.242184291249088e-10,1.2125615702795814e-9 +UnListData/575,6.963847694452387e-7,6.960084007921458e-7,6.96725202065303e-7,1.2449698474463132e-9,1.0548890529403719e-9,1.569736380093504e-9 +UnListData/454,6.970798050341508e-7,6.967818408698205e-7,6.973695418549127e-7,1.0030198079950214e-9,8.136087071890295e-10,1.290114500117788e-9 +UnListData/229,6.978279628358856e-7,6.974754301988217e-7,6.98135310865887e-7,1.1586855538343859e-9,9.39207317980218e-10,1.4404152654027172e-9 +UnListData/34,6.981985710366299e-7,6.978547878344972e-7,6.98600073406881e-7,1.2285026804935938e-9,9.82102926122323e-10,1.5504373891617344e-9 +UnListData/685,6.942782371493739e-7,6.940079767925472e-7,6.945883088118759e-7,9.818472341863647e-10,8.124151837637505e-10,1.1975292006801795e-9 +UnListData/848,6.986423437788259e-7,6.982361959755005e-7,6.989981842300352e-7,1.286418431870899e-9,1.1042783033319047e-9,1.574216642562571e-9 +UnListData/7042,6.967652505874369e-7,6.96522621529358e-7,6.970305711528556e-7,8.230774730141156e-10,7.099269222394967e-10,9.848776685476474e-10 +UnListData/1313,6.990771065898627e-7,6.987411012081775e-7,6.994914288914913e-7,1.2952158588670067e-9,1.1251583842002878e-9,1.5052848410142476e-9 +UnListData/539,6.976012033402407e-7,6.972382004074871e-7,6.979925330837362e-7,1.3431446517617644e-9,1.0656198949793188e-9,2.0121549487428553e-9 +UnListData/660,6.958140123198637e-7,6.951836935957158e-7,6.963728859654831e-7,1.9937295442577856e-9,1.7177549248878903e-9,2.3457063366353614e-9 +UnListData/3787,6.93557061349303e-7,6.930860392494136e-7,6.941191131324468e-7,1.7806019120651179e-9,1.4041776662399262e-9,2.187852047069439e-9 +UnListData/1088,6.97522923020733e-7,6.969738353856881e-7,6.981586615608105e-7,2.071359238450562e-9,1.7833025936974872e-9,2.383776670158621e-9 +UnListData/2348,6.952676660144645e-7,6.949306024189474e-7,6.955772844305609e-7,1.0930811141581576e-9,9.058139201815812e-10,1.296215685957725e-9 +UnListData/1641,6.976840194695933e-7,6.973848916879381e-7,6.980070406591122e-7,1.0806624758956977e-9,8.974575386881825e-10,1.2901806588089522e-9 +UnListData/411,6.978544265299037e-7,6.974279232915522e-7,6.982878886880636e-7,1.4381816831727453e-9,1.2040088541279533e-9,1.7985229733708542e-9 +UnListData/4,6.980780735110358e-7,6.976220377346913e-7,6.98539298880349e-7,1.5286605057529898e-9,1.3463205723375884e-9,1.769848374474259e-9 +UnListData/7866,6.950685815055417e-7,6.945980519297503e-7,6.955710609104646e-7,1.6191889671578476e-9,1.349673748055713e-9,1.9931339840332384e-9 +UnListData/2682,7.001504775098564e-7,6.997923894020103e-7,7.005023417665072e-7,1.2388169845024388e-9,9.878362046433538e-10,1.6189394060983215e-9 +UnListData/48025,6.987463972082641e-7,6.98317727502964e-7,6.99229451789528e-7,1.6013982972130622e-9,1.389298584152661e-9,1.830427609266037e-9 +UnListData/1964,6.985969521923953e-7,6.982194169266122e-7,6.989430000600031e-7,1.271532408301499e-9,1.0917225449994136e-9,1.5124060152194253e-9 +UnListData/2953,6.961768904182704e-7,6.956351802861316e-7,6.966338718795963e-7,1.7071285273861894e-9,1.4501273879383756e-9,2.059205901422665e-9 +UnListData/7266,6.975742712094209e-7,6.97169142915784e-7,6.980156099605517e-7,1.474610003949388e-9,1.1610512848431216e-9,1.9364871721422805e-9 +UnListData/4,6.992885524906878e-7,6.988464801445713e-7,6.997464767118773e-7,1.6017671688585252e-9,1.3355354445309292e-9,2.0283147964225752e-9 +UnListData/87581,6.983561629719349e-7,6.980414673411162e-7,6.986387448706315e-7,1.02438980452232e-9,8.727805301588351e-10,1.271397602543151e-9 +UnListData/7295,6.927880285461636e-7,6.924510436330343e-7,6.931364641500108e-7,1.2055612818125933e-9,9.623978497509337e-10,1.5628810969174587e-9 +UnListData/4,6.955766252294879e-7,6.95207180208722e-7,6.960605994673227e-7,1.4063986755122041e-9,1.1020798608955936e-9,1.9787157982768586e-9 +UnListData/308983,6.948416530373423e-7,6.942781131958084e-7,6.953828273292435e-7,1.8731464949656212e-9,1.57604512328262e-9,2.3021740794868557e-9 +UnListData/452091,6.983502905490857e-7,6.978765016818679e-7,6.989209253183225e-7,1.7556743877806417e-9,1.4387105397039246e-9,2.194520823468382e-9 +UnListData/4,6.995688548864362e-7,6.991643402867165e-7,7.001144447225675e-7,1.5754368412745218e-9,1.2187736402139743e-9,2.0818760184501666e-9 +UnListData/38258,6.965786406183661e-7,6.960612421988163e-7,6.972803973529536e-7,2.0892527548585798e-9,1.700331753155489e-9,2.5693679919962967e-9 +UnListData/470403,6.962464850150044e-7,6.959016713754901e-7,6.965564571273502e-7,1.091043348960979e-9,9.239736370875161e-10,1.2978944642061553e-9 +UnListData/266586,7.008428495250383e-7,7.003685849120773e-7,7.013032916853314e-7,1.6782991486226424e-9,1.4154344042028955e-9,1.989037684044477e-9 +UnListData/4,6.94108248598542e-7,6.934118057718852e-7,6.95051334966878e-7,2.709974387436578e-9,2.1828824191744674e-9,3.990243909876778e-9 +UnListData/66558,6.963949368200708e-7,6.959395098463391e-7,6.968662353561257e-7,1.506162849119325e-9,1.2238540413583607e-9,1.893285905072907e-9 +UnListData/2296,6.967906762455354e-7,6.964648513702825e-7,6.971267221845627e-7,1.0801192200361784e-9,8.971859479713765e-10,1.3694542675336113e-9 +UnListData/17468,6.923588998674359e-7,6.91869622375299e-7,6.929341802210179e-7,1.793007724048808e-9,1.4010253035352622e-9,2.4477588825159606e-9 +UnListData/2037077,6.971197285949008e-7,6.968113900033613e-7,6.97524550763614e-7,1.1740762986242913e-9,9.586644665170178e-10,1.547302800998213e-9 +UnListData/101949,6.93937034727949e-7,6.935188284056319e-7,6.944196787958276e-7,1.4783115004198166e-9,1.2648363879845254e-9,1.7661899123856037e-9 +UnListData/1351964,6.969763654565786e-7,6.964124806806616e-7,6.975540139203884e-7,1.9554522467795015e-9,1.7111314259842884e-9,2.358928822792754e-9 +UnListData/12146,6.954456442771064e-7,6.949736508634566e-7,6.958043463320586e-7,1.4249101986487319e-9,1.128851175630514e-9,1.9387034875129553e-9 +UnListData/4,6.976480934808615e-7,6.971375896829741e-7,6.980617785473434e-7,1.560757895156095e-9,1.2865710262690129e-9,2.0230245053320833e-9 +UnListData/121724,6.954623544017065e-7,6.952203139857993e-7,6.957168904090448e-7,8.512330519977547e-10,6.804331143820903e-10,1.111335915020765e-9 +UnListData/463252,6.957582213837124e-7,6.954701005073397e-7,6.960833892389697e-7,1.0810395982281693e-9,9.131698969793907e-10,1.3409799108069603e-9 +UnListData/77,6.934516230078904e-7,6.929599225383997e-7,6.93990068473242e-7,1.6760196582666845e-9,1.4549149854353423e-9,1.9952218402920816e-9 +UnListData/708,6.955049701663161e-7,6.951522286895898e-7,6.958335285123167e-7,1.1029133399540156e-9,9.309740265634518e-10,1.3026874422670946e-9 +UnListData/72,6.951867463392916e-7,6.944615512745325e-7,6.956716920303295e-7,1.8951545351796174e-9,1.508872115526736e-9,2.346862923976787e-9 +UnListData/19,6.941890179670361e-7,6.936299590675593e-7,6.948319216255748e-7,2.0915914711910023e-9,1.8073969747323658e-9,2.4169535970324187e-9 +UnListData/520,6.965552296095511e-7,6.958745793164652e-7,6.972327798214117e-7,2.3003279211737042e-9,1.9420459735874033e-9,2.762659734896324e-9 +UnListData/557,6.974856960453166e-7,6.971320645062823e-7,6.978485417135187e-7,1.227255201817878e-9,1.0292760674247573e-9,1.4590839731450095e-9 +UnListData/24,6.936636906359211e-7,6.932313132561913e-7,6.941383027235839e-7,1.523280262985569e-9,1.3229273584918956e-9,1.824330007122867e-9 +UnListData/9,6.959266381158018e-7,6.954554287849893e-7,6.964050572944108e-7,1.5542852129942592e-9,1.2546154200575215e-9,2.046928126502354e-9 +UnListData/9,6.95985146682462e-7,6.957130597493057e-7,6.963334183279247e-7,1.0729371064658888e-9,8.369960000637759e-10,1.5580235581816377e-9 +UnIData/14,6.914162221173352e-7,6.908197715677387e-7,6.92082340116613e-7,2.0994209724742446e-9,1.8082416665018285e-9,2.4604635285930363e-9 +UnIData/14,6.927486439635092e-7,6.923616132669164e-7,6.931122266676454e-7,1.303177152440091e-9,1.0867042015122153e-9,1.7033001005833637e-9 +UnIData/14,6.932862126941744e-7,6.927735321915489e-7,6.939094060231845e-7,1.9088202217342336e-9,1.65471514008258e-9,2.276269342553662e-9 +UnIData/14,6.890955504537989e-7,6.886715119508466e-7,6.895205997021266e-7,1.4519752585176747e-9,1.1898313784752701e-9,1.9149243725229286e-9 +UnIData/14,6.932526239423404e-7,6.927870379404308e-7,6.936612674515644e-7,1.5146137080575543e-9,1.221863945182531e-9,1.9691561982148717e-9 +UnIData/14,6.882829101142084e-7,6.876962057620775e-7,6.887806507250708e-7,1.7991758450425766e-9,1.4060432826290928e-9,2.3040001098741e-9 +UnIData/14,6.893530609332347e-7,6.88697353553289e-7,6.900310021013297e-7,2.257298908109476e-9,1.9288713346057823e-9,2.7063844370407504e-9 +UnIData/14,6.895564983015732e-7,6.890785422323162e-7,6.899535344021619e-7,1.3709817304223915e-9,1.0767614346544383e-9,1.923017148020893e-9 +UnIData/14,6.885884302789003e-7,6.879965489581467e-7,6.892607980585757e-7,2.168007385380581e-9,1.7893245609670467e-9,2.572655258586154e-9 +UnIData/14,6.907378889679346e-7,6.901545047046218e-7,6.912667882678943e-7,1.8465496743352635e-9,1.561433799844026e-9,2.2594065300025847e-9 +UnIData/14,6.939946564674013e-7,6.936589825415418e-7,6.94458674665997e-7,1.3341311018925667e-9,1.100336557687509e-9,1.739247752568512e-9 +UnIData/14,6.932677253647731e-7,6.92360975582019e-7,6.941192172722059e-7,3.0320752855878054e-9,2.615785159276846e-9,3.580767164555846e-9 +UnIData/14,6.889624460048594e-7,6.885224594148705e-7,6.893977375175038e-7,1.4486007543412084e-9,1.2201120169539545e-9,1.7977739260697256e-9 +UnIData/14,6.906924694795994e-7,6.8991846272978e-7,6.913366728943197e-7,2.4127446402216593e-9,1.95937506015296e-9,2.8996398867379684e-9 +UnIData/14,6.88452811055404e-7,6.879510751360371e-7,6.889637926023655e-7,1.6781876042746132e-9,1.4046729454460357e-9,2.0685702527306354e-9 +UnIData/14,6.887780895531658e-7,6.882775683294636e-7,6.892935873878168e-7,1.7026896475683123e-9,1.4163742891704417e-9,2.0021427147899963e-9 +UnIData/14,6.911586590886928e-7,6.906440308638828e-7,6.916276173917464e-7,1.6412656671260664e-9,1.2742680923023428e-9,2.211722207932662e-9 +UnIData/14,6.901470272444053e-7,6.89827936502062e-7,6.905531212187865e-7,1.164472387529236e-9,9.133423080236598e-10,1.6004465240693624e-9 +UnIData/14,6.898761548058306e-7,6.89166909359466e-7,6.905583348156254e-7,2.2684105933063455e-9,1.955934512703416e-9,2.671326924355372e-9 +UnIData/14,6.907631791203284e-7,6.901654426378167e-7,6.914366314217918e-7,2.0536529796492836e-9,1.740330241386659e-9,2.448016642949249e-9 +UnIData/14,6.913793303013399e-7,6.909350286066023e-7,6.91849316550799e-7,1.57392152537717e-9,1.349750096557355e-9,1.8549755604621318e-9 +UnIData/14,6.900975587533347e-7,6.896270725254806e-7,6.905641378946984e-7,1.5862463577604247e-9,1.3257593800523828e-9,1.9362985557970926e-9 +UnIData/14,6.925383937297496e-7,6.920959332825359e-7,6.929398335847052e-7,1.4403821664358064e-9,1.2248024346916795e-9,1.764645800888414e-9 +UnIData/14,6.902390176887531e-7,6.898732320257644e-7,6.907469082385309e-7,1.4138629944104772e-9,1.120188411137849e-9,1.7585712734595368e-9 +UnIData/14,6.926218366134015e-7,6.921961262277702e-7,6.930156936355073e-7,1.4429620306502118e-9,1.2079721834464974e-9,1.9880084250785395e-9 +UnIData/14,6.924955218573174e-7,6.919240537359095e-7,6.929838350850233e-7,1.761064230379583e-9,1.4751546199651527e-9,2.1965212107781606e-9 +UnIData/14,6.911607143016114e-7,6.90473748125437e-7,6.918609580688004e-7,2.470707332831104e-9,2.1406217782319913e-9,2.908297979337831e-9 +UnIData/14,6.912290994279535e-7,6.904547468277702e-7,6.921132025841381e-7,2.705224091065379e-9,2.221697721785464e-9,3.2751465927927645e-9 +UnIData/14,6.888310219666273e-7,6.882789861860532e-7,6.893017407862607e-7,1.8056973252629908e-9,1.4968227610806394e-9,2.2980185127897126e-9 +UnIData/14,6.904523452362774e-7,6.900274476784105e-7,6.909221372952883e-7,1.5069418325637665e-9,1.231515479905246e-9,1.8230060281295153e-9 +UnIData/14,6.92737799345959e-7,6.923911198391326e-7,6.930193893896406e-7,1.088177366010377e-9,9.002914211868311e-10,1.390181890281324e-9 +UnIData/14,6.92263169826353e-7,6.915777052714397e-7,6.930858651428359e-7,2.5772332190807257e-9,2.2772476212302003e-9,2.976880109255398e-9 +UnIData/14,6.91698333427298e-7,6.911032325210998e-7,6.92343494324333e-7,2.1073965539054693e-9,1.7899474444713606e-9,2.4940357640898005e-9 +UnIData/14,6.883885938986818e-7,6.879515912041708e-7,6.888398722190684e-7,1.5649891259713292e-9,1.3296826640754012e-9,1.8494024957839053e-9 +UnIData/14,6.920967630092343e-7,6.916650129442846e-7,6.925653391037598e-7,1.607233180368711e-9,1.3510812476255584e-9,2.0717860332302667e-9 +UnIData/14,6.881309523825315e-7,6.875773866640572e-7,6.887485700594747e-7,2.0063677392874127e-9,1.7762176327104596e-9,2.332077895631668e-9 +UnIData/14,6.90897259489943e-7,6.903633220629112e-7,6.914547251659893e-7,1.8177368995172336e-9,1.503392947916695e-9,2.2067843625365312e-9 +UnIData/14,6.900168319309031e-7,6.895855737858183e-7,6.905125428896106e-7,1.5643769715619206e-9,1.3156953722591187e-9,1.8487360956626979e-9 +UnIData/14,6.888824908363402e-7,6.882128426485903e-7,6.894935211793967e-7,2.267082602265416e-9,1.9522616554870118e-9,2.669114488301084e-9 +UnIData/14,6.902946583334423e-7,6.896536319446448e-7,6.909343941800165e-7,2.0971970380532443e-9,1.6861078556123332e-9,2.5432986237363378e-9 +UnIData/14,6.880279503347166e-7,6.872414964837998e-7,6.888326813908225e-7,2.6223374533351197e-9,2.255778020004004e-9,3.119613798028303e-9 +UnIData/14,6.87234832453244e-7,6.869525224538518e-7,6.875340909400004e-7,9.79648911902652e-10,8.262129940416625e-10,1.1761175374169566e-9 +UnIData/14,6.913596127434581e-7,6.908443905074416e-7,6.917620297603496e-7,1.6473213094045095e-9,1.3628694732463328e-9,2.0651449958957628e-9 +UnIData/14,6.904803016529742e-7,6.900632915782684e-7,6.909359882971358e-7,1.4008043716516294e-9,1.186814614758215e-9,1.6747506084583236e-9 +UnIData/14,6.890744176532754e-7,6.887583943869807e-7,6.893592758918054e-7,1.077767537164113e-9,9.108905103748802e-10,1.3602526390447531e-9 +UnIData/14,6.874257880315515e-7,6.868787751235203e-7,6.879933339464214e-7,1.914332083087917e-9,1.5926533697000567e-9,2.2602752189598024e-9 +UnIData/14,6.913262007128279e-7,6.908659260932239e-7,6.917143391432393e-7,1.4106612954982097e-9,1.2077646131969249e-9,1.6785254371632823e-9 +UnIData/14,6.920133561405885e-7,6.911443599630442e-7,6.928177628308573e-7,2.7360965844428836e-9,2.233671351828568e-9,3.4322130768859327e-9 +UnIData/14,6.895134481356263e-7,6.891401766235916e-7,6.89907748071581e-7,1.2950804760456727e-9,1.1303294662908205e-9,1.5199559975786816e-9 +UnIData/14,6.895065332001201e-7,6.890631863298862e-7,6.900127951656923e-7,1.6082314180477223e-9,1.3808417879747218e-9,1.9919727759197688e-9 +UnBData/9,6.913130485757917e-7,6.908733176184988e-7,6.91699140332285e-7,1.4362531881514313e-9,1.1632106126256712e-9,1.8552309798865477e-9 +UnBData/6,6.875746745111893e-7,6.871861079859836e-7,6.87973478046881e-7,1.328895488946241e-9,1.1172560028768102e-9,1.6268659490661742e-9 +UnBData/9,6.923370368605104e-7,6.917786224066578e-7,6.928866527570475e-7,1.9180693063598434e-9,1.619241680898324e-9,2.2728661493327666e-9 +UnBData/6,6.923710953904031e-7,6.918864174261328e-7,6.928781521623394e-7,1.6223626572905133e-9,1.3587809344936632e-9,1.9513424812159235e-9 +UnBData/6,6.890941921534422e-7,6.886460481000819e-7,6.895244381029638e-7,1.5282393296067292e-9,1.292204937748055e-9,1.8131855112835588e-9 +UnBData/6,6.889148177077338e-7,6.884123330781035e-7,6.894165495830567e-7,1.696893021291648e-9,1.4768036271925103e-9,1.9994697960032377e-9 +UnBData/9,6.865912674098512e-7,6.862080939536155e-7,6.869449542451319e-7,1.2239634558283703e-9,1.0311721326676565e-9,1.4752813018578856e-9 +UnBData/9,6.893499862545828e-7,6.889982713750267e-7,6.8969753917782e-7,1.1637223689646571e-9,9.46446446416546e-10,1.5255566467527365e-9 +UnBData/7,6.921560126898546e-7,6.916887826210975e-7,6.926551231421414e-7,1.6257317682604453e-9,1.2731487559417871e-9,2.0735880674605373e-9 +UnBData/7,6.91164233941633e-7,6.90821655236542e-7,6.915167720120275e-7,1.1123061046227289e-9,9.599302623116924e-10,1.3323059198629187e-9 +UnBData/7,6.895309806937487e-7,6.88912195679319e-7,6.901256059933167e-7,2.008044904439354e-9,1.6708478781344936e-9,2.482161780057833e-9 +UnBData/5,6.899657535677788e-7,6.894842815827423e-7,6.90400224855368e-7,1.5800020065934444e-9,1.3793826723206396e-9,1.859450514172087e-9 +UnBData/5,6.918655609482895e-7,6.910585801501405e-7,6.926607351081768e-7,2.551720106897786e-9,2.0493650793584763e-9,3.53198625955961e-9 +UnBData/6,6.914247912359254e-7,6.908257054792665e-7,6.919919287857578e-7,1.981732296101478e-9,1.6555228212692003e-9,2.4335711013697977e-9 +UnBData/6,6.883116166480464e-7,6.878628277969342e-7,6.888427396071751e-7,1.701414363161303e-9,1.4222544305081211e-9,2.0284394043669668e-9 +UnBData/5,6.890256236564923e-7,6.887688487663959e-7,6.893077042622783e-7,9.5576323021678e-10,7.95487591631632e-10,1.1953083437690312e-9 +UnBData/8,6.878694715435212e-7,6.873609408060531e-7,6.88482825215804e-7,1.7795691321160692e-9,1.5219905520952084e-9,2.136016591011416e-9 +UnBData/9,6.888760697981304e-7,6.885107507278236e-7,6.892662364743776e-7,1.2988625015485023e-9,1.0326918547004115e-9,1.744284461415316e-9 +UnBData/8,6.865823019992701e-7,6.860792414077293e-7,6.870245774926543e-7,1.643433317062523e-9,1.3506849609095532e-9,2.2435958428090033e-9 +UnBData/8,6.885914999761317e-7,6.880027966102859e-7,6.892189609486247e-7,2.0185844989564336e-9,1.7284360105930652e-9,2.566779212089757e-9 +UnBData/5,6.871058678846447e-7,6.866205703656614e-7,6.877192812857891e-7,1.8236894627428875e-9,1.3838126871166012e-9,2.8838021991099725e-9 +UnBData/9,6.889191311501693e-7,6.884064821289227e-7,6.894509441821371e-7,1.7992986621477248e-9,1.4884491093330837e-9,2.319076747205197e-9 +UnBData/8,6.907052849246393e-7,6.903674555085776e-7,6.910784667941875e-7,1.188525710839144e-9,1.0121115384879343e-9,1.3916841880153716e-9 +UnBData/7,6.914131976154816e-7,6.910645671621289e-7,6.917851014307245e-7,1.1848109538667543e-9,9.756928018723411e-10,1.4942676905177397e-9 +UnBData/5,6.908107131054731e-7,6.901880591391934e-7,6.914184319753127e-7,2.102266264678294e-9,1.796760292613192e-9,2.6232484933586375e-9 +UnBData/9,6.900738155215123e-7,6.894673456617521e-7,6.908112149807311e-7,2.237299036943313e-9,1.9278039892193335e-9,2.6022742161570365e-9 +UnBData/5,6.904507369132046e-7,6.89886766517751e-7,6.910540606410447e-7,2.054142475712953e-9,1.707798746521343e-9,2.5035760140000692e-9 +UnBData/5,6.92220858795305e-7,6.916229673111827e-7,6.928690686128425e-7,2.1853763251775893e-9,1.8233792372934703e-9,2.5988848564247572e-9 +UnBData/5,6.90107297137215e-7,6.897088806438675e-7,6.905686043498498e-7,1.4960899755203743e-9,1.1844613270020195e-9,1.896509903536694e-9 +UnBData/9,6.911107354733966e-7,6.906212064418242e-7,6.916906672734247e-7,1.7474437166710227e-9,1.4996520906322e-9,2.047663323125081e-9 +UnBData/8,6.915573462639132e-7,6.911972589229589e-7,6.919500638395739e-7,1.313170636019929e-9,1.0870587703863674e-9,1.6041851329399271e-9 +UnBData/5,6.912333914321934e-7,6.90762693647583e-7,6.917825002213028e-7,1.742513857558243e-9,1.492019728128361e-9,2.0606309033895703e-9 +UnBData/6,6.904669666142442e-7,6.899723655138196e-7,6.909605007398311e-7,1.689177426961156e-9,1.4103734550234466e-9,2.089267027581058e-9 +UnBData/7,6.920328900375418e-7,6.913726268129347e-7,6.926104077523729e-7,2.1450796811963112e-9,1.807714462731598e-9,2.590818799345167e-9 +UnBData/8,6.885347943697537e-7,6.87913527686476e-7,6.892380776739158e-7,2.247654929687374e-9,1.7645019300926547e-9,2.7128390201918344e-9 +UnBData/8,6.878127931343282e-7,6.874019113075756e-7,6.882119474617699e-7,1.349891016729773e-9,1.152027325760266e-9,1.6591487106485237e-9 +UnBData/9,6.873576479523086e-7,6.86813112241148e-7,6.878530703068597e-7,1.8366760189716302e-9,1.5677518656543106e-9,2.1870358074376183e-9 +UnBData/7,6.904418890194341e-7,6.900324312135526e-7,6.908680549099295e-7,1.4018690665760679e-9,1.197712952805786e-9,1.6427297550702132e-9 +UnBData/6,6.894988744082399e-7,6.890170290832837e-7,6.900015041264085e-7,1.66508013712676e-9,1.4212079265133772e-9,1.9717771984864033e-9 +UnBData/7,6.889109922492758e-7,6.883552632585069e-7,6.894482955707679e-7,1.8444657783447414e-9,1.534208170750578e-9,2.259480454010908e-9 +UnBData/6,6.911563547009522e-7,6.90668021428755e-7,6.91687727885124e-7,1.711482704802773e-9,1.416585449509405e-9,2.0557020221473424e-9 +UnBData/5,6.879520365988608e-7,6.873939262131985e-7,6.885240625760867e-7,1.923753077829242e-9,1.6629510632649204e-9,2.41715423784272e-9 +UnBData/8,6.899388532097108e-7,6.894406799381898e-7,6.903934907807694e-7,1.634924828694087e-9,1.3605775579970807e-9,1.9682939248465047e-9 +UnBData/7,6.908399407704525e-7,6.903030442329658e-7,6.914237446430506e-7,1.8141398436931567e-9,1.4775920056197314e-9,2.242624066457423e-9 +UnBData/6,6.893138862018972e-7,6.889029206609694e-7,6.896618010616507e-7,1.3114583437121614e-9,1.0383451926121809e-9,1.6736212995345062e-9 +UnBData/5,6.877102446253312e-7,6.87372669018589e-7,6.880367069419935e-7,1.1050726490965354e-9,9.70677557481327e-10,1.2955946491641897e-9 +UnBData/9,6.938032900560929e-7,6.933745222874296e-7,6.94219599899733e-7,1.4573588404388948e-9,1.2313569561098032e-9,1.7871802294149424e-9 +UnBData/7,6.90380658396132e-7,6.896133605379058e-7,6.91171868011264e-7,2.746964048821723e-9,2.38387997586019e-9,3.159404704646986e-9 +UnBData/5,6.900874425436931e-7,6.89665077963706e-7,6.905348013170978e-7,1.5050566746583255e-9,1.274100818389774e-9,1.7384701613862027e-9 +UnBData/5,6.898978955927122e-7,6.895067579153054e-7,6.902550153269288e-7,1.193880897490163e-9,1.0259181772552525e-9,1.4482865917588572e-9 +EqualsData/5/5,8.797850712358639e-7,8.794222411389794e-7,8.801631101384228e-7,1.284615018853038e-9,1.0538964631540682e-9,1.76687383084545e-9 +EqualsData/5/5,8.891320145532581e-7,8.885217006234355e-7,8.896507111182364e-7,1.866363152917385e-9,1.5885912057155632e-9,2.278271212776501e-9 +EqualsData/5/5,8.879513911949552e-7,8.874968852849476e-7,8.884009981184502e-7,1.5177750926133084e-9,1.1910969562628793e-9,2.0075573904855726e-9 +EqualsData/5/5,8.781190350896008e-7,8.775669822700437e-7,8.78786192353868e-7,2.1283121648096547e-9,1.804662433200841e-9,2.5495691150086372e-9 +EqualsData/5/5,8.892906083960613e-7,8.888020548896177e-7,8.899998604777938e-7,1.9264218715825726e-9,1.5266336397844777e-9,2.483805609257228e-9 +EqualsData/5/5,8.861046206875775e-7,8.855145976129047e-7,8.867567987920331e-7,2.0884465453671507e-9,1.7924940064701721e-9,2.5382913371747862e-9 +EqualsData/5/5,8.870999080692266e-7,8.867469312838489e-7,8.875615727250215e-7,1.2948172990835642e-9,1.084009885317351e-9,1.5883843124658804e-9 +EqualsData/5/5,8.814468072648688e-7,8.811156443771716e-7,8.817298568329779e-7,9.883211958183085e-10,8.045420784655632e-10,1.219153015197715e-9 +EqualsData/5/5,8.884653959769594e-7,8.880957861194883e-7,8.889022452085836e-7,1.3454739436769232e-9,1.0614475401890514e-9,1.7202078377362425e-9 +EqualsData/5/5,8.899652249345566e-7,8.894837137099593e-7,8.904483459816733e-7,1.5886169129915445e-9,1.3654593211118393e-9,1.9349706131763918e-9 +EqualsData/5/5,8.895419300877627e-7,8.891157276057789e-7,8.899805434493184e-7,1.4668306521413533e-9,1.2245488230833126e-9,1.7372679603943407e-9 +EqualsData/5/5,8.89953136694668e-7,8.895864946577007e-7,8.903092568380606e-7,1.3260430553421765e-9,1.067487605503715e-9,1.7797556503491446e-9 +EqualsData/5/5,8.901977385270653e-7,8.895828934148629e-7,8.906710142915329e-7,1.7646435999774925e-9,1.3752827208355347e-9,2.2619492538858267e-9 +EqualsData/5/5,8.918244219778332e-7,8.914138198719389e-7,8.92171679603067e-7,1.261305825992017e-9,1.041263338630322e-9,1.5539976635440542e-9 +EqualsData/5/5,8.930351436747994e-7,8.926056953160052e-7,8.934814771001282e-7,1.5581610439553231e-9,1.3181158369552248e-9,1.9490232401763346e-9 +EqualsData/5/5,8.904511338549119e-7,8.901109050249232e-7,8.908426736371641e-7,1.2790731139228536e-9,1.0804626315826566e-9,1.5940561457089342e-9 +EqualsData/5/5,8.914060102702429e-7,8.909012161866266e-7,8.92145830461957e-7,2.1189324749142844e-9,1.6573679675078433e-9,2.695796566916325e-9 +EqualsData/5/5,8.877402244014326e-7,8.871737628142255e-7,8.881760762875044e-7,1.7328925466850104e-9,1.4371937135385369e-9,2.2088759241764324e-9 +EqualsData/5/5,8.883515898053225e-7,8.879427537300337e-7,8.886907868724566e-7,1.2463293341713354e-9,1.0730918657773432e-9,1.5162484413691896e-9 +EqualsData/5/5,8.909542279689965e-7,8.902909438145973e-7,8.917063432232668e-7,2.3560573387862133e-9,2.078309658880196e-9,2.6867633463703465e-9 +EqualsData/14/14,9.070548087173593e-7,9.065842217693295e-7,9.075686575542583e-7,1.6088519130203312e-9,1.3331768370921482e-9,2.0058103987900852e-9 +EqualsData/9/9,8.932948642196773e-7,8.929237304029259e-7,8.937216181116678e-7,1.3530371888584968e-9,1.1764961525302825e-9,1.5790625739920934e-9 +EqualsData/14/14,9.070107117596672e-7,9.064600903451305e-7,9.075661869025016e-7,1.7762368163225082e-9,1.4549364723443578e-9,2.1294975920719555e-9 +EqualsData/8/8,8.923773803819361e-7,8.917627275302388e-7,8.929707828420167e-7,1.9482486688153113e-9,1.6319622332381607e-9,2.3995592232866067e-9 +EqualsData/8/8,8.884648096239941e-7,8.880111382043381e-7,8.888948590058548e-7,1.4859957239119392e-9,1.1836879287304992e-9,1.8861129750405438e-9 +EqualsData/7/7,8.902073153337672e-7,8.898785705782579e-7,8.904889221634899e-7,1.027795834785227e-9,8.686737050410909e-10,1.3198618843622035e-9 +EqualsData/14/14,9.072122224505157e-7,9.065538295544689e-7,9.078506836178067e-7,2.1528142195638578e-9,1.7900858629644215e-9,2.5705270161040924e-9 +EqualsData/14/14,9.058415634649948e-7,9.052488808627136e-7,9.063220304828848e-7,1.7022565695182404e-9,1.3439594591014338e-9,2.1386465716703685e-9 +EqualsData/14/14,9.080086226004583e-7,9.07491681843442e-7,9.085175926958282e-7,1.7027472332526963e-9,1.4504371824329196e-9,2.1557050524769686e-9 +EqualsData/14/14,9.025634903358173e-7,9.020367090957227e-7,9.031301828214737e-7,1.7888646410557725e-9,1.5404538185348632e-9,2.0680757489328725e-9 +EqualsData/1416/1416,1.8641365085691486e-5,1.863473212576881e-5,1.864874172859651e-5,2.2813477468254534e-8,1.9413459682232563e-8,2.9284284049970468e-8 +EqualsData/318/318,4.687020342520599e-6,4.67401624986597e-6,4.697481375360629e-6,3.898164441805273e-8,3.440189582257006e-8,4.536444332113171e-8 +EqualsData/4/4,8.91294276190272e-7,8.90793967498779e-7,8.91848403276841e-7,1.7632014628741048e-9,1.5235066180583193e-9,2.094201118527612e-9 +EqualsData/144/144,2.7599068429469567e-6,2.758689682888551e-6,2.7613740570886028e-6,4.433236670906239e-9,3.6165301350387323e-9,6.692732205374816e-9 +EqualsData/25/25,1.2191312223972609e-6,1.2172252221260154e-6,1.2213707878419688e-6,7.032296604695807e-9,5.842201726353253e-9,8.303919039341426e-9 +EqualsData/99/99,2.1598581024696384e-6,2.158827168436217e-6,2.160918167309757e-6,3.5937182054676636e-9,2.9044733321397613e-9,4.4880714891388165e-9 +EqualsData/125/125,2.3532238083945083e-6,2.351463333499441e-6,2.354960475207149e-6,6.155958945103217e-9,5.57817345183564e-9,7.097185388487851e-9 +EqualsData/46/46,1.5159093426038866e-6,1.5139479504379195e-6,1.5176506608504692e-6,6.076455068991523e-9,5.402311571338692e-9,6.900449813303563e-9 +EqualsData/119/119,2.3283015975782884e-6,2.327064884151777e-6,2.3293132907198217e-6,3.801061980703255e-9,2.7763481275853634e-9,4.945681092790648e-9 +EqualsData/4/4,9.005512260466967e-7,8.99926293248188e-7,9.010495342066127e-7,1.9211057167001682e-9,1.5793880956804697e-9,2.2993395409052835e-9 +EqualsData/558/558,2.044357310805055e-6,2.0425653626386405e-6,2.0459755014638386e-6,5.653554973360059e-9,4.572178447579901e-9,7.491403227335237e-9 +EqualsData/316/316,1.58450680706755e-6,1.583694128235536e-6,1.5853197551140755e-6,2.8773398737175548e-9,2.299533301283655e-9,3.941939130710555e-9 +EqualsData/1414/1414,3.6574969595884094e-6,3.6563721740893996e-6,3.6586899671327092e-6,3.948599296408807e-9,3.2999813906540685e-9,4.756405244210374e-9 +EqualsData/7277/7277,1.48393347038387e-5,1.4829557955238508e-5,1.4851223938755705e-5,3.588147600847036e-8,2.7843124089690482e-8,4.413076004930239e-8 +EqualsData/426/426,1.7223468680779994e-6,1.72064847490978e-6,1.7239833719239756e-6,5.890229390599736e-9,5.158312785794431e-9,6.777302337958044e-9 +EqualsData/212/212,1.2903978141732907e-6,1.2897801105573536e-6,1.2908792593452987e-6,1.8385575584811762e-9,1.5330402205999693e-9,2.2768850140421735e-9 +EqualsData/524/524,1.7758201327122905e-6,1.775129314908495e-6,1.7769162182871302e-6,2.8379999009584297e-9,1.897637912138537e-9,4.51638772040858e-9 +EqualsData/10644/10644,2.2230388149577443e-5,2.2220461485580324e-5,2.2243089020415815e-5,3.7299973185416026e-8,2.8583591406112635e-8,4.862224267687753e-8 +EqualsData/654/654,2.144018960125488e-6,2.1429896140774246e-6,2.1448268244907816e-6,3.0704770915203886e-9,2.352242079085168e-9,4.165405564749437e-9 +EqualsData/673/673,2.2889254025645032e-6,2.2869630124991395e-6,2.290829515052712e-6,6.6861404878742e-9,5.683918005485974e-9,8.27015847254215e-9 +EqualsData/24/24,1.3332733612999537e-6,1.3322958822679193e-6,1.334161247187533e-6,2.958105540243125e-9,2.428075920222697e-9,3.687294820945945e-9 +EqualsData/64/64,2.053291591387215e-6,2.052199722255556e-6,2.0543610721235766e-6,3.7095504635471613e-9,3.089814989434982e-9,4.550499839609855e-9 +EqualsData/19/19,1.2283764508765814e-6,1.2274440101717502e-6,1.229341297973553e-6,3.1157973771058438e-9,2.506345033063749e-9,3.9514827538087955e-9 +EqualsData/94/94,2.623740736269267e-6,2.6225494860890338e-6,2.6251558564646482e-6,4.358472029443961e-9,3.722773131027717e-9,5.37529754937208e-9 +EqualsData/39/39,1.5731536100464599e-6,1.5722649137953282e-6,1.5741136056043656e-6,3.1588098948383025e-9,2.6586533795878356e-9,4.031181474814061e-9 +EqualsData/14/14,1.1653189839261556e-6,1.1646305729872328e-6,1.1659740342241181e-6,2.1831921693038524e-9,1.8508997346383066e-9,2.719233777590488e-9 +EqualsData/64/64,2.076184758883058e-6,2.075105640901469e-6,2.0772048599371976e-6,3.38302577163296e-9,2.8368350996280222e-9,4.170826098990407e-9 +EqualsData/9/9,1.045735340784043e-6,1.0452783731609367e-6,1.046278830510244e-6,1.6789162878115814e-9,1.4152325342234237e-9,2.063452544506508e-9 +EqualsData/64/64,2.0629628027606758e-6,2.0618859306951486e-6,2.0642129332290833e-6,3.836226906762188e-9,3.308214819236582e-9,4.746746833587881e-9 +EqualsData/39/39,1.6018086217460409e-6,1.600387148529436e-6,1.6034657140475822e-6,5.052043758069175e-9,3.83466026485912e-9,6.28978626475642e-9 +EqualsData/106/106,3.090700099269449e-6,3.0897081603425547e-6,3.091868102375501e-6,3.6612789045666243e-9,2.9969953946672767e-9,4.81707410624671e-9 +EqualsData/4/4,8.965659602370187e-7,8.962220030049725e-7,8.969424824716143e-7,1.1738657615697067e-9,9.538277021973903e-10,1.5232791060623997e-9 +EqualsData/457/457,1.0205496092563286e-5,1.0193689904692879e-5,1.0219026676156245e-5,4.251605617041315e-8,3.7565076971872544e-8,5.0766804497260695e-8 +EqualsData/290/290,6.939033568648845e-6,6.933179455781482e-6,6.943986715600166e-6,1.8244935245847208e-8,1.3777123735343033e-8,2.28405625438602e-8 +EqualsData/30/30,1.474793263109914e-6,1.4739773766054863e-6,1.4756562755212177e-6,2.813021621873383e-9,2.3267371994967455e-9,3.623697862237817e-9 +EqualsData/4/4,8.998270348716947e-7,8.994167361910623e-7,9.00249873752027e-7,1.3959037701518234e-9,1.15159539283998e-9,1.7915459636241193e-9 +EqualsData/285/285,7.2207165580448736e-6,7.218724820532563e-6,7.222967806152597e-6,7.00814777936234e-9,5.666543709659071e-9,8.701665875381504e-9 +EqualsData/716/716,1.5029693627526746e-5,1.5026086326294772e-5,1.5034063759386089e-5,1.3811755662022806e-8,1.0688847146949815e-8,1.9856138358899788e-8 +EqualsData/112/112,3.1563148423067708e-6,3.152243764143978e-6,3.161335805675666e-6,1.515265138205946e-8,1.2716280509727888e-8,1.7473550416704837e-8 +EqualsData/67/67,2.1710057976137273e-6,2.1698299894165706e-6,2.1727287769747792e-6,4.935451562823737e-9,3.5952763373723374e-9,8.108507733770282e-9 +EqualsData/2900/2900,3.5814722411239776e-5,3.580833301266303e-5,3.582344436042204e-5,2.6767501255146227e-8,2.053852412688553e-8,4.0360459870413124e-8 +EqualsData/1379/1379,1.9050071763036962e-5,1.9040755248961184e-5,1.906043376773966e-5,3.322586290959829e-8,2.717863782846502e-8,4.2910007878276675e-8 +EqualsData/4/4,8.837047099979514e-7,8.830072609812944e-7,8.843317756809576e-7,2.195609973729278e-9,1.8129506537134167e-9,2.852949929305809e-9 +EqualsData/1453/1453,1.7942226239417566e-5,1.7937826147686477e-5,1.794777335094168e-5,1.6160359417487332e-8,1.2834181650704513e-8,2.0464952331097605e-8 +EqualsData/19637/19637,2.490378934194304e-4,2.490047514948028e-4,2.490861329008298e-4,1.3545608109859368e-7,1.0471529570751167e-7,1.9576747499428283e-7 +EqualsData/101/101,2.3180322021574298e-6,2.3082563806201075e-6,2.3299828166596126e-6,3.581008970558885e-8,2.9367549218099053e-8,3.986880699296183e-8 +EqualsData/369/369,5.987977492863986e-6,5.986234561809087e-6,5.989663929278132e-6,5.976083144728895e-9,5.148893967987572e-9,7.057766665162882e-9 +EqualsData/80/80,1.930738361663092e-6,1.9289487105457113e-6,1.9324171068437383e-6,5.671858645622361e-9,4.767911734894997e-9,6.6736430443608346e-9 +EqualsData/211/211,3.852095670276435e-6,3.831808721314856e-6,3.8818512000947754e-6,8.350978375502942e-8,7.570123400089227e-8,8.717194288925715e-8 +EqualsData/2440/2440,3.0474747504227187e-5,3.047006591132697e-5,3.0480776316510445e-5,1.7851594960068574e-8,1.4401692200483854e-8,2.299784572326302e-8 +EqualsData/2750/2750,3.2265891523963916e-5,3.224006721045463e-5,3.2295926954674655e-5,9.123558667975715e-8,8.266249345741026e-8,1.0321094574984188e-7 +EqualsData/2302/2302,2.774688744185939e-5,2.7733341100695426e-5,2.7762321588230867e-5,5.051916267262545e-8,4.370843760619573e-8,6.061780978381705e-8 +EqualsData/138/138,2.8330160211587986e-6,2.818118528780036e-6,2.8519986258477914e-6,5.598137478815481e-8,5.242951544400521e-8,5.821293107313708e-8 +EqualsData/1715/1715,2.0957856302147055e-5,2.0946583515036012e-5,2.0970367887728792e-5,4.072118710613405e-8,3.699884570663997e-8,4.5176076323792854e-8 +EqualsData/1912/1912,2.3496099789522887e-5,2.3484463841502975e-5,2.350569286979681e-5,3.412097378362557e-8,2.4107389384762794e-8,4.547496693522427e-8 +EqualsData/1272/1272,1.6743253374674024e-5,1.6518291685233167e-5,1.6897353610093336e-5,6.055657313535144e-7,4.778010985044172e-7,7.122626230489411e-7 +EqualsData/143/143,2.857935519407127e-6,2.8553987008535582e-6,2.860778499906667e-6,8.840514015377544e-9,7.866949690539132e-9,1.0225992101757326e-8 +EqualsData/1877/1877,2.3049703309518685e-5,2.3038148746045766e-5,2.3063494487800244e-5,4.4989656498405195e-8,3.6173172708897846e-8,5.344848624531491e-8 +EqualsData/176/176,3.069828993973424e-6,3.0685955140364777e-6,3.0713598998534787e-6,4.820085778233158e-9,3.540334446637535e-9,6.860615527224825e-9 +EqualsData/32799/32799,4.047182020673399e-4,4.0455203966939014e-4,4.049610073550626e-4,6.527838775292581e-7,4.849484688626732e-7,8.370904340867013e-7 +EqualsData/4/4,8.821066984344016e-7,8.815497554337421e-7,8.827469070613244e-7,1.9814405699750506e-9,1.744956665547486e-9,2.3649625872953984e-9 +EqualsData/483/483,7.549937758557995e-6,7.547377080214758e-6,7.553099929690646e-6,9.53314811825605e-9,7.640769173403484e-9,1.2645213329813145e-8 +EqualsData/1308/1308,1.7274209177038003e-5,1.725967871465471e-5,1.729258519554133e-5,5.4352725778346297e-8,4.624803031437544e-8,6.214136242594294e-8 +EqualsData/1344/1344,1.665502126664256e-5,1.664772441251311e-5,1.6667077891287507e-5,3.0898448616653856e-8,2.0594992482147417e-8,5.296892251880196e-8 +EqualsData/93/93,2.2354424066813894e-6,2.234507845727619e-6,2.2364750137492714e-6,3.484001642904565e-9,3.012999990397332e-9,3.981956652335716e-9 +EqualsData/388/388,5.720892219656898e-6,5.7192115599220635e-6,5.722641822223564e-6,5.9192911915703175e-9,4.785656262046261e-9,7.590902133573453e-9 +EqualsData/28/28,1.3276756827269024e-6,1.3262945757787293e-6,1.3288778444975569e-6,4.278878672575189e-9,3.407712887941678e-9,5.492112673033602e-9 +EqualsData/62/62,1.7300149525859988e-6,1.7251040240818456e-6,1.7321724755154175e-6,1.0603163801075608e-8,5.508228138147097e-9,2.116679679537192e-8 +EqualsData/188/188,3.3295630246082797e-6,3.3251748628844947e-6,3.333773645877756e-6,1.488479032824634e-8,1.275706064515978e-8,1.735929879893862e-8 +EqualsData/928/928,1.163873767102554e-5,1.1634763298495493e-5,1.164267913702761e-5,1.3846035677056912e-8,1.1895767660604627e-8,1.703789933396496e-8 +EqualsData/2161/2161,5.039290418662974e-5,5.0372745074485105e-5,5.0415260508562284e-5,7.208414258879061e-8,6.126385515963142e-8,9.077682349221589e-8 +EqualsData/184589/184589,4.3339140327300525e-3,4.331946242129407e-3,4.337051102428674e-3,7.380630483316143e-6,5.266308541910829e-6,1.0157874368478196e-5 +EqualsData/5124/5124,1.1891129551369567e-4,1.1887049029409648e-4,1.1894919472960118e-4,1.4022151034247746e-7,1.2078387638690904e-7,1.7719884562119966e-7 +EqualsData/14574/14574,3.341528538677452e-4,3.340896589640857e-4,3.342266853040859e-4,2.4044568871951197e-7,1.983568413565753e-7,3.2264698178188584e-7 +EqualsData/215773/215773,5.152553616641901e-3,5.151122178549485e-3,5.1541151532074215e-3,4.57654602036386e-6,3.307644349479666e-6,6.970134932553327e-6 +EqualsData/4/4,8.90807016268708e-7,8.903710715180671e-7,8.912499081863687e-7,1.4995883147977351e-9,1.2697774882409979e-9,1.8208417258040578e-9 +EqualsData/6620/6620,1.5079877236495102e-4,1.5076091538837794e-4,1.5084309074440248e-4,1.37392085419659e-7,1.1414063644120065e-7,1.6726983338916242e-7 +EqualsData/5562/5562,1.2760693564345044e-4,1.275665763032827e-4,1.276606695726004e-4,1.5666126401619872e-7,1.1714877726183469e-7,2.4367235873700177e-7 +EqualsData/1179/1179,2.6090045787739325e-5,2.6080872443465702e-5,2.610126584850465e-5,3.3449170823564766e-8,2.444228495869638e-8,4.6012749996045835e-8 +EqualsData/1609/1609,3.747488329277206e-5,3.745428036708604e-5,3.750729620321726e-5,8.475200026026651e-8,6.433353988848178e-8,1.0839198440496057e-7 +EqualsData/357/357,9.326534591492862e-6,9.318026238096093e-6,9.33321391555074e-6,2.580862369630693e-8,1.8673631705294746e-8,3.226062758620641e-8 +EqualsData/4/4,8.821163159925228e-7,8.813717207334774e-7,8.82898496824792e-7,2.4969617940126428e-9,2.2211720851114264e-9,2.851118004605369e-9 +EqualsData/1431/1431,3.186389151927222e-5,3.1847070726896624e-5,3.188493127517514e-5,6.122308712149785e-8,4.7444833464701123e-8,8.043906061927036e-8 +EqualsData/2175/2175,5.019695659009656e-5,5.018654577825349e-5,5.0212465493077386e-5,4.251164926125389e-8,3.35656104337368e-8,5.8212410525531326e-8 +EqualsData/5717/5717,1.318823797557582e-4,1.3181241715391642e-4,1.3196816845544626e-4,2.6767144333514103e-7,2.373554535849936e-7,3.004953895138782e-7 +EqualsData/22268/22268,5.143278223268409e-4,5.141890226035159e-4,5.145404077736307e-4,5.62080322189065e-7,4.507720798699185e-7,6.833249785320847e-7 +EqualsData/594/594,1.4327378105441049e-5,1.4323395151400402e-5,1.433539205055565e-5,1.848055847275067e-8,9.390230909648737e-9,3.364555733760878e-8 +EqualsData/226/226,6.060231439740985e-6,6.056889040627641e-6,6.063455429458096e-6,1.0686142903816029e-8,9.278488852985286e-9,1.255640584637659e-8 +EqualsData/17211/17211,3.96479130454813e-4,3.962547425270265e-4,3.9666854306168306e-4,7.075309278987141e-7,5.689913827618117e-7,8.6269252009872e-7 +EqualsData/11828/11828,2.6157187458089137e-4,2.615358471232729e-4,2.616104737189089e-4,1.288584753670438e-7,1.0360863537962309e-7,1.6789067907604927e-7 +EqualsData/738830/738830,7.381245860651055e-3,7.378905625310157e-3,7.384419097145365e-3,7.739035683610773e-6,5.86663601813193e-6,1.1008369437654714e-5 +EqualsData/28375/28375,1.716338448376653e-4,1.7158292973784667e-4,1.717437581095579e-4,2.399395145479487e-7,1.1000271222540955e-7,4.232982606111025e-7 +EqualsData/31023/31023,1.8415821876093715e-4,1.8393446893725967e-4,1.850208660971518e-4,1.4170699561257164e-6,1.4584239079487073e-7,3.001535377664036e-6 +EqualsData/941/941,6.935781541426108e-6,6.9227115546263665e-6,6.942543114220058e-6,3.1700992452502746e-8,1.8715549969899274e-8,4.757100365137476e-8 +EqualsData/5594/5594,3.24114287127895e-5,3.239239457890437e-5,3.2434851493201945e-5,7.018328213629508e-8,5.264955763298145e-8,9.49097202740154e-8 +EqualsData/189626/189626,1.1467687986045172e-3,1.1465330607689096e-3,1.1470361819918653e-3,8.755430051890639e-7,6.818542385534534e-7,1.0959007618093392e-6 +EqualsData/14822/14822,9.443126577857186e-5,9.441804170828657e-5,9.444599406612776e-5,4.5930792664843826e-8,3.738909584206238e-8,5.720266196073205e-8 +EqualsData/3225/3225,1.9801332383535293e-5,1.9790771658902973e-5,1.981450972289302e-5,3.8883638894158085e-8,3.2393820498991895e-8,4.749992334820642e-8 +EqualsData/63167/63167,3.798846857104555e-4,3.797124736167995e-4,3.8005114031080444e-4,5.59341354441922e-7,5.157328680760574e-7,6.219229926004043e-7 +EqualsData/32050/32050,1.9498758673945523e-4,1.9491210322741096e-4,1.9508161429727936e-4,2.6999650392404574e-7,2.1270282358007436e-7,3.2182166667090474e-7 +EqualsData/11581/11581,7.136839591241162e-5,7.133872788234782e-5,7.139992036797977e-5,1.04502778693221e-7,9.528741674940041e-8,1.1706455115660339e-7 +EqualsData/32919/32919,2.019861928843876e-4,2.0193373097642756e-4,2.0205690607768856e-4,2.0409605588116537e-7,1.6505909178794997e-7,2.7725280412985114e-7 +EqualsData/22841/22841,1.394287102944767e-4,1.393630814480133e-4,1.3949703495395285e-4,2.251690447730409e-7,2.0436017029822867e-7,2.5563360467248187e-7 +EqualsData/2618/2618,1.5546355379557843e-5,1.5536490700896286e-5,1.5558014674358404e-5,3.5980664337037006e-8,3.0765871199116476e-8,4.6896748644248044e-8 +EqualsData/36841/36841,2.1829695586207071e-4,2.1822929088012623e-4,2.1837887605377984e-4,2.5202930926774674e-7,2.178053068052863e-7,2.8927349498940216e-7 +EqualsData/42958/42958,2.673615072696433e-4,2.673065594129711e-4,2.674466549393874e-4,2.3358946183836724e-7,1.4601276407871243e-7,4.0881390865558e-7 +EqualsData/408999/408999,2.9400043394391903e-3,2.9380306566415557e-3,2.94198028273784e-3,6.508290016219723e-6,5.6069213327090576e-6,7.669698732966525e-6 +EqualsData/35863/35863,2.2235355632384903e-4,2.2225088894261717e-4,2.224791695036229e-4,3.6817558975019283e-7,2.8341954451432854e-7,5.816310539758356e-7 +EqualsData/41020/41020,2.3711234431262026e-4,2.3703315046438855e-4,2.3717409775922144e-4,2.3291659093255608e-7,1.679554559688364e-7,3.192127418246317e-7 +EqualsData/747/747,6.226219120360764e-6,6.223819532250929e-6,6.228490047055819e-6,7.746032985053112e-9,6.688139179636575e-9,8.890463854402547e-9 +EqualsData/625/625,1.218907989093193e-5,1.2184409451593321e-5,1.2194567717742976e-5,1.6625316480848375e-8,1.2530543679589932e-8,2.3720515643121156e-8 +EqualsData/1995/1995,3.448861645584206e-5,3.448230920145505e-5,3.449572975128837e-5,2.1876479156639183e-8,1.8182062044576916e-8,2.6944706406748414e-8 +EqualsData/34423/34423,6.131070362654249e-4,6.129254909483729e-4,6.134207742697364e-4,7.769692458474234e-7,4.867393927790697e-7,1.3964667297582768e-6 +EqualsData/123947/123947,2.2144961671793388e-3,2.212962382050491e-3,2.215595739906658e-3,4.160713683043161e-6,2.989146149367281e-6,5.378534352827552e-6 +EqualsData/1670/1670,3.1545481536038905e-5,3.1239818884280294e-5,3.1811075856518675e-5,1.0085364428947042e-6,7.788583785778506e-7,1.1476405688558567e-6 +EqualsData/230/230,5.149185692778445e-6,5.14724975759408e-6,5.151502919573077e-6,6.977246252440922e-9,5.09229957977769e-9,1.0267079833932273e-8 +EqualsData/1152/1152,2.120925910829129e-5,2.1187898926719464e-5,2.1232083256037585e-5,7.298887379821273e-8,5.814442229286462e-8,8.731761125381702e-8 +EqualsData/4/4,8.957974275732381e-7,8.953108210424595e-7,8.963469625423511e-7,1.7405628442505235e-9,1.4398728664476018e-9,2.280096360220246e-9 +EqualsData/5519/5519,9.550062521001451e-5,9.546362067032547e-5,9.553987658072915e-5,1.2933541895310508e-7,1.199496905252989e-7,1.4215703402841098e-7 +EqualsData/4/4,9.010378656739298e-7,9.004465675339159e-7,9.016361257961125e-7,2.0740730608411534e-9,1.8444136545796079e-9,2.3664470863620136e-9 +EqualsData/49644/49644,8.477181288446155e-4,8.473708626297745e-4,8.487328934751911e-4,1.9415856386426972e-6,7.277132408434773e-7,3.592486091897569e-6 +EqualsData/33426/33426,5.599530350796864e-4,5.59869162832926e-4,5.600516601696608e-4,3.1315419190764126e-7,2.5651767835883695e-7,3.837774414118629e-7 +EqualsData/4/4,8.809874089267019e-7,8.80424047487363e-7,8.813430436829898e-7,1.5056755604639763e-9,1.0443784554158604e-9,2.502259081506933e-9 +EqualsData/386328/386328,1.1247057789494752e-2,1.0500962441390767e-2,1.2988124946279427e-2,2.8380840375547838e-3,1.5751096298476015e-3,5.1570114452318214e-3 +EqualsData/103528/103528,1.9677235323052604e-3,1.8964905740524096e-3,2.2031103978912892e-3,3.4150489254586145e-4,7.482659414052449e-6,7.049103697505922e-4 +EqualsData/69607/69607,1.1752990403424719e-3,1.1751222105690488e-3,1.175621092880776e-3,8.015189125881692e-7,5.626981699055315e-7,1.2610114286082487e-6 +EqualsData/2624/2624,4.5236747199699254e-5,4.5221233319772194e-5,4.525173058019301e-5,5.4133730964248854e-8,4.5313291295897706e-8,6.53037106046516e-8 +EqualsData/7332/7332,1.2230198691650453e-4,1.2227219053154758e-4,1.2234504951610535e-4,1.1421799178365777e-7,8.862254346272176e-8,1.5294346880106487e-7 +EqualsData/15837/15837,2.6654039416819554e-4,2.664692488873436e-4,2.66677843403381e-4,3.195871033053484e-7,2.184124408605707e-7,5.494835666290814e-7 +EqualsData/170713/170713,3.1391504425031845e-3,3.0834087946140605e-3,3.356837770102342e-3,3.4546231060843437e-4,1.2678003939689683e-5,7.316282361443328e-4 +EqualsData/2557/2557,5.178342810705714e-5,5.13668278207956e-5,5.240431010197612e-5,1.7483330900541684e-6,1.372657768873482e-6,2.062201302704155e-6 +EqualsData/400731/400731,1.1823909968290216e-2,1.1252248789766517e-2,1.316523863169537e-2,2.1481227355912573e-3,8.935198236626413e-4,3.6499911042462865e-3 +EqualsData/35344/35344,7.031649484445413e-4,7.029782194482154e-4,7.034070157875017e-4,7.213373106651031e-7,5.593739953672626e-7,1.0705573802454716e-6 +EqualsData/74755/74755,1.4852257175762564e-3,1.4843895949542012e-3,1.4857908406167087e-3,2.383797763077672e-6,1.5929597702170636e-6,3.7602248048337585e-6 +EqualsData/180673/180673,4.933036081653401e-3,4.584424571262585e-3,5.649660234248888e-3,1.4807538438923926e-3,8.41851679401804e-4,2.371702292136495e-3 +EqualsData/38281/38281,7.573365816846066e-4,7.57168469529136e-4,7.575186583292161e-4,5.845603833155762e-7,4.662708117016659e-7,7.956305947302146e-7 +EqualsData/173589/173589,4.487641267294537e-3,4.188332263833277e-3,5.163481909808309e-3,1.2573678138861825e-3,6.496807664911992e-4,2.283602459587211e-3 +EqualsData/93107/93107,1.8675844067750455e-3,1.865396410069048e-3,1.870649239912659e-3,9.419442713960041e-6,8.034399341914862e-6,1.1090944905591482e-5 +EqualsData/4/4,8.956960839089765e-7,8.951314650977732e-7,8.962656060178353e-7,1.8982345890862276e-9,1.5351480966475363e-9,2.441051434382511e-9 +EqualsData/5/5,8.871383327136606e-7,8.864898488829399e-7,8.876408721649512e-7,1.8220318477340323e-9,1.5304436684320652e-9,2.185432950217283e-9 +EqualsData/5/5,8.878214645304619e-7,8.873013561232362e-7,8.883794883368438e-7,1.7630108458150895e-9,1.4569363447438533e-9,2.194149737987413e-9 +EqualsData/5/5,8.88347526653406e-7,8.878020149499596e-7,8.889125914978835e-7,1.9814604747351604e-9,1.710951660997954e-9,2.3226730830600673e-9 +EqualsData/5/5,8.826111200631867e-7,8.822661859604914e-7,8.829211672878728e-7,1.1484618961035975e-9,9.606066686403007e-10,1.4281500614664828e-9 +EqualsData/5/5,8.908043242610235e-7,8.904145970905427e-7,8.912462293675186e-7,1.3709750981266107e-9,1.1422773375719907e-9,1.7224836522669329e-9 +EqualsData/5/5,8.905289635127195e-7,8.900905259634595e-7,8.909821370222591e-7,1.5509980848896398e-9,1.3074402849109051e-9,1.8446013603730604e-9 +EqualsData/5/5,8.894337714373978e-7,8.89027984721191e-7,8.898327792708002e-7,1.3689081745981135e-9,1.1962501022157852e-9,1.5602508898158414e-9 +EqualsData/5/5,8.839215267589797e-7,8.83116646676238e-7,8.846224805543143e-7,2.6147264759874016e-9,2.2257760187288126e-9,3.1609650260770112e-9 +EqualsData/5/5,8.814434152838999e-7,8.81033172510509e-7,8.819179922948094e-7,1.4728310126650383e-9,1.2624281121077795e-9,1.736319715484235e-9 +EqualsData/5/5,8.847019039460894e-7,8.839732179926799e-7,8.853426104053565e-7,2.3296609298304745e-9,1.8903243626789585e-9,2.9562742052032397e-9 +EqualsData/5/5,8.937766767243434e-7,8.933430074851869e-7,8.942629782042952e-7,1.6236455477868796e-9,1.4195182282109556e-9,1.891422496615899e-9 +EqualsData/5/5,8.899622657319318e-7,8.895855394104539e-7,8.903419936823766e-7,1.3970951140226809e-9,1.1723576123613808e-9,1.6935940832101322e-9 +EqualsData/5/5,8.900683459924353e-7,8.894676575126757e-7,8.906123882006604e-7,2.019838745964277e-9,1.7328898532058902e-9,2.331100298910231e-9 +EqualsData/5/5,8.923393745972423e-7,8.918374179636624e-7,8.927248571868594e-7,1.452510168348395e-9,1.2122125575118932e-9,1.8216270313952242e-9 +EqualsData/5/5,8.929520034341714e-7,8.925773652884985e-7,8.933956748736685e-7,1.4226572703195944e-9,1.1338122285979314e-9,2.1108246194989104e-9 +EqualsData/5/5,8.909873415500987e-7,8.904999223191862e-7,8.914127362890269e-7,1.6067618857693067e-9,1.4014613404454424e-9,1.9574226566736047e-9 +EqualsData/5/5,8.886472799122048e-7,8.882108001342631e-7,8.89156273629275e-7,1.6119908439074465e-9,1.3467618595018102e-9,1.9256039904962127e-9 +EqualsData/5/5,8.901198613700794e-7,8.895794425752094e-7,8.9062455344863e-7,1.8395550380004586e-9,1.4100212895712376e-9,2.2678545110018317e-9 +EqualsData/5/5,8.817976578250863e-7,8.811832838523793e-7,8.823934950197847e-7,2.0015938327024444e-9,1.7235734713905822e-9,2.325187385555786e-9 +EqualsData/5/5,8.914441149320656e-7,8.908914150117148e-7,8.919412798292414e-7,1.7754163774253262e-9,1.4747039757080247e-9,2.14079725396224e-9 +EqualsData/14/14,8.983954945459739e-7,8.978115423495267e-7,8.990973141633914e-7,2.110896791006815e-9,1.6540038262997612e-9,2.6964172472959487e-9 +EqualsData/9/9,8.908205547315929e-7,8.902258415214216e-7,8.913898802696919e-7,1.9983408383681083e-9,1.7658561370103256e-9,2.2607343230386303e-9 +EqualsData/14/14,9.065919345106727e-7,9.061296660325473e-7,9.070515615286032e-7,1.529215810598265e-9,1.301746817132373e-9,1.8617979814492577e-9 +EqualsData/14/14,9.029132548542108e-7,9.022965756367615e-7,9.035088039788207e-7,2.0006652515618175e-9,1.721869652148137e-9,2.4742201760833574e-9 +EqualsData/8/8,8.892147633515441e-7,8.883319427609158e-7,8.900324178843626e-7,2.9198019542759083e-9,2.501635615352346e-9,3.4470932898079807e-9 +EqualsData/5/5,8.879593059095705e-7,8.873496957698328e-7,8.88462347985834e-7,1.7962875775441702e-9,1.4896542402751337e-9,2.30825085449256e-9 +EqualsData/8/8,8.87233309007775e-7,8.867634726729001e-7,8.876475103389533e-7,1.4883087696626655e-9,1.1511825201807656e-9,1.965696517532791e-9 +EqualsData/14/14,9.021371753586467e-7,9.016112235575277e-7,9.027418939718872e-7,1.9798574485949426e-9,1.642685408125907e-9,2.4656520226192674e-9 +EqualsData/14/14,9.045416846087725e-7,9.041712575315324e-7,9.050019946947744e-7,1.3813277144722524e-9,1.1532388593621955e-9,1.7141888416499586e-9 +EqualsData/14/14,9.025031739120787e-7,9.017417313425545e-7,9.032684401324737e-7,2.4180121607997394e-9,2.011524474463201e-9,2.9658547138504763e-9 +EqualsData/235/235,3.6929585079610186e-6,3.691144282512286e-6,3.6947970390294134e-6,6.1827214402444e-9,4.999357606961565e-9,7.842861271745188e-9 +EqualsData/152/152,2.76361995864669e-6,2.7629681770987998e-6,2.7645803380478144e-6,2.7003130572693094e-9,1.9971698675351094e-9,3.687820292204807e-9 +EqualsData/28/28,1.2603840777117527e-6,1.2595056653369612e-6,1.2612681745162889e-6,3.009471418521443e-9,2.5311228632200654e-9,3.771649732789275e-9 +EqualsData/29/29,1.2839374656988928e-6,1.2823039931578238e-6,1.285209120884292e-6,4.627568067944973e-9,3.847014335956416e-9,5.6448083066330815e-9 +EqualsData/160/160,2.9301672367030556e-6,2.9285950126489267e-6,2.931445331893904e-6,4.948141780151039e-9,4.150429435018039e-9,6.364786361865733e-9 +EqualsData/135/135,2.5849433482049398e-6,2.5840209194660197e-6,2.5858682309288697e-6,3.0936540661636874e-9,2.651819618384091e-9,3.799603385720077e-9 +EqualsData/103/103,2.318824598884175e-6,2.3173107183778325e-6,2.320250683451364e-6,5.058671075449926e-9,4.169996849741944e-9,6.245372077030741e-9 +EqualsData/4/4,8.842724495403868e-7,8.837546506085229e-7,8.848196075822077e-7,1.8567291078780446e-9,1.6338875734784e-9,2.1786302987594293e-9 +EqualsData/21/21,1.184283351405281e-6,1.1828433851347528e-6,1.1859650052203596e-6,5.256115120664296e-9,4.498429772653737e-9,6.121676470896039e-9 +EqualsData/627/627,8.563455681765353e-6,8.559276506695787e-6,8.567928138825591e-6,1.41329952314923e-8,1.0938463030019091e-8,1.8677898032717638e-8 +EqualsData/428/428,1.8340033389218124e-6,1.8327835523526506e-6,1.835085275440012e-6,3.801324112371987e-9,3.1409132190794356e-9,4.864710235220616e-9 +EqualsData/212/212,1.2934284217977257e-6,1.2928416971719975e-6,1.2941283250982698e-6,2.1964773590786793e-9,1.6937817505856812e-9,2.96612346378169e-9 +EqualsData/246/246,1.4063147420764474e-6,1.403825718204736e-6,1.40872841181454e-6,8.184833417807061e-9,7.23308048958652e-9,9.149911744377589e-9 +EqualsData/108/108,1.1294330765669952e-6,1.128318399991056e-6,1.130334072024795e-6,3.393693778357873e-9,2.7409015724093377e-9,4.018118047214437e-9 +EqualsData/4/4,9.007748181836066e-7,9.002838657834392e-7,9.01211035041892e-7,1.5621017995992006e-9,1.286871119272022e-9,1.962028407883251e-9 +EqualsData/177/177,1.419576917144413e-6,1.418241578866994e-6,1.4208053575603515e-6,4.1131832614820964e-9,3.4119273178181096e-9,5.195049258324301e-9 +EqualsData/4/4,8.913351033197122e-7,8.905063561497928e-7,8.921885158655341e-7,2.8445112296614685e-9,2.519490500294544e-9,3.2930694351365007e-9 +EqualsData/4/4,8.986620339265774e-7,8.980804084047951e-7,8.993131013928369e-7,2.0825427862029047e-9,1.6661519478418739e-9,2.6811239087654625e-9 +EqualsData/1332/1332,3.691050083639939e-6,3.687878118016388e-6,3.694234381195959e-6,1.0711232880434067e-8,9.166442099272754e-9,1.2838050016035715e-8 +EqualsData/4/4,8.855895885202538e-7,8.849226872675248e-7,8.862271760867228e-7,2.235763377090999e-9,1.9482563164251245e-9,2.5929191573015228e-9 +EqualsData/9/9,1.0425810042117325e-6,1.041303527637956e-6,1.044337548381284e-6,4.770521128984689e-9,4.1528992639981204e-9,5.556808581529811e-9 +EqualsData/14/14,1.1646286463170194e-6,1.1637666420532556e-6,1.1656130012396175e-6,2.9846444588645103e-9,2.5901514266780494e-9,3.6036002381636666e-9 +EqualsData/29/29,1.4456541899004186e-6,1.4446218400222456e-6,1.446523035353547e-6,3.2291069683723643e-9,2.797763092722459e-9,3.92278139400633e-9 +EqualsData/74/74,2.278152263094276e-6,2.2773458465094745e-6,2.2790890200556724e-6,2.9288853274672138e-9,2.313717247553961e-9,3.93693177153171e-9 +EqualsData/4/4,8.943899399203514e-7,8.93856784229276e-7,8.949427108136944e-7,1.8030892699739702e-9,1.4860114919791902e-9,2.2218853848765153e-9 +EqualsData/9/9,1.053030369661446e-6,1.0522086553088998e-6,1.054230358403121e-6,3.2541889115941936e-9,2.6710503222492223e-9,4.185272915044527e-9 +EqualsData/34/34,1.5357814851130033e-6,1.534363611106048e-6,1.5372010608287261e-6,4.789409142263696e-9,4.0635378117608365e-9,5.639046484602159e-9 +EqualsData/34/34,1.5263416776368995e-6,1.5252528259374926e-6,1.5274418911638784e-6,3.827316203478075e-9,3.0859862907789215e-9,4.951860796290123e-9 +EqualsData/54/54,1.8894916492008673e-6,1.8884914313905397e-6,1.8904156119094876e-6,3.151804062020584e-9,2.7088337508187136e-9,3.788907785665346e-9 +EqualsData/9/9,1.0370129634893173e-6,1.0363784401650917e-6,1.0376066791679372e-6,2.1309555667223313e-9,1.809797028698202e-9,2.672683049284185e-9 +EqualsData/114/114,3.0796093308513065e-6,3.056322527811425e-6,3.1083962380731725e-6,8.897890261374843e-8,7.293126347595417e-8,9.818300421939546e-8 +EqualsData/4/4,8.97978461964826e-7,8.97415760035285e-7,8.985720250642664e-7,1.950954759735092e-9,1.729035031841605e-9,2.2571804553319057e-9 +EqualsData/3273/3273,6.746071735801673e-5,6.74322013102604e-5,6.748221941229018e-5,8.149792641406515e-8,6.091968263900108e-8,1.1204323602550312e-7 +EqualsData/549/549,1.2209453894513534e-5,1.2202836085571147e-5,1.2214194769564897e-5,1.89910747562575e-8,1.5262613700477637e-8,2.3625273816400595e-8 +EqualsData/7385/7385,1.548811521355494e-4,1.5483692145672897e-4,1.5495451304587334e-4,1.8581834193187086e-7,1.079801355632597e-7,3.7239400550207373e-7 +EqualsData/41/41,1.703334792640576e-6,1.7021789912210846e-6,1.7046551770057112e-6,4.1862300948077864e-9,3.5813130334267425e-9,5.133971840148033e-9 +EqualsData/267/267,6.389060247249659e-6,6.361913757759418e-6,6.431980361426907e-6,1.1997468629753654e-7,7.830254844396403e-8,1.5758763900621734e-7 +EqualsData/4/4,8.829875105493488e-7,8.825593329745615e-7,8.834776556881708e-7,1.5890999337982261e-9,1.3216355131919192e-9,1.8850257635372044e-9 +EqualsData/69/69,2.3369053210619924e-6,2.320711753125102e-6,2.3500760941519916e-6,4.870867436429599e-8,4.413957279767779e-8,5.071141454166187e-8 +EqualsData/4/4,8.930112717582565e-7,8.926750444485045e-7,8.933713515301927e-7,1.1451354966044363e-9,9.637918171209663e-10,1.4190818843664194e-9 +EqualsData/48/48,1.5532098067543961e-6,1.5496717881841813e-6,1.5560242157641667e-6,1.083876392859963e-8,7.992847982913572e-9,1.3089807659247357e-8 +EqualsData/919/919,1.1414841414091435e-5,1.140928217462502e-5,1.1420404663546181e-5,1.8212626522465895e-8,1.5795085166356848e-8,2.1746563706284353e-8 +EqualsData/2039/2039,2.5256835585151977e-5,2.5246493274309337e-5,2.526993219389198e-5,3.8265783622012895e-8,3.100900035775229e-8,5.3049151053969405e-8 +EqualsData/1909/1909,2.4352730749917415e-5,2.4338507829626427e-5,2.4362629838023483e-5,3.9976621187901775e-8,3.232415059024196e-8,4.891153459446441e-8 +EqualsData/4/4,8.988542199841632e-7,8.981554289231527e-7,8.998077264978922e-7,2.802719115605611e-9,2.3338478612950974e-9,3.412588103929704e-9 +EqualsData/527/527,7.105253024497362e-6,7.100206123839198e-6,7.110748684383717e-6,1.751904534319307e-8,1.5229357489894745e-8,1.9905312309703673e-8 +EqualsData/1092/1092,1.565068450202271e-5,1.5641166957661043e-5,1.565853511587472e-5,2.8466358478943448e-8,2.371713532736313e-8,3.428266032954686e-8 +EqualsData/330/330,5.368384332893954e-6,5.366891985877794e-6,5.369940554971576e-6,5.2346817984362354e-9,4.497624933873076e-9,6.35967526292421e-9 +EqualsData/2547/2547,3.186594644733258e-5,3.185265441638052e-5,3.188992817683134e-5,5.820229952587885e-8,4.206481097383669e-8,7.965784995909925e-8 +EqualsData/198/198,3.4304977741803183e-6,3.4271116984777804e-6,3.44038002629296e-6,1.7651253400856623e-8,6.0348634891290355e-9,3.453599484335486e-8 +EqualsData/13754/13754,1.7044187367516218e-4,1.7039510930094606e-4,1.705489042915957e-4,2.1789534841593066e-7,1.0987318737364837e-7,4.0271957559267027e-7 +EqualsData/750/750,9.925060190500693e-6,9.830440267810726e-6,1.0038346748716275e-5,3.651602075916893e-7,2.9756993569801324e-7,3.9505722671866176e-7 +EqualsData/26/26,1.3603285765723493e-6,1.3577846674915393e-6,1.3627064696074064e-6,8.223706309558109e-9,7.197914827001029e-9,9.854827997928843e-9 +EqualsData/920/920,1.2353539181479473e-5,1.2248974370229873e-5,1.2473654163633314e-5,3.635385328220681e-7,3.4514433045576266e-7,3.7265616723892186e-7 +EqualsData/12536/12536,1.5749433397798298e-4,1.5746344505235437e-4,1.5754227575659333e-4,1.2638376712612424e-7,9.312754537508337e-8,1.9797305731875334e-7 +EqualsData/269/269,4.170018208411192e-6,4.16729293971069e-6,4.173048428692637e-6,9.636112678460641e-9,8.602824767067977e-9,1.0749835887935211e-8 +EqualsData/71/71,1.9896615374126265e-6,1.9822484528002613e-6,1.9973766418819743e-6,2.4810017463968005e-8,2.3383992724013198e-8,2.6321644526685902e-8 +EqualsData/4/4,8.98071711648626e-7,8.975909588819356e-7,8.986731278380739e-7,1.7987688801238624e-9,1.4302569744724404e-9,2.3820005843952733e-9 +EqualsData/2467/2467,3.0791662092656136e-5,3.0782473768157034e-5,3.080102612960516e-5,3.134834278598323e-8,2.5822781897099098e-8,4.069867305331377e-8 +EqualsData/14/14,1.1536823246175259e-6,1.1523013278330817e-6,1.1550214224115256e-6,4.4756123490260126e-9,3.6766972915749387e-9,5.553304805050237e-9 +EqualsData/1087/1087,1.396517037190105e-5,1.3959474675649532e-5,1.3969923144177677e-5,1.7653031153087748e-8,1.451375024636493e-8,2.3979153352654612e-8 +EqualsData/163/163,2.976787260997691e-6,2.960660854980583e-6,2.993442169536734e-6,5.56250120435985e-8,5.036880197080067e-8,6.037469037878842e-8 +EqualsData/4/4,8.92296429554984e-7,8.918422420816587e-7,8.92707465524666e-7,1.4947584661133872e-9,1.2992368986945e-9,1.7283385072672738e-9 +EqualsData/659/659,9.563233925317322e-6,9.560783397236233e-6,9.565761681302024e-6,8.681141925030658e-9,7.43273616613668e-9,1.0172293647288413e-8 +EqualsData/1726/1726,2.295214258250374e-5,2.2946348432902428e-5,2.2961262464489435e-5,2.3660377676195828e-8,1.772592152453377e-8,3.3508999332927056e-8 +EqualsData/4/4,8.9221907759281e-7,8.915670881517128e-7,8.92773471834385e-7,1.997328116557709e-9,1.5250303678679807e-9,2.7624848212773523e-9 +EqualsData/986/986,1.2185861426643382e-5,1.2181769482191602e-5,1.2189497221466763e-5,1.2725215051296948e-8,1.0575080160241178e-8,1.60007474138487e-8 +EqualsData/436/436,6.270660874819318e-6,6.263351984751313e-6,6.279488911645647e-6,2.701113271048267e-8,2.4223242186351353e-8,3.011314757571266e-8 +EqualsData/513/513,6.8795896507619575e-6,6.876803937716731e-6,6.881866190419151e-6,8.865751616197892e-9,7.324075442987613e-9,1.1149809584040033e-8 +EqualsData/1610/1610,1.922188988099644e-5,1.9133939320745075e-5,1.939055595214373e-5,4.0622780258418187e-7,2.4368998038353563e-7,6.053477140797977e-7 +EqualsData/5781/5781,1.440691058352794e-4,1.428371916873198e-4,1.4467695759469199e-4,2.834328096940949e-6,1.499377138562822e-6,4.369367682216981e-6 +EqualsData/2949/2949,6.856074510844357e-5,6.852025774181902e-5,6.860873294366669e-5,1.5310586697865428e-7,1.3152634867036498e-7,1.8530220005848862e-7 +EqualsData/773/773,1.783506113904773e-5,1.782636675517158e-5,1.785588432839947e-5,4.366376806719064e-8,2.1690259555859602e-8,8.253770427403155e-8 +EqualsData/4/4,8.984486346980461e-7,8.980402037658742e-7,8.9889368871338e-7,1.4891560512888988e-9,1.2498373073656598e-9,1.9234150412984765e-9 +EqualsData/28070/28070,6.568921966818974e-4,6.567463360092072e-4,6.570412581844802e-4,4.955832802595814e-7,4.227545572807474e-7,6.00192350761183e-7 +EqualsData/13195/13195,3.06668074897079e-4,3.0659410699428326e-4,3.067436021583768e-4,2.655045260932057e-7,2.2820027220292e-7,3.0903777130835724e-7 +EqualsData/4/4,8.832847321344435e-7,8.823227027829044e-7,8.841508747751861e-7,3.1462911934082604e-9,2.7624996255090004e-9,3.7960780971221805e-9 +EqualsData/9653/9653,2.1731569470476395e-4,2.1724634535613343e-4,2.1738026054739056e-4,2.158335614555827e-7,1.7507744475304122e-7,2.739241747311499e-7 +EqualsData/4/4,8.955278130065893e-7,8.943325394418896e-7,8.967663587659055e-7,4.03367523945691e-9,3.5696540669484134e-9,4.725309452509937e-9 +EqualsData/4/4,8.956947016380458e-7,8.948076490148047e-7,8.96393963710092e-7,2.628690665520521e-9,2.2259784176423386e-9,3.141988326158975e-9 +EqualsData/17308/17308,4.0017612706017214e-4,4.000923531166735e-4,4.0024811712087194e-4,2.672644935935814e-7,2.270329848299662e-7,3.261662835549271e-7 +EqualsData/8309/8309,1.8999857088439955e-4,1.8995937377705506e-4,1.9008295763770755e-4,1.8693959162388678e-7,9.738511888646794e-8,3.835664035811402e-7 +EqualsData/141556/141556,3.310475546527961e-3,3.3080354033732775e-3,3.3128745189013884e-3,7.806214736019847e-6,6.602155108277e-6,9.073087293963896e-6 +EqualsData/86/86,2.7222896759857864e-6,2.720900349598193e-6,2.723762158616606e-6,4.742807177636542e-9,3.9188331153166535e-9,5.944509774310787e-9 +EqualsData/1545/1545,3.715978732576664e-5,3.674276668572445e-5,3.762012514012305e-5,1.4039355522885666e-6,1.3459031593816017e-6,1.4617621372160583e-6 +EqualsData/4/4,8.925111985370739e-7,8.919497981381353e-7,8.930720656596678e-7,1.897478603700247e-9,1.5953472754129201e-9,2.464380706386861e-9 +EqualsData/4/4,8.9161975024084e-7,8.909456777965048e-7,8.921912825535844e-7,2.0783770980686023e-9,1.6782868213313895e-9,2.5773463982220965e-9 +EqualsData/3614/3614,8.497838616298199e-5,8.493544019842524e-5,8.501878656031192e-5,1.4496885670456387e-7,1.2405462311093108e-7,1.7981258355929026e-7 +EqualsData/74742/74742,1.74779360293153e-3,1.7473971000617615e-3,1.7483425768935823e-3,1.577709589304887e-6,1.213952988317572e-6,2.389011853030285e-6 +EqualsData/33424/33424,7.747930202525385e-4,7.746006091058223e-4,7.749883477079546e-4,6.426279489403787e-7,5.10474598279875e-7,8.17230393150677e-7 +EqualsData/4/4,8.933137524551911e-7,8.924655983724217e-7,8.9399043230517e-7,2.6295187020848552e-9,2.107040734192121e-9,3.395581665085433e-9 +EqualsData/867944/867944,9.531094923244592e-3,9.52669251048007e-3,9.538734608374788e-3,1.5178549413675704e-5,9.19733813034422e-6,2.694057447041732e-5 +EqualsData/3585/3585,2.2445398107614365e-5,2.24083750126326e-5,2.24785556674969e-5,1.1593184045900509e-7,9.451950066541457e-8,1.2822858359169706e-7 +EqualsData/2635/2635,1.6121070581792273e-5,1.611570705539304e-5,1.6127664679762388e-5,1.9595751251859505e-8,1.4955649437202384e-8,2.5532263090070206e-8 +EqualsData/9809/9809,5.985050614595907e-5,5.983463120853055e-5,5.9868157525761204e-5,5.666606335768228e-8,4.56782746588965e-8,7.428906119025924e-8 +EqualsData/4701/4701,2.8524195944189436e-5,2.8509097877037476e-5,2.8540020689565327e-5,4.957215353484915e-8,4.244401854985694e-8,5.929616072795546e-8 +EqualsData/1131/1131,7.918109456439615e-6,7.916626980556584e-6,7.91973803975124e-6,5.349498787876545e-9,4.565213516046777e-9,6.3584892226849065e-9 +EqualsData/127453/127453,7.622326500797611e-4,7.588548961735515e-4,7.68970422444417e-4,1.4973403896510516e-5,8.757175243042292e-6,2.115662024899809e-5 +EqualsData/153414/153414,9.146282742687588e-4,9.143353178933422e-4,9.150481806527153e-4,1.1986478403436082e-6,9.7866155010464e-7,1.438909872280665e-6 +EqualsData/25770/25770,1.6036392423226636e-4,1.6033439062118843e-4,1.6040963707803155e-4,1.2241598747386468e-7,8.98034086581136e-8,1.729404079014418e-7 +EqualsData/40672/40672,2.474777010371841e-4,2.4742299457284174e-4,2.4753843029973183e-4,2.0077017213708448e-7,1.6757773080710818e-7,2.439247801880666e-7 +EqualsData/24716/24716,1.4584947446473904e-4,1.4582294687454846e-4,1.4588528475337903e-4,1.0500552619271608e-7,6.86540343557227e-8,1.5156500954649724e-7 +EqualsData/2230/2230,1.3318277850534091e-5,1.3170543780661795e-5,1.3458370079905647e-5,4.882249252314238e-7,4.3925837287370755e-7,5.048334113917953e-7 +EqualsData/32478/32478,1.9604284068073965e-4,1.96014015152694e-4,1.9607603577558052e-4,1.0098461192816295e-7,8.225918181832891e-8,1.2376535037314895e-7 +EqualsData/20221/20221,1.241522480510495e-4,1.2412971066068354e-4,1.2417376181607633e-4,6.999749905985843e-8,5.7899454556429397e-8,8.779170367791192e-8 +EqualsData/10245/10245,6.60746264481651e-5,6.547325256406053e-5,6.64165930314973e-5,1.4519746596640627e-6,9.546731003381402e-7,1.9526758442520537e-6 +EqualsData/54778/54778,3.3173093967367716e-4,3.316060357506885e-4,3.3189343909671877e-4,4.872096169141866e-7,4.012947831262927e-7,5.689054688089871e-7 +EqualsData/143697/143697,8.734050481609727e-4,8.728687415561516e-4,8.739408756660857e-4,1.75983114440468e-6,1.5185319396585644e-6,1.996782553711158e-6 +EqualsData/3443/3443,2.1661309496461254e-5,2.164260512728553e-5,2.167590713676396e-5,5.193405974069075e-8,3.7060685326814195e-8,6.827746975398561e-8 +EqualsData/110713/110713,6.647208657112677e-4,6.646431819169122e-4,6.647938201983662e-4,2.5086516149730855e-7,2.1552927487246152e-7,2.974946484611011e-7 +EqualsData/10124/10124,1.753466814826866e-4,1.753137893191503e-4,1.7538324481331525e-4,1.1982920619631822e-7,1.0122482172157924e-7,1.4597404420672973e-7 +EqualsData/24484/24484,4.381334589777304e-4,4.380420920562055e-4,4.3825660154094915e-4,3.4543645976861296e-7,2.615358839470832e-7,5.398059179350791e-7 +EqualsData/146182/146182,2.587999199016835e-3,2.5863965918146276e-3,2.5902000293754578e-3,6.108184907281255e-6,5.097927727502052e-6,6.945308368299351e-6 +EqualsData/88/88,2.528293837059364e-6,2.5172296102125602e-6,2.5357118532933866e-6,2.9385712450707578e-8,2.1095088257875905e-8,3.5851075559911855e-8 +EqualsData/11507/11507,2.0573162358768644e-4,2.0563545512374568e-4,2.0584960174270644e-4,3.5197651047244305e-7,2.967859406866336e-7,4.413661281673719e-7 +EqualsData/117191/117191,2.1205444455331267e-3,2.1103694303928715e-3,2.138233532279641e-3,4.301846820477514e-5,2.25692425487647e-5,6.042768944819146e-5 +EqualsData/13291/13291,2.321355796496106e-4,2.3209567945511148e-4,2.321788663195959e-4,1.3944094438039796e-7,1.1807977501968633e-7,1.761890181550169e-7 +EqualsData/2689/2689,4.806881357502682e-5,4.7996933316298126e-5,4.813420532639592e-5,2.3818070888656626e-7,2.1389410693334122e-7,2.6488469158833114e-7 +EqualsData/4/4,8.958607130914695e-7,8.952088462419556e-7,8.964944927966656e-7,2.0971477554207326e-9,1.650080141219687e-9,2.7582543834352126e-9 +EqualsData/4/4,8.893942457999519e-7,8.88863476394428e-7,8.899928434682892e-7,1.9041067483008095e-9,1.5779086958177918e-9,2.4027883511719483e-9 +EqualsData/160497/160497,3.4339243741143247e-3,3.204935648249049e-3,4.21024299937916e-3,1.1309692984150048e-3,4.4180545123892923e-4,2.1895295988922066e-3 +EqualsData/3257/3257,5.411160503983555e-5,5.409512967263244e-5,5.4138785242235603e-5,6.925400271049592e-8,4.265978351095875e-8,1.2124755598359928e-7 +EqualsData/16560/16560,2.791394746971309e-4,2.7905571584990735e-4,2.792556400527694e-4,3.4273332132357e-7,2.4134203531497686e-7,4.752282129348626e-7 +EqualsData/74266/74266,1.2667927819399085e-3,1.2657940444436749e-3,1.2679155056750464e-3,3.4533995901893515e-6,3.243922558358774e-6,3.827450080286004e-6 +EqualsData/212239/212239,3.869356760992917e-3,3.8074775656417197e-3,4.113108695684688e-3,3.7645677970375686e-4,6.6174412047583235e-6,7.950533975235156e-4 +EqualsData/478645/478645,1.4511055386968988e-2,1.3719427833561502e-2,1.631685370566983e-2,2.896703028567689e-3,1.5581624621083306e-3,4.608494367146014e-3 +EqualsData/51787/51787,8.710111977079784e-4,8.665290754490265e-4,8.790840185461004e-4,1.9001571677461734e-5,1.0928416808997586e-5,2.7063295335253986e-5 +EqualsData/461824/461824,1.3954554680995502e-2,1.314621690328891e-2,1.5655690787914792e-2,2.951498486450615e-3,1.3369283097608123e-3,4.726335989533348e-3 +EqualsData/2491/2491,4.3184833692143246e-5,4.317768020122511e-5,4.319441531093186e-5,2.8816925913411986e-8,2.246768301774369e-8,3.785226131625067e-8 +EqualsData/219252/219252,5.787330512262231e-3,5.410531781271548e-3,6.537805749709346e-3,1.5970574217880399e-3,8.283218145346833e-4,2.620462547916246e-3 +EqualsData/21444/21444,4.230651350399702e-4,4.2293290613706956e-4,4.232560222461809e-4,5.487879524657203e-7,4.213977360980856e-7,8.146426881780838e-7 +EqualsData/4/4,8.786610025928395e-7,8.782786160632552e-7,8.790334987071893e-7,1.291413342886774e-9,9.851622749934246e-10,1.795197787629036e-9 +EqualsData/37828/37828,7.616546271171695e-4,7.615040436106684e-4,7.619635281650803e-4,7.024883287455935e-7,3.8651576272797635e-7,1.315820869606462e-6 +EqualsData/43040/43040,8.509269838958929e-4,8.507750105685638e-4,8.511786739567244e-4,6.429691771652307e-7,4.4602548543920915e-7,9.219341667110023e-7 +EqualsData/135662/135662,2.7301638150580587e-3,2.7289831070593036e-3,2.7311179696293156e-3,3.5484814850932016e-6,2.883948616937978e-6,4.761823913805347e-6 +EqualsData/332625/332625,7.866633651475106e-3,7.670489583635334e-3,8.585121314327964e-3,1.006652344392457e-3,1.3461679490847124e-4,2.088424101639899e-3 +EqualsData/5399/5399,1.0498840006376062e-4,1.0496931370438372e-4,1.0501874438357829e-4,8.195440813008665e-8,5.4157830087779625e-8,1.3921749372424357e-7 +EqualsData/104514/104514,2.174511076045579e-3,2.138184276593489e-3,2.319255458973283e-3,2.3119384333881388e-4,2.6705564638654377e-6,4.904400734587455e-4 +EqualsData/21289/21289,4.262863749156513e-4,4.260307264734805e-4,4.264710245076396e-4,7.400287578925778e-7,4.5406174283447796e-7,1.1795063115003932e-6 +EqualsData/5/5,8.881751431109593e-7,8.873640815905595e-7,8.889685017981117e-7,2.7311406954618414e-9,2.330176672123959e-9,3.2296233456155193e-9 +EqualsData/5/5,8.90896945696722e-7,8.904694340238338e-7,8.913385903560822e-7,1.4675168939811317e-9,1.2348290383075982e-9,1.81449599751136e-9 +EqualsData/5/5,8.895977767458585e-7,8.89085589013388e-7,8.902951866908987e-7,1.9810939578447128e-9,1.6347915864284483e-9,2.5085877143740255e-9 +EqualsData/5/5,8.877146676469172e-7,8.871990485340892e-7,8.883832107157584e-7,1.9212308843716125e-9,1.5031427340035804e-9,2.6199948586744202e-9 +EqualsData/5/5,8.829126036816168e-7,8.825020394983842e-7,8.832881098681331e-7,1.3199171087313341e-9,1.0499649534267616e-9,1.8233512008580534e-9 +EqualsData/5/5,8.915948194321599e-7,8.908738734509331e-7,8.923686323545133e-7,2.5929837877879925e-9,2.2492289662788526e-9,3.0185939259688717e-9 +EqualsData/5/5,8.869184889003869e-7,8.864830749724321e-7,8.874193962621676e-7,1.5565686278370216e-9,1.2660533344402143e-9,2.120493235117637e-9 +EqualsData/5/5,8.885192431819208e-7,8.881201000621203e-7,8.888386607756122e-7,1.2212009184984805e-9,1.0103804231085511e-9,1.563423416312205e-9 +EqualsData/5/5,8.87745305834553e-7,8.87316457046375e-7,8.883231022871239e-7,1.6482072282225881e-9,1.3312452568618427e-9,2.1759354845843027e-9 +EqualsData/5/5,8.908762559202438e-7,8.900483570714415e-7,8.917275691507804e-7,2.7540511716062243e-9,2.2736664940883228e-9,3.266747335984068e-9 +EqualsData/5/5,8.932166011748098e-7,8.92324385842977e-7,8.939896100854262e-7,2.789440487789148e-9,2.3552876178289054e-9,3.400461534392233e-9 +EqualsData/5/5,8.939023606670932e-7,8.931109765266259e-7,8.945696087374587e-7,2.4694902844323724e-9,2.1595982695636045e-9,2.8112801646891443e-9 +EqualsData/5/5,8.924648033751037e-7,8.917099166567235e-7,8.932803119136182e-7,2.608710424330012e-9,2.24500117462939e-9,3.220943289660484e-9 +EqualsData/5/5,8.878515671061705e-7,8.875012885157421e-7,8.881949170888136e-7,1.1479428659008302e-9,9.755134895101725e-10,1.3546166099421162e-9 +EqualsData/5/5,8.823067906638765e-7,8.81843497841009e-7,8.828079370588257e-7,1.6126146824618384e-9,1.2661825228575173e-9,2.0613726983860808e-9 +EqualsData/5/5,8.878207297349132e-7,8.872581413049144e-7,8.883163205956461e-7,1.8662830771085285e-9,1.4794683129384336e-9,2.448944662266197e-9 +EqualsData/5/5,8.912342248878555e-7,8.905090418801901e-7,8.920249091866635e-7,2.410693427834076e-9,2.1160241281411422e-9,2.7498761090348517e-9 +EqualsData/5/5,8.88885974968406e-7,8.885150496724731e-7,8.893335200540866e-7,1.3160583554560604e-9,1.0758524208124742e-9,1.6248208933545768e-9 +EqualsData/5/5,8.859377874340876e-7,8.853375053084276e-7,8.86610710921958e-7,2.1569659919362457e-9,1.8402054790678118e-9,2.557368418770608e-9 +EqualsData/5/5,8.882553748211356e-7,8.877683127733632e-7,8.88713769725919e-7,1.5267758602822532e-9,1.2801985342628416e-9,1.8705745337489283e-9 +EqualsData/14/14,9.025801484273394e-7,9.020913246850722e-7,9.03052563873458e-7,1.6587106572282007e-9,1.3532210274702468e-9,2.002747229805627e-9 +EqualsData/14/14,9.035010570320419e-7,9.030403371102987e-7,9.039824500938822e-7,1.617942465699098e-9,1.370684699501399e-9,1.9939521917380456e-9 +EqualsData/14/14,9.022245433554279e-7,9.016183627189164e-7,9.02802813833095e-7,1.978201363682735e-9,1.6749469394518054e-9,2.3942108019961216e-9 +EqualsData/5/5,8.887666167912711e-7,8.882263414297481e-7,8.8931490786532e-7,1.8388194799489018e-9,1.5623255117886604e-9,2.269833976784252e-9 +EqualsData/14/14,9.024450675598299e-7,9.018867997218513e-7,9.029869346053407e-7,1.951812684855985e-9,1.6115048153549845e-9,2.329785449932259e-9 +EqualsData/7/7,8.855023393382365e-7,8.849069992186083e-7,8.862070318948955e-7,2.07395546179718e-9,1.7601532519206017e-9,2.546995289534742e-9 +EqualsData/6/6,8.858569153151992e-7,8.85233513745576e-7,8.864984495910885e-7,2.187054733350768e-9,1.8681613449878777e-9,2.643823670995694e-9 +EqualsData/5/5,8.885563429846494e-7,8.878594678022209e-7,8.893379845208324e-7,2.5034514885227447e-9,2.1591685656524604e-9,3.210953072370072e-9 +EqualsData/14/14,9.011621385204686e-7,9.006047492178475e-7,9.016675997114624e-7,1.8471070530042004e-9,1.5092304144549342e-9,2.4554458901444753e-9 +EqualsData/7/7,8.873370224809844e-7,8.8690631999053e-7,8.87834123262519e-7,1.587894253919452e-9,1.3036791729501965e-9,1.9563739278019043e-9 +EqualsData/4/4,8.80724375373556e-7,8.80224843429838e-7,8.814540118313819e-7,2.018433198493738e-9,1.477455954583823e-9,3.0692343101538003e-9 +EqualsData/4/4,9.004906644403292e-7,9.000956787842968e-7,9.009009642046449e-7,1.3715646698391863e-9,1.1611177126790037e-9,1.6887126506593158e-9 +EqualsData/110/110,2.323658003890429e-6,2.3226797558175445e-6,2.3247208497595566e-6,3.4769983159104143e-9,2.911825379428516e-9,4.248669578747665e-9 +EqualsData/21/21,1.1824110876043565e-6,1.181503011540144e-6,1.1832447650515253e-6,2.9879616682786225e-9,2.534047998852518e-9,3.53140892385809e-9 +EqualsData/35/35,1.3606542335323086e-6,1.3589542125483276e-6,1.3626630612150194e-6,6.020068520656326e-9,4.935723326264162e-9,7.3832354666387145e-9 +EqualsData/44/44,1.4421113965663256e-6,1.440303968787715e-6,1.4438820012217823e-6,6.32478132967306e-9,5.47087188477936e-9,7.290755441281833e-9 +EqualsData/71/71,1.7673160537949547e-6,1.7661797202862756e-6,1.7684731243693369e-6,3.779983478307815e-9,3.059666059206431e-9,4.8052040349053645e-9 +EqualsData/39/39,1.373427960813165e-6,1.3723385782353624e-6,1.3744039059339576e-6,3.60869622674438e-9,2.863655816984016e-9,4.496532234953905e-9 +EqualsData/1572/1572,2.076522937889942e-5,2.075877316413329e-5,2.077223339322347e-5,2.2849886016741047e-8,1.9234805543090355e-8,2.8962726066786905e-8 +EqualsData/379/379,5.38589122605345e-6,5.381543448916152e-6,5.38987780722345e-6,1.3429623331696894e-8,1.104933770181935e-8,1.686783091392266e-8 +EqualsData/212/212,1.3014851586822515e-6,1.300780580256898e-6,1.3024105917264595e-6,2.732052953630124e-9,2.209405699456891e-9,3.7156296569614422e-9 +EqualsData/732/732,2.083830421896481e-6,2.081691720869657e-6,2.0861670459202516e-6,7.571019244329588e-9,6.567386856886372e-9,8.560581774194836e-9 +EqualsData/476/476,1.8323325077951696e-6,1.8312987253954724e-6,1.8335342870918079e-6,3.6789736258100585e-9,2.9037052448521335e-9,5.037405645973754e-9 +EqualsData/404/404,1.8075805259286423e-6,1.806270707093359e-6,1.8087167800393523e-6,3.9905092436352446e-9,3.261324408271024e-9,5.3077728561823684e-9 +EqualsData/108/108,1.122034348642159e-6,1.1213677805338931e-6,1.1228119427497988e-6,2.4698150306498857e-9,2.0875230458687275e-9,3.0585897032491346e-9 +EqualsData/864/864,2.8104645984773523e-6,2.808378713372756e-6,2.812570043514287e-6,7.101001620775823e-9,5.9178281514895565e-9,9.174986367151533e-9 +EqualsData/5748/5748,1.1970665954674446e-5,1.1959464671106248e-5,1.1984117596608931e-5,4.17484499693358e-8,3.380004090213224e-8,5.0288007016603585e-8 +EqualsData/4/4,8.958207526310543e-7,8.952634758021723e-7,8.965509084255911e-7,2.1363659263930756e-9,1.7245637005260307e-9,2.701512788073177e-9 +EqualsData/65/65,1.1325403672115418e-6,1.1317951827057303e-6,1.1332198139001159e-6,2.338647740508881e-9,1.955951253484153e-9,2.935036350143333e-9 +EqualsData/4/4,8.798313324247747e-7,8.791292081622276e-7,8.806553785805222e-7,2.4001953904534385e-9,1.9705886263882013e-9,2.858882127065143e-9 +EqualsData/19/19,1.2483672584579647e-6,1.2473627828726106e-6,1.24945748333671e-6,3.7108664831881295e-9,3.1380448446475495e-9,4.549818912837507e-9 +EqualsData/4/4,8.827281106311058e-7,8.82110357259455e-7,8.83364374456252e-7,2.1621568534924886e-9,1.8310728886769995e-9,2.6670353533681716e-9 +EqualsData/19/19,1.2424745439513955e-6,1.2412427164740613e-6,1.243782769028532e-6,4.214295229414408e-9,3.5722783703712692e-9,5.1400569427520036e-9 +EqualsData/29/29,1.4210576665201324e-6,1.4205223082722083e-6,1.4216968369963806e-6,1.9987214830515225e-9,1.7387349593676544e-9,2.3784924119446875e-9 +EqualsData/29/29,1.423984001370846e-6,1.4220725969159442e-6,1.425556663372123e-6,6.284674593270074e-9,5.2062456170970765e-9,7.863019251074107e-9 +EqualsData/64/64,2.0701870429881392e-6,2.0689554259025932e-6,2.07169400139917e-6,4.529973697792086e-9,3.6881168030538285e-9,6.017623624956844e-9 +EqualsData/64/64,2.0665994173108257e-6,2.0654174979759514e-6,2.0678130335119307e-6,4.104202231260401e-9,3.439611659690945e-9,5.215728933515116e-9 +EqualsData/19/19,1.226310448129689e-6,1.2254353864569334e-6,1.2271713405732673e-6,2.8919323849871685e-9,2.4735272914460986e-9,3.3430603788975902e-9 +EqualsData/24/24,1.3330190229319467e-6,1.331886565199316e-6,1.3341491650820205e-6,3.806172840893548e-9,3.084453874283619e-9,4.708310576904727e-9 +EqualsData/29/29,1.4488523087967408e-6,1.4479621047547929e-6,1.4498285288940446e-6,3.1295351014955136e-9,2.517784188686195e-9,3.946492774937663e-9 +EqualsData/1340/1340,2.8883896746581523e-5,2.887852252936905e-5,2.8891778449783507e-5,2.0746996836383304e-8,1.5457167453705616e-8,3.036229113562033e-8 +EqualsData/210/210,5.3886116088325946e-6,5.334831472069837e-6,5.430136024871341e-6,1.631579939484184e-7,1.2813933258603191e-7,1.8511058023984022e-7 +SerialiseData/5,8.978400078660213e-7,8.971440764231127e-7,8.985825533169084e-7,2.5201705744702365e-9,2.01784464398024e-9,3.3604666819714106e-9 +SerialiseData/5,9.090961871039331e-7,9.085430153510253e-7,9.098095147059189e-7,2.233280654470313e-9,1.8289290330701415e-9,2.8941834273090386e-9 +SerialiseData/5,8.998207885943239e-7,8.986770239389851e-7,9.008321034200624e-7,3.543788083274706e-9,2.8974212295151353e-9,4.5316003098089695e-9 +SerialiseData/5,9.005259801176474e-7,8.994815788995958e-7,9.015655242238726e-7,3.3982142503998625e-9,2.8841274114295773e-9,4.1546468432822815e-9 +SerialiseData/5,8.936956633136793e-7,8.921839292336388e-7,8.953060279910709e-7,5.239611567600081e-9,4.660340230414768e-9,5.983886190025919e-9 +SerialiseData/5,8.937881948068115e-7,8.92918796444743e-7,8.947060414753015e-7,3.1095469173019323e-9,2.6575469302645518e-9,3.798670136640509e-9 +SerialiseData/5,8.943329084941968e-7,8.934946544897718e-7,8.952026347083909e-7,2.8918928239787675e-9,2.5151814355561845e-9,3.4043714983891666e-9 +SerialiseData/5,8.953944208682994e-7,8.946227197081011e-7,8.962590829647397e-7,2.693073932970443e-9,2.233127320251441e-9,3.215342130126731e-9 +SerialiseData/5,9.212713745425385e-7,9.202597520605926e-7,9.222706494268017e-7,3.3291075759165967e-9,2.9069162464315294e-9,3.795509651160541e-9 +SerialiseData/5,8.96468904354914e-7,8.951911254305509e-7,8.977852958904758e-7,4.407746991608822e-9,3.902334124204469e-9,5.0122054813336874e-9 +SerialiseData/5,9.177727977175586e-7,9.170658278717861e-7,9.186019282809766e-7,2.5147513847210744e-9,2.143300108929408e-9,3.0798431376234844e-9 +SerialiseData/5,9.139272197488523e-7,9.128585736397269e-7,9.149162945064876e-7,3.603112835295739e-9,2.9503102373984005e-9,4.463873871224615e-9 +SerialiseData/5,9.119666385475039e-7,9.108275015287057e-7,9.126335104543598e-7,2.937695212347798e-9,2.1344424441579586e-9,4.456619136807626e-9 +SerialiseData/5,9.183287645142757e-7,9.178857175262346e-7,9.188221014547496e-7,1.5886981682581576e-9,1.3825688824205454e-9,1.8276515675341849e-9 +SerialiseData/5,8.943066897630704e-7,8.934889886262923e-7,8.951124172681784e-7,2.8067746478231436e-9,2.3535638036397062e-9,3.398308736863894e-9 +SerialiseData/5,9.191215942957867e-7,9.18337657663444e-7,9.198092687152205e-7,2.374391943987613e-9,2.0037164904514616e-9,3.0001490687961962e-9 +SerialiseData/5,9.169807399461615e-7,9.161691848252881e-7,9.177273200198405e-7,2.593226497915025e-9,2.1315694350046686e-9,3.5907740483107703e-9 +SerialiseData/5,8.952691144798422e-7,8.945307840774593e-7,8.959136941660714e-7,2.3808358686789953e-9,1.967701512976215e-9,2.910951129422203e-9 +SerialiseData/5,9.148102099240248e-7,9.136748360238999e-7,9.158468033894338e-7,3.494304875274388e-9,3.0064227181974876e-9,4.280828931100967e-9 +SerialiseData/5,9.149503187438035e-7,9.14106300697731e-7,9.157742046637374e-7,2.9077567267193256e-9,2.3206265611898795e-9,3.5987063344568366e-9 +SerialiseData/14,3.6321400831250485e-6,3.630920885696901e-6,3.633337019476203e-6,3.966107423275949e-9,3.288947695848358e-9,5.3524436414874865e-9 +SerialiseData/9,8.921027185381587e-7,8.914311812188193e-7,8.927334610043748e-7,2.2219701428976564e-9,1.864043059747329e-9,2.6084794260548607e-9 +SerialiseData/14,3.6271441213446817e-6,3.6255840354424543e-6,3.629328781161447e-6,6.65025501947845e-9,4.658569693996243e-9,1.0594142156648564e-8 +SerialiseData/8,8.986689019663659e-7,8.981471834143388e-7,8.991727409099343e-7,1.8818267432466755e-9,1.6044850920285252e-9,2.239069821169454e-9 +SerialiseData/8,8.961363148323659e-7,8.955825098763039e-7,8.966617001930378e-7,1.8393862934688107e-9,1.5555375857749533e-9,2.2706194501799143e-9 +SerialiseData/7,8.994678195039563e-7,8.989443942099965e-7,8.999940331431198e-7,1.7234252999210978e-9,1.404979267399312e-9,2.3009405797247033e-9 +SerialiseData/14,3.533292468438596e-6,3.53214072555295e-6,3.5359930048118575e-6,6.039559398213116e-9,3.104633451515277e-9,1.1898792883282737e-8 +SerialiseData/14,3.6010265517466915e-6,3.5997817596175516e-6,3.602214106932515e-6,3.985340261216527e-9,3.4355735060596884e-9,4.621717054817732e-9 +SerialiseData/14,3.586671847282597e-6,3.578480114351026e-6,3.5929795153087656e-6,2.3575912672751035e-8,1.95023097363985e-8,3.2260882772738485e-8 +SerialiseData/14,3.508954568777747e-6,3.502662568617581e-6,3.515644909750189e-6,2.103950875027099e-8,1.7013473521264675e-8,2.725666484705339e-8 +SerialiseData/1416,1.4011607652084592e-4,1.3994681412193296e-4,1.4030670986738095e-4,6.383151023913376e-7,5.65917314510007e-7,6.989469626680118e-7 +SerialiseData/318,2.8485835771314134e-5,2.8409978141938284e-5,2.8554466846309374e-5,2.568743175734531e-7,2.0959306492218582e-7,3.122542671735995e-7 +SerialiseData/4,9.567103332654879e-7,9.557890466752734e-7,9.576719539198697e-7,3.1813992252285727e-9,2.7390176632666382e-9,3.7725961684420815e-9 +SerialiseData/144,1.2180168480754345e-5,1.2168069190153125e-5,1.2191897084106505e-5,3.9472395856792475e-8,3.4170705020794266e-8,4.845195971287307e-8 +SerialiseData/25,1.3122715119210135e-6,1.3107344742259303e-6,1.3139637512879187e-6,5.316327367976107e-9,4.560089390221557e-9,6.188186751631562e-9 +SerialiseData/99,7.295402479954298e-6,7.287590050015749e-6,7.30245914098814e-6,2.6300960259734516e-8,2.2288081741379014e-8,3.018663717962074e-8 +SerialiseData/125,1.0699737077071892e-5,1.0691719285710293e-5,1.0709249422139715e-5,3.034798991261527e-8,2.56521780269621e-8,3.5142305656504856e-8 +SerialiseData/46,2.7369546320559325e-6,2.735551599129017e-6,2.7385744629393496e-6,5.261493635130294e-9,4.574216156402801e-9,6.24698047128574e-9 +SerialiseData/119,9.467028649610298e-6,9.458056895320674e-6,9.476457811955492e-6,3.1877500677160366e-8,2.7012710981386162e-8,3.747879358931e-8 +SerialiseData/4,9.55275668582312e-7,9.539724667699809e-7,9.565820437977401e-7,4.373658185058937e-9,3.7646857710388286e-9,5.140255982506863e-9 +SerialiseData/558,1.7010082981983482e-4,1.6998669167763832e-4,1.7021627732388033e-4,3.679941641885178e-7,3.158427653725286e-7,4.366728785036328e-7 +SerialiseData/316,8.549305716569589e-5,8.546892504223543e-5,8.552329512809549e-5,8.688203678022317e-8,7.07211033276285e-8,1.0563474325417222e-7 +SerialiseData/1414,4.6142573053107406e-4,4.609646368983993e-4,4.617910106656338e-4,1.3860762016877502e-6,1.1373916433118159e-6,1.7631258939634093e-6 +SerialiseData/7277,2.3930078991263154e-3,2.3916833073630204e-3,2.3961356884447424e-3,6.285957870452829e-6,2.987393603070749e-6,1.1605300552765127e-5 +SerialiseData/426,1.6762174153397893e-4,1.67499949893287e-4,1.6771661578516965e-4,3.5688101939309057e-7,2.869097775647991e-7,4.3880162255002555e-7 +SerialiseData/212,8.250422492276457e-5,8.236139056858715e-5,8.261072847893962e-5,4.033646163639657e-7,2.8356683026489275e-7,5.240692476339795e-7 +SerialiseData/524,2.1017459164265472e-4,2.0997705220979177e-4,2.1034890799795697e-4,6.352473311658894e-7,4.976930022181507e-7,7.800073266931763e-7 +SerialiseData/10644,3.450644662009017e-3,3.4463117084174324e-3,3.454862979840266e-3,1.3971344848680792e-5,1.1866371902470088e-5,1.5890506144810456e-5 +SerialiseData/654,2.0777692005212732e-4,2.07507800344209e-4,2.0801018740090568e-4,8.266705017637208e-7,6.814451310083087e-7,9.933583459895993e-7 +SerialiseData/673,2.1323308013881167e-4,2.1298457137047794e-4,2.1352542315480406e-4,9.291840038069212e-7,8.024358150698403e-7,1.0946364765977313e-6 +SerialiseData/24,1.3979530442956703e-6,1.3962353119425517e-6,1.4000763923179047e-6,6.502952358081002e-9,5.593666128237956e-9,7.339099328421007e-9 +SerialiseData/64,1.691077070037336e-6,1.690291222672931e-6,1.691947628560361e-6,2.7647881648325153e-9,2.3810916212331694e-9,3.5016559219573088e-9 +SerialiseData/19,1.33698909329483e-6,1.3363087588895172e-6,1.337654529622366e-6,2.215286532563163e-9,1.8642689415510423e-9,2.7697152439337084e-9 +SerialiseData/94,2.087745360320704e-6,2.086119758871147e-6,2.0892742207515373e-6,5.45371801293119e-9,4.56216987184801e-9,6.465668483765996e-9 +SerialiseData/39,1.7015735307079597e-6,1.7003300159291909e-6,1.7027535137224916e-6,4.119768591224414e-9,3.499196661265597e-9,5.101078206144041e-9 +SerialiseData/14,1.1920778026584274e-6,1.1914378223176487e-6,1.1928842911491216e-6,2.4757448530100807e-9,2.0795873492096445e-9,3.009353599910002e-9 +SerialiseData/64,1.71580672184257e-6,1.7149870604969089e-6,1.7165092757338673e-6,2.649549745811604e-9,2.2603677030122847e-9,3.1384027511504782e-9 +SerialiseData/9,1.1249998449479373e-6,1.1235890532595833e-6,1.1266284252470389e-6,4.813286084543171e-9,4.076715926653784e-9,5.876246437447253e-9 +SerialiseData/64,1.710457433584372e-6,1.7097247099871414e-6,1.7113043889960515e-6,2.8156458986714592e-9,2.2867751064276544e-9,3.702068502314435e-9 +SerialiseData/39,1.709031223401649e-6,1.707111957833674e-6,1.7104784327933072e-6,5.485524392339418e-9,4.409246652897062e-9,7.160578628643501e-9 +SerialiseData/106,4.182513157316424e-6,4.180302126398837e-6,4.1845643217983355e-6,7.503441139800595e-9,6.5923065070162e-9,8.817123359670894e-9 +SerialiseData/4,9.650383746189182e-7,9.639880448109161e-7,9.660560068083907e-7,3.538722110934838e-9,3.053583828792073e-9,4.187097111871258e-9 +SerialiseData/457,2.4717068262873782e-5,2.469591499190867e-5,2.4733577359614025e-5,6.403511427479015e-8,5.250682240242821e-8,7.850829342074214e-8 +SerialiseData/290,1.2786052566146607e-5,1.2777882263220817e-5,1.2795443979959294e-5,2.947777300752279e-8,2.4671263473916255e-8,3.836841015436556e-8 +SerialiseData/30,1.5567866021328717e-6,1.5555403616944147e-6,1.558166861986115e-6,4.535265808756666e-9,3.902738714665839e-9,5.4545593287385905e-9 +SerialiseData/4,9.605273156232759e-7,9.598545198491103e-7,9.611858353078994e-7,2.1931606075867824e-9,1.861899938714853e-9,2.6403809424120553e-9 +SerialiseData/285,1.2043049074081275e-5,1.2038145234613013e-5,1.2048976716907367e-5,1.776616307823769e-8,1.4709983084390429e-8,2.2909779612585937e-8 +SerialiseData/716,4.278953717613375e-5,4.275733767662525e-5,4.281957794291696e-5,1.0512254009492261e-7,9.103468554580707e-8,1.2370135130710935e-7 +SerialiseData/112,5.031016293761207e-6,5.026938405417127e-6,5.036042123683406e-6,1.540189690171745e-8,1.287389626494305e-8,1.860695582171951e-8 +SerialiseData/67,2.99161960215231e-6,2.9887796421480687e-6,2.9942630360527914e-6,9.736120051057858e-9,8.35894846544637e-9,1.1358057792862604e-8 +SerialiseData/2900,4.051328683843386e-4,4.045884042727714e-4,4.064863978419747e-4,2.6281157842478164e-6,8.166213918813176e-7,4.9485007272689126e-6 +SerialiseData/1379,1.9594038071895687e-4,1.9558065669761024e-4,1.9626516373067801e-4,1.1272215450265694e-6,9.287843084544016e-7,1.360949456466644e-6 +SerialiseData/4,9.142468249987229e-7,9.13571265887346e-7,9.149662652134986e-7,2.3071852865198726e-9,1.898719067639881e-9,2.9015765859674483e-9 +SerialiseData/1453,2.1130976235963676e-4,2.1117146767526973e-4,2.1143123003279028e-4,4.5888771076374674e-7,3.5012913981326023e-7,6.306670239171308e-7 +SerialiseData/19637,2.897340989599925e-3,2.8314577075097313e-3,3.1550600194907357e-3,4.0225541377413547e-4,2.7290019759186005e-5,8.520240592126058e-4 +SerialiseData/101,1.278948301119673e-5,1.2763091154212858e-5,1.2807214137595837e-5,6.874818144830059e-8,4.8793503264037154e-8,8.715127533121665e-8 +SerialiseData/369,4.3848734524202215e-5,4.3750430070836555e-5,4.393998748465811e-5,3.2819138072269196e-7,2.982426871350907e-7,3.5926686295381554e-7 +SerialiseData/80,1.2524591632613772e-5,1.2519355670824898e-5,1.2528515852651503e-5,1.4945393078753178e-8,1.1615227418270492e-8,1.9342093672018353e-8 +SerialiseData/211,2.4668871858364718e-5,2.4662309643280904e-5,2.4674962170614214e-5,2.1467394330614872e-8,1.7382402420754235e-8,2.7512062205679655e-8 +SerialiseData/2440,3.409889429730565e-4,3.408461086151864e-4,3.4113781850698667e-4,4.940788565183191e-7,4.3125661968741385e-7,5.950783582179992e-7 +SerialiseData/2750,4.200864525572832e-4,4.192529662104013e-4,4.210782006611139e-4,3.0696731763219802e-6,2.6870815298364644e-6,3.348656799432951e-6 +SerialiseData/2302,3.3991909724992106e-4,3.395597280680585e-4,3.4018540000000356e-4,1.0376434361229448e-6,7.198611738153813e-7,1.6332429506677267e-6 +SerialiseData/138,1.6078941396878655e-5,1.6034974789546736e-5,1.6120955658819483e-5,1.4176741203960235e-7,1.1996212314432422e-7,1.8796211251126965e-7 +SerialiseData/1715,2.5146185443666234e-4,2.513332053692314e-4,2.5163729665986e-4,5.345067794621954e-7,4.542930753136993e-7,6.030488357179201e-7 +SerialiseData/1912,2.7374709627533267e-4,2.736250327962283e-4,2.7384603710661596e-4,3.79548805321447e-7,3.1827519236281226e-7,4.470592557349354e-7 +SerialiseData/1272,1.8088945235501043e-4,1.8057646449559024e-4,1.81157848975603e-4,1.017368499172813e-6,7.758835059375681e-7,1.1863671440780308e-6 +SerialiseData/143,1.800495329960016e-5,1.79749990536226e-5,1.8039600740654987e-5,1.07151305743525e-7,9.003520721803235e-8,1.257935036564254e-7 +SerialiseData/1877,2.796181438855673e-4,2.7906933919526677e-4,2.799970419168034e-4,1.53875956570857e-6,1.0323503701627155e-6,2.423736958963632e-6 +SerialiseData/176,2.9144766091752065e-5,2.9131301783819393e-5,2.916077228451208e-5,4.9560588169097956e-8,4.171331279333886e-8,6.199000160306547e-8 +SerialiseData/32799,4.855915371156151e-3,4.745856940587807e-3,5.395539857158902e-3,6.345875212805017e-4,2.0169887391145594e-5,1.433177412947174e-3 +SerialiseData/4,9.1587912671037e-7,9.144385621890413e-7,9.173248493073495e-7,4.873710699938756e-9,4.166079352643861e-9,5.702637809921715e-9 +SerialiseData/483,6.242343182480152e-5,6.230999016357674e-5,6.252467478427885e-5,3.6574369920508093e-7,3.0370900327065963e-7,4.012936556589786e-7 +SerialiseData/1308,1.7412327651096252e-4,1.7372756415949886e-4,1.7485534572319803e-4,1.7819025181698312e-6,1.1648209401071823e-6,2.5046412239739827e-6 +SerialiseData/1344,2.0019601271462154e-4,2.0013228669531064e-4,2.002752629555572e-4,2.3747013489720375e-7,1.9233510752445098e-7,3.187209847061303e-7 +SerialiseData/93,1.2553050851757114e-5,1.2549051079242843e-5,1.2556713685533865e-5,1.2708583472675896e-8,1.0568621719191279e-8,1.538802024952915e-8 +SerialiseData/388,5.1723085502102346e-5,5.169489191580675e-5,5.175001564077258e-5,9.534303274553059e-8,7.817663391246781e-8,1.196140289375642e-7 +SerialiseData/28,4.051020807065949e-6,4.044574594475129e-6,4.0578037915410205e-6,2.257353106799004e-8,2.00109286412027e-8,2.48555129862034e-8 +SerialiseData/62,9.502546566098717e-6,9.484141493967467e-6,9.516390713302903e-6,5.569470521821161e-8,4.557506819375867e-8,6.355736171565694e-8 +SerialiseData/188,2.4666908378833576e-5,2.459315769592515e-5,2.4740458917023164e-5,2.4342694834091323e-7,2.2124236442936806e-7,3.017696134234072e-7 +SerialiseData/928,1.3868545702742937e-4,1.386380524138638e-4,1.3873426903094312e-4,1.6440789020840287e-7,1.3143558852751537e-7,2.0938980088178453e-7 +SerialiseData/2161,4.918553777881148e-5,4.9131920471923943e-5,4.924435148833664e-5,1.8738631788834954e-7,1.6244453008140684e-7,2.1842533410542126e-7 +SerialiseData/184589,3.678888962179118e-3,3.596036956803678e-3,4.08792059396594e-3,5.026183858792204e-4,1.328985557277429e-5,1.1438791653630874e-3 +SerialiseData/5124,1.0747954504242466e-4,1.0741902056240613e-4,1.0755685724114105e-4,2.3119845209872344e-7,1.8612814721680966e-7,3.321242036835333e-7 +SerialiseData/14574,3.1764425764120325e-4,3.1626190782757627e-4,3.1874780672190545e-4,4.099742082711388e-6,2.7307309045537163e-6,5.215820816282274e-6 +SerialiseData/215773,4.365470331050263e-3,4.273461210996686e-3,4.732125806753422e-3,5.413996825365692e-4,1.402465530434124e-5,1.140000749154702e-3 +SerialiseData/4,9.224829597105929e-7,9.208972607494014e-7,9.239816506260741e-7,5.187417384751302e-9,4.472451039195481e-9,6.421544911111642e-9 +SerialiseData/6620,1.3429346170502622e-4,1.3416716084779917e-4,1.3436633560794616e-4,3.1184311029521213e-7,2.3656620939474742e-7,4.352843238946191e-7 +SerialiseData/5562,1.1542257280664422e-4,1.1514237082929974e-4,1.1599243304734248e-4,1.2517956202352651e-6,7.641201992620073e-7,1.874630179906355e-6 +SerialiseData/1179,2.7155645284655794e-5,2.705093271638911e-5,2.731884923806959e-5,4.417485994206748e-7,3.134760694658766e-7,5.647839493449761e-7 +SerialiseData/1609,3.24887541940636e-5,3.241571330976529e-5,3.25222782452948e-5,1.538362859313951e-7,3.3259073730064547e-8,2.6309449958977186e-7 +SerialiseData/357,9.062853206566834e-6,9.05738131291809e-6,9.06926142186359e-6,1.9706906130129472e-8,1.5862201666622524e-8,2.6864600927564688e-8 +SerialiseData/4,9.157903638756442e-7,9.149538833377933e-7,9.168777252476554e-7,3.0183108651915197e-9,2.4591470733782723e-9,3.7020538119796155e-9 +SerialiseData/1431,2.615010869970854e-5,2.614280915368631e-5,2.6157402291267038e-5,2.3768272999413515e-8,1.9428990868439834e-8,2.8593328589079077e-8 +SerialiseData/2175,4.280500697935264e-5,4.27814745585235e-5,4.2825868584591225e-5,7.433401380456275e-8,6.391555112559638e-8,8.992465030930311e-8 +SerialiseData/5717,1.1920497525654125e-4,1.1916278067140756e-4,1.192439227868728e-4,1.3867316996112343e-7,1.1208542204632363e-7,1.8427859805350943e-7 +SerialiseData/22268,4.4777773321095485e-4,4.476442642132002e-4,4.479318015369932e-4,4.63599949906341e-7,3.9246185207017785e-7,5.723109657091491e-7 +SerialiseData/594,1.373942129521713e-5,1.3731956831485766e-5,1.374762296106608e-5,2.554057519898796e-8,2.143510870273724e-8,3.257555128891339e-8 +SerialiseData/226,5.601325235383044e-6,5.594120020479933e-6,5.615624073963648e-6,3.394484682020329e-8,2.0665591122719764e-8,5.959795207764258e-8 +SerialiseData/17211,3.408737421033922e-4,3.4074633616930155e-4,3.409755994090743e-4,4.2430564889230263e-7,3.2844831036448295e-7,5.937178114851193e-7 +SerialiseData/11828,2.007950073983486e-4,2.006332988365038e-4,2.0093603357323583e-4,5.132868462896392e-7,4.7556439524934147e-7,5.586363478762577e-7 +SerialiseData/738830,0.16016828302107117,0.1545369421586483,0.17618579058797054,1.4054555143156006e-2,7.081572725520947e-4,2.0263383742063032e-2 +SerialiseData/28375,5.966498989658641e-3,5.822007722088738e-3,6.522412179697952e-3,7.744040678789403e-4,7.964944186076423e-5,1.6145229473994412e-3 +SerialiseData/31023,6.534478715020489e-3,6.399255630400597e-3,7.075215812125357e-3,7.577431252039952e-4,3.968749943921411e-5,1.5860060355801394e-3 +SerialiseData/941,1.9330985408451076e-4,1.9327520022073745e-4,1.933708344988051e-4,1.4750430027958853e-7,9.404021234850952e-8,2.5268655826598955e-7 +SerialiseData/5594,1.213113742667844e-3,1.1913236180593617e-3,1.3208849190804695e-3,1.4059444015353042e-4,2.6203042642735784e-6,3.229106204054451e-4 +SerialiseData/189626,4.1249666453646916e-2,3.947557405808354e-2,4.507889094730299e-2,4.606368401683459e-3,5.428169168487573e-4,7.136810628329822e-3 +SerialiseData/14822,3.073037531025439e-3,3.0160906062463443e-3,3.345367275886094e-3,3.388810414394158e-4,3.129207623179408e-5,7.689309984310433e-4 +SerialiseData/3225,6.501084842389486e-4,6.499597438633501e-4,6.502592543041415e-4,4.999706161507351e-7,4.037940188663666e-7,6.572076869044376e-7 +SerialiseData/63167,1.3470649106560104e-2,1.2960096545152311e-2,1.4653740433877988e-2,1.7722794182144746e-3,8.672614991323815e-5,3.0496747902455635e-3 +SerialiseData/32050,6.616500177372271e-3,6.481626431932737e-3,7.138995445984916e-3,7.249722291463524e-4,5.4090289845448876e-5,1.5065249122265768e-3 +SerialiseData/11581,2.379093057251883e-3,2.339253177979012e-3,2.576048867830964e-3,2.546786212883648e-4,2.44964195981513e-6,5.841931198993895e-4 +SerialiseData/32919,6.8617061023119475e-3,6.736229738429789e-3,7.3596321143682445e-3,6.813672375310318e-4,5.132621666687647e-5,1.4076285303535503e-3 +SerialiseData/22841,4.79054013174509e-3,4.67979059282864e-3,5.332728133064517e-3,6.468806813108137e-4,2.9125752693342295e-5,1.4677446922922587e-3 +SerialiseData/2618,5.242472264933016e-4,5.240693165037381e-4,5.244327537610756e-4,6.049519903684375e-7,4.983410296832466e-7,7.469574362354678e-7 +SerialiseData/36841,7.8079485930043595e-3,7.625743881175273e-3,8.519881004986872e-3,9.722274144757677e-4,4.892511720509644e-5,2.026974742753901e-3 +SerialiseData/42958,9.019186734489945e-3,8.815490946465854e-3,9.80027018485068e-3,1.0459913111555462e-3,6.608492917066218e-5,2.1700691897152723e-3 +SerialiseData/408999,8.739165268806992e-2,8.408251460512273e-2,9.459176984916826e-2,7.139250318547145e-3,2.6073217250464215e-4,1.0018768092833018e-2 +SerialiseData/35863,7.2187493257766175e-3,7.0840004629120065e-3,7.62226837939877e-3,7.44991711525932e-4,6.681316677805099e-6,1.414409358602748e-3 +SerialiseData/41020,8.86360754554967e-3,8.522685485423934e-3,9.749646155329488e-3,1.3248745952042828e-3,1.3322169879832757e-4,2.5266902861927508e-3 +SerialiseData/747,1.5057089332626587e-4,1.501168530148575e-4,1.5102707507283402e-4,1.504081209759223e-6,1.4390992162385959e-6,1.5581569790618913e-6 +SerialiseData/625,4.8721015168179826e-5,4.866280445096068e-5,4.879010366494856e-5,2.100840029494701e-7,1.768246269302559e-7,2.515039036350523e-7 +SerialiseData/1995,1.7504967209385934e-4,1.7461608011205503e-4,1.7550662896758797e-4,1.5475970228730807e-6,1.4237216627480496e-6,1.6231277312692384e-6 +SerialiseData/34423,3.015429190588336e-3,2.954770935432989e-3,3.3138337060027905e-3,3.7929783249608765e-4,1.0396154191490603e-5,8.677540651521203e-4 +SerialiseData/123947,1.1188481813633168e-2,1.0694254373961458e-2,1.2374584744449267e-2,1.7928963933042607e-3,6.0431899064029935e-5,3.154955645759124e-3 +SerialiseData/1670,1.3870482842681987e-4,1.385146824822565e-4,1.3887792835257958e-4,6.280849735952195e-7,5.675048435553576e-7,7.133483075112161e-7 +SerialiseData/230,1.5179982628298682e-5,1.5163874859396617e-5,1.5196220580109857e-5,5.305001727410505e-8,4.8629603646466896e-8,6.060336620199324e-8 +SerialiseData/1152,9.0689575373209e-5,9.058009913943289e-5,9.086871867091223e-5,4.6020548408354026e-7,3.271050857532287e-7,5.683759770858701e-7 +SerialiseData/4,9.507210937076389e-7,9.495922950954515e-7,9.518894192285914e-7,3.92680825912136e-9,3.348540719585999e-9,4.619131539580568e-9 +SerialiseData/5519,4.782774223403154e-4,4.7794702865977686e-4,4.785569418968216e-4,1.0785505359232248e-6,9.656681167488103e-7,1.2046225736657883e-6 +SerialiseData/4,9.564232590597146e-7,9.549851844183282e-7,9.57834479180335e-7,4.973441117024555e-9,4.314095081179992e-9,5.762308194352253e-9 +SerialiseData/49644,5.245357306636542e-3,5.025751276279512e-3,5.830141975428993e-3,9.367023075404075e-4,3.334369532076507e-5,1.7952334096397403e-3 +SerialiseData/33426,3.3194805341332846e-3,3.26252096138783e-3,3.544890357017748e-3,3.433650723039468e-4,1.95539799772292e-5,7.263677254486818e-4 +SerialiseData/4,9.152090669126865e-7,9.143847418674294e-7,9.162080550028446e-7,2.970857670055967e-9,2.523921222104519e-9,3.575172571698812e-9 +SerialiseData/386328,4.369189595355407e-2,4.162487216494355e-2,4.799336852167024e-2,5.6718399397936575e-3,3.2346377434918283e-3,8.683003568136685e-3 +SerialiseData/103528,1.0752095628707171e-2,1.0361935611741955e-2,1.1615914662003768e-2,1.4368031532394614e-3,5.942166124224221e-5,2.420370981341161e-3 +SerialiseData/69607,7.344574363791746e-3,7.040486919482928e-3,8.16442050967585e-3,1.2396786181661766e-3,6.443808045382036e-4,2.290123696900826e-3 +SerialiseData/2624,2.46347544502843e-4,2.459482099499729e-4,2.4671415057611775e-4,1.2805948819104414e-6,1.1083260199514252e-6,1.4357198738084346e-6 +SerialiseData/7332,7.044750825487983e-4,7.031909377755105e-4,7.056150276640739e-4,4.072822015605996e-6,3.783369865894436e-6,4.500689573081619e-6 +SerialiseData/15837,1.5755506881618975e-3,1.5544490287855983e-3,1.6790921073043799e-3,1.3618311154538077e-4,2.5726860228863135e-6,3.131451841915583e-4 +SerialiseData/170713,1.8242451797113125e-2,1.7445029561079708e-2,2.015991082753149e-2,2.5930624005394256e-3,1.2270713469897474e-4,4.6487453234366535e-3 +SerialiseData/2557,4.907673616851502e-5,4.883684908041296e-5,4.93339007734065e-5,8.434893251730215e-7,8.061521496585463e-7,8.912328917996775e-7 +SerialiseData/400731,9.507489395241809e-3,8.819559769826199e-3,1.0683679300122066e-2,2.403660599784124e-3,1.6817101323934117e-3,3.288612505702553e-3 +SerialiseData/35344,6.176757589814255e-4,6.174059667423685e-4,6.179314604025338e-4,9.219062433359281e-7,7.7611434610936e-7,1.0957254429152334e-6 +SerialiseData/74755,1.3956267804340907e-3,1.344906948505756e-3,1.536386946788023e-3,2.4794278218973396e-4,3.059469483743599e-5,4.631861582030596e-4 +SerialiseData/180673,3.8164311527975267e-3,3.5024659371112334e-3,4.350362386598493e-3,1.2700176753783288e-3,6.947441024113356e-4,1.975096620256418e-3 +SerialiseData/38281,6.648459544983296e-4,6.64519686070993e-4,6.651664148791796e-4,1.1125313870324324e-6,8.294813803822278e-7,1.6251427943813585e-6 +SerialiseData/173589,3.629305414625394e-3,3.352735516565658e-3,4.18097487858894e-3,1.1899100873514921e-3,6.710878331440456e-4,1.9001624709567583e-3 +SerialiseData/93107,1.7061608321484393e-3,1.6400400384455002e-3,1.90168466245649e-3,3.1514612561109567e-4,7.2261865457892206e-6,6.448938264501491e-4 +SerialiseData/4,9.50888637931314e-7,9.501021379226633e-7,9.515686598248348e-7,2.415312565099983e-9,1.9829340645891693e-9,3.112293478009305e-9 +SerialiseData/5,8.928068829082107e-7,8.917626812665482e-7,8.939805054633491e-7,3.769124224748508e-9,3.2079082887041645e-9,4.631491118861593e-9 +SerialiseData/5,8.946771919368857e-7,8.940701219545482e-7,8.952108181640059e-7,1.9365032004192464e-9,1.6125372615445967e-9,2.474058709175958e-9 +SerialiseData/5,9.19992029997745e-7,9.190925163983725e-7,9.208975494618018e-7,3.0651873620773753e-9,2.624583501342258e-9,3.5288616258436687e-9 +SerialiseData/5,9.001916208547443e-7,8.996208256024302e-7,9.007336821420627e-7,1.9181163860093195e-9,1.5591704986046816e-9,2.4710237974968307e-9 +SerialiseData/5,8.958405281216319e-7,8.952660549800357e-7,8.964155311701988e-7,2.049072419680491e-9,1.7581530818151056e-9,2.402911375099764e-9 +SerialiseData/5,9.161125073183883e-7,9.152556184469594e-7,9.167587175505138e-7,2.525964599325117e-9,2.1360288005454517e-9,2.979956386687818e-9 +SerialiseData/5,8.951297225024109e-7,8.943557058164403e-7,8.958440938480142e-7,2.520029942242576e-9,2.1721195824938837e-9,2.9535953647860557e-9 +SerialiseData/5,8.971887468369049e-7,8.964309705528402e-7,8.979076340507207e-7,2.5823578679568167e-9,2.1325019212368287e-9,3.1223507057143426e-9 +SerialiseData/5,8.955438533953123e-7,8.948096933230083e-7,8.96294478054675e-7,2.6863091701849864e-9,2.2638705399576135e-9,3.2941436174064368e-9 +SerialiseData/5,8.90660151655669e-7,8.896651846155717e-7,8.917350642512921e-7,3.3179128359342295e-9,2.810127230270666e-9,3.9339540304301674e-9 +SerialiseData/5,8.966887877580703e-7,8.957901546985073e-7,8.977300362533298e-7,3.2637930272080417e-9,2.5657653973686898e-9,4.187926757065868e-9 +SerialiseData/5,9.18426741938619e-7,9.179333876548132e-7,9.190578229302556e-7,1.8574241487522978e-9,1.6179589436292916e-9,2.2135341016664554e-9 +SerialiseData/5,9.2035072146426e-7,9.200028888089065e-7,9.207373001777897e-7,1.2938849765081434e-9,1.0316370594350287e-9,1.5655494572567226e-9 +SerialiseData/5,9.141597309338401e-7,9.135787499208766e-7,9.146929510800505e-7,1.8295455580769308e-9,1.5191873182759778e-9,2.3638103949572204e-9 +SerialiseData/5,9.219307277851165e-7,9.214058682728268e-7,9.225125858259043e-7,1.987618032275967e-9,1.6461841522525372e-9,2.5257794039725814e-9 +SerialiseData/5,8.883682902367668e-7,8.878982680061217e-7,8.888619683679323e-7,1.6503027539142776e-9,1.3909925776581533e-9,2.0956894702058035e-9 +SerialiseData/5,8.924387606533371e-7,8.919114136879132e-7,8.929769990458793e-7,1.8113778597000047e-9,1.4718299013000298e-9,2.2732540629275697e-9 +SerialiseData/5,9.161992104954224e-7,9.155040822470314e-7,9.168823299287827e-7,2.2606213517051894e-9,1.8143371865522738e-9,2.858101452371026e-9 +SerialiseData/5,8.907654179110473e-7,8.899684513675978e-7,8.915814799912073e-7,2.7655759503972066e-9,2.353808215609779e-9,3.367480643657063e-9 +SerialiseData/5,8.998431035601432e-7,8.989686171449638e-7,9.00656419868658e-7,2.625251143582706e-9,2.275148290999476e-9,3.0929630295861885e-9 +SerialiseData/14,3.5478081290707746e-6,3.5416527642259262e-6,3.5529063534734922e-6,1.8498162455075803e-8,1.714251170921473e-8,2.0055821932668802e-8 +SerialiseData/9,8.974851073888336e-7,8.961658438498531e-7,8.985624908685063e-7,4.033748794818685e-9,3.3119433005611732e-9,5.146547649804081e-9 +SerialiseData/14,3.6082190706462908e-6,3.6071704125812007e-6,3.609206301796815e-6,3.4877016353225684e-9,2.9419642341516096e-9,4.314585896946917e-9 +SerialiseData/14,3.5980842351046734e-6,3.5967536213789518e-6,3.5997998738793707e-6,5.194589551101065e-9,4.038118869027033e-9,7.712010740161318e-9 +SerialiseData/8,8.987146009124519e-7,8.980697639392747e-7,8.993738328937709e-7,2.130684171971827e-9,1.831527853051885e-9,2.5138554774924876e-9 +SerialiseData/5,8.960800756606349e-7,8.953800258764964e-7,8.966623412722161e-7,2.2218050605707787e-9,1.859549235790862e-9,2.761979547295115e-9 +SerialiseData/8,8.982680848476445e-7,8.97753395375146e-7,8.988013450038491e-7,1.822426781250568e-9,1.5382761939332705e-9,2.2081156021906214e-9 +SerialiseData/14,3.5492948561603137e-6,3.5403287706039465e-6,3.5563845415714183e-6,2.7427374122384596e-8,2.2208517946805966e-8,3.091459672903663e-8 +SerialiseData/14,3.5901243697675846e-6,3.5839552509790722e-6,3.5947044884582383e-6,1.7287037322941297e-8,1.2940604102571305e-8,2.051324041455906e-8 +SerialiseData/14,3.6005789471834994e-6,3.599435863169044e-6,3.60213035472084e-6,4.520508861614525e-9,3.1310946904501147e-9,8.300952946435338e-9 +SerialiseData/235,2.2433408172240538e-5,2.2406229966020956e-5,2.245038053201009e-5,6.973102257990687e-8,4.8213016015920945e-8,1.0422371243298994e-7 +SerialiseData/152,1.3070488968843014e-5,1.3052619310364052e-5,1.3087950896735274e-5,5.816173924732541e-8,5.263792617794844e-8,6.502105017720502e-8 +SerialiseData/28,2.5307824035236004e-6,2.5286371877838355e-6,2.5330770807904298e-6,7.333103962022254e-9,6.5922812524051425e-9,8.403270082732793e-9 +SerialiseData/29,3.6433637360683186e-6,3.6422411375237286e-6,3.64478001159673e-6,4.1719495935617395e-9,3.2756242506571495e-9,6.61560824326538e-9 +SerialiseData/160,1.4620267951713166e-5,1.4608731083845844e-5,1.4630623731254289e-5,3.581581092965946e-8,3.04498201082663e-8,4.4446419768783876e-8 +SerialiseData/135,1.2154597122552632e-5,1.2143206108598039e-5,1.2167933159052179e-5,4.1250186162538736e-8,3.422001096508971e-8,4.909396867734311e-8 +SerialiseData/103,7.39766104589891e-6,7.39507898924155e-6,7.399762096309061e-6,7.816446535531638e-9,6.515234973328717e-9,1.006766279095617e-8 +SerialiseData/4,9.100309128584048e-7,9.09116097390104e-7,9.108559314936709e-7,2.7656737454681735e-9,2.2371103000613702e-9,3.4688117120941236e-9 +SerialiseData/21,2.3676709340036376e-6,2.3667177557049375e-6,2.3687022049838167e-6,3.436675667988538e-9,2.81236712437396e-9,4.169706938081504e-9 +SerialiseData/627,6.014007683318338e-5,6.000124113137712e-5,6.0285714371607086e-5,4.627613251073223e-7,4.016884811162044e-7,5.063527694956439e-7 +SerialiseData/428,1.2719614258955775e-4,1.2709950096749837e-4,1.2726661944510763e-4,2.7821053353655453e-7,1.9091734073991446e-7,4.568150390102341e-7 +SerialiseData/212,8.210225635666985e-5,8.194557703631878e-5,8.22129813271888e-5,4.5689328271565534e-7,3.616447188887445e-7,6.015491060122115e-7 +SerialiseData/246,8.363177733859067e-5,8.355895657495374e-5,8.367929412011548e-5,1.985724399046859e-7,1.15390744515455e-7,2.9957394701471317e-7 +SerialiseData/108,4.291213024892896e-5,4.290205819456734e-5,4.292883221749806e-5,4.363103154959028e-8,2.9425508871944997e-8,7.432896565252979e-8 +SerialiseData/4,9.62096969287221e-7,9.613616730602202e-7,9.628972046832845e-7,2.6207217124667068e-9,2.268817639353237e-9,2.998088314716843e-9 +SerialiseData/177,4.232103584605055e-5,4.223115933184211e-5,4.240016855212413e-5,2.8472396385650283e-7,2.295185042283483e-7,3.2631353347464134e-7 +SerialiseData/4,9.145269782354712e-7,9.138749210147024e-7,9.152994446008337e-7,2.3836158573869685e-9,1.8509111943011408e-9,3.12317499030914e-9 +SerialiseData/4,9.584575984089593e-7,9.57201712872708e-7,9.596795859115934e-7,4.11456054980423e-9,3.5295635699139583e-9,4.8615843691620895e-9 +SerialiseData/1332,4.6286902234669863e-4,4.6225695013727195e-4,4.634250203817706e-4,1.954464315529356e-6,1.678966925601204e-6,2.3285637580165884e-6 +SerialiseData/4,9.135131726953456e-7,9.128075477975381e-7,9.142240055194037e-7,2.335750716913852e-9,1.9324759399787684e-9,2.98041134216714e-9 +SerialiseData/9,1.127322315289403e-6,1.1257277193446242e-6,1.1290744880693084e-6,5.795038145624804e-9,5.215159605964936e-9,6.4843793873834894e-9 +SerialiseData/14,1.0903087980972541e-6,1.0890547559471725e-6,1.091488079637244e-6,4.116314970797798e-9,3.579516419051612e-9,4.988754427518015e-9 +SerialiseData/29,1.5675359524526536e-6,1.5662251181950592e-6,1.5685230679415815e-6,3.9032234853525475e-9,3.0903157152557628e-9,5.5021067676089286e-9 +SerialiseData/74,1.8448303778356023e-6,1.8437313926348804e-6,1.8458642548818787e-6,3.736198789639325e-9,3.0104894165976634e-9,4.970636513710939e-9 +SerialiseData/4,9.180919789441103e-7,9.171661551413659e-7,9.188554357241757e-7,2.812822622088433e-9,2.361725852912467e-9,3.3930367187824836e-9 +SerialiseData/9,1.1225583551547591e-6,1.1218292025996771e-6,1.1233339951136213e-6,2.5500835946939443e-9,2.1194903045732725e-9,3.1636958612607237e-9 +SerialiseData/34,1.3259497287571122e-6,1.3250021503290841e-6,1.326915986145882e-6,3.202859345690423e-9,2.7270452087693943e-9,4.175041659974894e-9 +SerialiseData/34,1.3319754676396619e-6,1.3308372520680452e-6,1.3330775244364545e-6,3.861697779807169e-9,3.180338413247696e-9,4.778462390299969e-9 +SerialiseData/54,1.5615443893050117e-6,1.5606886705661013e-6,1.5624608137253617e-6,3.0317925131505032e-9,2.4447418019141238e-9,3.8075860318445e-9 +SerialiseData/9,1.0662839287219844e-6,1.0650374497742798e-6,1.0673393519927786e-6,3.811915654602406e-9,3.364819854814985e-9,4.4298411637207215e-9 +SerialiseData/114,5.016685629634767e-6,5.01429245300801e-6,5.019843910777618e-6,9.59704364663133e-9,7.851657047795314e-9,1.3067629154637605e-8 +SerialiseData/4,9.331722233768607e-7,9.320731268091464e-7,9.343505041685639e-7,3.666356167299973e-9,3.1961501886272282e-9,4.261124139630761e-9 +SerialiseData/3273,1.861025121118815e-4,1.8590755764059952e-4,1.862955961745541e-4,6.520737068471796e-7,5.853230765001483e-7,7.449885632025388e-7 +SerialiseData/549,3.0658219157192926e-5,3.06302494849689e-5,3.070726492538853e-5,1.2279190572791937e-7,7.434279108069962e-8,1.9284152749664584e-7 +SerialiseData/7385,3.8461409852710225e-4,3.8444236244254687e-4,3.848627429507248e-4,7.032375418360571e-7,5.196956608346536e-7,1.1249679709822091e-6 +SerialiseData/41,2.183017969333497e-6,2.1784469045458493e-6,2.1863068011271063e-6,1.2561223053384846e-8,1.0916727992779291e-8,1.4491008709531053e-8 +SerialiseData/267,1.0982535655260396e-5,1.097735559298213e-5,1.0988366052136816e-5,1.794614051064246e-8,1.4552448664840806e-8,2.2854099362242123e-8 +SerialiseData/4,9.073742662776357e-7,9.064115788141621e-7,9.083409434806222e-7,3.3643216261752896e-9,2.9600467015811046e-9,3.965703044589288e-9 +SerialiseData/69,4.132048018750689e-6,4.1275260334390805e-6,4.13608574733337e-6,1.5207224914556594e-8,1.2631884101659367e-8,1.8872122334788784e-8 +SerialiseData/4,9.142356708222174e-7,9.131283182585992e-7,9.153226884924893e-7,3.5286168176366714e-9,2.9905266079999633e-9,4.303314893584877e-9 +SerialiseData/48,6.820211794270404e-6,6.818156261455793e-6,6.822098987541529e-6,6.767679417526769e-9,5.851731655969933e-9,7.896604082796348e-9 +SerialiseData/919,1.3687842175201612e-4,1.3675969510357287e-4,1.3693580936283386e-4,2.6462202970661315e-7,1.4948711948489852e-7,4.6042788231768224e-7 +SerialiseData/2039,2.9786511218826727e-4,2.9742348084353166e-4,2.983400600928477e-4,1.5922218393796833e-6,1.0962351028357624e-6,2.389963866776124e-6 +SerialiseData/1909,2.671520578133545e-4,2.666485870504029e-4,2.6759919550363567e-4,1.5676080351439415e-6,1.4568599287532072e-6,1.6900578029518314e-6 +SerialiseData/4,9.519450685105765e-7,9.501906037180812e-7,9.535957379767769e-7,5.678439492813261e-9,4.964505071205707e-9,6.707099154434779e-9 +SerialiseData/527,7.635342791905153e-5,7.62072845764803e-5,7.645825288984171e-5,3.903945267280249e-7,2.915376389579701e-7,4.7154955126337655e-7 +SerialiseData/1092,1.4635239419719546e-4,1.46148793918357e-4,1.4648137143269388e-4,5.489784266965654e-7,3.9631850363283e-7,7.011296859382666e-7 +SerialiseData/330,3.571162564855142e-5,3.564587466460698e-5,3.576981303122015e-5,2.1129501649081834e-7,1.770358098088033e-7,2.3403625667347586e-7 +SerialiseData/2547,3.61164901765921e-4,3.605644383592623e-4,3.619248374635084e-4,2.1887383058658987e-6,1.7604290865178789e-6,2.4585579253095827e-6 +SerialiseData/198,2.6937802631178686e-5,2.6918023649417957e-5,2.6952750988725283e-5,6.129344568554617e-8,4.83230418452832e-8,8.433651284016458e-8 +SerialiseData/13754,2.0502451663934646e-3,2.0059127730508454e-3,2.22082396879774e-3,2.69122012626014e-4,2.556923448337724e-5,5.669590545372727e-4 +SerialiseData/750,1.1165281395607453e-4,1.1143828119293367e-4,1.1180941301637456e-4,6.493525319922076e-7,5.287297947191198e-7,7.627264125216397e-7 +SerialiseData/26,1.5023587143375053e-6,1.5008724397929873e-6,1.503867852858204e-6,5.103293189454752e-9,4.39836681342336e-9,5.890912477539733e-9 +SerialiseData/920,1.3319491095859745e-4,1.3288302365383855e-4,1.3356168402826543e-4,1.1505750853516904e-6,9.997123112941458e-7,1.3310600794668898e-6 +SerialiseData/12536,1.8896968012601673e-3,1.8574230190292725e-3,2.034392175769135e-3,1.9220927385671583e-4,2.030388057653397e-5,4.398653754956291e-4 +SerialiseData/269,3.766233279552504e-5,3.760695002652427e-5,3.76997933450362e-5,1.5280674410080703e-7,9.717881271047148e-8,2.1772309435226691e-7 +SerialiseData/71,4.7830626826944535e-6,4.776753865614113e-6,4.790321485456318e-6,2.220177535000852e-8,1.6221821816307082e-8,2.642279478745576e-8 +SerialiseData/4,9.552559520207742e-7,9.543379889890497e-7,9.562792142234725e-7,3.2985174065744082e-9,2.8426413256885026e-9,3.8877810523987985e-9 +SerialiseData/2467,3.600858024086203e-4,3.590978600653391e-4,3.609509297726428e-4,3.099500479893334e-6,2.8120843918387345e-6,3.388299906480519e-6 +SerialiseData/14,1.2696474275133056e-6,1.268084461561023e-6,1.2708583979910495e-6,4.600758252592553e-9,3.5653080668421762e-9,5.9387161261445784e-9 +SerialiseData/1087,1.534222937672147e-4,1.5327508915161743e-4,1.5356320713751705e-4,4.778695423512054e-7,4.322763589212242e-7,5.395587327074066e-7 +SerialiseData/163,2.098082919410356e-5,2.0941923346045085e-5,2.1009412722290048e-5,1.1355719142619997e-7,9.282394158067962e-8,1.3163872058626776e-7 +SerialiseData/4,9.127997238461995e-7,9.116626814627242e-7,9.137440825478324e-7,3.4004137913137646e-9,2.8960253699650763e-9,4.1408923453792765e-9 +SerialiseData/659,9.388285550362118e-5,9.366849253439784e-5,9.411512694123242e-5,7.685761464550557e-7,7.071524256628546e-7,8.325247288405911e-7 +SerialiseData/1726,2.3310099468409323e-4,2.3257025122969452e-4,2.3363564284168916e-4,1.824611020711046e-6,1.6089239989927243e-6,2.0150808875384396e-6 +SerialiseData/4,9.123229676906272e-7,9.116918865768585e-7,9.129328107189199e-7,2.1226931330591496e-9,1.7724930340176222e-9,2.7281438469437687e-9 +SerialiseData/986,1.526460378591203e-4,1.5238159534143405e-4,1.5283828461538064e-4,7.476239190268833e-7,5.415120136456575e-7,9.343608146384815e-7 +SerialiseData/436,5.96218437831822e-5,5.953426838548467e-5,5.9715612785148775e-5,3.2524511545212924e-7,2.8640953462279954e-7,3.783004712893386e-7 +SerialiseData/513,7.319968107679659e-5,7.307977718879635e-5,7.326922849213116e-5,2.989056854298537e-7,1.7622380457733682e-7,4.1553455279344065e-7 +SerialiseData/1610,2.4906335273991285e-4,2.4861312329832285e-4,2.494625253088227e-4,1.4469677851019082e-6,1.252636195663538e-6,1.6026468331554164e-6 +SerialiseData/5781,1.1463325099893126e-4,1.1397865549868014e-4,1.1494261869776508e-4,1.4514732098697117e-6,1.0220520403748428e-6,2.126712972149512e-6 +SerialiseData/2949,6.136877787795884e-5,6.1015620347996955e-5,6.173735627619855e-5,1.2371924504269731e-6,1.059595086642607e-6,1.326570194615338e-6 +SerialiseData/773,1.8130528793424403e-5,1.802008939610741e-5,1.8226438520530944e-5,3.3324174145372913e-7,2.9540391581464656e-7,3.594533018125117e-7 +SerialiseData/4,9.282310983771404e-7,9.270564065984364e-7,9.292968358989078e-7,3.859725453570448e-9,3.0626685376809303e-9,5.050016545087289e-9 +SerialiseData/28070,5.756832393767377e-4,5.7550563543534e-4,5.758280787726575e-4,5.467725629547563e-7,4.45175797229207e-7,7.014844721296065e-7 +SerialiseData/13195,2.6405280802688284e-4,2.639521731723564e-4,2.642393017153956e-4,4.450870983383762e-7,1.9932083094804036e-7,7.730861328456454e-7 +SerialiseData/4,9.088790370714206e-7,9.076977320889231e-7,9.098859540989841e-7,3.7031775876307866e-9,3.106628744467926e-9,4.288576619012386e-9 +SerialiseData/9653,1.782653219971575e-4,1.7687144597681247e-4,1.798321116371692e-4,5.057095750090928e-6,4.591483080098822e-6,5.281227805655435e-6 +SerialiseData/4,9.512027810264428e-7,9.500785605603773e-7,9.520919719030778e-7,3.299469501269378e-9,2.7508845856685737e-9,4.109011955010704e-9 +SerialiseData/4,9.513176783051489e-7,9.499221298738598e-7,9.53141752996507e-7,5.377626629192009e-9,4.6137330668073605e-9,6.227476872077105e-9 +SerialiseData/17308,3.305231171211448e-4,3.2956822051348293e-4,3.322256910713322e-4,3.975024530447072e-6,2.4702718484232304e-6,5.489932901812025e-6 +SerialiseData/8309,1.5385829673531825e-4,1.538167663539326e-4,1.5390515729633587e-4,1.5089898065953348e-7,1.2453201149496149e-7,1.978406010676828e-7 +SerialiseData/141556,2.8618556597868735e-3,2.803258004597689e-3,3.144531400524936e-3,3.609732425296077e-4,1.6913060479904903e-5,8.25672814835804e-4 +SerialiseData/86,2.300701066993683e-6,2.2927597402111513e-6,2.3115456457327827e-6,2.9848504371095867e-8,1.962330278604061e-8,3.8795439944050164e-8 +SerialiseData/1545,3.105053414985594e-5,3.104294301020985e-5,3.105747222291998e-5,2.5140874658384667e-8,2.1610749237279598e-8,2.9752501627300982e-8 +SerialiseData/4,9.135594398705404e-7,9.118104720973609e-7,9.153103716782162e-7,5.926520646798087e-9,5.146771695857585e-9,6.8802972224431825e-9 +SerialiseData/4,9.125761993474877e-7,9.119360552623695e-7,9.134656217349859e-7,2.4839384101645276e-9,1.868753103721527e-9,3.115143436701664e-9 +SerialiseData/3614,7.224539235979756e-5,7.222209524800261e-5,7.226976806516669e-5,8.101188430413615e-8,6.87686490238965e-8,9.688172020149276e-8 +SerialiseData/74742,1.5053250582795273e-3,1.4980805883953033e-3,1.5147231502372208e-3,2.7910267621894157e-5,2.0953145516809476e-5,3.2675849109871446e-5 +SerialiseData/33424,6.392720362820814e-4,6.390689606385289e-4,6.396905159768876e-4,9.772300449533797e-7,5.467711048063586e-7,1.6556845684580367e-6 +SerialiseData/4,9.203668847031917e-7,9.196037132594933e-7,9.21218493405133e-7,2.6582873548855457e-9,2.2068674077883818e-9,3.1920199483098135e-9 +SerialiseData/867944,0.18290903116576374,0.17832745464208224,0.1947244085992376,9.761026808660058e-3,1.5306591477650799e-3,1.3917339049232895e-2 +SerialiseData/3585,6.992921706823921e-4,6.990456604717163e-4,6.996150427641084e-4,9.320284576406452e-7,7.301929181778179e-7,1.281376750686506e-6 +SerialiseData/2635,5.191988994302446e-4,5.190383069551785e-4,5.194653806553793e-4,6.887317144211335e-7,5.289912693467865e-7,9.622263346086684e-7 +SerialiseData/9809,2.045156049447017e-3,1.982042129448226e-3,2.2075698344971853e-3,2.9954645657210985e-4,1.3073699974812652e-5,5.914460420911203e-4 +SerialiseData/4701,9.336394743703237e-4,9.333494655388491e-4,9.341211152597608e-4,1.2817635050505613e-6,9.157205315625079e-7,1.928592004854416e-6 +SerialiseData/1131,2.469246311299221e-4,2.468203042459479e-4,2.4710349599342123e-4,4.3526654894336175e-7,2.631377359752372e-7,7.399472612891762e-7 +SerialiseData/127453,2.7303808110462263e-2,2.6373836487925174e-2,2.93490615217228e-2,2.6842792809549767e-3,1.2279170663003066e-4,4.364881325689349e-3 +SerialiseData/153414,3.288549650814326e-2,3.154960731804208e-2,3.5310922316205175e-2,3.8490093026898762e-3,1.808755252165591e-3,5.491753276296748e-3 +SerialiseData/25770,5.227061237542889e-3,5.140562516077364e-3,5.568933097086313e-3,4.895830261231337e-4,2.815568332634541e-5,1.0255635992277496e-3 +SerialiseData/40672,8.659107895370168e-3,8.352759096114349e-3,9.450560932724937e-3,1.185619211570848e-3,1.3185193203028964e-4,2.1623005043774064e-3 +SerialiseData/24716,4.988789663668241e-3,4.9048849161805646e-3,5.402990797420733e-3,4.887139739856473e-4,8.585959431504865e-6,1.1055122878047582e-3 +SerialiseData/2230,4.8346530726734837e-4,4.833375289413563e-4,4.835882023986746e-4,4.245567391685581e-7,3.574629436043171e-7,4.952958918586567e-7 +SerialiseData/32478,6.83967008091975e-3,6.625727735608132e-3,7.366223991516859e-3,8.791198988590378e-4,5.206946792225852e-5,1.6193690945695864e-3 +SerialiseData/20221,4.10387187564385e-3,4.029970653249228e-3,4.371300958147507e-3,4.2222499028766357e-4,4.270239038443429e-5,8.891991956184427e-4 +SerialiseData/10245,2.0446557173803134e-3,2.0060509031849865e-3,2.226659215650858e-3,2.316914154026622e-4,2.6813228387539446e-5,5.264009237927692e-4 +SerialiseData/54778,1.1078237877665539e-2,1.0839063957904328e-2,1.2000912663308778e-2,1.1485253675432268e-3,9.559454430565746e-5,2.3578211639105912e-3 +SerialiseData/143697,3.0210886708519204e-2,2.9158632766870966e-2,3.3723783282773805e-2,3.0160902294250193e-3,1.7430921309851844e-3,4.92951595120073e-3 +SerialiseData/3443,7.154998686416636e-4,7.150314072494941e-4,7.160483577862083e-4,1.7065984379489128e-6,1.4260742187664016e-6,2.454283497169272e-6 +SerialiseData/110713,2.340670675817865e-2,2.2651375164416364e-2,2.4933940655609763e-2,2.2964500817402e-3,1.4905547857953227e-4,3.7641280250055127e-3 +SerialiseData/10124,8.719221160992772e-4,8.711791411988987e-4,8.727748454783268e-4,2.70904505009338e-6,2.3448207463427354e-6,3.033590542699773e-6 +SerialiseData/24484,2.106855055397435e-3,2.0838696150229166e-3,2.194379187342294e-3,1.4305524561861744e-4,8.566640695503567e-6,3.035818121553732e-4 +SerialiseData/146182,1.2418339280863572e-2,1.2196971504933958e-2,1.3247624422467437e-2,1.0350019518459495e-3,8.606023481861767e-5,2.109173909379975e-3 +SerialiseData/88,8.357818480098028e-6,8.352870466785075e-6,8.362372670410706e-6,1.5986488049990305e-8,1.3168408384669397e-8,1.932206554707854e-8 +SerialiseData/11507,9.489471358756806e-4,9.477121268115295e-4,9.501079591626578e-4,4.131255981729315e-6,3.516395469669481e-6,4.877500269608382e-6 +SerialiseData/117191,1.0448756657904113e-2,1.0127864012017113e-2,1.1380395974353124e-2,1.150095553438108e-3,7.138424088650266e-5,1.977582583854486e-3 +SerialiseData/13291,1.1198804179020812e-3,1.1186849017526808e-3,1.120735650147895e-3,3.387885908975335e-6,2.4702593877610515e-6,4.515850925009713e-6 +SerialiseData/2689,2.2951936457979387e-4,2.2941122419711942e-4,2.2964019769497525e-4,3.8469980586684397e-7,3.29863542468965e-7,4.593209573913757e-7 +SerialiseData/4,9.524075444809764e-7,9.514187060182183e-7,9.534848920548557e-7,3.427891048373363e-9,2.8666533276827213e-9,4.333594916952061e-9 +SerialiseData/4,9.129327640538751e-7,9.122527443818446e-7,9.136573813817278e-7,2.373928621594586e-9,2.0295063959031565e-9,2.8591853809210913e-9 +SerialiseData/160497,1.7096268300915173e-2,1.6442300066174666e-2,1.8330872867749797e-2,2.2563777842947857e-3,1.036413960230914e-3,3.3022123742511927e-3 +SerialiseData/3257,3.2931904259780707e-4,3.287953644732648e-4,3.2976794525151114e-4,1.7405313570425605e-6,1.506981586561688e-6,1.9693565010170468e-6 +SerialiseData/16560,1.6690763902642615e-3,1.6421309934240983e-3,1.7750167804726452e-3,1.7309531543436822e-4,9.368183944317754e-6,3.6781572043728943e-4 +SerialiseData/74266,7.749463135532155e-3,7.47440204791137e-3,8.334758701692981e-3,1.1534059281764202e-3,5.882983625649585e-4,2.0520165080603506e-3 +SerialiseData/212239,2.270196388262587e-2,2.181568173645661e-2,2.467920466976297e-2,2.8364515188056797e-3,1.6387296296458754e-3,4.3023786944610546e-3 +SerialiseData/478645,5.394140212013135e-2,5.160375629304095e-2,5.857586946693205e-2,5.901742090879315e-3,3.357302122426808e-3,8.812036176791617e-3 +SerialiseData/51787,5.485807901513938e-3,5.276174374546248e-3,6.007988762188359e-3,9.662310776702579e-4,4.980759349640908e-4,1.646191678578926e-3 +SerialiseData/461824,5.216094457663029e-2,4.983629579553871e-2,5.5427546739322e-2,5.284244030848109e-3,3.5393641315289823e-3,7.362632986236842e-3 +SerialiseData/2491,2.276336051218824e-4,2.2722885880354258e-4,2.2818104916680245e-4,1.5423202747792628e-6,1.2346677915610399e-6,2.0040700436560396e-6 +SerialiseData/219252,4.32617920627416e-3,4.0504126894295635e-3,4.820027900957048e-3,1.1770292112837566e-3,6.921015964446228e-4,1.8549725309927555e-3 +SerialiseData/21444,3.6357214035037736e-4,3.634661881170411e-4,3.636784649582713e-4,3.6553244073764486e-7,3.1287274683793764e-7,4.338106618106765e-7 +SerialiseData/4,9.079184415350614e-7,9.066132030805108e-7,9.091095501326543e-7,4.277575669002693e-9,3.513062056378769e-9,5.237883042221628e-9 +SerialiseData/37828,6.632285446241565e-4,6.629221763517769e-4,6.637098910087543e-4,1.295975178984962e-6,9.182716714292187e-7,1.7647926877509179e-6 +SerialiseData/43040,7.507908428375565e-4,7.462438723581209e-4,7.544593593686748e-4,1.3964853911837116e-5,1.1942923571095715e-5,1.5129913592118103e-5 +SerialiseData/135662,2.5135458294564795e-3,2.4097375678513713e-3,2.784220187746888e-3,5.050524042901494e-4,2.070713200005359e-4,9.142522883963735e-4 +SerialiseData/332625,6.612382261767591e-3,6.1825574983354935e-3,7.207903402443359e-3,1.5393552777128127e-3,9.833490636606012e-4,2.214653752947194e-3 +SerialiseData/5399,8.904723747051851e-5,8.878025021908089e-5,8.953892358071712e-5,1.2632109217603098e-6,7.225472607908589e-7,1.75229866113185e-6 +SerialiseData/104514,1.860944677261152e-3,1.789560796164087e-3,2.021242805972241e-3,3.5927375024343727e-4,1.5488696485947684e-4,6.695239686097811e-4 +SerialiseData/21289,3.749925224899419e-4,3.7472729675135287e-4,3.7526110707377866e-4,8.671666850429085e-7,7.138898375847103e-7,1.0891346265900958e-6 +SerialiseData/5,9.160810442796167e-7,9.154791127142363e-7,9.168472514899558e-7,2.286042456879331e-9,1.8464365389664645e-9,2.940346049654242e-9 +SerialiseData/5,8.966699711150016e-7,8.959651748255073e-7,8.974764663856752e-7,2.5311539709534336e-9,2.2055114275732143e-9,2.9998613936088697e-9 +SerialiseData/5,9.203749213995897e-7,9.193558372257828e-7,9.21618225488443e-7,3.5984564314683986e-9,2.941550777820873e-9,5.011855866200912e-9 +SerialiseData/5,8.962160207685636e-7,8.950881691208442e-7,8.97218987860747e-7,3.323015482162924e-9,2.6205175823988895e-9,4.205162463875878e-9 +SerialiseData/5,9.019116213444327e-7,9.006344315025824e-7,9.030796060747827e-7,3.973556298124101e-9,3.437382141627104e-9,4.596701324698913e-9 +SerialiseData/5,9.18988677551508e-7,9.182110492457485e-7,9.196526071049755e-7,2.403694027481872e-9,1.924408208436782e-9,3.0678058421818056e-9 +SerialiseData/5,9.127498820075423e-7,9.121320501627431e-7,9.133256982318773e-7,2.0689399740222077e-9,1.7566571850364638e-9,2.78251832621547e-9 +SerialiseData/5,8.947331696172499e-7,8.938872711568661e-7,8.955450165817509e-7,2.7586160696506173e-9,2.393746382129857e-9,3.2601816931610303e-9 +SerialiseData/5,8.928737975094754e-7,8.920997905302559e-7,8.937537556414905e-7,2.882867029248506e-9,2.419866423657754e-9,3.566413322882716e-9 +SerialiseData/5,8.940681576298742e-7,8.931663322426262e-7,8.950047764915211e-7,3.1530196478360904e-9,2.600545050248985e-9,3.739437823720498e-9 +SerialiseData/5,9.175134426722556e-7,9.168472163115973e-7,9.182217032270087e-7,2.221501254194272e-9,1.8342619658560788e-9,2.9024603196983687e-9 +SerialiseData/5,9.177951623902291e-7,9.172773490282215e-7,9.185169721332267e-7,2.1180513558704307e-9,1.5532407530385666e-9,2.910488791555007e-9 +SerialiseData/5,9.166371195784626e-7,9.15512259608793e-7,9.180172769418478e-7,4.3764677296187395e-9,3.4656248385299796e-9,5.526644859354508e-9 +SerialiseData/5,9.203086756843996e-7,9.198586295225173e-7,9.208317235421908e-7,1.6013246234823182e-9,1.3590060494759824e-9,1.9719798939259412e-9 +SerialiseData/5,8.962188323715844e-7,8.952916688676283e-7,8.970008204143997e-7,2.855621603114895e-9,2.348701013350784e-9,3.456282279428433e-9 +SerialiseData/5,8.909611564238885e-7,8.900479095068087e-7,8.92045117345558e-7,3.368232682000765e-9,2.647827309787504e-9,5.029929989315045e-9 +SerialiseData/5,9.207167146426603e-7,9.192700619437006e-7,9.220759484257615e-7,4.736923334524453e-9,4.160614124301815e-9,5.4125350279504354e-9 +SerialiseData/5,9.256430988165564e-7,9.250591214453969e-7,9.262026215451193e-7,1.9378210964646116e-9,1.6485334523897684e-9,2.2425319668568344e-9 +SerialiseData/5,9.085013711732917e-7,9.07477206589248e-7,9.094287637348385e-7,3.284485406507418e-9,2.8396411101052667e-9,4.098993522474895e-9 +SerialiseData/5,9.173184037610332e-7,9.161556895875932e-7,9.185373312987273e-7,4.023023195426141e-9,3.4928596898015734e-9,4.851266072412422e-9 +SerialiseData/14,3.5824784848015e-6,3.5745296374364677e-6,3.5896273946443104e-6,2.5195445880479924e-8,2.4078453579534415e-8,2.703464437726143e-8 +SerialiseData/14,3.549035418456885e-6,3.5409879812865944e-6,3.5573813242130856e-6,2.833176091386981e-8,2.404335871827551e-8,3.5637509833710956e-8 +SerialiseData/14,3.5293833105111313e-6,3.5171299823053925e-6,3.5382841294380045e-6,3.425312350158456e-8,2.486000739604761e-8,4.296719259047155e-8 +SerialiseData/5,8.901874864342904e-7,8.894524541646657e-7,8.907726793605827e-7,2.306170494156543e-9,1.9198536522262603e-9,2.746534361012324e-9 +SerialiseData/14,3.5769705514603453e-6,3.5716561085277787e-6,3.5822300472598024e-6,1.77778301490807e-8,1.6419535682126394e-8,1.9392794203152333e-8 +SerialiseData/7,8.940381624572705e-7,8.93120702569374e-7,8.956332245327683e-7,4.199792216722588e-9,2.799435843351253e-9,6.194805706470275e-9 +SerialiseData/6,8.965333083620833e-7,8.959976408655675e-7,8.970771379556428e-7,1.7914532251472723e-9,1.4900692736167352e-9,2.153538474694594e-9 +SerialiseData/5,8.956843567977089e-7,8.947676198283122e-7,8.964722238968091e-7,2.583410570989084e-9,2.087755737619056e-9,3.2397830619443883e-9 +SerialiseData/14,3.536633994749989e-6,3.5322546585513525e-6,3.5391259410493796e-6,1.0486225770698491e-8,7.203254964956558e-9,1.4223513338562716e-8 +SerialiseData/7,8.957803896476788e-7,8.950128137747782e-7,8.96428248329944e-7,2.424591900493423e-9,2.03400174023351e-9,3.0231135355043164e-9 +SerialiseData/4,9.007102292718335e-7,8.988484028836008e-7,9.026626038409782e-7,6.377271320961402e-9,5.591270351380122e-9,7.358619727136054e-9 +SerialiseData/4,9.571124880973642e-7,9.563480420074836e-7,9.578485717353843e-7,2.631561069579161e-9,2.0663287899579722e-9,3.397317902703131e-9 +SerialiseData/110,8.320935798233015e-6,8.310136282296429e-6,8.331600263867394e-6,3.531702367804268e-8,3.21094320456286e-8,3.9652010721288696e-8 +SerialiseData/21,2.384226387619104e-6,2.380003113974424e-6,2.388077294777415e-6,1.4440175743407401e-8,1.3405263458587037e-8,1.5898927223240786e-8 +SerialiseData/35,3.6505198564394924e-6,3.640438637402348e-6,3.6572721133219645e-6,2.8054584103626244e-8,2.037225633160925e-8,3.7418187447116434e-8 +SerialiseData/44,2.60929607669032e-6,2.6074068483245738e-6,2.611778454907952e-6,7.942647924054855e-9,6.027362304504337e-9,1.0550883505530259e-8 +SerialiseData/71,6.0047451298555515e-6,5.988390568555084e-6,6.0148627847486826e-6,4.437229210067807e-8,3.348353144245812e-8,5.727354441780467e-8 +SerialiseData/39,4.434383848456883e-6,4.431618170693769e-6,4.438491433429018e-6,1.1085995730454032e-8,7.35677517472934e-9,1.5818383983879937e-8 +SerialiseData/1572,1.530767282897847e-4,1.5264966809533332e-4,1.5360877624607267e-4,1.6264641375221143e-6,1.3355652101809093e-6,1.8638138059893303e-6 +SerialiseData/379,3.951079429988693e-5,3.944778905653321e-5,3.9562744601654096e-5,1.901195409883664e-7,1.5453206748528466e-7,2.3837271688457698e-7 +SerialiseData/212,8.26834035699542e-5,8.261708561911732e-5,8.278168220560178e-5,2.754566704045359e-7,1.9648149608419563e-7,4.4610637295434216e-7 +SerialiseData/732,2.921698086149828e-4,2.919382096815762e-4,2.923699716547229e-4,7.11777108793972e-7,5.683625556926621e-7,8.876601571358629e-7 +SerialiseData/476,1.6557263220362108e-4,1.6513575584883202e-4,1.6581151416154426e-4,1.1080636940531888e-6,6.036425081006498e-7,1.890553627719967e-6 +SerialiseData/404,1.1115591553674454e-4,1.1113931394305006e-4,1.1117526250789405e-4,5.8998628268143643e-8,4.739495496849863e-8,7.615381554926193e-8 +SerialiseData/108,4.2131139274362924e-5,4.2119467478681824e-5,4.214558361440882e-5,4.273577361015468e-8,3.2011936409175394e-8,6.607406756842325e-8 +SerialiseData/864,2.1320897429062495e-4,2.1290115349704248e-4,2.1342022860412426e-4,8.579445295935035e-7,6.56894188608663e-7,1.0449253134682588e-6 +SerialiseData/5748,1.7981601067339243e-3,1.7719854365371018e-3,1.9002678466283538e-3,1.6462176056917827e-4,9.103785700769498e-6,3.5039374497635784e-4 +SerialiseData/4,9.700685572736353e-7,9.695820980657694e-7,9.705050202033187e-7,1.642901909323242e-9,1.3151261154528609e-9,2.179186445985753e-9 +SerialiseData/65,1.3589522139974326e-6,1.357407686662372e-6,1.360603893280923e-6,5.8088773339024746e-9,4.893134007453792e-9,6.910873580985567e-9 +SerialiseData/4,9.166744895144475e-7,9.151882780815486e-7,9.178850611726902e-7,4.2506970338941215e-9,3.5249930529045334e-9,5.200105637408292e-9 +SerialiseData/19,1.2907192053009882e-6,1.2890562602677954e-6,1.292596512117782e-6,6.183501448429198e-9,5.0544725029116396e-9,7.396984882845699e-9 +SerialiseData/4,9.174926837716101e-7,9.166196259190439e-7,9.184195189032661e-7,2.981680816413495e-9,2.5382793951152374e-9,3.559171504901876e-9 +SerialiseData/19,1.3476838792496605e-6,1.3463963638834289e-6,1.34880663156484e-6,3.953704162483761e-9,3.4260674448588843e-9,4.624419978020858e-9 +SerialiseData/29,1.5136814129327916e-6,1.511827496632276e-6,1.5153789730333782e-6,5.922477404435039e-9,4.966709896151765e-9,6.9848758374083e-9 +SerialiseData/29,1.5067810916985506e-6,1.5058867202036254e-6,1.5077229239177666e-6,3.2028704745809915e-9,2.7425371402095435e-9,3.831848613322956e-9 +SerialiseData/64,1.7024063878379451e-6,1.7006097078578013e-6,1.7036151650234329e-6,5.216822347354975e-9,3.6574999279645994e-9,8.071191478883066e-9 +SerialiseData/64,1.7114152778111648e-6,1.7093794116990085e-6,1.7133853843452251e-6,6.411614052153717e-9,5.870647350454248e-9,7.108207398377154e-9 +SerialiseData/19,1.2786085947181113e-6,1.2780179954707979e-6,1.2791950668766391e-6,2.0229528235252912e-9,1.7325417594251933e-9,2.42850728453877e-9 +SerialiseData/24,1.4025008028519816e-6,1.4010445674501123e-6,1.4037916612621643e-6,4.458637143316922e-9,3.673608837849487e-9,5.661544447319613e-9 +SerialiseData/29,1.535732355560658e-6,1.5335275512960487e-6,1.5384947814201982e-6,8.37001139240699e-9,7.03496518836263e-9,9.730163451417467e-9 +SerialiseData/1340,6.688118334525238e-5,6.681297442798876e-5,6.691910097917159e-5,1.6006606775360347e-7,9.15261483282901e-8,3.1108396851605964e-7 +SerialiseData/210,9.098718114403064e-6,9.094292354817856e-6,9.103305165787413e-6,1.521758838759765e-8,1.30291566915169e-8,1.8497240452766904e-8 +AddInteger/1/1,9.140927768481482e-7,9.131312229537431e-7,9.148186179499217e-7,2.7978825490000907e-9,2.3864355213693907e-9,3.2886772158774963e-9 +AddInteger/1/70,9.588502742499426e-7,9.578552623703934e-7,9.596773673578651e-7,2.958280907530334e-9,2.4220668766929152e-9,3.564714718466518e-9 +AddInteger/1/139,9.889828892091977e-7,9.88205346576328e-7,9.897089040523563e-7,2.601453117395667e-9,2.1382167893577315e-9,3.242487340946391e-9 +AddInteger/1/208,1.0109518147046408e-6,1.0101736447163362e-6,1.0117562121221176e-6,2.5815434805484017e-9,2.2153500701220074e-9,3.0742985146295498e-9 +AddInteger/1/277,1.041551838302627e-6,1.040145506392143e-6,1.0430679055059234e-6,5.139184899115767e-9,4.210716509835452e-9,6.066420743162452e-9 +AddInteger/1/346,1.0603219137536228e-6,1.059318929976701e-6,1.0616929342608408e-6,4.2257530315218596e-9,3.6536192902446577e-9,4.747234848016666e-9 +AddInteger/1/415,1.1376538191526394e-6,1.1363613083033512e-6,1.1393287000706584e-6,4.949475294501744e-9,3.938437616182965e-9,5.944880009006769e-9 +AddInteger/1/484,1.1531179529994603e-6,1.1520425507281277e-6,1.1544700971659195e-6,4.006683826090317e-9,2.9371278939327145e-9,6.79527125979692e-9 +AddInteger/1/553,1.2026031598150152e-6,1.2016878906286676e-6,1.2038105934487663e-6,3.5193350098781934e-9,2.5576381338499294e-9,5.393309863976788e-9 +AddInteger/1/622,1.22582370202653e-6,1.2248732314991268e-6,1.2269438943304284e-6,3.313743568561407e-9,2.6353415273560033e-9,5.3053682203936716e-9 +AddInteger/1/691,1.2512390561700342e-6,1.2505345835092283e-6,1.2531676124319685e-6,3.811609466373527e-9,1.8435856685680269e-9,7.149261964889324e-9 +AddInteger/1/760,1.2771813522771542e-6,1.2762426623792428e-6,1.2783092778300251e-6,3.403403085270521e-9,2.6686576092393657e-9,4.260671342220234e-9 +AddInteger/1/829,1.2943908608725421e-6,1.2934778122041724e-6,1.2953224629342448e-6,3.1530889411440997e-9,2.6031376387121054e-9,3.846384619207283e-9 +AddInteger/1/898,1.3064886124083492e-6,1.3052697114440978e-6,1.3080082868721964e-6,4.6111324751384315e-9,3.802521184325527e-9,5.83367444090975e-9 +AddInteger/1/967,1.3344401129182867e-6,1.3330373895614035e-6,1.3387270701493545e-6,8.046798290726143e-9,2.5235948338295627e-9,1.6478988077002555e-8 +AddInteger/70/1,9.412181670140288e-7,9.405739473039481e-7,9.418545052861327e-7,1.9982350938962703e-9,1.7002694619162667e-9,2.4388472157476983e-9 +AddInteger/70/70,9.450574491094132e-7,9.444454304429677e-7,9.455732456976575e-7,1.9096261322457313e-9,1.6512446830911797e-9,2.2153934464020973e-9 +AddInteger/70/139,9.881700738674349e-7,9.868634275247312e-7,9.896649504907477e-7,4.630324629470618e-9,3.6783409167501036e-9,5.698350133846088e-9 +AddInteger/70/208,1.0176214562769983e-6,1.0161531630819627e-6,1.018878188486971e-6,4.648988543004132e-9,3.970984537994799e-9,5.363738129980815e-9 +AddInteger/70/277,1.041212013349005e-6,1.0398484262662903e-6,1.0423013371650855e-6,3.9315020724939676e-9,3.2626838582046462e-9,5.033867936404213e-9 +AddInteger/70/346,1.0587453139859233e-6,1.0581615582635418e-6,1.0592360025371494e-6,1.7860408929211513e-9,1.4956640731711087e-9,2.2004915970655447e-9 +AddInteger/70/415,1.1221889156219665e-6,1.1216304062122647e-6,1.1227863427361077e-6,2.0754287005412083e-9,1.7635106102966062e-9,2.614114036002771e-9 +AddInteger/70/484,1.1553074740545843e-6,1.1545689180174195e-6,1.1561608619208672e-6,2.5928551352294914e-9,2.20991166399048e-9,3.1358229527995673e-9 +AddInteger/70/553,1.1957745174537929e-6,1.1949570747543277e-6,1.1966016861665551e-6,3.0482737663007953e-9,2.55921718181311e-9,3.727189453987658e-9 +AddInteger/70/622,1.2281562623712142e-6,1.2273014120413895e-6,1.2290686180588628e-6,3.0445323325673236e-9,2.5162875461524623e-9,3.8153306507358765e-9 +AddInteger/70/691,1.2513175657908677e-6,1.2500093995629182e-6,1.2529741311598383e-6,5.011245165710739e-9,3.726136326526133e-9,6.365716210580851e-9 +AddInteger/70/760,1.275000538784165e-6,1.2740399575877913e-6,1.2761869200101e-6,3.5229819785821565e-9,2.9289797694935156e-9,4.2407621335756846e-9 +AddInteger/70/829,1.2843192386732335e-6,1.2834690950837513e-6,1.2852020392625295e-6,3.0193898847335362e-9,2.602331743103538e-9,3.620468963555054e-9 +AddInteger/70/898,1.3187289942254104e-6,1.3175941923191775e-6,1.3197644516908042e-6,3.791240729295482e-9,3.1503424692405416e-9,4.802717207707315e-9 +AddInteger/70/967,1.3323424505182797e-6,1.3315265820509757e-6,1.3330816470583964e-6,2.6052031411035003e-9,2.1568874650438813e-9,3.3370000915226726e-9 +AddInteger/139/1,9.74788753813478e-7,9.73273859510796e-7,9.765571725187915e-7,5.45292949803547e-9,4.6928206754216385e-9,6.371187764260749e-9 +AddInteger/139/70,9.868255195922575e-7,9.84912130320919e-7,9.886676505855811e-7,6.272942005466879e-9,5.454962701077529e-9,7.265916545747385e-9 +AddInteger/139/139,9.740727363944684e-7,9.72102156149833e-7,9.760537771567e-7,6.498498436552769e-9,5.755141836692975e-9,7.206535731117013e-9 +AddInteger/139/208,1.0071469168074778e-6,1.0057074983144488e-6,1.0089112124595929e-6,5.32236210657209e-9,4.284225981497878e-9,6.722780068433881e-9 +AddInteger/139/277,1.042018032232543e-6,1.0412849509649106e-6,1.0428566730139202e-6,2.5764372002696482e-9,2.1013799436439913e-9,3.2525761181729545e-9 +AddInteger/139/346,1.0689947360534372e-6,1.0677482699542962e-6,1.0702041074301552e-6,3.95164100892596e-9,3.294580373949998e-9,4.634585556808264e-9 +AddInteger/139/415,1.1353945697024474e-6,1.1346544530428198e-6,1.1361612922604171e-6,2.5087173400241927e-9,2.099345102040781e-9,3.061880720732667e-9 +AddInteger/139/484,1.1615295381115197e-6,1.1607850470423068e-6,1.1623763692406707e-6,2.813622924281231e-9,2.2500348251092195e-9,3.3616246723558746e-9 +AddInteger/139/553,1.2031191423610607e-6,1.2020741338754583e-6,1.2043891935852531e-6,3.779756668731057e-9,3.036727099166936e-9,4.8482112846251875e-9 +AddInteger/139/622,1.223382480297771e-6,1.2226404483584245e-6,1.2242963865781822e-6,2.74938451909713e-9,2.3849064231743763e-9,3.1692876884880265e-9 +AddInteger/139/691,1.2553173058900254e-6,1.2542478372876621e-6,1.2563638018899286e-6,3.5644197299249055e-9,3.029648767856598e-9,4.168060171097234e-9 +AddInteger/139/760,1.2706573739755302e-6,1.2698530022019867e-6,1.2713897835883033e-6,2.5786631933460926e-9,2.132984902120872e-9,3.2415846516983016e-9 +AddInteger/139/829,1.2892447505175702e-6,1.2885625701878696e-6,1.2901526285286551e-6,2.589509458354522e-9,1.9685150657271554e-9,3.6625418232439996e-9 +AddInteger/139/898,1.3106323083828492e-6,1.309973210547687e-6,1.311381501208002e-6,2.4020723272021513e-9,1.9433968955728214e-9,3.0299841165068503e-9 +AddInteger/139/967,1.3288502127687981e-6,1.3282789427943436e-6,1.3295001467417186e-6,2.121208923470393e-9,1.6248156247701602e-9,2.9454291726142105e-9 +AddInteger/208/1,9.97931825792818e-7,9.9728454067554e-7,9.986677720654757e-7,2.2254668314491922e-9,1.919607358255218e-9,2.6477511213689803e-9 +AddInteger/208/70,1.0148498723339557e-6,1.0138947595679113e-6,1.0159209754300486e-6,3.5431076751474113e-9,3.027507519729037e-9,4.099951798680497e-9 +AddInteger/208/139,1.0095674435941947e-6,1.0086480666928997e-6,1.0104907956240937e-6,3.049852225881566e-9,2.4942189162512264e-9,3.777460998645206e-9 +AddInteger/208/208,9.91388483698652e-7,9.904378701508911e-7,9.927432294767561e-7,3.802540190455331e-9,2.82920028303476e-9,5.078719819888948e-9 +AddInteger/208/277,1.0275208877210603e-6,1.026569610278023e-6,1.0284568854091965e-6,3.2185706482269733e-9,2.5569279515272773e-9,4.056657742170403e-9 +AddInteger/208/346,1.060299441038873e-6,1.059367638176559e-6,1.0612145895134252e-6,2.9930302631556534e-9,2.588960600261594e-9,3.396693424392799e-9 +AddInteger/208/415,1.1196761533407392e-6,1.1187367830415676e-6,1.120493408810889e-6,3.026712218476316e-9,2.4201477263218345e-9,3.798963276714523e-9 +AddInteger/208/484,1.1476025845684337e-6,1.1467140023044145e-6,1.1485359666203158e-6,3.02803149718384e-9,2.401118049287848e-9,3.955374961228218e-9 +AddInteger/208/553,1.193488343452551e-6,1.1926994810750149e-6,1.1943084507160513e-6,2.7904429625326054e-9,2.2414071204168395e-9,3.5088862641218354e-9 +AddInteger/208/622,1.2239596981293237e-6,1.2225642458486721e-6,1.2254824440395846e-6,4.963055817461558e-9,4.159512504667827e-9,5.883714960407428e-9 +AddInteger/208/691,1.2520237232606003e-6,1.2509256629339683e-6,1.2531032027625794e-6,3.5930124904488546e-9,3.1007576024821072e-9,4.222178288689432e-9 +AddInteger/208/760,1.2624985296098722e-6,1.2615387083395113e-6,1.2634078563387638e-6,3.048957663154631e-9,2.5182105972064786e-9,3.7143934267700477e-9 +AddInteger/208/829,1.2978283067203406e-6,1.2966245938277424e-6,1.3010358172514071e-6,5.8897453211391705e-9,2.292466891479267e-9,1.1730367290380901e-8 +AddInteger/208/898,1.3123581028198415e-6,1.3112252620257888e-6,1.313263929781422e-6,3.3266928904765988e-9,2.5658758536403588e-9,4.442861059435233e-9 +AddInteger/208/967,1.3311752537861905e-6,1.3301843970899782e-6,1.3342693841950266e-6,5.314191221119175e-9,1.961756434010876e-9,1.0530945906754827e-8 +AddInteger/277/1,1.0216383563706005e-6,1.0204181424082027e-6,1.0230074734340528e-6,4.434809667797825e-9,3.6744169216621464e-9,5.918074169996987e-9 +AddInteger/277/70,1.0379879455206547e-6,1.0367685953314682e-6,1.039131857537149e-6,4.118925104626168e-9,3.6934043310646225e-9,4.709181167587003e-9 +AddInteger/277/139,1.0348405004283098e-6,1.0340680641343495e-6,1.0359849312845082e-6,3.352159735715784e-9,2.489574536544949e-9,4.538518094787117e-9 +AddInteger/277/208,1.0222524017466667e-6,1.0213846730025374e-6,1.0231397435832265e-6,2.9734595612663224e-9,2.5684242507072186e-9,3.4982394266522907e-9 +AddInteger/277/277,1.0154072614297642e-6,1.0146013753246292e-6,1.0163046420938e-6,2.696022502286987e-9,2.1806116047306274e-9,3.3260967550122274e-9 +AddInteger/277/346,1.0461261004895584e-6,1.0455077993318288e-6,1.0467730408556144e-6,2.1779064628915384e-9,1.835587346536365e-9,2.5892740572936383e-9 +AddInteger/277/415,1.1192427730123725e-6,1.1183519631947823e-6,1.120240632882849e-6,3.195376248038036e-9,2.58301320779594e-9,4.129242283030387e-9 +AddInteger/277/484,1.143429726431783e-6,1.1423053880591154e-6,1.144430294040149e-6,3.5164726575496894e-9,3.0374111176854727e-9,4.407005202270255e-9 +AddInteger/277/553,1.2001204018710361e-6,1.1990248483246633e-6,1.2011128839025672e-6,3.436643427416431e-9,2.8067893607110606e-9,4.376245845421885e-9 +AddInteger/277/622,1.22776995373993e-6,1.2259887161953992e-6,1.2294483403415377e-6,5.704000595244825e-9,4.964219760567659e-9,6.549554912966346e-9 +AddInteger/277/691,1.2533014969954084e-6,1.2524296873351469e-6,1.2542700791898648e-6,3.1314687918269698e-9,2.461669656305661e-9,3.954379487845599e-9 +AddInteger/277/760,1.2639053101025902e-6,1.2630180465324899e-6,1.264700561706407e-6,2.918538168337013e-9,2.305631032819759e-9,4.042864132715636e-9 +AddInteger/277/829,1.2928073204569038e-6,1.292195267829446e-6,1.2934165070223016e-6,2.1557159008640113e-9,1.774200559221315e-9,2.793116090761848e-9 +AddInteger/277/898,1.3118565826756538e-6,1.3111594623620642e-6,1.3125561272638077e-6,2.352779641937022e-9,1.891049500068841e-9,2.9739675469652785e-9 +AddInteger/277/967,1.3361089453271698e-6,1.3349518169727854e-6,1.3371549010173255e-6,3.669203734693553e-9,3.1997561359128703e-9,4.377878334729192e-9 +AddInteger/346/1,1.059064572022815e-6,1.0570402570864817e-6,1.0615986680589937e-6,7.349806968680559e-9,6.514353085960699e-9,8.355874909653658e-9 +AddInteger/346/70,1.06467705204859e-6,1.0637340708001859e-6,1.066150449983436e-6,3.739037731567866e-9,2.630947698079306e-9,4.922480852613906e-9 +AddInteger/346/139,1.0612569349775982e-6,1.0602989377145645e-6,1.0621138555272991e-6,3.0740697108312392e-9,2.5804611564490813e-9,3.837058467017348e-9 +AddInteger/346/208,1.0593290154642218e-6,1.0588904505959032e-6,1.0598370761613911e-6,1.5167971034401334e-9,1.2669236458957824e-9,1.9184340724916683e-9 +AddInteger/346/277,1.0516477051675829e-6,1.051094570390869e-6,1.0523455789000807e-6,1.9653051336188264e-9,1.5941336862773912e-9,2.535057201171494e-9 +AddInteger/346/346,1.0367333524437843e-6,1.036304606303267e-6,1.0371693119704257e-6,1.4684505528998481e-9,1.2788888992719284e-9,1.7215496994219623e-9 +AddInteger/346/415,1.122143834912428e-6,1.1213389842741095e-6,1.1230427061287151e-6,2.8727783821368254e-9,2.4389415056476765e-9,3.3779924133377242e-9 +AddInteger/346/484,1.1440923011251615e-6,1.1431421463149174e-6,1.1451236552170024e-6,3.2983233891863684e-9,2.767531333344533e-9,3.992506128085895e-9 +AddInteger/346/553,1.1975379270235045e-6,1.196685077168544e-6,1.1984403048740579e-6,2.824613160308256e-9,2.2919857803515334e-9,3.5764818994614444e-9 +AddInteger/346/622,1.2243360773787834e-6,1.2234307723780374e-6,1.2252087509890252e-6,2.958217100419482e-9,2.5546524435816306e-9,3.4506873634505583e-9 +AddInteger/346/691,1.2471510296082072e-6,1.2463361462564643e-6,1.2481762145997091e-6,3.190095499802068e-9,2.4701382860453652e-9,3.9807511842377156e-9 +AddInteger/346/760,1.2649564709348159e-6,1.263825868215247e-6,1.2661326789716908e-6,3.826408908224896e-9,3.3248593850192796e-9,4.5418921459142826e-9 +AddInteger/346/829,1.2753873472071561e-6,1.2743654758751068e-6,1.276368759800058e-6,3.361203673701097e-9,2.7855511489867944e-9,4.252812733181033e-9 +AddInteger/346/898,1.2994711502374508e-6,1.298882833451345e-6,1.3001548534542276e-6,2.1288288389257916e-9,1.7388432042451111e-9,2.6904771414318646e-9 +AddInteger/346/967,1.329004466522682e-6,1.328105146965915e-6,1.3298104583809427e-6,2.938922146161379e-9,2.4526411626271675e-9,3.584352933137053e-9 +AddInteger/415/1,1.124046009878665e-6,1.1230015809813966e-6,1.1250546434030248e-6,3.29443527510013e-9,2.881843853796172e-9,4.035765330445548e-9 +AddInteger/415/70,1.1322728417756903e-6,1.131343781879224e-6,1.1332084741186255e-6,3.250876330962844e-9,2.575054288024091e-9,4.081733488430127e-9 +AddInteger/415/139,1.1333531967436467e-6,1.132753836660134e-6,1.134211286671452e-6,2.4199086973686568e-9,1.961394754671452e-9,3.129469975871867e-9 +AddInteger/415/208,1.1273895772029408e-6,1.1264635096631823e-6,1.1281011269110823e-6,2.7469927392133645e-9,2.349477483259956e-9,3.3623958706122546e-9 +AddInteger/415/277,1.1265168999833025e-6,1.1257799548026383e-6,1.1273329631314826e-6,2.7799400099954754e-9,2.366357149607861e-9,3.4214514661960356e-9 +AddInteger/415/346,1.116625896477705e-6,1.1153331418924026e-6,1.1183954274061533e-6,5.107315412973954e-9,4.292929708007023e-9,6.487964092201617e-9 +AddInteger/415/415,1.127980183631864e-6,1.1268408412791416e-6,1.1291718326834351e-6,3.976022015627925e-9,3.5334694925801494e-9,4.6244999960192614e-9 +AddInteger/415/484,1.140781509171753e-6,1.1400778214167858e-6,1.1414548598165879e-6,2.246847372897186e-9,1.8851928987388063e-9,2.6803330075489025e-9 +AddInteger/415/553,1.2033897432712739e-6,1.201724831456658e-6,1.205211685416472e-6,5.758899364115195e-9,5.014571850282903e-9,6.819531384488659e-9 +AddInteger/415/622,1.2337315745266657e-6,1.2318668254398353e-6,1.2356703953867603e-6,6.0709971412680186e-9,5.4498429161655266e-9,6.776368036485132e-9 +AddInteger/415/691,1.2486136900276392e-6,1.247082136556729e-6,1.2501299077611066e-6,5.1484850857253805e-9,4.3293480723509234e-9,6.069885083357151e-9 +AddInteger/415/760,1.2636218534569987e-6,1.2626133601456634e-6,1.264657348602791e-6,3.129493710680671e-9,2.4981346043645856e-9,4.073759755934965e-9 +AddInteger/415/829,1.284742416304375e-6,1.2831693978549782e-6,1.286628343716068e-6,5.8366001921597286e-9,4.994743280755622e-9,7.019427896004825e-9 +AddInteger/415/898,1.3072109525455376e-6,1.3061740242905021e-6,1.3081914387134837e-6,3.5655376535611947e-9,3.1313627934519563e-9,4.090172028459172e-9 +AddInteger/415/967,1.331194265994028e-6,1.3303624919883424e-6,1.3323945272167654e-6,3.137392212072504e-9,2.475091009096934e-9,4.069762075941854e-9 +AddInteger/484/1,1.1500793591400527e-6,1.1494254633011207e-6,1.1507748514469136e-6,2.1895926126607976e-9,1.6367390398068469e-9,3.266582202428952e-9 +AddInteger/484/70,1.156637344450496e-6,1.1544278205740016e-6,1.1589236885453768e-6,7.43124721142602e-9,6.460804962918329e-9,8.550787934983722e-9 +AddInteger/484/139,1.152941229101745e-6,1.1522301159649546e-6,1.1537847278530486e-6,2.6140199302995162e-9,2.145510474413564e-9,3.2785615830892995e-9 +AddInteger/484/208,1.1582265787107136e-6,1.15753497646673e-6,1.1589933171627958e-6,2.4758312083851932e-9,2.038090821648748e-9,3.186294592645378e-9 +AddInteger/484/277,1.145342263105731e-6,1.1444409772661184e-6,1.1463036925641106e-6,3.1157545013684916e-9,2.6643553688634195e-9,3.6540054520564195e-9 +AddInteger/484/346,1.148653128823918e-6,1.1467030117229451e-6,1.1502801645704437e-6,6.0308810287087496e-9,5.378109908872664e-9,6.77430666173042e-9 +AddInteger/484/415,1.1460087928137732e-6,1.145466562017635e-6,1.1466453278308764e-6,1.9725362974164022e-9,1.6285389108370486e-9,2.6425272196977445e-9 +AddInteger/484/484,1.1347583232661477e-6,1.1340411156036982e-6,1.1355360829990682e-6,2.4088959601526893e-9,2.108782894470441e-9,2.892210306340531e-9 +AddInteger/484/553,1.1866250772247833e-6,1.1860977201631038e-6,1.1872074612704533e-6,1.894040958119694e-9,1.5759462675242237e-9,2.3748892559347992e-9 +AddInteger/484/622,1.2196698962154958e-6,1.2186857840061969e-6,1.2211901362237641e-6,4.171602181390668e-9,3.079765638293958e-9,5.425921900264517e-9 +AddInteger/484/691,1.2441005166650846e-6,1.2429774310084235e-6,1.2450096957859537e-6,3.354855598250649e-9,2.7232608032155846e-9,4.11254692615057e-9 +AddInteger/484/760,1.265818191803721e-6,1.2649993521699376e-6,1.2666413934339193e-6,2.6751807565011384e-9,2.145570368170434e-9,3.275618700605436e-9 +AddInteger/484/829,1.2778266238271696e-6,1.2770983124140973e-6,1.2787300572845664e-6,2.6946249050935324e-9,2.153537076877151e-9,3.478046985997053e-9 +AddInteger/484/898,1.3050980749172145e-6,1.3041523680509615e-6,1.3060123711013745e-6,3.1599595842094805e-9,2.665939025715014e-9,3.7503343578766946e-9 +AddInteger/484/967,1.3262322259648019e-6,1.3255567072992138e-6,1.3268380368873454e-6,2.0538213074332446e-9,1.7225920650700706e-9,2.524989474957508e-9 +AddInteger/553/1,1.1912878697734447e-6,1.1901054850951925e-6,1.192678661138935e-6,4.3289672295456264e-9,3.5122269330223026e-9,5.355478974907903e-9 +AddInteger/553/70,1.2001222472950265e-6,1.1985781909270116e-6,1.2015621532259315e-6,4.91538209955434e-9,3.8600523217579665e-9,6.0745957163523466e-9 +AddInteger/553/139,1.198796546252912e-6,1.1978728912072379e-6,1.1998171200223053e-6,3.180071195154234e-9,2.7056369525447273e-9,3.881481595032192e-9 +AddInteger/553/208,1.206701542917056e-6,1.2054301785527863e-6,1.2078819150198151e-6,4.161330107621113e-9,3.6598963937563645e-9,4.778674392540791e-9 +AddInteger/553/277,1.1978413278627957e-6,1.1967253011529196e-6,1.1988302789580423e-6,3.5263117737617757e-9,2.923190706007851e-9,4.3202876644536294e-9 +AddInteger/553/346,1.190745487596921e-6,1.1896761343242748e-6,1.1918019109071193e-6,3.547542963125571e-9,2.9938311367306384e-9,4.274601001006847e-9 +AddInteger/553/415,1.188175158403413e-6,1.1873977196900385e-6,1.1888894268392398e-6,2.6281462605356703e-9,2.2489644476576104e-9,3.0586081044423584e-9 +AddInteger/553/484,1.1949092244807822e-6,1.1942714530096382e-6,1.1957189651471647e-6,2.3547848625136643e-9,1.8659483516395188e-9,2.9117397316372274e-9 +AddInteger/553/553,1.1769338893335445e-6,1.1763083157732717e-6,1.1778291762721529e-6,2.414366104038397e-9,1.914324948712431e-9,3.095163717503587e-9 +AddInteger/553/622,1.220619914324115e-6,1.2196019026265696e-6,1.2216808951384684e-6,3.3704786552023876e-9,2.8268021822813306e-9,4.083102924274124e-9 +AddInteger/553/691,1.2419519381245948e-6,1.241146225674313e-6,1.2427604471522366e-6,2.715783316466251e-9,2.1542245953279576e-9,3.492807712618354e-9 +AddInteger/553/760,1.2623681367126732e-6,1.2610057837403032e-6,1.263558994382096e-6,3.931013177159128e-9,3.3205347039052795e-9,4.8359426633413126e-9 +AddInteger/553/829,1.2778211871799434e-6,1.2770459111056913e-6,1.2785619474175327e-6,2.6029925443329127e-9,2.2115237835130796e-9,3.1639505733862473e-9 +AddInteger/553/898,1.3065096522854126e-6,1.3057956798410492e-6,1.3071953972340766e-6,2.4010508870320835e-9,2.094884338124598e-9,3.0160489161232095e-9 +AddInteger/553/967,1.3222160211594417e-6,1.3217388033076574e-6,1.3227430440169006e-6,1.8084343669022334e-9,1.5384414827069453e-9,2.235086703925721e-9 +AddInteger/622/1,1.2215831530268857e-6,1.220879281285108e-6,1.2223431349456402e-6,2.4665975243772287e-9,2.034241876005454e-9,2.9899059829590736e-9 +AddInteger/622/70,1.226495053296948e-6,1.2252294938150882e-6,1.2281869843525603e-6,4.925303967781584e-9,4.1293418936709e-9,6.043903920924981e-9 +AddInteger/622/139,1.2268310954099983e-6,1.226187768759898e-6,1.2273991807838874e-6,1.9868674390165976e-9,1.643449967226423e-9,2.4505399068490067e-9 +AddInteger/622/208,1.2180052887376132e-6,1.2166088732667354e-6,1.2191972735704043e-6,4.5704819197637944e-9,3.926451382125639e-9,5.243599434404968e-9 +AddInteger/622/277,1.226097315854877e-6,1.2254416384587416e-6,1.226782699486438e-6,2.2754477163300463e-9,1.9060491845755997e-9,2.718646319716055e-9 +AddInteger/622/346,1.222126724184812e-6,1.2206126668723296e-6,1.2237828974528593e-6,5.6072249214654005e-9,4.714276089683692e-9,6.515559083725072e-9 +AddInteger/622/415,1.2221958425246824e-6,1.2207988545867055e-6,1.223954379282104e-6,4.96670723418504e-9,4.42021229658211e-9,5.551000956261932e-9 +AddInteger/622/484,1.2199297560025342e-6,1.2186213351910695e-6,1.2212452302215641e-6,4.531102165220176e-9,3.5202764832687963e-9,5.564031572497155e-9 +AddInteger/622/553,1.2202649028395631e-6,1.2186768640899e-6,1.2217190665172451e-6,4.9934929027540445e-9,4.426702847649829e-9,5.9081635476933265e-9 +AddInteger/622/622,1.2024434200586442e-6,1.2017772346428886e-6,1.2031329533590005e-6,2.3142402295397183e-9,1.906672204170019e-9,2.8576065055910032e-9 +AddInteger/622/691,1.253514394181225e-6,1.2525768711664589e-6,1.254491848891416e-6,3.3133436600931035e-9,2.805413981745072e-9,3.949274599790111e-9 +AddInteger/622/760,1.254889427391845e-6,1.2534973573681612e-6,1.2565703425697785e-6,5.4276771753213695e-9,4.685143617054213e-9,6.337245994650061e-9 +AddInteger/622/829,1.2798840146108247e-6,1.2787785239343568e-6,1.2811398901583824e-6,3.956633045933801e-9,3.438821542115185e-9,4.674183351618429e-9 +AddInteger/622/898,1.3055379241898793e-6,1.3049096975143386e-6,1.3063690151957007e-6,2.3499031816366596e-9,1.8593490304331368e-9,2.903957579583783e-9 +AddInteger/622/967,1.3205295062030924e-6,1.3174570816452944e-6,1.332597747109857e-6,1.7591561277445846e-8,4.267812504959656e-9,3.967935640464083e-8 +AddInteger/691/1,1.2516515887969932e-6,1.2508644447678105e-6,1.2524187007171103e-6,2.672304679244367e-9,2.232278550115823e-9,3.2716510352354095e-9 +AddInteger/691/70,1.2642115003754047e-6,1.2631150519205352e-6,1.2651389520101543e-6,3.273418123306397e-9,2.649333066893672e-9,4.054295309600311e-9 +AddInteger/691/139,1.2497896872856803e-6,1.2478232595524308e-6,1.2524125547111526e-6,7.758812294006026e-9,6.244857125111842e-9,9.05596070840214e-9 +AddInteger/691/208,1.2541986314780053e-6,1.2535989339648512e-6,1.2548450271222682e-6,2.156470769572788e-9,1.6985702308987374e-9,2.7217468323158528e-9 +AddInteger/691/277,1.2457682432130357e-6,1.2447299014091782e-6,1.2469538293113244e-6,3.790886148967192e-9,3.1378587715873255e-9,4.565844677040723e-9 +AddInteger/691/346,1.2506406328289176e-6,1.2491544629580673e-6,1.2525395558746592e-6,5.639231717202538e-9,4.59540910908198e-9,6.633338441637928e-9 +AddInteger/691/415,1.249247273510819e-6,1.248517839425788e-6,1.2501086274760033e-6,2.6816209277147844e-9,2.115776397441363e-9,3.519194731195227e-9 +AddInteger/691/484,1.2475947159106882e-6,1.2466833733804544e-6,1.2485960866475912e-6,3.451023293882364e-9,3.10473315044898e-9,3.88526875459326e-9 +AddInteger/691/553,1.2404029350908944e-6,1.2396882284903112e-6,1.2411292347381945e-6,2.517507436059493e-9,1.957762519346693e-9,3.2888762482115635e-9 +AddInteger/691/622,1.2374940516737678e-6,1.2359823449034445e-6,1.2390278858229507e-6,4.847631410148017e-9,4.30674190816216e-9,5.697661078865734e-9 +AddInteger/691/691,1.2299964384405457e-6,1.2292349232009492e-6,1.2306289179401457e-6,2.412243088697215e-9,2.0243275525435297e-9,3.0323649495230865e-9 +AddInteger/691/760,1.2551888164770718e-6,1.2540846505271806e-6,1.2560846868930767e-6,3.3503149649693425e-9,2.8443888365445607e-9,4.091554031592988e-9 +AddInteger/691/829,1.2750790333500787e-6,1.27413624070543e-6,1.2761260732458943e-6,3.2892865220630337e-9,2.7488671018644917e-9,4.119175942220169e-9 +AddInteger/691/898,1.3001570090903128e-6,1.2995308343759745e-6,1.3007867589858864e-6,1.967087930684745e-9,1.6440829620774607e-9,2.4296812233459144e-9 +AddInteger/691/967,1.315340295992446e-6,1.3145573319707175e-6,1.3163215612810283e-6,2.8129091562116087e-9,2.3713844825770984e-9,3.471529033686761e-9 +AddInteger/760/1,1.2716086891172335e-6,1.2705213757066028e-6,1.2724753783514428e-6,3.1708957996568096e-9,2.537949643532482e-9,4.0449763708975815e-9 +AddInteger/760/70,1.2674620807131791e-6,1.266845575549847e-6,1.2680412414222878e-6,1.994493723588257e-9,1.6084055071406276e-9,2.5384647928670444e-9 +AddInteger/760/139,1.26792069097236e-6,1.266635263073444e-6,1.2693377707880325e-6,4.29864132741207e-9,3.7498605965460915e-9,5.000733707885141e-9 +AddInteger/760/208,1.265478150311087e-6,1.2647389180109478e-6,1.2662443104716668e-6,2.513532625532927e-9,2.0965824796827796e-9,3.1031201983449477e-9 +AddInteger/760/277,1.2630123213998704e-6,1.2619788398822612e-6,1.2643518401582557e-6,4.000503965630549e-9,3.1933236104138265e-9,4.848773367055331e-9 +AddInteger/760/346,1.2688530940756444e-6,1.2668794125537253e-6,1.2708755431135421e-6,6.783617772435919e-9,5.8017109737891736e-9,7.902134830489598e-9 +AddInteger/760/415,1.2669383397247876e-6,1.2656910613596217e-6,1.2681888211299533e-6,4.290471578680622e-9,3.770096623544397e-9,4.999992633289212e-9 +AddInteger/760/484,1.2711542384497074e-6,1.26976146246921e-6,1.272694015157852e-6,4.881598120451455e-9,4.1770788989969354e-9,5.900036834542311e-9 +AddInteger/760/553,1.2514716967279302e-6,1.2506257382905767e-6,1.2522083967089497e-6,2.7560734383165667e-9,2.365154454411114e-9,3.4444005371136837e-9 +AddInteger/760/622,1.2588492278701702e-6,1.2578513303152889e-6,1.259531036318636e-6,2.6228326889462934e-9,1.941736514531095e-9,3.5291612174241318e-9 +AddInteger/760/691,1.2463294074285249e-6,1.2447799479399846e-6,1.247675793520164e-6,4.983072501799727e-9,4.4450561565954725e-9,5.665847132876403e-9 +AddInteger/760/760,1.2394387181197442e-6,1.2383426037275862e-6,1.2405000020129476e-6,3.6723370960998348e-9,3.1263422052397364e-9,4.441380486287935e-9 +AddInteger/760/829,1.2599578452128326e-6,1.2590353207871879e-6,1.2611036242832301e-6,3.4518758247982355e-9,2.9678154533850327e-9,4.204433820291595e-9 +AddInteger/760/898,1.29070618697411e-6,1.2899098428785973e-6,1.2914165969731056e-6,2.5944922019626875e-9,2.0433659022902725e-9,3.321876247048043e-9 +AddInteger/760/967,1.3164214014085837e-6,1.3153795579868954e-6,1.3176352504768623e-6,3.773739294354054e-9,3.1649430671975107e-9,4.7248393721060935e-9 +AddInteger/829/1,1.2757106162035358e-6,1.2745816496819298e-6,1.2773097425933388e-6,4.382734533684068e-9,3.3753425337047045e-9,5.436962932595895e-9 +AddInteger/829/70,1.2857739200994936e-6,1.2836779715939631e-6,1.2879045419050497e-6,6.93802337080075e-9,6.070784763899898e-9,7.918841151499956e-9 +AddInteger/829/139,1.2856670272976014e-6,1.2848981191193806e-6,1.2865123670046286e-6,2.7577317286648434e-9,2.2149430561922703e-9,3.657697581252795e-9 +AddInteger/829/208,1.2773988266323431e-6,1.2765313083974116e-6,1.2785048699210803e-6,3.4229404248392816e-9,2.8710220403309466e-9,4.137707843361633e-9 +AddInteger/829/277,1.2751973427261213e-6,1.2743311594835362e-6,1.2771542325541768e-6,4.1558129158165015e-9,2.5360285259505686e-9,7.582858883001914e-9 +AddInteger/829/346,1.2771159643120079e-6,1.2758801573428974e-6,1.2784605967430015e-6,4.023055314549032e-9,3.3599382646565355e-9,5.033054717287134e-9 +AddInteger/829/415,1.2825208950513006e-6,1.2815921493475257e-6,1.2834929268524839e-6,3.1991065259085084e-9,2.681688638713912e-9,3.823679022678118e-9 +AddInteger/829/484,1.2844994939032576e-6,1.2833302920426426e-6,1.2856795292876926e-6,3.798235888943101e-9,3.0710378956138065e-9,4.7637491968401245e-9 +AddInteger/829/553,1.279102143388497e-6,1.2783067693894507e-6,1.2799253951436948e-6,2.786167765796189e-9,2.4098573159649255e-9,3.2618366379221813e-9 +AddInteger/829/622,1.2814768849215273e-6,1.2804929074451258e-6,1.282372817357237e-6,3.118656735410025e-9,2.729700470115256e-9,3.702318031695456e-9 +AddInteger/829/691,1.2803725849312307e-6,1.279151768963587e-6,1.281953990618327e-6,4.676373150647014e-9,3.822271364164543e-9,5.337858264379935e-9 +AddInteger/829/760,1.2683663527458095e-6,1.2674617191502193e-6,1.2693955813712887e-6,3.316694002607361e-9,2.673309699318843e-9,4.474111687733715e-9 +AddInteger/829/829,1.2690920665128226e-6,1.267701655030719e-6,1.270118973877096e-6,4.1032874213263675e-9,3.191566572450219e-9,4.966970623276754e-9 +AddInteger/829/898,1.2826616560633499e-6,1.2820649290419765e-6,1.2833069472100976e-6,2.086094731012398e-9,1.7941140622675134e-9,2.4591925234532666e-9 +AddInteger/829/967,1.3224272830074668e-6,1.3215504615195043e-6,1.3232792094846803e-6,2.964468255770996e-9,2.547805504777543e-9,3.546590586099299e-9 +AddInteger/898/1,1.3100549047706355e-6,1.3085882159433088e-6,1.311424253374803e-6,4.8295444217715364e-9,4.31103698885291e-9,5.458265967589348e-9 +AddInteger/898/70,1.311974859012904e-6,1.3115347220135113e-6,1.3125059816010827e-6,1.6776878307595347e-9,1.401184621444981e-9,2.0193716971647565e-9 +AddInteger/898/139,1.3091462458643592e-6,1.307591342297946e-6,1.3109006432560724e-6,6.013708543936638e-9,4.596876104252302e-9,7.411827283858493e-9 +AddInteger/898/208,1.308852225483223e-6,1.3076150140995937e-6,1.3099028912910163e-6,3.994846310949961e-9,3.3747321875559543e-9,4.78158464178408e-9 +AddInteger/898/277,1.315581732761566e-6,1.3140249711111395e-6,1.3167346302337841e-6,4.446360402317287e-9,3.2590050413175764e-9,6.418572170574978e-9 +AddInteger/898/346,1.3034509900396765e-6,1.3023216367653029e-6,1.305004571240252e-6,4.36548055251543e-9,3.164193146383689e-9,6.853761948183407e-9 +AddInteger/898/415,1.304453010103699e-6,1.3030555197825553e-6,1.306480816859468e-6,5.554286517791565e-9,3.9756700707348986e-9,9.445769377130221e-9 +AddInteger/898/484,1.3136022830983707e-6,1.3127897272479681e-6,1.3146001632375857e-6,3.016646590830121e-9,2.203935859312916e-9,4.774129903948294e-9 +AddInteger/898/553,1.30040327469414e-6,1.2997322880853357e-6,1.3010378490192798e-6,2.199912491284728e-9,1.7687072099583977e-9,2.828744299721649e-9 +AddInteger/898/622,1.3011231109279095e-6,1.300552622796387e-6,1.3017442353118843e-6,2.0078622993491946e-9,1.680364329122329e-9,2.436425738364178e-9 +AddInteger/898/691,1.3042987671013748e-6,1.3030517365237547e-6,1.3056091126699773e-6,4.237623361474303e-9,3.4688746079717274e-9,5.244752362149877e-9 +AddInteger/898/760,1.2988131220853364e-6,1.2976880242969023e-6,1.3004531932303726e-6,4.458082716622598e-9,3.1483103630208973e-9,6.23913021348202e-9 +AddInteger/898/829,1.2852284218712234e-6,1.2846250862395347e-6,1.2858029890860532e-6,2.0404659933977335e-9,1.6815748228188255e-9,2.4804607702030396e-9 +AddInteger/898/898,1.2926846545280619e-6,1.2909329082000393e-6,1.2945025369749427e-6,5.676688191723524e-9,4.8153235480505414e-9,6.739325126895648e-9 +AddInteger/898/967,1.3073452465312832e-6,1.3065730752140871e-6,1.3081760198736376e-6,2.7116839744473485e-9,2.2817688199845584e-9,3.2657598211943038e-9 +AddInteger/967/1,1.3311290863004277e-6,1.330557149290725e-6,1.3318760410346825e-6,2.11014604254526e-9,1.728644754290158e-9,3.017283135541372e-9 +AddInteger/967/70,1.3275292278231695e-6,1.3261016873557475e-6,1.3287862226555026e-6,4.609059417313697e-9,3.953388852716181e-9,5.496301553928869e-9 +AddInteger/967/139,1.3442689390512623e-6,1.3425380981267485e-6,1.3460617887169676e-6,5.8707059095418235e-9,4.729414409875249e-9,6.989519258807762e-9 +AddInteger/967/208,1.333619409494947e-6,1.332528612946916e-6,1.3345419205333069e-6,3.264331530824444e-9,2.7043313939220493e-9,4.042966461769827e-9 +AddInteger/967/277,1.3389350010694802e-6,1.3376295543065043e-6,1.3409196684863194e-6,5.226706335295665e-9,3.6114011370844827e-9,8.38557042773677e-9 +AddInteger/967/346,1.3685791296985607e-6,1.336018471348418e-6,1.4317267900569197e-6,1.4212328848989465e-7,7.408368530255976e-8,2.015510133240088e-7 +AddInteger/967/415,1.3348336019236476e-6,1.3337860948040981e-6,1.3360127749462738e-6,3.7251770835903e-9,2.6909122516363453e-9,5.347584952500759e-9 +AddInteger/967/484,1.3339962870307382e-6,1.3330295853772152e-6,1.3349057761963923e-6,3.0265042394552756e-9,2.545727389632461e-9,3.7006685085274857e-9 +AddInteger/967/553,1.331235024160147e-6,1.3303989666169615e-6,1.3318931834913836e-6,2.400396269356167e-9,1.942516613100062e-9,3.1117328383952198e-9 +AddInteger/967/622,1.330813764752689e-6,1.3292847235513902e-6,1.3323348356779796e-6,5.04214120144847e-9,4.2029103280480435e-9,6.140204336672071e-9 +AddInteger/967/691,1.32814659020306e-6,1.3273252375323288e-6,1.3289815340231456e-6,2.8176921503045955e-9,2.24316653274371e-9,3.42707779851536e-9 +AddInteger/967/760,1.322730721926131e-6,1.3218469705896702e-6,1.3236072303861825e-6,2.8915749216585275e-9,2.4598602561122707e-9,3.509281011433491e-9 +AddInteger/967/829,1.3224648583815532e-6,1.3205883820626774e-6,1.3242165729914293e-6,6.207309192574549e-9,5.124447415091966e-9,7.544830894749914e-9 +AddInteger/967/898,1.37301235595504e-6,1.372221496714727e-6,1.3738945467181753e-6,2.8221219143327884e-9,2.2371054939555408e-9,3.847410933071825e-9 +AddInteger/967/967,1.3097422837040147e-6,1.3084760893799e-6,1.3110956244943261e-6,4.450710720517586e-9,3.752137443088532e-9,5.229262797604209e-9 +MultiplyInteger/1/1,9.361116821230668e-7,9.347797245938269e-7,9.377826507761884e-7,4.833806121699649e-9,4.15767324749166e-9,5.633605890872084e-9 +MultiplyInteger/1/3,9.44636466439734e-7,9.439383752511702e-7,9.452638377116163e-7,2.4207939422300223e-9,2.0748916607614462e-9,2.8107007801207216e-9 +MultiplyInteger/1/5,9.425399225901493e-7,9.417084118308733e-7,9.432901437741795e-7,2.7670238217955956e-9,2.3507084433570225e-9,3.4598832660907235e-9 +MultiplyInteger/1/7,9.44562157353439e-7,9.438750806253192e-7,9.452256146722097e-7,2.2335284258113734e-9,1.896671200034985e-9,2.7423790398563746e-9 +MultiplyInteger/1/9,9.379950066739408e-7,9.371938429063958e-7,9.38696668303217e-7,2.625674757168357e-9,2.180908591433709e-9,3.2210282748012242e-9 +MultiplyInteger/1/11,9.399382010978097e-7,9.394961225309033e-7,9.404066978979329e-7,1.5566456448255182e-9,1.3075113540700704e-9,1.9200332332876444e-9 +MultiplyInteger/1/13,9.404473223839371e-7,9.399408531195847e-7,9.409887972015205e-7,1.8349165765735571e-9,1.5477978583821093e-9,2.2939256697611145e-9 +MultiplyInteger/1/15,9.402870942694285e-7,9.391140507722069e-7,9.414970365977733e-7,3.988216743045486e-9,3.3921841431011568e-9,4.723113848070252e-9 +MultiplyInteger/1/17,9.43530998719308e-7,9.428876358216932e-7,9.442041332892716e-7,2.1795873267037587e-9,1.8288036515246914e-9,2.7643392663003535e-9 +MultiplyInteger/1/19,9.452401996039153e-7,9.44766971984928e-7,9.457359617077695e-7,1.57479195765069e-9,1.3613122957745758e-9,1.893547758368423e-9 +MultiplyInteger/1/21,9.470732338476862e-7,9.466047768140844e-7,9.476855600127253e-7,1.8516858199264447e-9,1.5330161410635716e-9,2.306730058350278e-9 +MultiplyInteger/1/23,9.457912321724761e-7,9.449840824604784e-7,9.465944273679533e-7,2.7548612399852864e-9,2.338770255209611e-9,3.2568621982167257e-9 +MultiplyInteger/1/25,9.529102345618584e-7,9.524141827226984e-7,9.534891536310944e-7,1.8432765239113284e-9,1.489112236216228e-9,2.2918421094099984e-9 +MultiplyInteger/1/27,9.516453815830047e-7,9.509990883984248e-7,9.522829484255587e-7,2.138373095796068e-9,1.7367335143812636e-9,2.6207089980169787e-9 +MultiplyInteger/1/29,9.430495055384351e-7,9.424357068460997e-7,9.437349762407203e-7,2.2197361306941244e-9,1.8360583466740845e-9,2.7281027145694338e-9 +MultiplyInteger/1/31,9.461663954185625e-7,9.451973878756871e-7,9.469894697804601e-7,3.1992203090003907e-9,2.8296843512119944e-9,3.702570125447042e-9 +MultiplyInteger/3/1,9.359438489481825e-7,9.352471434939039e-7,9.365951719199768e-7,2.3827822886491586e-9,2.04391316002868e-9,2.804448896643657e-9 +MultiplyInteger/3/3,9.434219317542356e-7,9.428599304685633e-7,9.439406821103301e-7,1.8910590991072533e-9,1.6441465597474245e-9,2.1705308198911e-9 +MultiplyInteger/3/5,9.446598312533281e-7,9.439079338900202e-7,9.455070563771922e-7,2.8426234080350994e-9,2.316072698975876e-9,3.578218510232448e-9 +MultiplyInteger/3/7,9.461047509972725e-7,9.455209533886435e-7,9.467593656606215e-7,2.115280252535227e-9,1.7781216799689242e-9,2.529986537903833e-9 +MultiplyInteger/3/9,9.477623315358249e-7,9.469572175639527e-7,9.485438228693578e-7,2.7244492789994545e-9,2.3272975949075094e-9,3.272514977001271e-9 +MultiplyInteger/3/11,9.56572803238473e-7,9.56113696280612e-7,9.571129915302125e-7,1.6578018615743274e-9,1.4068202703720274e-9,1.968146830443263e-9 +MultiplyInteger/3/13,9.546164650100912e-7,9.540555334080196e-7,9.552375557907691e-7,2.0283715579899635e-9,1.7275798402324961e-9,2.4797598253410636e-9 +MultiplyInteger/3/15,9.530369891072863e-7,9.5242486884155e-7,9.536721597669956e-7,2.027482269280856e-9,1.7338201832947223e-9,2.3772354859401586e-9 +MultiplyInteger/3/17,9.553270018865428e-7,9.546496158907128e-7,9.561266553405766e-7,2.311698481899362e-9,1.9514536656611043e-9,2.8055620134499053e-9 +MultiplyInteger/3/19,9.61015288305442e-7,9.60247794604318e-7,9.618067825152924e-7,2.693144137430159e-9,2.3024587822003615e-9,3.122297896704281e-9 +MultiplyInteger/3/21,9.674683753342293e-7,9.669910763665785e-7,9.679064940985295e-7,1.5428465745716886e-9,1.275902794207468e-9,1.932438060268462e-9 +MultiplyInteger/3/23,9.608949770328055e-7,9.604415960816549e-7,9.613102357526175e-7,1.4803255092542132e-9,1.259969348282105e-9,1.7726751807682692e-9 +MultiplyInteger/3/25,9.688841671291662e-7,9.678692812442141e-7,9.69599007376197e-7,2.9223950626293434e-9,2.2226589144385955e-9,4.402429062572956e-9 +MultiplyInteger/3/27,9.677647363583706e-7,9.669506581249496e-7,9.684593904586529e-7,2.4928527127620115e-9,1.983297267240422e-9,3.365622627013654e-9 +MultiplyInteger/3/29,9.677635107207715e-7,9.673776680358684e-7,9.681477051299152e-7,1.2096179708631742e-9,1.0233101400356032e-9,1.46467659807113e-9 +MultiplyInteger/3/31,9.743146249769888e-7,9.73778410582648e-7,9.747967970129017e-7,1.7655434470717636e-9,1.4765920581964276e-9,2.1933314553999376e-9 +MultiplyInteger/5/1,9.420129877946535e-7,9.415900779477677e-7,9.425664835589384e-7,1.636268517345849e-9,1.3444029068316482e-9,2.1652488522440796e-9 +MultiplyInteger/5/3,9.415135678093213e-7,9.408595787856889e-7,9.421077460689572e-7,2.0554874086112652e-9,1.7253630665981488e-9,2.515275565289564e-9 +MultiplyInteger/5/5,9.455388888851711e-7,9.4473706125921e-7,9.463344358855476e-7,2.4977515482450045e-9,2.1081032840142557e-9,3.0016234553826323e-9 +MultiplyInteger/5/7,9.472421811682655e-7,9.465163580757478e-7,9.478901368061453e-7,2.282917851668913e-9,1.7755022726975862e-9,2.9147194766081473e-9 +MultiplyInteger/5/9,9.501759318206757e-7,9.493287084725098e-7,9.509102399719568e-7,2.7220512190592626e-9,2.308177568747352e-9,3.223498293896506e-9 +MultiplyInteger/5/11,9.526946796301714e-7,9.521550817298916e-7,9.532196267605544e-7,1.7763893879804647e-9,1.50130292560582e-9,2.1323653538533335e-9 +MultiplyInteger/5/13,9.633818703601614e-7,9.621511352433898e-7,9.64625077629143e-7,3.911402410741511e-9,3.5678799049535486e-9,4.358153379905264e-9 +MultiplyInteger/5/15,9.648091132085552e-7,9.637305838902103e-7,9.657933203958577e-7,3.4704381335959866e-9,2.923806960345795e-9,4.190073491460371e-9 +MultiplyInteger/5/17,9.733144164529168e-7,9.72722438022387e-7,9.7380912233781e-7,1.78780525115024e-9,1.4835746340443588e-9,2.210269749339276e-9 +MultiplyInteger/5/19,9.7443400431892e-7,9.734612939887254e-7,9.752176314542488e-7,2.8408776352950224e-9,2.255176880928353e-9,3.608778250184195e-9 +MultiplyInteger/5/21,9.79943232135957e-7,9.79289256649025e-7,9.805352283744757e-7,2.099672215254749e-9,1.776009853251332e-9,2.545246557140171e-9 +MultiplyInteger/5/23,9.83715434048842e-7,9.830652541037373e-7,9.843775565994896e-7,2.286542589661877e-9,1.911827954204258e-9,2.9133860416472625e-9 +MultiplyInteger/5/25,9.920492458261665e-7,9.914777954562854e-7,9.925467915042366e-7,1.7809766907798524e-9,1.3395390407330995e-9,2.3407593276428738e-9 +MultiplyInteger/5/27,9.921511312843715e-7,9.91388369197116e-7,9.928655014516678e-7,2.414614816985682e-9,2.0053279811197145e-9,3.012281940721561e-9 +MultiplyInteger/5/29,1.0005906884386202e-6,9.999231544494788e-7,1.001306635652595e-6,2.3445999763293445e-9,1.9184548187582527e-9,2.8801016270421622e-9 +MultiplyInteger/5/31,9.972368809940917e-7,9.967569874855664e-7,9.977076398009758e-7,1.590779906441358e-9,1.293081681582386e-9,2.103092543431718e-9 +MultiplyInteger/7/1,9.400005469776601e-7,9.394945742320534e-7,9.405223186120234e-7,1.828389430340972e-9,1.537077278330038e-9,2.1121373712457404e-9 +MultiplyInteger/7/3,9.427013173392834e-7,9.418400721438002e-7,9.43420881124412e-7,2.5467089862611838e-9,2.089827062930226e-9,3.2899764861366585e-9 +MultiplyInteger/7/5,9.488833094969173e-7,9.483367749289937e-7,9.494852058140603e-7,1.9660358094109177e-9,1.67475342114908e-9,2.4704782855007156e-9 +MultiplyInteger/7/7,9.58294693961278e-7,9.577061405430786e-7,9.589473991814285e-7,2.0480670200781416e-9,1.7632730524787214e-9,2.4478451591169027e-9 +MultiplyInteger/7/9,9.624300719687709e-7,9.618816451190933e-7,9.630178864361182e-7,1.883718666554092e-9,1.5956987927062018e-9,2.224796829773765e-9 +MultiplyInteger/7/11,9.669202721008031e-7,9.660292988724585e-7,9.677234616966507e-7,2.7021702702540414e-9,2.2911882314385428e-9,3.352500976950328e-9 +MultiplyInteger/7/13,9.71837977187944e-7,9.709998690813177e-7,9.728636319954328e-7,3.089093326825603e-9,2.5500748365312596e-9,3.5665490177111396e-9 +MultiplyInteger/7/15,9.761924781109487e-7,9.757224290880402e-7,9.767715480101272e-7,1.7314106252367074e-9,1.3351556998034491e-9,2.443817454360911e-9 +MultiplyInteger/7/17,9.917593334046632e-7,9.91357716937569e-7,9.922221483627527e-7,1.4756467601992782e-9,1.2062791381776098e-9,1.8641914775981416e-9 +MultiplyInteger/7/19,9.90057163697467e-7,9.895504326532009e-7,9.906071283265447e-7,1.753957319466446e-9,1.5258757112350363e-9,2.0528790193991735e-9 +MultiplyInteger/7/21,1.0039169597803819e-6,1.0030970739110962e-6,1.0047441936588917e-6,2.6287090699326587e-9,2.215375243397098e-9,3.2116404729570252e-9 +MultiplyInteger/7/23,1.0040540815963623e-6,1.0033367557600872e-6,1.0048942852747987e-6,2.6618587936780358e-9,2.223849422453711e-9,3.1674921324918737e-9 +MultiplyInteger/7/25,1.0182448193551913e-6,1.0178090800381878e-6,1.0186563840734418e-6,1.443179950810593e-9,1.257838186562645e-9,1.696198527481188e-9 +MultiplyInteger/7/27,1.0165006333922842e-6,1.015959520668483e-6,1.0169714728692977e-6,1.723441340661928e-9,1.4765721500662752e-9,2.0076359487522533e-9 +MultiplyInteger/7/29,1.0293298585649368e-6,1.0285426398412864e-6,1.0302335245832817e-6,2.8293862997834093e-9,2.5398379332916084e-9,3.208403929707589e-9 +MultiplyInteger/7/31,1.023496473485036e-6,1.022853341013887e-6,1.024273152218385e-6,2.429128257372483e-9,2.0854425631056385e-9,3.1704418916190646e-9 +MultiplyInteger/9/1,9.370710763017693e-7,9.362914059517807e-7,9.378335011575343e-7,2.625811152064579e-9,2.23795078636328e-9,3.141772582898235e-9 +MultiplyInteger/9/3,9.468656872286263e-7,9.463346882560885e-7,9.474317685647108e-7,1.7920657385826763e-9,1.501111206899481e-9,2.2268749288835453e-9 +MultiplyInteger/9/5,9.487798468204716e-7,9.476450177469708e-7,9.499076768362049e-7,3.887051751773535e-9,3.4316166328240656e-9,4.544309028960531e-9 +MultiplyInteger/9/7,9.630824603474794e-7,9.626147522783228e-7,9.635707197217114e-7,1.6071409684765766e-9,1.3771310536960238e-9,1.963072102386734e-9 +MultiplyInteger/9/9,9.721909972668468e-7,9.713629136461904e-7,9.729742641950845e-7,2.8471629245970282e-9,2.375649523655455e-9,3.4668926238933107e-9 +MultiplyInteger/9/11,9.693392285003108e-7,9.688290858416548e-7,9.69823848063725e-7,1.6853615916813675e-9,1.414115474236115e-9,2.0096833554468163e-9 +MultiplyInteger/9/13,9.825343024485953e-7,9.816715766770913e-7,9.83317024746911e-7,2.742216973193521e-9,2.3989766546996937e-9,3.1891576475211484e-9 +MultiplyInteger/9/15,9.880202032274417e-7,9.873234341064605e-7,9.88660968406243e-7,2.162013399725281e-9,1.8049495148112077e-9,2.5701140861679263e-9 +MultiplyInteger/9/17,1.0010174534567067e-6,1.0005125507866151e-6,1.0014809962685357e-6,1.5430837702031893e-9,1.2492278674093471e-9,1.947201728051234e-9 +MultiplyInteger/9/19,1.0064782878311309e-6,1.0058535594850572e-6,1.007122733862302e-6,2.1363223969564074e-9,1.829781826720338e-9,2.548939805145149e-9 +MultiplyInteger/9/21,1.0182027648547193e-6,1.0175179876331344e-6,1.0188164964791172e-6,2.1683864300364797e-9,1.7584570939564744e-9,2.7692850054264356e-9 +MultiplyInteger/9/23,1.0181007091574293e-6,1.0168383793348566e-6,1.0193293195765972e-6,4.0846757832300975e-9,3.633354358917018e-9,4.691100874696289e-9 +MultiplyInteger/9/25,1.031173691462757e-6,1.0301277783261046e-6,1.0321142720733627e-6,3.4448638856449245e-9,2.837003848535606e-9,4.2262958764022e-9 +MultiplyInteger/9/27,1.0384014595093963e-6,1.0377793791185542e-6,1.038948866766648e-6,1.8923949911092496e-9,1.6162989628152385e-9,2.33628726120589e-9 +MultiplyInteger/9/29,1.0469078747401669e-6,1.0461478949698005e-6,1.0475368222048457e-6,2.2037234908203687e-9,1.8218618538100451e-9,2.827558454537735e-9 +MultiplyInteger/9/31,1.0515877192571775e-6,1.0509343511191269e-6,1.0524071257759169e-6,2.4047776406925957e-9,2.0012658593605073e-9,2.993777873516425e-9 +MultiplyInteger/11/1,9.395402668138323e-7,9.387382195368583e-7,9.403447269645906e-7,2.645790803391487e-9,2.2407253831526116e-9,3.255827925800816e-9 +MultiplyInteger/11/3,9.501376756386332e-7,9.489148160147967e-7,9.511185706306353e-7,3.745398611743855e-9,3.070054716372251e-9,4.671204484589395e-9 +MultiplyInteger/11/5,9.514615659121207e-7,9.509055378814962e-7,9.521280093397338e-7,2.0221772348640544e-9,1.6626529292122747e-9,2.580592351032822e-9 +MultiplyInteger/11/7,9.664848346903202e-7,9.660401337747143e-7,9.66989128100583e-7,1.6344626721943593e-9,1.2247759016073297e-9,2.4462386645823505e-9 +MultiplyInteger/11/9,9.73698381876925e-7,9.728322197999738e-7,9.746190916381134e-7,3.0473023786087544e-9,2.565700099950392e-9,3.6109755652730278e-9 +MultiplyInteger/11/11,9.863589624861548e-7,9.856308108918627e-7,9.869983788173411e-7,2.2906761787016136e-9,1.922914285613361e-9,2.746752548091652e-9 +MultiplyInteger/11/13,1.002715909663808e-6,1.0020383025655213e-6,1.003400938705499e-6,2.41038581124627e-9,2.0617685547506248e-9,2.9087142458887962e-9 +MultiplyInteger/11/15,1.0021667885282687e-6,1.0012984952509115e-6,1.0030825148174601e-6,3.206902747283763e-9,2.791484475048191e-9,3.847779422083272e-9 +MultiplyInteger/11/17,1.0220557807871691e-6,1.021245353457872e-6,1.0229424819924823e-6,2.9559079745458234e-9,2.4591963889594173e-9,3.52181193879515e-9 +MultiplyInteger/11/19,1.0276916827623557e-6,1.0268822495298942e-6,1.0283733311707353e-6,2.52507529408557e-9,2.007825572042706e-9,3.526697374628539e-9 +MultiplyInteger/11/21,1.0417131878294386e-6,1.0410459186343584e-6,1.0422105604230075e-6,1.7985202454517069e-9,1.4136529172500452e-9,2.4057470670064258e-9 +MultiplyInteger/11/23,1.0457662827016223e-6,1.0449454935718261e-6,1.0466641934269928e-6,2.920867077744216e-9,2.470751415635307e-9,3.658452365080188e-9 +MultiplyInteger/11/25,1.0618131937420424e-6,1.0613131650591347e-6,1.0624021095723227e-6,1.7780749634864575e-9,1.4843879925671648e-9,2.102734585272713e-9 +MultiplyInteger/11/27,1.0627142073305298e-6,1.0622344662942316e-6,1.0630965831735628e-6,1.4262740468243826e-9,1.1027601520742367e-9,1.969841793326115e-9 +MultiplyInteger/11/29,1.0772398557141238e-6,1.0766803587259266e-6,1.077803413760319e-6,1.9060084331634012e-9,1.6106552660936732e-9,2.2578316653112157e-9 +MultiplyInteger/11/31,1.085680092893919e-6,1.0851598965139656e-6,1.0862251599162211e-6,1.7374086256698236e-9,1.4687062280685742e-9,2.134595743351998e-9 +MultiplyInteger/13/1,9.451272413722506e-7,9.446586274994827e-7,9.455048732072395e-7,1.3164593557492254e-9,1.0708990705346659e-9,1.6320988899598524e-9 +MultiplyInteger/13/3,9.536204216928859e-7,9.526942173663404e-7,9.543575896144736e-7,2.665491290221434e-9,2.2608200500944058e-9,3.177948081994789e-9 +MultiplyInteger/13/5,9.610874738915002e-7,9.603293449455449e-7,9.619645805265958e-7,2.737702494466804e-9,2.28907082476385e-9,3.256202382472607e-9 +MultiplyInteger/13/7,9.7150530739843e-7,9.710426976833596e-7,9.7199968981151e-7,1.686604896746405e-9,1.4548135410970995e-9,2.010992739090795e-9 +MultiplyInteger/13/9,9.854147323587682e-7,9.848684487274063e-7,9.860261093992178e-7,2.0126998296372322e-9,1.676156787087477e-9,2.523159198909641e-9 +MultiplyInteger/13/11,9.994581426000522e-7,9.989779642280219e-7,9.999293967054218e-7,1.6174221469472598e-9,1.3514965360478545e-9,2.0538699410769364e-9 +MultiplyInteger/13/13,1.0153645908625209e-6,1.0147570944579393e-6,1.0159452781734976e-6,2.021218317276342e-9,1.7624373805100804e-9,2.3027307634643615e-9 +MultiplyInteger/13/15,1.0138090709697865e-6,1.0131430740445576e-6,1.0144411455671418e-6,2.210782641703548e-9,1.9134018499039844e-9,2.6248203922047e-9 +MultiplyInteger/13/17,1.0341193292696914e-6,1.0335789743733873e-6,1.0348014581511425e-6,2.088263760201766e-9,1.6119630140937492e-9,3.1908159975320507e-9 +MultiplyInteger/13/19,1.0438360033460563e-6,1.0424936717617945e-6,1.044892715603394e-6,3.893495842836303e-9,3.1483209629185603e-9,4.919220306445729e-9 +MultiplyInteger/13/21,1.0558036433055787e-6,1.054808855942423e-6,1.05662763587894e-6,2.9556712325167833e-9,2.2415277089452593e-9,4.887925154897728e-9 +MultiplyInteger/13/23,1.0628780346520269e-6,1.0622744422858372e-6,1.0635092513812288e-6,2.0823434856363006e-9,1.6655765284695004e-9,2.6134210084203406e-9 +MultiplyInteger/13/25,1.0776682721790443e-6,1.0770441672142301e-6,1.078348725169436e-6,2.0254109927592537e-9,1.5970345590098258e-9,2.7180427004659755e-9 +MultiplyInteger/13/27,1.088276623485903e-6,1.0872490538062272e-6,1.0892688793360823e-6,3.425979268994516e-9,2.67516871155385e-9,4.3696930190779615e-9 +MultiplyInteger/13/29,1.1041680411535317e-6,1.1035153248644338e-6,1.1047674047571449e-6,2.107159877172846e-9,1.577746152678731e-9,2.8323724817551123e-9 +MultiplyInteger/13/31,1.106738112453384e-6,1.1059606991873907e-6,1.1074330796918032e-6,2.5561106894858946e-9,2.104900225900295e-9,3.1152915122168943e-9 +MultiplyInteger/15/1,9.401476779707668e-7,9.393951855779009e-7,9.408001902146192e-7,2.468519909326363e-9,2.1984011469662176e-9,2.821938222706621e-9 +MultiplyInteger/15/3,9.543479923893136e-7,9.534546858953485e-7,9.552029886996914e-7,3.0658644814170904e-9,2.72954560173043e-9,3.397724480312138e-9 +MultiplyInteger/15/5,9.656391466121738e-7,9.648440511661153e-7,9.663156482872394e-7,2.5712442106441626e-9,2.2898584026175734e-9,2.8890404933236072e-9 +MultiplyInteger/15/7,9.785073462811118e-7,9.77301249308707e-7,9.796729740390467e-7,3.968704453989705e-9,3.5277628628878767e-9,4.532619706247657e-9 +MultiplyInteger/15/9,9.913869940445291e-7,9.907497021149705e-7,9.920143629344702e-7,2.110206004097219e-9,1.740230919724107e-9,2.7174403222055086e-9 +MultiplyInteger/15/11,1.003257809861504e-6,1.0024600531020236e-6,1.0041591448504135e-6,2.8587465262297897e-9,2.399298555156969e-9,3.4019676216233433e-9 +MultiplyInteger/15/13,1.0150777633568884e-6,1.0137488340920378e-6,1.016341569819839e-6,4.268725519554302e-9,3.584155527184961e-9,5.11625860887977e-9 +MultiplyInteger/15/15,1.028698667501686e-6,1.027864900984014e-6,1.0296201690044027e-6,3.0059843906750798e-9,2.6227965666071213e-9,3.4435486304871296e-9 +MultiplyInteger/15/17,1.0431679862357775e-6,1.0424476818908443e-6,1.043774305369697e-6,2.081720937008054e-9,1.6894714974926892e-9,2.593535166797859e-9 +MultiplyInteger/15/19,1.0581386520833977e-6,1.0574504086719353e-6,1.0588178762749583e-6,2.4294367777759293e-9,2.0211625982550986e-9,2.912023795815055e-9 +MultiplyInteger/15/21,1.0744362626754036e-6,1.0739172402087757e-6,1.0750238819994756e-6,1.9132612342117245e-9,1.4706159169275098e-9,2.4391306586516266e-9 +MultiplyInteger/15/23,1.0784527196550578e-6,1.077362946997969e-6,1.0795901747796736e-6,3.789328167731314e-9,3.230361189114466e-9,4.401623894984533e-9 +MultiplyInteger/15/25,1.1009081633126248e-6,1.1002551925959696e-6,1.101558211192806e-6,2.0734324999862398e-9,1.7870122700443677e-9,2.418750239823483e-9 +MultiplyInteger/15/27,1.1048764320480677e-6,1.1038581938825848e-6,1.1057651112819038e-6,3.1314116072135796e-9,2.613434688290797e-9,3.79347184369633e-9 +MultiplyInteger/15/29,1.1429937094044797e-6,1.1418415408837848e-6,1.143990610350368e-6,3.846249655559556e-9,3.216298742112618e-9,4.5605737448853215e-9 +MultiplyInteger/15/31,1.142819661348548e-6,1.1422375784574126e-6,1.1433317461611475e-6,1.8570317066098285e-9,1.4958188133170666e-9,2.433451751648187e-9 +MultiplyInteger/17/1,9.526983899127118e-7,9.52352212141266e-7,9.530629531571238e-7,1.1792046904145135e-9,9.963846331307502e-10,1.5684141489779741e-9 +MultiplyInteger/17/3,9.640436716898382e-7,9.635497549251523e-7,9.646000954587868e-7,1.8221464307982812e-9,1.5232735881124457e-9,2.2583947645784143e-9 +MultiplyInteger/17/5,9.725748767072237e-7,9.718600996136414e-7,9.734791559752796e-7,2.9078750334061024e-9,2.4835537909237253e-9,3.4775749609184966e-9 +MultiplyInteger/17/7,9.844865570984239e-7,9.83754916585308e-7,9.85160892705123e-7,2.3190120556273524e-9,1.8262609974845898e-9,3.1208143583059346e-9 +MultiplyInteger/17/9,1.0015700169421682e-6,1.0008446120100277e-6,1.0021458136321997e-6,2.1143939586563642e-9,1.7528814927547086e-9,2.7444440653143405e-9 +MultiplyInteger/17/11,1.0191391533954506e-6,1.0185885208291177e-6,1.0197633686780694e-6,1.928193177391844e-9,1.5761044395677602e-9,2.320980540184316e-9 +MultiplyInteger/17/13,1.0328647066043982e-6,1.0321278163412913e-6,1.033691935626238e-6,2.750588792348117e-9,2.280499975432262e-9,3.2852027391616016e-9 +MultiplyInteger/17/15,1.048947296030886e-6,1.0481646321728134e-6,1.0495218070753104e-6,2.3276004084443504e-9,1.8855027284159145e-9,2.999566746133435e-9 +MultiplyInteger/17/17,1.1105894213327443e-6,1.1098798964277676e-6,1.1112799374188582e-6,2.3191311964804172e-9,2.0131853406190893e-9,2.7597232990805717e-9 +MultiplyInteger/17/19,1.1231050910508802e-6,1.122673029931487e-6,1.1236551160908735e-6,1.6232799189136964e-9,1.3215702906676039e-9,2.0353129875896014e-9 +MultiplyInteger/17/21,1.1434749939269575e-6,1.1426794076157915e-6,1.1444722843333253e-6,3.001857291297781e-9,2.3088775985225566e-9,4.32900708044913e-9 +MultiplyInteger/17/23,1.2020083237142556e-6,1.200950101312766e-6,1.2032222663878859e-6,3.879476760789264e-9,3.4061550291371896e-9,4.4722441917972704e-9 +MultiplyInteger/17/25,1.2185416395217782e-6,1.2178372927353847e-6,1.219469770022562e-6,2.524705819324257e-9,2.062017808979894e-9,3.280659735655557e-9 +MultiplyInteger/17/27,1.2223430360975437e-6,1.2218087750104383e-6,1.2228530708588664e-6,1.7942774865924393e-9,1.516267265836446e-9,2.2175693340770735e-9 +MultiplyInteger/17/29,1.249144584267517e-6,1.2483422259177351e-6,1.2499638959779572e-6,2.6189079544152144e-9,2.149536125439828e-9,3.4060698052088754e-9 +MultiplyInteger/17/31,1.3516180843388702e-6,1.350346001644031e-6,1.3524123393367461e-6,3.3592591441051184e-9,2.033080161967039e-9,5.587811029476139e-9 +MultiplyInteger/19/1,9.493647495051961e-7,9.485282307794908e-7,9.499797264590867e-7,2.324430875502143e-9,1.9356568779951153e-9,2.8504906823394693e-9 +MultiplyInteger/19/3,9.592185901512927e-7,9.584196719085499e-7,9.599487582971336e-7,2.488954609051362e-9,2.004005650270792e-9,3.1727320771607508e-9 +MultiplyInteger/19/5,9.729698938018418e-7,9.726239645650674e-7,9.734307402656223e-7,1.3973521129126705e-9,1.0589919115531903e-9,2.080481324091029e-9 +MultiplyInteger/19/7,9.904589382353657e-7,9.898902057055098e-7,9.911730804587756e-7,2.198050109651211e-9,1.8923288300683026e-9,2.606020780248047e-9 +MultiplyInteger/19/9,1.0121189647093983e-6,1.0116660849347891e-6,1.0125467752191478e-6,1.4751211826067156e-9,1.2572074283657022e-9,1.7117930637818525e-9 +MultiplyInteger/19/11,1.0318894209985476e-6,1.0310806202296801e-6,1.0325515405300483e-6,2.394073634186584e-9,2.078375554859175e-9,2.8685980654649634e-9 +MultiplyInteger/19/13,1.044750423112552e-6,1.0444136451023076e-6,1.04515152091943e-6,1.2054606940739384e-9,9.617140307241715e-10,1.5460567142254588e-9 +MultiplyInteger/19/15,1.06280008042216e-6,1.062188085175197e-6,1.063399170521715e-6,2.0610666626681445e-9,1.7160155415142964e-9,2.538569937742539e-9 +MultiplyInteger/19/17,1.1219594195337806e-6,1.1210172773399588e-6,1.122873763790494e-6,3.271453276148094e-9,2.725147617428862e-9,4.144915301668207e-9 +MultiplyInteger/19/19,1.1317123969409492e-6,1.130956148890898e-6,1.1323516962780499e-6,2.437319556457272e-9,2.0529967783426696e-9,2.916763358645102e-9 +MultiplyInteger/19/21,1.1524893548716667e-6,1.1516807038804341e-6,1.1533905912643862e-6,2.922397509169723e-9,2.5856851673615203e-9,3.3596481889932096e-9 +MultiplyInteger/19/23,1.1700452105547368e-6,1.1691164344841946e-6,1.1709849251784276e-6,3.0665648612166346e-9,2.5368603601234445e-9,3.796040591196474e-9 +MultiplyInteger/19/25,1.2495876961485888e-6,1.2488092235933886e-6,1.2503685826273377e-6,2.5849704468707974e-9,2.216132156536721e-9,3.1019252434042037e-9 +MultiplyInteger/19/27,1.2507499150779144e-6,1.2497546843278698e-6,1.2517848709788778e-6,3.535032453738659e-9,3.0311597202291854e-9,4.307549961666088e-9 +MultiplyInteger/19/29,1.25401865588891e-6,1.2532551305031765e-6,1.2548936860235242e-6,2.7723311512698658e-9,2.384815685765371e-9,3.2551380011575216e-9 +MultiplyInteger/19/31,1.2836112760301399e-6,1.2828382968536523e-6,1.2845094046179787e-6,2.953859813461312e-9,2.510429873964303e-9,3.61317819479047e-9 +MultiplyInteger/21/1,9.504940738497768e-7,9.499146669324266e-7,9.512241692002301e-7,2.208808521928865e-9,1.883085279328033e-9,2.6532723006841708e-9 +MultiplyInteger/21/3,9.61684984390672e-7,9.609897001296135e-7,9.625600272812351e-7,2.6202740412025803e-9,2.01067709112231e-9,3.998145469558729e-9 +MultiplyInteger/21/5,9.834951418072299e-7,9.828093482121747e-7,9.841308117732658e-7,2.2103112852063533e-9,1.9047302471056036e-9,2.60733903076814e-9 +MultiplyInteger/21/7,1.0035920752002337e-6,1.0031300657823515e-6,1.0041447022443656e-6,1.6602904584393993e-9,1.2895112858935152e-9,2.0623536920491076e-9 +MultiplyInteger/21/9,1.0227321291953384e-6,1.0222582596945503e-6,1.0232328587761214e-6,1.719141668705046e-9,1.3541644387599327e-9,2.288280132295633e-9 +MultiplyInteger/21/11,1.0358139505381822e-6,1.0351538205576224e-6,1.0365551809840117e-6,2.367037224615279e-9,2.0057728145352614e-9,2.7734417189549314e-9 +MultiplyInteger/21/13,1.054418774359895e-6,1.0538796457046797e-6,1.0550973917155237e-6,1.9934086267928747e-9,1.6828205688143595e-9,2.4195386756917613e-9 +MultiplyInteger/21/15,1.076036102274397e-6,1.075185208207662e-6,1.0767944182495989e-6,2.7099507561017557e-9,2.2619992490780555e-9,3.329230600975557e-9 +MultiplyInteger/21/17,1.1344218001403065e-6,1.1335519164404047e-6,1.135435567984877e-6,3.303190684445844e-9,2.7113430843935826e-9,4.01746596922749e-9 +MultiplyInteger/21/19,1.146286315908026e-6,1.1455127675590188e-6,1.1470713902228647e-6,2.679038666274603e-9,2.253097800246227e-9,3.274143336540972e-9 +MultiplyInteger/21/21,1.1567397215673914e-6,1.1560374569531276e-6,1.1573761074243275e-6,2.324531120809027e-9,1.98029976789958e-9,2.8252915107861717e-9 +MultiplyInteger/21/23,1.176683304861982e-6,1.1762020579247281e-6,1.1772965952013168e-6,1.7262471273494897e-9,1.4454185458740116e-9,2.3702995809180338e-9 +MultiplyInteger/21/25,1.210858628920299e-6,1.2102876020766107e-6,1.211544549725598e-6,2.0514628030942725e-9,1.60746376506097e-9,2.498548945767842e-9 +MultiplyInteger/21/27,1.272798597955691e-6,1.27219513784745e-6,1.2735105967736988e-6,2.201411193012949e-9,1.8466819867205503e-9,2.687338308691116e-9 +MultiplyInteger/21/29,1.2916842801747804e-6,1.2909583326154273e-6,1.2924811618192088e-6,2.440417017220428e-9,1.9938097745180255e-9,3.3405956590835504e-9 +MultiplyInteger/21/31,1.2890504709933005e-6,1.2880749367551326e-6,1.2899105002699891e-6,2.952025796939762e-9,2.3485510386127174e-9,3.5490902049859873e-9 +MultiplyInteger/23/1,9.473526382721901e-7,9.466417861868062e-7,9.480748336963876e-7,2.428635276138465e-9,2.0705932399300635e-9,2.8739489870227485e-9 +MultiplyInteger/23/3,9.643321548690562e-7,9.63779106949102e-7,9.649030396021328e-7,1.9839520005250125e-9,1.6176074420566817e-9,2.5119982134829107e-9 +MultiplyInteger/23/5,9.8671143032918e-7,9.858350448652592e-7,9.877771868121298e-7,3.2797575533286644e-9,2.6742943942626567e-9,3.936436705808873e-9 +MultiplyInteger/23/7,1.0080205010265418e-6,1.0075535665446047e-6,1.008572802808438e-6,1.658695305140186e-9,1.3191161332847485e-9,2.216176558085267e-9 +MultiplyInteger/23/9,1.0216265325916112e-6,1.0210422224036058e-6,1.0222340221832722e-6,2.0768780290966692e-9,1.7797233429566176e-9,2.4893654752342103e-9 +MultiplyInteger/23/11,1.040279296893601e-6,1.039231941090474e-6,1.0413262506194028e-6,3.519759285990492e-9,3.1786111917249253e-9,4.084139164003205e-9 +MultiplyInteger/23/13,1.060108552287232e-6,1.0596715927718317e-6,1.060531637675097e-6,1.4770202997456848e-9,1.253437668301795e-9,1.861833204175275e-9 +MultiplyInteger/23/15,1.0779266037057457e-6,1.0773221718098106e-6,1.0786297544804984e-6,2.2047992901280356e-9,1.91025179381502e-9,2.578902432892755e-9 +MultiplyInteger/23/17,1.2178661503322383e-6,1.2172714941667242e-6,1.2185067389910298e-6,2.074121668785663e-9,1.728760717502605e-9,2.629168086058878e-9 +MultiplyInteger/23/19,1.1677575552823103e-6,1.167252506171404e-6,1.1682949676759598e-6,1.7409278873113348e-9,1.4587117825043585e-9,2.0761728715566166e-9 +MultiplyInteger/23/21,1.1788912318668723e-6,1.1780370763980947e-6,1.179643895744689e-6,2.7251351438798516e-9,2.1825370263381537e-9,3.6057047187368514e-9 +MultiplyInteger/23/23,1.1855682307235835e-6,1.184768084397804e-6,1.186324130601657e-6,2.6458245030642046e-9,2.2760423547936968e-9,3.1524401086626952e-9 +MultiplyInteger/23/25,1.2132830376344259e-6,1.212662933944664e-6,1.2137723844109362e-6,1.870671966157076e-9,1.5801074925193825e-9,2.296738025057868e-9 +MultiplyInteger/23/27,1.2388719583557964e-6,1.238204106068394e-6,1.239433604228419e-6,2.005478468204931e-9,1.6140366281668344e-9,2.6542978666426923e-9 +MultiplyInteger/23/29,1.3089840807288078e-6,1.3081253266909891e-6,1.3096738165123914e-6,2.589939616546601e-9,2.0009459385946937e-9,3.4370760114093087e-9 +MultiplyInteger/23/31,1.3186107378740108e-6,1.3178376933784024e-6,1.3193943442752777e-6,2.5228588492029124e-9,2.19831866299075e-9,2.9998559585163046e-9 +MultiplyInteger/25/1,9.521082306504594e-7,9.51608232181827e-7,9.52675746861644e-7,1.8283589287255691e-9,1.4970055417433735e-9,2.3793237819124944e-9 +MultiplyInteger/25/3,9.67881050198795e-7,9.669840714597112e-7,9.688129816221035e-7,3.1308176361575136e-9,2.775949681349501e-9,3.599376057656968e-9 +MultiplyInteger/25/5,9.971525058926236e-7,9.966200458333647e-7,9.976837493948762e-7,1.81335699889956e-9,1.5283410913715993e-9,2.1867658043875287e-9 +MultiplyInteger/25/7,1.01413594227389e-6,1.0134795018445558e-6,1.0147631156872045e-6,2.1105313957620797e-9,1.7696318392850963e-9,2.5319097628938094e-9 +MultiplyInteger/25/9,1.0389382268679024e-6,1.03815515544766e-6,1.0396653530085952e-6,2.4146200291539804e-9,2.0175719795667148e-9,2.9529221134568344e-9 +MultiplyInteger/25/11,1.0588228004006521e-6,1.0582476917871413e-6,1.0594350997112675e-6,2.06017826083377e-9,1.7452060878952168e-9,2.469351539184374e-9 +MultiplyInteger/25/13,1.0802612184118812e-6,1.079752912712436e-6,1.08091216999033e-6,1.8936923995408468e-9,1.5983913163932921e-9,2.3450927536554417e-9 +MultiplyInteger/25/15,1.0991269145602212e-6,1.0973366884028713e-6,1.1008697532915021e-6,5.884575599554093e-9,5.128642907658687e-9,7.054774792046816e-9 +MultiplyInteger/25/17,1.2103016014475738e-6,1.2094973833066695e-6,1.2110132233467166e-6,2.5391749152956824e-9,2.1541467961938048e-9,3.1610740856552007e-9 +MultiplyInteger/25/19,1.2415650331828899e-6,1.2397773027726099e-6,1.2428553340654648e-6,5.0617588810200656e-9,4.130807516194715e-9,6.3645568909497e-9 +MultiplyInteger/25/21,1.1982309456940638e-6,1.1963280032412216e-6,1.2006409811569077e-6,7.000908867021141e-9,5.0144282019814295e-9,1.2170151602711964e-8 +MultiplyInteger/25/23,1.2007962215331579e-6,1.1998536380659221e-6,1.201633590190361e-6,2.999560245794063e-9,2.2553391783459025e-9,3.798256096122113e-9 +MultiplyInteger/25/25,1.21383200884499e-6,1.2130094013024757e-6,1.2147422617734316e-6,2.880429695333939e-9,2.320187037786219e-9,3.6195052007294585e-9 +MultiplyInteger/25/27,1.2410131305860573e-6,1.239994264452265e-6,1.2425733494109918e-6,4.396633455317441e-9,3.189955170613871e-9,6.4513913947900914e-9 +MultiplyInteger/25/29,1.2538452865227726e-6,1.2527627656701043e-6,1.2554330145785466e-6,4.326210829569799e-9,2.7199537283794363e-9,7.874275540082881e-9 +MultiplyInteger/25/31,1.3442330734326792e-6,1.3434621710774955e-6,1.345113313358168e-6,2.634621556150299e-9,2.276911039303194e-9,3.2052078349843104e-9 +MultiplyInteger/27/1,9.436895643274307e-7,9.429941928356513e-7,9.443657123046625e-7,2.2488049340969066e-9,1.8895363084821947e-9,2.703900299112295e-9 +MultiplyInteger/27/3,9.672392462123e-7,9.66872364989481e-7,9.67740155461603e-7,1.4487595960448853e-9,1.1511145829562175e-9,2.1015243512798107e-9 +MultiplyInteger/27/5,9.870705412746833e-7,9.865126432306753e-7,9.876626149615222e-7,2.043947103320132e-9,1.729520314101669e-9,2.476494148725443e-9 +MultiplyInteger/27/7,1.0111475658281422e-6,1.0106589481891586e-6,1.0116180838316994e-6,1.614745613896692e-9,1.3523890953070725e-9,1.963486075055329e-9 +MultiplyInteger/27/9,1.0387175241778733e-6,1.038477796064286e-6,1.0390258028748276e-6,9.44583749247935e-10,7.587109169316368e-10,1.213458833239848e-9 +MultiplyInteger/27/11,1.0607336106204739e-6,1.0598950834328983e-6,1.0614256742817008e-6,2.4430723394304254e-9,2.004987102372957e-9,3.311860482675157e-9 +MultiplyInteger/27/13,1.0858785129259457e-6,1.0853140238362e-6,1.0864357461068909e-6,1.924513628230277e-9,1.711287727096575e-9,2.254695020697315e-9 +MultiplyInteger/27/15,1.1110886325399887e-6,1.110443730123868e-6,1.1118107797692826e-6,2.2834910949153682e-9,1.927799661275555e-9,2.650970113523363e-9 +MultiplyInteger/27/17,1.2147461000243568e-6,1.2141986413486923e-6,1.21535310337986e-6,1.8159106080749137e-9,1.592369094376524e-9,2.161274942031952e-9 +MultiplyInteger/27/19,1.249932942933627e-6,1.2491890575929538e-6,1.2507740891870633e-6,2.6938698443295093e-9,2.1762619090916917e-9,3.5284057441717513e-9 +MultiplyInteger/27/21,1.2660051314513253e-6,1.2652633073628358e-6,1.2668764582889217e-6,2.7674809932336307e-9,2.2580970617346933e-9,3.370173484152149e-9 +MultiplyInteger/27/23,1.2252303043532036e-6,1.2245835354732386e-6,1.2259006626959566e-6,2.3004470497619107e-9,1.9530613926669573e-9,2.787391734976691e-9 +MultiplyInteger/27/25,1.2345462135001853e-6,1.2338678304535973e-6,1.235154545588447e-6,2.219054408889495e-9,1.8817761530726154e-9,2.734450350924635e-9 +MultiplyInteger/27/27,1.2467342541397137e-6,1.245929432526773e-6,1.247600609198665e-6,2.8760418257715214e-9,2.4965618625109567e-9,3.3577326565838797e-9 +MultiplyInteger/27/29,1.2636035556186673e-6,1.2629070134023001e-6,1.264416228329061e-6,2.5088274644006784e-9,2.1106756883352664e-9,3.0314058353470553e-9 +MultiplyInteger/27/31,1.3535102324712105e-6,1.3525415762052215e-6,1.3543444968128424e-6,2.932233694746539e-9,2.3531726441587786e-9,3.830867454318928e-9 +MultiplyInteger/29/1,9.462428316899e-7,9.455947332237678e-7,9.469411209403993e-7,2.274551919269549e-9,1.899453232879252e-9,2.792052640601769e-9 +MultiplyInteger/29/3,9.672175389633527e-7,9.66452272829887e-7,9.68048987118423e-7,2.6823481197559687e-9,2.192505787263095e-9,3.3577627417689597e-9 +MultiplyInteger/29/5,9.97599370019122e-7,9.965879341425897e-7,9.984437743060862e-7,3.0867909269942325e-9,2.6394404330090885e-9,3.604871883883394e-9 +MultiplyInteger/29/7,1.0210625497491115e-6,1.0205047303166197e-6,1.0215493631966272e-6,1.7479198457384962e-9,1.4599045895922867e-9,2.162870923460799e-9 +MultiplyInteger/29/9,1.0519986769229346e-6,1.05104493301854e-6,1.0526272101084102e-6,2.5774911297217305e-9,2.0574496254076715e-9,3.4120007386557395e-9 +MultiplyInteger/29/11,1.0722713765695937e-6,1.0716948048140531e-6,1.07290013550605e-6,1.951526124567784e-9,1.6840275058450187e-9,2.2766435103820688e-9 +MultiplyInteger/29/13,1.101589679868265e-6,1.1007567412086433e-6,1.1022544458734098e-6,2.5306031996179903e-9,2.0563099977956926e-9,3.0194779335048677e-9 +MultiplyInteger/29/15,1.1419821172212023e-6,1.1411667747576895e-6,1.142670132826588e-6,2.5418457047466537e-9,2.0277569249660086e-9,3.283050489162272e-9 +MultiplyInteger/29/17,1.2515209566051618e-6,1.251024587623612e-6,1.2520335134789746e-6,1.6632258921235163e-9,1.373340574840983e-9,2.2400883875923414e-9 +MultiplyInteger/29/19,1.242645766334802e-6,1.2411908374931195e-6,1.2437951973037396e-6,4.274782460356187e-9,3.3179884057030637e-9,5.705660023153199e-9 +MultiplyInteger/29/21,1.2751930936188498e-6,1.2746482316112266e-6,1.2759283752042025e-6,2.1024514079186752e-9,1.6108926146985923e-9,3.1983131724760615e-9 +MultiplyInteger/29/23,1.2935179249087018e-6,1.2925605745362335e-6,1.2945295077877208e-6,3.4078070478456366e-9,2.91060654946164e-9,4.269291533631711e-9 +MultiplyInteger/29/25,1.2613256542370326e-6,1.26017323714572e-6,1.26231188162884e-6,3.449686335514293e-9,2.900166038781505e-9,4.206551655367516e-9 +MultiplyInteger/29/27,1.270575009039578e-6,1.2701384911415143e-6,1.2709984941266243e-6,1.4443324633668026e-9,1.2252582111561434e-9,1.7325754828497443e-9 +MultiplyInteger/29/29,1.2903970811126298e-6,1.2898347914341063e-6,1.2909261296940575e-6,1.863750896272397e-9,1.576727719701862e-9,2.2848716364027913e-9 +MultiplyInteger/29/31,1.3688596237865447e-6,1.3679800884066413e-6,1.3698080609257113e-6,3.168740475561888e-9,2.6796901431440094e-9,3.762934856368565e-9 +MultiplyInteger/31/1,9.442544511927529e-7,9.436158012244366e-7,9.449195621721735e-7,2.1495576545706488e-9,1.8817844088626536e-9,2.547749786418019e-9 +MultiplyInteger/31/3,9.753844497370366e-7,9.74834599622681e-7,9.759648512993789e-7,1.8387200613597001e-9,1.5530019818253594e-9,2.209501861007183e-9 +MultiplyInteger/31/5,1.0013965996690151e-6,1.0010617883146504e-6,1.001755483272293e-6,1.1982210434231615e-9,1.042483363217554e-9,1.474362364842542e-9 +MultiplyInteger/31/7,1.0263955159687136e-6,1.025911328930834e-6,1.0268436152863274e-6,1.6522689426994292e-9,1.4463165424238242e-9,1.952610167791055e-9 +MultiplyInteger/31/9,1.0582411129343044e-6,1.0575485182766067e-6,1.0590026469008956e-6,2.54799185300507e-9,2.135562868474512e-9,3.173635839855448e-9 +MultiplyInteger/31/11,1.076333436255569e-6,1.0759288590738612e-6,1.0768057854728404e-6,1.4430479120799534e-9,1.1973970364829937e-9,1.8701441034899246e-9 +MultiplyInteger/31/13,1.1088418310628842e-6,1.1074006230001728e-6,1.1101073805617068e-6,4.831816241282379e-9,4.320252828475079e-9,5.415497286725159e-9 +MultiplyInteger/31/15,1.147141044732459e-6,1.1467135116555325e-6,1.1476709566432158e-6,1.6048597687223747e-9,1.3318320431827333e-9,2.05139037777018e-9 +MultiplyInteger/31/17,1.3493486548800607e-6,1.3487891130327974e-6,1.3500135946366877e-6,2.09381591676431e-9,1.7410636896890916e-9,2.6235251539085914e-9 +MultiplyInteger/31/19,1.2770055712063698e-6,1.2761536147291345e-6,1.2777926897800395e-6,2.6745745597761408e-9,2.226873252468204e-9,3.2722518191810982e-9 +MultiplyInteger/31/21,1.283372458922248e-6,1.2827004537220878e-6,1.2840819165936659e-6,2.232036410554465e-9,1.8329727060037453e-9,2.9019495732800803e-9 +MultiplyInteger/31/23,1.3250012890011506e-6,1.3242828828765755e-6,1.3256810671297952e-6,2.316437981669074e-9,1.9853187499938544e-9,2.8911810524847813e-9 +MultiplyInteger/31/25,1.33564693215727e-6,1.335041711288879e-6,1.3361856605770063e-6,1.8412681667758867e-9,1.5902246184328532e-9,2.1481603147011942e-9 +MultiplyInteger/31/27,1.357990477176497e-6,1.3571869033765694e-6,1.3587398251589025e-6,2.4527327161284827e-9,2.021043867968504e-9,3.2135722661895827e-9 +MultiplyInteger/31/29,1.374788634235691e-6,1.3739099715510705e-6,1.3756705850980273e-6,2.9835986297471625e-9,2.5313310829968055e-9,3.7244795744588822e-9 +MultiplyInteger/31/31,1.3874975935117836e-6,1.3867172845921351e-6,1.3887106867500163e-6,3.225593518111864e-9,2.1608004128566833e-9,5.37118221023579e-9 +DivideInteger/1/1,9.595531774389288e-7,9.590221626898139e-7,9.599610508126236e-7,1.6045668361248224e-9,1.1684276531999856e-9,2.0080837285301416e-9 +DivideInteger/1/3,9.209546227270219e-7,9.199602617571519e-7,9.218586782570333e-7,3.25487540694865e-9,2.8168318126759347e-9,3.735996583714666e-9 +DivideInteger/1/5,9.226745283169848e-7,9.217836977953986e-7,9.234511554296176e-7,2.850477905464564e-9,2.379085737370589e-9,3.4980514794360364e-9 +DivideInteger/1/7,9.1628131160979e-7,9.152989144402093e-7,9.172806029784879e-7,3.3444522444199482e-9,2.7859677548461577e-9,4.139611494431368e-9 +DivideInteger/1/9,9.215511099457922e-7,9.20766016092708e-7,9.225059740077515e-7,3.1323044714219986e-9,2.6948108954988206e-9,3.806978488389921e-9 +DivideInteger/1/11,9.209155949118908e-7,9.202511011484583e-7,9.216993239686126e-7,2.573760844833612e-9,2.154323374552711e-9,3.179053652095276e-9 +DivideInteger/1/13,9.268852702724872e-7,9.259993337662451e-7,9.276505081917901e-7,2.8236752498584322e-9,2.3498494717769767e-9,3.430780777909582e-9 +DivideInteger/1/15,9.2191921512834e-7,9.209478428604294e-7,9.229756386137859e-7,3.298403102926108e-9,2.7753667463336108e-9,3.867003845633496e-9 +DivideInteger/1/17,9.218825841981469e-7,9.211300065640857e-7,9.227763673949772e-7,2.908170514510441e-9,2.361408166331122e-9,3.945732986285162e-9 +DivideInteger/1/19,9.20319884605436e-7,9.194183323294862e-7,9.212377106744709e-7,2.8782283025083034e-9,2.40093650489995e-9,3.50839819813643e-9 +DivideInteger/1/21,9.196621981325106e-7,9.186706689679907e-7,9.207886599969661e-7,3.387957513661798e-9,2.846531312753091e-9,4.262580762811552e-9 +DivideInteger/1/23,9.170122307680813e-7,9.164291901820591e-7,9.177017243510437e-7,2.052306612100063e-9,1.6818740157024442e-9,2.6375084513936743e-9 +DivideInteger/1/25,9.173541753955634e-7,9.166458942022943e-7,9.180394534935379e-7,2.224778379525473e-9,1.8308954399371123e-9,2.6934424350464966e-9 +DivideInteger/1/27,9.179450804436642e-7,9.169143227368173e-7,9.189856077215155e-7,3.6196507457473907e-9,3.0681299303947874e-9,4.2277275350585e-9 +DivideInteger/1/29,9.228991371209683e-7,9.220314140281611e-7,9.236966706566323e-7,2.900908562243829e-9,2.490932749991822e-9,3.3407105617437862e-9 +DivideInteger/1/31,9.206235440287532e-7,9.199860453459126e-7,9.211875674281372e-7,1.9885253314213507e-9,1.5648360236045783e-9,2.9079184085351018e-9 +DivideInteger/3/1,9.560535012456667e-7,9.553183167917585e-7,9.567559894932483e-7,2.443418333091276e-9,1.868552065607901e-9,3.1353697364298655e-9 +DivideInteger/3/3,9.87630517852924e-7,9.86864981618873e-7,9.883672918371379e-7,2.6678177720826453e-9,2.3285747334699227e-9,3.091699308901566e-9 +DivideInteger/3/5,9.182443761581897e-7,9.168317869705874e-7,9.196143700146921e-7,4.457399556287802e-9,3.935752087717154e-9,5.250617590225915e-9 +DivideInteger/3/7,9.168347299498412e-7,9.159501115473417e-7,9.176910301661167e-7,2.9096909558611115e-9,2.474924757829935e-9,3.4780247680209666e-9 +DivideInteger/3/9,9.16599880381755e-7,9.160044484015127e-7,9.172039811032471e-7,1.9968529964653624e-9,1.6313718222286512e-9,2.498480932183946e-9 +DivideInteger/3/11,9.205993787826988e-7,9.201042556395589e-7,9.21091193830519e-7,1.7379780857280086e-9,1.4758744422184055e-9,2.186953231747189e-9 +DivideInteger/3/13,9.16873471146719e-7,9.16297862141233e-7,9.173639506535317e-7,1.730120842244436e-9,1.4085600360401538e-9,2.2036703220774495e-9 +DivideInteger/3/15,9.176188420020905e-7,9.168679062441921e-7,9.183247413126025e-7,2.4212931304426253e-9,1.978137647792495e-9,2.9941930534347406e-9 +DivideInteger/3/17,9.165427292849133e-7,9.159910045704385e-7,9.170298075503855e-7,1.7326526317451978e-9,1.4079224618124235e-9,2.152760676602067e-9 +DivideInteger/3/19,9.214372812035327e-7,9.207910526155991e-7,9.222906947681537e-7,2.502203968952613e-9,2.081625967410949e-9,3.0369667389993845e-9 +DivideInteger/3/21,9.227790238205125e-7,9.220041641031188e-7,9.235239814344967e-7,2.454114668798314e-9,2.1210298550215554e-9,2.938110750764198e-9 +DivideInteger/3/23,9.19595536350961e-7,9.186394781349233e-7,9.205145537406737e-7,3.3815338576206413e-9,2.679703137876242e-9,4.295284895331183e-9 +DivideInteger/3/25,9.195905209374944e-7,9.186609560197966e-7,9.205571567417984e-7,3.1267460053204143e-9,2.7701378739213435e-9,3.722751887124633e-9 +DivideInteger/3/27,9.199112073508801e-7,9.190076778758382e-7,9.209913904380067e-7,3.408041824544228e-9,2.9436683149465915e-9,4.223646188001047e-9 +DivideInteger/3/29,9.17880621615735e-7,9.173339339739309e-7,9.18429588803112e-7,1.8347362887272065e-9,1.5351549547595794e-9,2.328513781479372e-9 +DivideInteger/3/31,9.259369106783195e-7,9.253082550056646e-7,9.266751109454747e-7,2.3323313355408725e-9,1.8969152273960335e-9,2.9078880370114543e-9 +DivideInteger/5/1,9.56731671830716e-7,9.562570295864885e-7,9.571355965886782e-7,1.4906888661463805e-9,1.2842330506663159e-9,1.86270100719419e-9 +DivideInteger/5/3,1.0003919710750964e-6,9.997957734698718e-7,1.0009824431558428e-6,2.0439159161907503e-9,1.7206808756634362e-9,2.468819261502393e-9 +DivideInteger/5/5,1.006063327164136e-6,1.0052271115318477e-6,1.0069400817668489e-6,2.7356009576477193e-9,2.4065946697154817e-9,3.1834168318890658e-9 +DivideInteger/5/7,9.221666229859879e-7,9.212655674315355e-7,9.232376866219512e-7,3.1465766162507674e-9,2.7739189899910645e-9,3.631497348511402e-9 +DivideInteger/5/9,9.273933645416298e-7,9.266891629391319e-7,9.280743870402166e-7,2.4190531754744687e-9,2.0573447903337797e-9,2.861084582719423e-9 +DivideInteger/5/11,9.243343445041587e-7,9.237153034948523e-7,9.249363636968437e-7,2.090688447646492e-9,1.7755457047023774e-9,2.5165337986777466e-9 +DivideInteger/5/13,9.192452313792972e-7,9.182290697112869e-7,9.202857802000718e-7,3.361335715436681e-9,2.831621300462348e-9,4.039049890558818e-9 +DivideInteger/5/15,9.162509379396074e-7,9.153903468836447e-7,9.170879403663646e-7,2.8855612177080407e-9,2.436974997957555e-9,3.800731040896568e-9 +DivideInteger/5/17,9.187468825980203e-7,9.179392384187122e-7,9.195143203616904e-7,2.6050730134080502e-9,2.2495838446914034e-9,3.0393362249657874e-9 +DivideInteger/5/19,9.196902358759586e-7,9.18757593260249e-7,9.207794865240319e-7,3.179601465144009e-9,2.6719876174332157e-9,3.851798595471841e-9 +DivideInteger/5/21,9.200109622081064e-7,9.186758002226486e-7,9.213527867631549e-7,4.56557570971152e-9,4.05379175498449e-9,5.354261410907939e-9 +DivideInteger/5/23,9.201324824579825e-7,9.192036889601891e-7,9.211276295406655e-7,3.236516457156233e-9,2.6768584172621627e-9,4.023736305551481e-9 +DivideInteger/5/25,9.171198812658468e-7,9.165067994019425e-7,9.179107169374686e-7,2.3081443429421054e-9,1.7683202732750344e-9,3.0520096341943234e-9 +DivideInteger/5/27,9.209299584119247e-7,9.201953991928343e-7,9.215709499455756e-7,2.2246559693141933e-9,1.8853442761635252e-9,2.5527292580656825e-9 +DivideInteger/5/29,9.179989099764468e-7,9.173531103913377e-7,9.186479331836903e-7,2.1667605122337637e-9,1.834540197974179e-9,2.656717333988703e-9 +DivideInteger/5/31,9.222759861173011e-7,9.214457435943583e-7,9.230381456030406e-7,2.694382529382544e-9,2.174569929583816e-9,3.3263313838066624e-9 +DivideInteger/7/1,9.584381019019804e-7,9.577772502432008e-7,9.59064170362983e-7,2.177895215499866e-9,1.8544161442482667e-9,2.5880752068842435e-9 +DivideInteger/7/3,1.0052492765188178e-6,1.0045567607532773e-6,1.0060343766943484e-6,2.3490899886177547e-9,1.9210795283203832e-9,2.936777926167705e-9 +DivideInteger/7/5,1.047066960842774e-6,1.0463482563757144e-6,1.0478853869975838e-6,2.5858459530294817e-9,2.077174854958376e-9,3.5947502696534465e-9 +DivideInteger/7/7,9.455195169400625e-7,9.447161681189406e-7,9.462655607080682e-7,2.6967122008672424e-9,2.2855319680837467e-9,3.2201996756612933e-9 +DivideInteger/7/9,9.23949710616421e-7,9.23258324023907e-7,9.246734748675131e-7,2.379784787140992e-9,2.0189926155851985e-9,2.9350242939468922e-9 +DivideInteger/7/11,9.268687732444618e-7,9.262746944376767e-7,9.275101278698301e-7,2.1686336443741165e-9,1.8757381519486334e-9,2.577372905729618e-9 +DivideInteger/7/13,9.232185743167733e-7,9.2238745036657e-7,9.240033866319138e-7,2.718512379657768e-9,2.178540952332647e-9,3.745835220622076e-9 +DivideInteger/7/15,9.198784695194069e-7,9.190964475622102e-7,9.204142969509117e-7,2.126408829148426e-9,1.6923348566035468e-9,2.8744304739728457e-9 +DivideInteger/7/17,9.206411751070395e-7,9.198495020775581e-7,9.213060242054077e-7,2.4458116255120305e-9,2.180610466291052e-9,2.7608482921270772e-9 +DivideInteger/7/19,9.168782932091269e-7,9.157278439699407e-7,9.180893442262012e-7,3.953802455906329e-9,3.4803340698354343e-9,4.5395141446717875e-9 +DivideInteger/7/21,9.186732921334141e-7,9.181305649805325e-7,9.192753551732953e-7,1.9505558210575532e-9,1.5794864871497436e-9,2.4612505143017304e-9 +DivideInteger/7/23,9.195824958607857e-7,9.186426112329129e-7,9.207196613629319e-7,3.377927475087198e-9,2.849277231794365e-9,4.013326542431283e-9 +DivideInteger/7/25,9.193214352703121e-7,9.188164453497179e-7,9.199207456683463e-7,1.8394619029625963e-9,1.4894893074088872e-9,2.2793311181013304e-9 +DivideInteger/7/27,9.233338944397561e-7,9.226971414889298e-7,9.240565158173973e-7,2.3184268671364584e-9,1.9700602106307658e-9,2.9189988163283186e-9 +DivideInteger/7/29,9.176167202501888e-7,9.169373646971947e-7,9.184642340936103e-7,2.4929145967179e-9,2.0532370426054406e-9,3.0806688218273532e-9 +DivideInteger/7/31,9.186583551764284e-7,9.179005783301865e-7,9.194342560329523e-7,2.4902634675799226e-9,2.128245628558673e-9,3.0364332687140877e-9 +DivideInteger/9/1,9.726974876810212e-7,9.71630516891464e-7,9.738738248492514e-7,3.6318870702973974e-9,2.8952341277813975e-9,4.942452853235165e-9 +DivideInteger/9/3,1.0289484398717863e-6,1.0279283497091472e-6,1.0299333429111895e-6,3.3733920876784594e-9,2.930779800326257e-9,4.052591897797182e-9 +DivideInteger/9/5,1.0225177569164267e-6,1.0217023763377796e-6,1.023346679522424e-6,2.8601684230872523e-9,2.4228645565012796e-9,3.4971833055658534e-9 +DivideInteger/9/7,1.0338223576874173e-6,1.0330851022160009e-6,1.034505794026191e-6,2.3108488850661575e-9,1.9250774183381373e-9,2.8515843370664433e-9 +DivideInteger/9/9,9.435477156311362e-7,9.427104897945898e-7,9.442674739609942e-7,2.5917257936104297e-9,2.236349256546471e-9,3.048627309583954e-9 +DivideInteger/9/11,9.186983794797808e-7,9.181316818808064e-7,9.193245147405238e-7,2.026322139884267e-9,1.6580347194489383e-9,2.5450989960112056e-9 +DivideInteger/9/13,9.173550226852983e-7,9.166834419794351e-7,9.180228938091129e-7,2.210196603298612e-9,1.8616840686032758e-9,2.692160462620421e-9 +DivideInteger/9/15,9.249211959886339e-7,9.238640897773379e-7,9.256735451913387e-7,2.922390823657395e-9,2.296625334083268e-9,3.7108103955576067e-9 +DivideInteger/9/17,9.210720973031029e-7,9.204025362894589e-7,9.216526724106845e-7,2.088710344607513e-9,1.7212587222188535e-9,2.7030243027640643e-9 +DivideInteger/9/19,9.20685898165085e-7,9.201088644095742e-7,9.21336951048216e-7,2.075455114081023e-9,1.733584946894699e-9,2.5698504693338855e-9 +DivideInteger/9/21,9.185311860774208e-7,9.178037798238986e-7,9.193025938873526e-7,2.46863523861851e-9,2.1332367723099704e-9,2.8973865721051137e-9 +DivideInteger/9/23,9.17986236455486e-7,9.172923177288631e-7,9.186680441459358e-7,2.23945508095807e-9,1.8681189315860915e-9,2.732398136086553e-9 +DivideInteger/9/25,9.179635393878192e-7,9.173389523119983e-7,9.186368007540437e-7,2.1957409227108244e-9,1.8773558635442563e-9,2.579469821014985e-9 +DivideInteger/9/27,9.198699241815566e-7,9.19143763890284e-7,9.207663730171394e-7,2.5928375361755905e-9,2.1777506771445415e-9,3.184379921336777e-9 +DivideInteger/9/29,9.243275742617045e-7,9.234617546383324e-7,9.249624758753851e-7,2.5795888766389846e-9,2.169490155771547e-9,3.1850305276367092e-9 +DivideInteger/9/31,9.249266101104069e-7,9.240391895582557e-7,9.256539075915294e-7,2.604872526705015e-9,2.111159598001567e-9,3.218236846571504e-9 +DivideInteger/11/1,9.754106637811084e-7,9.744852661223813e-7,9.762524896324664e-7,3.1089197274887912e-9,2.7116783864749325e-9,3.6442994719333405e-9 +DivideInteger/11/3,1.0417715850290425e-6,1.0409592044616561e-6,1.042563158645462e-6,2.690883918403335e-9,2.180665589954765e-9,3.455427189127717e-9 +DivideInteger/11/5,1.0450775226584071e-6,1.043972922928079e-6,1.0462875719122142e-6,4.006354262624445e-9,3.5245433891907216e-9,4.685594642730514e-9 +DivideInteger/11/7,1.0580195564980159e-6,1.0572764842858605e-6,1.0588501926119943e-6,2.667332325891426e-9,2.2392917760653708e-9,3.2725623410721226e-9 +DivideInteger/11/9,1.0222582435412064e-6,1.0213203456720112e-6,1.023176190520728e-6,3.0944268161445065e-9,2.649420266348291e-9,3.764403020033627e-9 +DivideInteger/11/11,9.371553215632632e-7,9.36504930840806e-7,9.376655959065983e-7,1.993541951802516e-9,1.6892664086326326e-9,2.4109418061468785e-9 +DivideInteger/11/13,9.221939665145125e-7,9.214122222632582e-7,9.229376595161176e-7,2.511081064773735e-9,2.129695381659621e-9,2.9703278246728763e-9 +DivideInteger/11/15,9.206284135410388e-7,9.1994840667962e-7,9.212595710618848e-7,2.2779410559421665e-9,1.9327470771248205e-9,2.7441249672429022e-9 +DivideInteger/11/17,9.217606886569567e-7,9.209245199536466e-7,9.225740885183457e-7,2.848838658387972e-9,2.3140343151228975e-9,3.5921908830465153e-9 +DivideInteger/11/19,9.192823367788442e-7,9.184940911586915e-7,9.200120752913446e-7,2.5238201997665785e-9,2.1058334835977896e-9,3.036192802153418e-9 +DivideInteger/11/21,9.243986403371005e-7,9.231330447102974e-7,9.256638255671637e-7,4.096648183103662e-9,3.4259047288817127e-9,4.916320555065453e-9 +DivideInteger/11/23,9.204603456931973e-7,9.196002154280017e-7,9.212670542265105e-7,2.76484884118551e-9,2.2738699509353338e-9,3.406814244837904e-9 +DivideInteger/11/25,9.191600367303577e-7,9.186868410491079e-7,9.19591709338015e-7,1.6083212712801064e-9,1.3808341613660598e-9,1.8587326323741543e-9 +DivideInteger/11/27,9.180904209914188e-7,9.175562854821421e-7,9.188960011736532e-7,2.2261035056114385e-9,1.6735643519087924e-9,3.178027147425834e-9 +DivideInteger/11/29,9.20222778729779e-7,9.194243686818042e-7,9.210199922762174e-7,2.62619121923375e-9,2.214651410979373e-9,3.060532757839629e-9 +DivideInteger/11/31,9.132806096302155e-7,9.126480580008789e-7,9.13850938920669e-7,2.067182458331568e-9,1.7090197747659043e-9,2.6657728569577764e-9 +DivideInteger/13/1,9.786051116805703e-7,9.781281589226066e-7,9.791590190615854e-7,1.8020076351769866e-9,1.4209547843869573e-9,2.9425647653790996e-9 +DivideInteger/13/3,1.0510411101708654e-6,1.0498881989752965e-6,1.0522842169211528e-6,3.931285546036077e-9,3.3954821649136944e-9,4.780373537551201e-9 +DivideInteger/13/5,1.0572511228529484e-6,1.0564553624419208e-6,1.0581907137143569e-6,2.949097024397117e-9,2.4953223299823466e-9,3.6992442350786836e-9 +DivideInteger/13/7,1.0335205309815416e-6,1.0323904462449837e-6,1.0345154561816299e-6,3.520844831990607e-9,2.966259086736565e-9,4.292537395366506e-9 +DivideInteger/13/9,1.0609947904869358e-6,1.0601365429878209e-6,1.0620691340328594e-6,3.077548727983321e-9,2.551818736528096e-9,3.839200259361551e-9 +DivideInteger/13/11,1.0599519420540957e-6,1.0591286504404664e-6,1.060788529015155e-6,2.8604846655279923e-9,2.3514305185035255e-9,3.5733876599369843e-9 +DivideInteger/13/13,1.0060080843823387e-6,1.0054436967822411e-6,1.0066453825381113e-6,1.9868827645612066e-9,1.591083373659897e-9,2.5354998219689994e-9 +DivideInteger/13/15,9.179386553207489e-7,9.172917167282878e-7,9.18672485690476e-7,2.418056295626171e-9,2.031410659494049e-9,2.8494326400857306e-9 +DivideInteger/13/17,9.192148350938925e-7,9.186309541119932e-7,9.197620541483267e-7,1.863690779454853e-9,1.472586938721023e-9,2.531667184855629e-9 +DivideInteger/13/19,9.186356314651628e-7,9.178240606771161e-7,9.193996230535375e-7,2.600797335478475e-9,2.2418474852608948e-9,3.1697712570028787e-9 +DivideInteger/13/21,9.226371596772907e-7,9.217918410695958e-7,9.235001700614496e-7,2.7637413497868573e-9,2.2992660038630563e-9,3.634866078780607e-9 +DivideInteger/13/23,9.182940545766327e-7,9.17649809989804e-7,9.190761950203944e-7,2.322420144999326e-9,1.8316586498342235e-9,3.1263926965327972e-9 +DivideInteger/13/25,9.15936446078728e-7,9.152075126290629e-7,9.167767666346288e-7,2.679671823848896e-9,2.2298781424786555e-9,3.275387229335387e-9 +DivideInteger/13/27,9.234188333510214e-7,9.225876057632485e-7,9.242676446148384e-7,2.9984865717477436e-9,2.466822844306028e-9,3.6504189421035907e-9 +DivideInteger/13/29,9.166444029435903e-7,9.155730702822026e-7,9.176763194019301e-7,3.3889795011283284e-9,2.940423952774851e-9,4.206833371097847e-9 +DivideInteger/13/31,9.183445444118665e-7,9.173159010066231e-7,9.193769014753535e-7,3.380685787120437e-9,2.8581852635229085e-9,4.1599053092888504e-9 +DivideInteger/15/1,9.840193865817679e-7,9.833677845244813e-7,9.847492687146344e-7,2.300504312631132e-9,1.91898242931688e-9,2.8638087772176115e-9 +DivideInteger/15/3,1.0615145391240825e-6,1.0606545810813183e-6,1.06254541502604e-6,3.062737737130491e-9,2.5976420491030434e-9,3.731328900508112e-9 +DivideInteger/15/5,1.068792989195548e-6,1.0680256335101412e-6,1.0695347569159943e-6,2.4441386841131433e-9,2.1016536454407385e-9,2.9130270547058186e-9 +DivideInteger/15/7,1.0501864859073266e-6,1.0490472816086407e-6,1.0512996633984294e-6,3.791340213681082e-9,3.2375356267839017e-9,4.597608279497033e-9 +DivideInteger/15/9,1.066612588655537e-6,1.0657106976326861e-6,1.06747399466935e-6,3.0487850290293145e-9,2.585115345332401e-9,3.7152050146859066e-9 +DivideInteger/15/11,1.080997091815387e-6,1.0803530710653312e-6,1.0816700948161792e-6,2.2960553710187493e-9,1.9572416811506167e-9,2.765178122035906e-9 +DivideInteger/15/13,1.019670810863324e-6,1.0186948265670476e-6,1.0205927779966272e-6,3.1093828410477464e-9,2.6837990961132916e-9,3.5273177096279363e-9 +DivideInteger/15/15,9.388680420106712e-7,9.382792136457731e-7,9.394616080223484e-7,2.027113367691281e-9,1.6190244558019216e-9,2.698608997824917e-9 +DivideInteger/15/17,9.200149567947759e-7,9.195065473999281e-7,9.205109766954798e-7,1.5424903716226493e-9,1.3306009862698774e-9,1.8290509596437653e-9 +DivideInteger/15/19,9.217173588433573e-7,9.210365591945959e-7,9.222201068624334e-7,2.044472423290345e-9,1.6874967528445379e-9,2.51201779568821e-9 +DivideInteger/15/21,9.179815459985817e-7,9.168409813805194e-7,9.190878332331045e-7,3.582549775578313e-9,2.9304295557385507e-9,4.33683724769186e-9 +DivideInteger/15/23,9.244006485192924e-7,9.236521829619152e-7,9.252995531201448e-7,2.7408586520388265e-9,2.080883515977337e-9,3.681212636802463e-9 +DivideInteger/15/25,9.174437465858709e-7,9.166998601396407e-7,9.182397467594325e-7,2.539315085450431e-9,2.1523758799281856e-9,3.0537174586161495e-9 +DivideInteger/15/27,9.198836828198614e-7,9.193927289961299e-7,9.20454697836952e-7,1.7839089204665034e-9,1.3937055858912516e-9,2.4304559937309167e-9 +DivideInteger/15/29,9.170170133504447e-7,9.160788175617001e-7,9.179780370768516e-7,3.0699769764791057e-9,2.6264608371947465e-9,3.6141020013141315e-9 +DivideInteger/15/31,9.208195550499839e-7,9.200497259740141e-7,9.216466849432497e-7,2.766776865851967e-9,2.342753568625514e-9,3.333274333888393e-9 +DivideInteger/17/1,9.926998373828434e-7,9.92021923566131e-7,9.93305023120719e-7,2.180542345522664e-9,1.9054521437297457e-9,2.528212757429508e-9 +DivideInteger/17/3,1.0798511322787376e-6,1.0790474158074737e-6,1.080560527903105e-6,2.5070411497733807e-9,2.06539132160149e-9,3.1326267933442107e-9 +DivideInteger/17/5,1.0899801059867848e-6,1.0892052459211836e-6,1.0909727576774582e-6,2.8389129194054526e-9,2.2880085457878303e-9,3.6407651160369266e-9 +DivideInteger/17/7,1.0739565438685525e-6,1.0725394420826603e-6,1.075665268394387e-6,5.16988112796347e-9,4.472029596576915e-9,5.894550654105601e-9 +DivideInteger/17/9,1.1019784336975882e-6,1.1010718504333947e-6,1.1029299309854148e-6,3.1288363790952643e-9,2.669190562201935e-9,3.821487822571753e-9 +DivideInteger/17/11,1.1071337691433713e-6,1.1062632859314142e-6,1.1080119213595017e-6,2.852395171423748e-9,2.488325131597954e-9,3.4381987671470533e-9 +DivideInteger/17/13,1.0592975509327006e-6,1.0580814453462533e-6,1.0604038473131207e-6,3.823581830230495e-9,3.124814597462397e-9,4.8409443791135876e-9 +DivideInteger/17/15,1.028560391877639e-6,1.0279048652944199e-6,1.0291365495941406e-6,2.0551918191614867e-9,1.7458059593360862e-9,2.659504916910317e-9 +DivideInteger/17/17,9.443383768937003e-7,9.437500904360302e-7,9.44845253614575e-7,1.836207971036941e-9,1.4684756355115289e-9,2.366985679745385e-9 +DivideInteger/17/19,9.178265418692434e-7,9.170056221928485e-7,9.186284990541031e-7,2.7547643142156764e-9,2.3143638996693803e-9,3.3978304455549334e-9 +DivideInteger/17/21,9.117157853155812e-7,9.104434317979451e-7,9.128432229776888e-7,4.0054360084836654e-9,3.4382712027803756e-9,4.6917994110018095e-9 +DivideInteger/17/23,9.152401587894778e-7,9.144082940837662e-7,9.163366957639532e-7,3.0681569957040182e-9,2.365115745350092e-9,3.824593758643663e-9 +DivideInteger/17/25,9.150149036273307e-7,9.142825198573356e-7,9.157294301883619e-7,2.34176753801265e-9,2.0453737165652797e-9,2.7273144971966977e-9 +DivideInteger/17/27,9.157930077786692e-7,9.148974795118168e-7,9.16882324388145e-7,3.207811338842052e-9,2.6589872536897e-9,3.994985234147616e-9 +DivideInteger/17/29,9.164537497867251e-7,9.154857919129402e-7,9.176701098016715e-7,3.504011158410362e-9,2.610695767910617e-9,4.521332098805488e-9 +DivideInteger/17/31,9.148666556579599e-7,9.141238109877867e-7,9.156483132840952e-7,2.5497273662561922e-9,2.0762784568958207e-9,3.388185677399303e-9 +DivideInteger/19/1,9.952024085346805e-7,9.94210024319226e-7,9.96165926584081e-7,3.235600582593307e-9,2.6969439298398867e-9,3.841048660367459e-9 +DivideInteger/19/3,1.0852540237206819e-6,1.0841750416980844e-6,1.0863877389149994e-6,3.782535301203703e-9,3.2470518638468228e-9,4.353128063543418e-9 +DivideInteger/19/5,1.1004114811182745e-6,1.0996022697352933e-6,1.1013929036612955e-6,2.9598946657183867e-9,2.5215580552991824e-9,3.559437047688005e-9 +DivideInteger/19/7,1.0851622519092566e-6,1.0842634435527375e-6,1.0862731551678656e-6,3.292468998979478e-9,2.7907278452793754e-9,4.130828930252532e-9 +DivideInteger/19/9,1.0928320567250646e-6,1.091908832382489e-6,1.0937155370351785e-6,2.9635429494160886e-9,2.5223756094737467e-9,3.5539761638798894e-9 +DivideInteger/19/11,1.137505750652123e-6,1.1365160930923415e-6,1.1387793498926503e-6,3.839221632509917e-9,3.3664245259214062e-9,4.58844861339093e-9 +DivideInteger/19/13,1.0771247116901286e-6,1.0762887146125347e-6,1.0778937287666817e-6,2.663089497666136e-9,2.260745725097753e-9,3.3502123796942786e-9 +DivideInteger/19/15,1.0654438414536377e-6,1.0646646949437152e-6,1.0661663088976434e-6,2.5320092680658913e-9,2.032831403348257e-9,3.150132856847903e-9 +DivideInteger/19/17,1.0630893001090908e-6,1.0622414728029144e-6,1.0639159629653871e-6,2.7950123631069446e-9,2.4257561089828213e-9,3.3918121725609905e-9 +DivideInteger/19/19,9.40426106035391e-7,9.397037281048412e-7,9.409734249338532e-7,2.201098199241129e-9,1.7377057832005793e-9,2.6991547221415297e-9 +DivideInteger/19/21,9.200885170552274e-7,9.19411767597124e-7,9.207524312076388e-7,2.264525604878995e-9,1.926537753061548e-9,2.6694246948190666e-9 +DivideInteger/19/23,9.177886467087809e-7,9.169176464693948e-7,9.187070470500527e-7,2.932979738378671e-9,2.5085317290008108e-9,3.390724794734249e-9 +DivideInteger/19/25,9.226113265650825e-7,9.216555262092423e-7,9.23769555115336e-7,3.5552939331052835e-9,3.118029733594487e-9,4.152013043489779e-9 +DivideInteger/19/27,9.177275510212929e-7,9.166263280423282e-7,9.186117480595734e-7,3.2009517326773043e-9,2.6270223442887156e-9,3.95072177401796e-9 +DivideInteger/19/29,9.195926915366301e-7,9.188453598145058e-7,9.204435814494499e-7,2.6096195587225015e-9,2.1733611590490573e-9,3.2358960920859006e-9 +DivideInteger/19/31,9.187503985306271e-7,9.179517580386455e-7,9.194837459579981e-7,2.514763680260731e-9,2.0598235083561177e-9,3.1496081764529383e-9 +DivideInteger/21/1,1.002847480188559e-6,1.0021130045261797e-6,1.0035638780191174e-6,2.4847441170533386e-9,2.1434983214039292e-9,3.0530147389735772e-9 +DivideInteger/21/3,1.101686175212837e-6,1.1010016719681442e-6,1.1023506656984988e-6,2.2176349539140456e-9,1.880878780613522e-9,2.6348275947424054e-9 +DivideInteger/21/5,1.1186815114306188e-6,1.1176988064258524e-6,1.1196110390284884e-6,3.1892845046806563e-9,2.5144221378004164e-9,4.030756365808348e-9 +DivideInteger/21/7,1.107195767330906e-6,1.1065397200738723e-6,1.1078687911932516e-6,2.2931581914703028e-9,1.981935476443939e-9,2.641696453910872e-9 +DivideInteger/21/9,1.1135438014674531e-6,1.1127637146888197e-6,1.11452219300101e-6,2.910472134635917e-9,2.5108363878973733e-9,3.453506203402712e-9 +DivideInteger/21/11,1.1184662936487556e-6,1.1177896925567946e-6,1.1193018945247868e-6,2.485960258474277e-9,1.8897464345471335e-9,3.546448484732389e-9 +DivideInteger/21/13,1.1167829099441237e-6,1.11590919897902e-6,1.117915504999772e-6,3.1140326850047283e-9,2.4935407859280186e-9,4.082266890639712e-9 +DivideInteger/21/15,1.080957480687623e-6,1.079653069722799e-6,1.0823294960362029e-6,4.490378814487031e-9,3.836300183331428e-9,5.74124171313482e-9 +DivideInteger/21/17,1.0860972422545125e-6,1.0850023481358923e-6,1.0873681286743098e-6,4.1346542151602545e-9,3.463190135563827e-9,5.167429801158356e-9 +DivideInteger/21/19,1.0327925948800684e-6,1.0317105184666542e-6,1.0340628199539085e-6,4.009484182492736e-9,3.3019167663856054e-9,4.69599660013681e-9 +DivideInteger/21/21,9.28871331849935e-7,9.282271930871744e-7,9.294247204785744e-7,1.9713491043746583e-9,1.6021254176555056e-9,2.4378565224392104e-9 +DivideInteger/21/23,9.158033697335284e-7,9.151201153578136e-7,9.164718658427063e-7,2.2360329772191406e-9,1.8997901299859864e-9,2.717201399542046e-9 +DivideInteger/21/25,9.224254564518229e-7,9.217306686802733e-7,9.23259005360594e-7,2.5202216489811165e-9,2.0960539148245668e-9,3.1027619401808135e-9 +DivideInteger/21/27,9.174113071406502e-7,9.166570016662245e-7,9.182830564065465e-7,2.702750104750227e-9,2.303769554797314e-9,3.1738645921155632e-9 +DivideInteger/21/29,9.178266770952129e-7,9.166204679631768e-7,9.19018922026932e-7,4.075496496049796e-9,3.5070795165311947e-9,4.813273299695067e-9 +DivideInteger/21/31,9.170366381255378e-7,9.16382589948493e-7,9.176761042099884e-7,2.2130716642462515e-9,1.8901179086416752e-9,2.741040598236853e-9 +DivideInteger/23/1,1.0090830707194882e-6,1.0084117364758607e-6,1.0096515434947542e-6,2.0672260177154113e-9,1.6502381617297246e-9,2.7412721747576033e-9 +DivideInteger/23/3,1.110501354209022e-6,1.1096382194922223e-6,1.1116571916667116e-6,3.293647444913757e-9,2.5725273975869384e-9,4.329681979644354e-9 +DivideInteger/23/5,1.1347784428826696e-6,1.1339437698297974e-6,1.135554164265807e-6,2.785580192948525e-9,2.3197981061162024e-9,3.2491269222493835e-9 +DivideInteger/23/7,1.1270338831145739e-6,1.1261476526375163e-6,1.1279344089199785e-6,3.0599419385755487e-9,2.5975412833762903e-9,3.699034515491053e-9 +DivideInteger/23/9,1.1372335659111857e-6,1.1363514523779276e-6,1.1380477237178915e-6,3.0498906709176783e-9,2.5332354768691925e-9,3.771890997219012e-9 +DivideInteger/23/11,1.1211481859870233e-6,1.1205973952609834e-6,1.121690379538504e-6,1.8956766256164485e-9,1.5173735164175472e-9,2.6130209025466075e-9 +DivideInteger/23/13,1.1431478235416948e-6,1.1420489862094775e-6,1.1441063747206912e-6,3.248757277137934e-9,2.6409000144582997e-9,3.99622334111995e-9 +DivideInteger/23/15,1.1203349136404228e-6,1.1194795333193e-6,1.1212190084975436e-6,3.002810338060992e-9,2.5802171174884385e-9,3.5613380152622626e-9 +DivideInteger/23/17,1.109094104104409e-6,1.108049028069655e-6,1.1102287547976893e-6,3.693808036772631e-9,3.082240490971265e-9,4.483893167134473e-9 +DivideInteger/23/19,1.0682618940377851e-6,1.0671847312931944e-6,1.069513183023938e-6,3.68277707540445e-9,2.9968394656265973e-9,4.552981510423708e-9 +DivideInteger/23/21,1.0301237657182598e-6,1.0295371177205389e-6,1.030713976312716e-6,1.9669300915002014e-9,1.6341808766784464e-9,2.515993943166027e-9 +DivideInteger/23/23,9.368817064002645e-7,9.359619067334055e-7,9.377770264129434e-7,2.9709082721523587e-9,2.649458819339658e-9,3.442698817015196e-9 +DivideInteger/23/25,9.204699851794108e-7,9.188724613762884e-7,9.21647711872166e-7,4.647623577389963e-9,3.5171887416575505e-9,5.90337666405144e-9 +DivideInteger/23/27,9.143381168034929e-7,9.133092979645425e-7,9.151110112983673e-7,3.054863324690987e-9,2.4497199409755067e-9,3.799617788933861e-9 +DivideInteger/23/29,9.160670575533897e-7,9.148554182099933e-7,9.172871975201311e-7,3.852818997359891e-9,3.3714717368629693e-9,4.5248713703939936e-9 +DivideInteger/23/31,9.161056016657608e-7,9.152466987845425e-7,9.168407046756761e-7,2.57134513366475e-9,2.1919586700684343e-9,3.217788244122031e-9 +DivideInteger/25/1,1.0087306169698289e-6,1.0079722150770182e-6,1.0094817277569918e-6,2.432997675872842e-9,2.0883556471328823e-9,2.944694888842769e-9 +DivideInteger/25/3,1.1258814697434466e-6,1.125274625952931e-6,1.1264888244725623e-6,2.0273180051731724e-9,1.731681914162071e-9,2.464478533221239e-9 +DivideInteger/25/5,1.169165989441718e-6,1.1685828534054252e-6,1.169725455891941e-6,1.9594282485669505e-9,1.6543410055214283e-9,2.3798963319530706e-9 +DivideInteger/25/7,1.141531382548433e-6,1.1407376988771379e-6,1.1423841211161026e-6,2.8146839830975192e-9,2.395977727415061e-9,3.3669773793531156e-9 +DivideInteger/25/9,1.1580836677625244e-6,1.156457499633086e-6,1.1596519859459142e-6,5.34853532495595e-9,4.509791246824228e-9,6.339922219491693e-9 +DivideInteger/25/11,1.1525836500472434e-6,1.151022517494784e-6,1.1540856569430388e-6,5.253882570990089e-9,4.5147055696316155e-9,6.365711752834306e-9 +DivideInteger/25/13,1.183104709956647e-6,1.1822402361865007e-6,1.183802460608482e-6,2.6374642564087123e-9,2.152076408854894e-9,3.429987427180227e-9 +DivideInteger/25/15,1.1521423390432191e-6,1.151129073090588e-6,1.1530810351753915e-6,3.2988172355225455e-9,2.77344710626701e-9,3.952129938068568e-9 +DivideInteger/25/17,1.1556839166388146e-6,1.1537747133029084e-6,1.1578340373261698e-6,6.8909479906185735e-9,5.750445217251444e-9,8.439032383583688e-9 +DivideInteger/25/19,1.0911247903233302e-6,1.090245289682984e-6,1.0918502062126176e-6,2.5644970204230486e-9,2.149879811155336e-9,3.2940770020387476e-9 +DivideInteger/25/21,1.079408218748648e-6,1.0787661668588461e-6,1.0801361487914304e-6,2.355708567160183e-9,1.8809385611527905e-9,3.0747690176171486e-9 +DivideInteger/25/23,1.0328519335821032e-6,1.0319916851452107e-6,1.033569772108846e-6,2.610906012723492e-9,2.0922302793311644e-9,3.3439162620186086e-9 +DivideInteger/25/25,1.0157998269313226e-6,1.0149594733315243e-6,1.0168480963395843e-6,3.202487402893656e-9,2.4345227443907402e-9,5.0361018282603375e-9 +DivideInteger/25/27,9.201836553278459e-7,9.191171100336401e-7,9.211520014644242e-7,3.22709172665579e-9,2.7270799093563553e-9,4.10711320779247e-9 +DivideInteger/25/29,9.213911470932214e-7,9.204677260702242e-7,9.223253245812636e-7,3.1537361927957916e-9,2.5446854074220286e-9,4.013083449531005e-9 +DivideInteger/25/31,9.174981875226402e-7,9.165865147014235e-7,9.182931810293805e-7,2.847190016696376e-9,2.4287498791843505e-9,3.492296612194022e-9 +DivideInteger/27/1,1.0185655076186892e-6,1.0176845267421247e-6,1.0195200905726796e-6,3.0637389504567932e-9,2.4773861100382986e-9,3.891850488417376e-9 +DivideInteger/27/3,1.1405205636374697e-6,1.1393494175257284e-6,1.1414477299448432e-6,3.7616145058674315e-9,3.0319208905734194e-9,5.013348760628349e-9 +DivideInteger/27/5,1.1827717633020281e-6,1.1818648502634305e-6,1.1834603963656818e-6,2.6672852130989016e-9,2.183857637275747e-9,3.79326607918505e-9 +DivideInteger/27/7,1.1587664012394338e-6,1.1578407784468796e-6,1.15966563077822e-6,3.1094374572463714e-9,2.5937269617440367e-9,3.82882367982219e-9 +DivideInteger/27/9,1.1715781884108353e-6,1.169792467869848e-6,1.1735471394789324e-6,6.394452322037795e-9,5.273037415494959e-9,8.162255771932052e-9 +DivideInteger/27/11,1.1611357189485454e-6,1.1600407264696582e-6,1.1618805163806292e-6,2.956483722400151e-9,2.445897279227405e-9,3.6780044940246604e-9 +DivideInteger/27/13,1.1439593364747447e-6,1.1428577504810028e-6,1.1452585015156866e-6,3.813274492417127e-9,3.2417303300945783e-9,4.480935113262787e-9 +DivideInteger/27/15,1.1741023838258999e-6,1.1728970061402246e-6,1.1751827264012287e-6,3.745301960627804e-9,3.1715579877207486e-9,4.503938957240375e-9 +DivideInteger/27/17,1.1792461807488378e-6,1.1783229054312655e-6,1.1801964347150717e-6,3.2283964396925647e-9,2.7049891402919655e-9,4.045370345782645e-9 +DivideInteger/27/19,1.1260834072376713e-6,1.1254578524865928e-6,1.1267121053078892e-6,2.180197710038405e-9,1.799315166497112e-9,2.7678988884037136e-9 +DivideInteger/27/21,1.1018112376676097e-6,1.1008090891882443e-6,1.1027388247178793e-6,3.307938869198105e-9,2.682207662682265e-9,4.494357067621045e-9 +DivideInteger/27/23,1.073761113731579e-6,1.0727232716400968e-6,1.0749776480949004e-6,3.940090919458667e-9,3.284257089076398e-9,4.706687235341891e-9 +DivideInteger/27/25,1.0488545738760418e-6,1.0472821105424988e-6,1.0504842022860803e-6,5.378148928605612e-9,4.6539165784419045e-9,6.334815529467565e-9 +DivideInteger/27/27,9.392955449173587e-7,9.38720943548231e-7,9.398516141406585e-7,1.8741907553690403e-9,1.6154037367209567e-9,2.1963648478074738e-9 +DivideInteger/27/29,9.223608285957915e-7,9.218284686305402e-7,9.229756180542468e-7,1.9825843332833016e-9,1.6607691825899537e-9,2.3889719706581646e-9 +DivideInteger/27/31,9.204762784292009e-7,9.199255552658911e-7,9.210406292620481e-7,1.7875181325404753e-9,1.4419658121374335e-9,2.388680231939678e-9 +DivideInteger/29/1,1.0309169699179575e-6,1.029935409618293e-6,1.0318181498336777e-6,3.10470303118704e-9,2.6175829077662363e-9,3.770025883335035e-9 +DivideInteger/29/3,1.1682313539709583e-6,1.1668867789000897e-6,1.1696204205027856e-6,4.409235810057088e-9,3.762709393618305e-9,5.40311968792334e-9 +DivideInteger/29/5,1.1996766883588138e-6,1.199171718521296e-6,1.2001111953494833e-6,1.6033372043509933e-9,1.3221959319754865e-9,2.0348312240481654e-9 +DivideInteger/29/7,1.1810857349833186e-6,1.180267304584183e-6,1.1820218121151243e-6,2.986723090449543e-9,2.4371702064026135e-9,3.5887203943910203e-9 +DivideInteger/29/9,1.2095221104653256e-6,1.2077210981913614e-6,1.2114387108593325e-6,6.319949371706546e-9,5.3507994936201305e-9,7.550579648626242e-9 +DivideInteger/29/11,1.1985823871710994e-6,1.1974733555231523e-6,1.199671058591887e-6,3.907454982231438e-9,3.2249287160744184e-9,4.658195627572261e-9 +DivideInteger/29/13,1.174097554290119e-6,1.172826001090253e-6,1.1754720906586039e-6,4.610070963609766e-9,4.02332092053952e-9,5.341289559088395e-9 +DivideInteger/29/15,1.1739930231500418e-6,1.1733121519538645e-6,1.174852014863458e-6,2.6079882786934442e-9,2.0489045223143414e-9,3.418012830196505e-9 +DivideInteger/29/17,1.2072494053279866e-6,1.206541647405549e-6,1.2079816181605974e-6,2.40493621134007e-9,1.9691565127915615e-9,3.001526892098731e-9 +DivideInteger/29/19,1.1626629620154846e-6,1.161689749415894e-6,1.1635358782878653e-6,3.0890754963546693e-9,2.626228383407216e-9,3.5990037430840335e-9 +DivideInteger/29/21,1.1431825882498928e-6,1.1423274779598676e-6,1.1440937089360098e-6,2.8965044451206996e-9,2.4919767156262624e-9,3.4362916522774607e-9 +DivideInteger/29/23,1.1057364254765907e-6,1.1046825957416414e-6,1.107010928639964e-6,3.91456234965952e-9,3.308210514932047e-9,4.609328541542794e-9 +DivideInteger/29/25,1.101148961692839e-6,1.1000447740312727e-6,1.102236967405013e-6,3.482307995065612e-9,2.8195108591515365e-9,4.5524400374251495e-9 +DivideInteger/29/27,1.0586820906357852e-6,1.0568362641936843e-6,1.060176737420566e-6,5.407884478702921e-9,4.5353181408986445e-9,6.355305424873476e-9 +DivideInteger/29/29,9.378396046499069e-7,9.370820614389488e-7,9.384595284111059e-7,2.2327108750360156e-9,1.7786549527081302e-9,2.806338926640972e-9 +DivideInteger/29/31,9.136271887698614e-7,9.130603524841248e-7,9.142590442250584e-7,2.0529633287202412e-9,1.6741091659054613e-9,2.5530113983135674e-9 +DivideInteger/31/1,1.028511918853765e-6,1.0278164101815358e-6,1.0291529209395606e-6,2.2683000791494446e-9,1.8019107825423286e-9,2.9007898309544148e-9 +DivideInteger/31/3,1.1776278126836588e-6,1.1770940258382434e-6,1.178121329796603e-6,1.7291885044132274e-9,1.348954134822932e-9,2.378454657759893e-9 +DivideInteger/31/5,1.2079716862523679e-6,1.2074219023853163e-6,1.2085028183780687e-6,1.8190961362852183e-9,1.4070121867992456e-9,2.394719306176416e-9 +DivideInteger/31/7,1.2013919503209716e-6,1.200525589780067e-6,1.2023359919452493e-6,3.142234800637348e-9,2.7203239015184993e-9,3.6607275308738096e-9 +DivideInteger/31/9,1.2406156923548426e-6,1.2398944507308975e-6,1.2412914309337858e-6,2.3613349069271716e-9,1.910601145115668e-9,3.2493989909742465e-9 +DivideInteger/31/11,1.2287651054369792e-6,1.2275248445484638e-6,1.2299002555219062e-6,4.090710316923352e-9,3.2607744562634503e-9,5.928512498288794e-9 +DivideInteger/31/13,1.2068542650923497e-6,1.2053750089057295e-6,1.208161460427481e-6,4.851311182876435e-9,4.166667525552896e-9,5.71044877823832e-9 +DivideInteger/31/15,1.1674558816415269e-6,1.1660440321977358e-6,1.1688683790625903e-6,4.9008722252205674e-9,3.848335479125659e-9,6.569637894614705e-9 +DivideInteger/31/17,1.2274244631753623e-6,1.2267396418664115e-6,1.2281881878126603e-6,2.51633083779213e-9,2.1845118435625907e-9,3.1640753376648973e-9 +DivideInteger/31/19,1.1959836480051252e-6,1.195253969016216e-6,1.1967136264293182e-6,2.520156541287866e-9,2.0960889602574338e-9,3.148632502875019e-9 +DivideInteger/31/21,1.1640764093272373e-6,1.1632250127526453e-6,1.1649426255691953e-6,2.8571534577742935e-9,2.4320887223235418e-9,3.5020916343021005e-9 +DivideInteger/31/23,1.1497444402547348e-6,1.1488986680245616e-6,1.1504933904929969e-6,2.771906522605887e-9,2.2552612624740544e-9,3.5215304754195862e-9 +DivideInteger/31/25,1.137639605489263e-6,1.1370447070940994e-6,1.1382649345153582e-6,2.0889702500235128e-9,1.6831167106285718e-9,2.6014196081681283e-9 +DivideInteger/31/27,1.1098975723623675e-6,1.1086809630606509e-6,1.1109557083624233e-6,3.6434664373993494e-9,3.153200694983319e-9,4.2031451833881425e-9 +DivideInteger/31/29,1.0337673026924004e-6,1.0329081423432141e-6,1.0347463087993618e-6,3.0507641041532585e-9,2.569483516951151e-9,3.77458248361596e-9 +DivideInteger/31/31,9.3912961581951e-7,9.383256561663565e-7,9.399913928480906e-7,2.810183663104391e-9,2.3213192228188825e-9,3.3099908278066428e-9 +EqualsInteger/1/1,8.920423381673757e-7,8.911307148207986e-7,8.92866628355474e-7,2.9640587009898413e-9,2.4698425371162544e-9,3.6583731307659065e-9 +EqualsInteger/3/3,8.841295108762943e-7,8.832286924812341e-7,8.851048748610435e-7,3.2564777134488752e-9,2.884677517564752e-9,3.769169861959188e-9 +EqualsInteger/5/5,8.914550631429733e-7,8.908755623917867e-7,8.92092701818027e-7,2.12897702488965e-9,1.6921657269172066e-9,2.902918745957656e-9 +EqualsInteger/7/7,8.950071241941965e-7,8.944889635103558e-7,8.95537884955851e-7,1.8192077447852806e-9,1.4918665847420228e-9,2.275006964597791e-9 +EqualsInteger/9/9,8.978098901627243e-7,8.970468271411649e-7,8.986081673432973e-7,2.600296896021895e-9,2.2219944689873084e-9,3.378645464830198e-9 +EqualsInteger/11/11,8.970255288366317e-7,8.958515425296866e-7,8.981285354854334e-7,3.654868907251364e-9,3.1037110692239018e-9,4.472524813283295e-9 +EqualsInteger/13/13,8.981749284995684e-7,8.972189205953913e-7,8.99298082440538e-7,3.2538550747736286e-9,2.646454400137832e-9,3.98466608515158e-9 +EqualsInteger/15/15,9.003710312120019e-7,8.999066902253234e-7,9.010018127430648e-7,1.8286585632677164e-9,1.5088095444914903e-9,2.28739379664271e-9 +EqualsInteger/17/17,8.977494883854859e-7,8.969651289599475e-7,8.985672889743661e-7,2.616390522457209e-9,2.1708631801131262e-9,3.182181728066258e-9 +EqualsInteger/19/19,9.020157865183292e-7,9.006258525735904e-7,9.032747032879762e-7,4.557622708067996e-9,4.051416879562759e-9,5.406397066416916e-9 +EqualsInteger/21/21,9.025437937322317e-7,9.02034514289519e-7,9.031189119754767e-7,1.7539849151121004e-9,1.4491449393518193e-9,2.1888443277672515e-9 +EqualsInteger/23/23,9.06253736903054e-7,9.051383282097084e-7,9.074210048909276e-7,3.643533629819447e-9,3.195836816966534e-9,4.208225913114045e-9 +EqualsInteger/25/25,9.040743140246392e-7,9.029861022782745e-7,9.053282043036642e-7,4.063980509451273e-9,3.421734951785787e-9,4.9734826198941165e-9 +EqualsInteger/27/27,9.089078786225188e-7,9.081786973396371e-7,9.097749789064744e-7,2.6506152867394972e-9,2.2043930572179245e-9,3.283030521632606e-9 +EqualsInteger/29/29,9.05163578008351e-7,9.043275660089881e-7,9.060576723628892e-7,2.9704424126112947e-9,2.5157897529582634e-9,3.5848729975856107e-9 +EqualsInteger/31/31,9.058427740330771e-7,9.044774905240535e-7,9.072079464586508e-7,4.461262368090625e-9,4.0193361452895215e-9,5.1036509107033665e-9 +EqualsInteger/33/33,9.049767090785086e-7,9.041837521386854e-7,9.056519547024873e-7,2.3408299223792714e-9,1.9052834587875575e-9,3.0324171573979672e-9 +EqualsInteger/35/35,9.102733424606627e-7,9.096030527370516e-7,9.11061254942011e-7,2.543752268533279e-9,2.1081205550551387e-9,3.093224095078728e-9 +EqualsInteger/37/37,9.141784250419292e-7,9.129863372761666e-7,9.151127657846026e-7,3.5697926617069197e-9,2.700043911686455e-9,4.4704462311677e-9 +EqualsInteger/39/39,9.081194300853331e-7,9.070422231075276e-7,9.090710806876609e-7,3.4022513954624072e-9,2.823308713578734e-9,4.174702348214985e-9 +EqualsInteger/41/41,9.149789671571008e-7,9.145182747520982e-7,9.155805027418355e-7,1.7183177693440362e-9,1.4512233787429146e-9,2.1175533249040353e-9 +EqualsInteger/43/43,9.139804777921031e-7,9.132552222088216e-7,9.146833792626727e-7,2.3960954591467935e-9,2.1199460072579258e-9,2.777708522136223e-9 +EqualsInteger/45/45,9.165091278994076e-7,9.159638148253448e-7,9.170710468802406e-7,1.92436991197718e-9,1.574461314772193e-9,2.4546518557125517e-9 +EqualsInteger/47/47,9.213432678509214e-7,9.204291044641878e-7,9.221905956681395e-7,2.9085594458108873e-9,2.3291842097868624e-9,4.057708780221647e-9 +EqualsInteger/49/49,9.175294521004604e-7,9.168557723006599e-7,9.182349539836626e-7,2.372265419376104e-9,1.921266083388484e-9,2.9905935684879818e-9 +EqualsInteger/51/51,9.229189940778526e-7,9.223315530072376e-7,9.236031178278975e-7,2.101518067201737e-9,1.7400125466922096e-9,2.7377218359148112e-9 +EqualsInteger/53/53,9.208764284958213e-7,9.203503780330869e-7,9.214314264626428e-7,1.7726200790598736e-9,1.4851436129206776e-9,2.2535294186163312e-9 +EqualsInteger/55/55,9.203745196031382e-7,9.198271877503249e-7,9.209386954638634e-7,1.8013641494378592e-9,1.4757517952709693e-9,2.3327979868499473e-9 +EqualsInteger/57/57,9.177240778890671e-7,9.170897730363025e-7,9.184749020001294e-7,2.3055316095750065e-9,1.9422194026115243e-9,2.8348942078237596e-9 +EqualsInteger/59/59,9.163144779690195e-7,9.155984565269021e-7,9.171612468918717e-7,2.4928270642312055e-9,2.04789532228705e-9,3.2827019814675677e-9 +EqualsInteger/61/61,9.224182408287332e-7,9.215469951136205e-7,9.233001644174157e-7,2.819875513558067e-9,2.3820058508780332e-9,3.3862596253728233e-9 +EqualsInteger/63/63,9.26818866419657e-7,9.258769000799973e-7,9.276867520058468e-7,2.978727664566768e-9,2.5635836034193916e-9,3.5582390616774394e-9 +EqualsInteger/65/65,9.215511872676895e-7,9.207533471093991e-7,9.224434237163143e-7,3.1173938220372464e-9,2.5764269872012844e-9,3.815655002918567e-9 +EqualsInteger/67/67,9.209743253958616e-7,9.20419269228607e-7,9.216066588224122e-7,2.0604969041278566e-9,1.7200963166475987e-9,2.4854489991636844e-9 +EqualsInteger/69/69,9.229335629049469e-7,9.22100852493506e-7,9.237429897703985e-7,2.7228712044999354e-9,2.1605811848197576e-9,3.4907710316282167e-9 +EqualsInteger/71/71,9.250570044587074e-7,9.241839991954004e-7,9.256949191467551e-7,2.5043665611857945e-9,2.0499355567484388e-9,3.071974190548515e-9 +EqualsInteger/73/73,9.252448155235854e-7,9.245007993828037e-7,9.260884118056009e-7,2.6217535545548178e-9,2.1925326846677968e-9,3.0921115990163256e-9 +EqualsInteger/75/75,9.309755164368534e-7,9.301447215340201e-7,9.31839048465425e-7,2.838971725830094e-9,2.4414238233128634e-9,3.5198613753339327e-9 +EqualsInteger/77/77,9.34487189068833e-7,9.334929421573428e-7,9.356081843812957e-7,3.6108331752943508e-9,3.1553590847946897e-9,4.208177991267538e-9 +EqualsInteger/79/79,9.316565137426869e-7,9.307922487083071e-7,9.324235709927971e-7,2.7926027468755437e-9,2.4029997162701426e-9,3.2953155781628127e-9 +EqualsInteger/81/81,9.329965295148642e-7,9.31969328353402e-7,9.339355279034723e-7,3.438803164774037e-9,2.991092576638814e-9,3.996262073880747e-9 +EqualsInteger/83/83,9.336809229006181e-7,9.330131378294916e-7,9.343713743777619e-7,2.349621775911548e-9,1.961871241741351e-9,2.794345301418426e-9 +EqualsInteger/85/85,9.360809392455104e-7,9.354114798968199e-7,9.367444640250115e-7,2.2618611916503304e-9,1.955659862869488e-9,2.7376795602534412e-9 +EqualsInteger/87/87,9.35589800898757e-7,9.349410849537345e-7,9.361975445976085e-7,2.1873520360015763e-9,1.8572003387026146e-9,2.5551887903535162e-9 +EqualsInteger/89/89,9.412907182593228e-7,9.407129692916102e-7,9.417350313601738e-7,1.6805052218926772e-9,1.3398521883356941e-9,2.09908590596616e-9 +EqualsInteger/91/91,9.409685044435656e-7,9.400080838578452e-7,9.421376821926492e-7,3.4904707145746094e-9,2.9381539839496143e-9,4.1287686151952954e-9 +EqualsInteger/93/93,9.464000402091492e-7,9.457276151885248e-7,9.470480643094319e-7,2.1433218166915214e-9,1.691799758270543e-9,2.654116159986117e-9 +EqualsInteger/95/95,9.463604493379624e-7,9.455147876060857e-7,9.471203484033836e-7,2.703464183073934e-9,2.3264583401387565e-9,3.2026086875233287e-9 +EqualsInteger/97/97,9.506526265173996e-7,9.499830663957039e-7,9.513190220518672e-7,2.2392127404493373e-9,1.935150639476819e-9,2.6414118420092666e-9 +EqualsInteger/99/99,9.476378708394085e-7,9.46847768574042e-7,9.484942915512211e-7,2.7032804665197373e-9,2.2884394844999855e-9,3.277309026039744e-9 +EqualsInteger/101/101,9.497883036583402e-7,9.489251721242333e-7,9.50606103491856e-7,2.6699359321937614e-9,2.230249224040832e-9,3.1924390163689757e-9 +LessThanInteger/1/1,8.831541811433516e-7,8.824368618640047e-7,8.838317266784739e-7,2.3515757683049194e-9,2.0049775341042032e-9,2.8775031897929587e-9 +LessThanInteger/3/3,8.85709304629491e-7,8.851024571295641e-7,8.863449507793354e-7,2.1109971827752403e-9,1.7908879298194617e-9,2.68287156998413e-9 +LessThanInteger/5/5,8.829466537061831e-7,8.820893844699166e-7,8.8376437550367e-7,2.874972310237567e-9,2.2929151812709605e-9,3.6409205101912982e-9 +LessThanInteger/7/7,8.891290469722533e-7,8.88275059915055e-7,8.90337577957074e-7,3.4631572897297464e-9,2.788214719405669e-9,4.315016100838196e-9 +LessThanInteger/9/9,8.927151160241813e-7,8.913649799181294e-7,8.937900534481311e-7,3.859139681250072e-9,3.2382056644790215e-9,4.608295419193002e-9 +LessThanInteger/11/11,8.85577325874034e-7,8.850309358984219e-7,8.862216509104617e-7,2.071909506012087e-9,1.7522205546944015e-9,2.6401206990165976e-9 +LessThanInteger/13/13,8.896712879187993e-7,8.886258761317073e-7,8.905963392938256e-7,3.246339743300874e-9,2.595816452904826e-9,4.166842122847243e-9 +LessThanInteger/15/15,8.92536531040781e-7,8.914030151554457e-7,8.938301141232585e-7,4.080710209688493e-9,3.5432266900556415e-9,4.776900262151347e-9 +LessThanInteger/17/17,8.916937999037807e-7,8.908992279724153e-7,8.923891531462775e-7,2.572951500764057e-9,2.1476052806365335e-9,3.2943080443098835e-9 +LessThanInteger/19/19,8.927175042739504e-7,8.92098782895871e-7,8.932683263186696e-7,2.0263551821197906e-9,1.660209134789621e-9,2.5456277573105703e-9 +LessThanInteger/21/21,8.942295303896516e-7,8.93727842580806e-7,8.947422865591977e-7,1.7110822922200067e-9,1.4623421468646672e-9,2.073695680280325e-9 +LessThanInteger/23/23,8.980404122157548e-7,8.973927724245687e-7,8.989533395868845e-7,2.451662856081241e-9,2.0423123460434753e-9,3.074534296701963e-9 +LessThanInteger/25/25,8.984375571805719e-7,8.977455378477927e-7,8.991359483145885e-7,2.329824683631043e-9,1.891280187279058e-9,2.848868656225789e-9 +LessThanInteger/27/27,8.965296671427708e-7,8.957600082678665e-7,8.973471441647333e-7,2.5235919801465616e-9,2.0975573855847007e-9,3.1040227693060397e-9 +LessThanInteger/29/29,8.991302798520109e-7,8.98512522666071e-7,8.997461475703983e-7,2.054028266294143e-9,1.7523392687449609e-9,2.456034376183124e-9 +LessThanInteger/31/31,9.04061646873565e-7,9.034088343018466e-7,9.046312432309261e-7,2.0866509308848622e-9,1.7231467041724526e-9,2.6046412255056776e-9 +LessThanInteger/33/33,9.017414544477742e-7,9.00804974042147e-7,9.027313913409511e-7,3.2018543603441837e-9,2.658460381438172e-9,3.999210058912485e-9 +LessThanInteger/35/35,9.022334644364258e-7,9.013579574512185e-7,9.031119030107087e-7,3.0781116993587435e-9,2.676996436504621e-9,3.674061326174223e-9 +LessThanInteger/37/37,8.980839310575475e-7,8.974356579294338e-7,8.988870130578161e-7,2.3221299162133737e-9,1.9266943428969887e-9,3.030398998796131e-9 +LessThanInteger/39/39,9.025826399861061e-7,9.015164198144056e-7,9.035796290049895e-7,3.5345316094294573e-9,2.8603553090290246e-9,4.655507913708884e-9 +LessThanInteger/41/41,9.029101695370414e-7,9.022237912577183e-7,9.035210230477898e-7,2.103509088840167e-9,1.7478327330753658e-9,2.5048183048164708e-9 +LessThanInteger/43/43,9.059231193610765e-7,9.053057059970208e-7,9.06624894080159e-7,2.1931119552995736e-9,1.8393905846662086e-9,2.720019535501702e-9 +LessThanInteger/45/45,9.056093081553907e-7,9.048010871104839e-7,9.067139864237596e-7,3.175834451541368e-9,2.573685321784477e-9,4.006488300612885e-9 +LessThanInteger/47/47,9.07019185112012e-7,9.056282485582746e-7,9.085020155326501e-7,5.004558973386164e-9,4.437995356827121e-9,5.687078600948736e-9 +LessThanInteger/49/49,9.080503714523044e-7,9.074091531083514e-7,9.086314997942104e-7,1.9405403278886645e-9,1.6434859241218556e-9,2.430846155150464e-9 +LessThanInteger/51/51,9.120544011507235e-7,9.111881407034579e-7,9.128286323387221e-7,2.660622478154961e-9,2.2530705943358974e-9,3.3669964915128872e-9 +LessThanInteger/53/53,9.096116532133345e-7,9.089248122328555e-7,9.103409841758428e-7,2.3548693669398243e-9,2.0348762650215837e-9,2.7903421805587236e-9 +LessThanInteger/55/55,9.106431799629092e-7,9.099606719836804e-7,9.113389781511254e-7,2.4101080399471676e-9,2.0079830478457984e-9,2.9817570113964397e-9 +LessThanInteger/57/57,9.15292326005347e-7,9.145815606792739e-7,9.159258556189781e-7,2.2533174048432536e-9,1.936684841490361e-9,2.7530404173494023e-9 +LessThanInteger/59/59,9.147526640739787e-7,9.139529111788539e-7,9.155523800936462e-7,2.69917734005021e-9,2.319239583911428e-9,3.2649210247890204e-9 +LessThanInteger/61/61,9.149945517682504e-7,9.141383628376836e-7,9.1585908783964e-7,2.8711290318801594e-9,2.509587196221905e-9,3.373819133821675e-9 +LessThanInteger/63/63,9.16045890856949e-7,9.155386272880135e-7,9.165579347474928e-7,1.6808904950598517e-9,1.4349456371279986e-9,2.02601048055283e-9 +LessThanInteger/65/65,9.14662034647775e-7,9.138777941453529e-7,9.154833221496839e-7,2.72497567145474e-9,2.2794700434799012e-9,3.3718994111288463e-9 +LessThanInteger/67/67,9.207795093135944e-7,9.200620165877809e-7,9.214343131620292e-7,2.2469088112252095e-9,1.8517211806668544e-9,2.9015514958905004e-9 +LessThanInteger/69/69,9.193725053816905e-7,9.190260502182695e-7,9.197107477767562e-7,1.1849874724666668e-9,1.027679584232542e-9,1.4226225141018755e-9 +LessThanInteger/71/71,9.19155246265219e-7,9.186217902587569e-7,9.196485032324571e-7,1.6786436359957818e-9,1.3611772887560372e-9,2.039190772754507e-9 +LessThanInteger/73/73,9.23024978272092e-7,9.222474996053232e-7,9.239724583847258e-7,2.8543991063323924e-9,2.4158801125711636e-9,3.395170239939805e-9 +LessThanInteger/75/75,9.232805959354087e-7,9.227432319768632e-7,9.238491047184263e-7,1.90368048293946e-9,1.5711998152914145e-9,2.3845211697676433e-9 +LessThanInteger/77/77,9.196946410585992e-7,9.190969850028118e-7,9.203572206937097e-7,2.093296454617599e-9,1.6811963401688947e-9,2.714966072327894e-9 +LessThanInteger/79/79,9.220089274478224e-7,9.211567006222719e-7,9.228342491275589e-7,2.8375554231146453e-9,2.4099710132804613e-9,3.5392024813648677e-9 +LessThanInteger/81/81,9.215087678859879e-7,9.20923854613399e-7,9.221785763646983e-7,2.0564664707627724e-9,1.7322005946741201e-9,2.4240569380664095e-9 +LessThanInteger/83/83,9.271079797931182e-7,9.264668496681149e-7,9.278460789150281e-7,2.3659873794795557e-9,1.975235499672749e-9,2.8347484980268284e-9 +LessThanInteger/85/85,9.337886810035999e-7,9.33088591925913e-7,9.344772482783295e-7,2.3703279598211934e-9,2.0167742258288473e-9,2.8167522396602747e-9 +LessThanInteger/87/87,9.316884767546827e-7,9.307690573254828e-7,9.326594749702065e-7,3.256215983275934e-9,2.71229440341828e-9,3.95183254583495e-9 +LessThanInteger/89/89,9.378226813374793e-7,9.371268109105044e-7,9.385389438509959e-7,2.4851553486454763e-9,1.9630467931646687e-9,3.3199348690165907e-9 +LessThanInteger/91/91,9.238723956484427e-7,9.230061395647594e-7,9.249541556239543e-7,3.1332249764790374e-9,2.476650698448295e-9,4.889615720484072e-9 +LessThanInteger/93/93,9.345630154823035e-7,9.337936695061085e-7,9.35349963414552e-7,2.620622104331244e-9,2.2483797863532144e-9,3.1695767882759655e-9 +LessThanInteger/95/95,9.334942489368458e-7,9.329467451222937e-7,9.340265939034252e-7,1.791002469658247e-9,1.5206566101495631e-9,2.1969088440012528e-9 +LessThanInteger/97/97,9.376997623092736e-7,9.369866793568122e-7,9.385676824708326e-7,2.7638087085290607e-9,2.2966025556579167e-9,3.4015271819483906e-9 +LessThanInteger/99/99,9.403651688322805e-7,9.395920693267697e-7,9.410890796945061e-7,2.506088835879183e-9,2.0852123701600595e-9,2.9974892007056036e-9 +LessThanInteger/101/101,9.420626300189044e-7,9.415482153420412e-7,9.426156671788929e-7,1.7924054414854267e-9,1.4756382201009514e-9,2.2448005860228175e-9 +LessThanEqualsInteger/1/1,8.832343019452976e-7,8.824853197872211e-7,8.840781155582769e-7,2.7574374981870815e-9,2.371034966627953e-9,3.192868113216914e-9 +LessThanEqualsInteger/3/3,8.839564146083117e-7,8.833697313011378e-7,8.845305456082256e-7,1.960131426779179e-9,1.6478345525438046e-9,2.4450801294503393e-9 +LessThanEqualsInteger/5/5,8.876781763446364e-7,8.870453744212856e-7,8.883115631721266e-7,2.1805197644143254e-9,1.8528791161240793e-9,2.7504047250364913e-9 +LessThanEqualsInteger/7/7,8.901007659615179e-7,8.895882011034474e-7,8.90699282843567e-7,1.857427952953015e-9,1.5123425631192966e-9,2.2985173289870933e-9 +LessThanEqualsInteger/9/9,8.831553397842561e-7,8.826253760282399e-7,8.838473986318789e-7,2.043407974405885e-9,1.6151883812571587e-9,2.827840623114152e-9 +LessThanEqualsInteger/11/11,8.859967782598819e-7,8.853754025104068e-7,8.866437288199786e-7,2.2047485864427594e-9,1.8569831784259382e-9,2.6885798498489177e-9 +LessThanEqualsInteger/13/13,8.894632343503424e-7,8.888594857618414e-7,8.899494897819214e-7,1.8044743657964213e-9,1.4880507517145633e-9,2.169185560098302e-9 +LessThanEqualsInteger/15/15,8.870698814935027e-7,8.866408812127068e-7,8.874844073090519e-7,1.4262109272141053e-9,1.2275163614321706e-9,1.7194852415234247e-9 +LessThanEqualsInteger/17/17,8.8874528817289e-7,8.878080779393146e-7,8.897297217469138e-7,3.1406368773166304e-9,2.679806049936129e-9,3.6813758925293984e-9 +LessThanEqualsInteger/19/19,8.890855306320059e-7,8.881648075231975e-7,8.902589190004647e-7,3.2883397849375247e-9,2.8030597958632648e-9,4.007754483725173e-9 +LessThanEqualsInteger/21/21,8.92878629935056e-7,8.92258922278057e-7,8.934750700504341e-7,2.043708337331964e-9,1.7889031859493909e-9,2.408350660587016e-9 +LessThanEqualsInteger/23/23,8.947702644875189e-7,8.939421501069509e-7,8.955767159492858e-7,2.6007508915904944e-9,2.2191276965965725e-9,3.1793638693743112e-9 +LessThanEqualsInteger/25/25,8.942894098357379e-7,8.936347709549404e-7,8.950926311159651e-7,2.5123421921835774e-9,2.1512690786232234e-9,2.9552803773379725e-9 +LessThanEqualsInteger/27/27,8.957339474050456e-7,8.953438137858812e-7,8.961931339014871e-7,1.4824942020013236e-9,1.2750589647534818e-9,1.7784140277837363e-9 +LessThanEqualsInteger/29/29,8.95887213452956e-7,8.95192194683989e-7,8.968131203879186e-7,2.6804916704682396e-9,2.0313507107448514e-9,3.5804050865257933e-9 +LessThanEqualsInteger/31/31,8.998662266084356e-7,8.988400999300115e-7,9.004766767250689e-7,2.6657763744509555e-9,1.1215970228197281e-9,4.577703962780676e-9 +LessThanEqualsInteger/33/33,9.004268717064821e-7,8.998485772907531e-7,9.01162279401964e-7,2.1391625876926153e-9,1.7760851916261402e-9,2.6475808239037362e-9 +LessThanEqualsInteger/35/35,9.059555416069687e-7,9.053357257485386e-7,9.066069137556014e-7,2.228999099486439e-9,1.916162695101411e-9,2.643235619046883e-9 +LessThanEqualsInteger/37/37,9.055054923420068e-7,9.047727154096374e-7,9.06244175640705e-7,2.545926173688892e-9,2.1242107554854663e-9,3.086732426606537e-9 +LessThanEqualsInteger/39/39,9.009291896857816e-7,9.004280488333846e-7,9.015136221786737e-7,1.813690744902501e-9,1.5311349322670974e-9,2.197112603091805e-9 +LessThanEqualsInteger/41/41,9.040634195926099e-7,9.029146825932275e-7,9.052405498110672e-7,3.925231473957076e-9,3.4251766800753053e-9,4.685296081717586e-9 +LessThanEqualsInteger/43/43,9.030959604396745e-7,9.023449764839175e-7,9.038130882226289e-7,2.472574640888196e-9,2.0900577044506116e-9,2.9781403946816227e-9 +LessThanEqualsInteger/45/45,9.031171398035347e-7,9.023523439704852e-7,9.037810365318687e-7,2.3724126746243373e-9,2.0069546759612383e-9,2.86891632705603e-9 +LessThanEqualsInteger/47/47,9.089024143022019e-7,9.082011873546192e-7,9.0956040871477e-7,2.1816070124023612e-9,1.800711383901897e-9,2.6250186042021814e-9 +LessThanEqualsInteger/49/49,9.08572262526033e-7,9.079404343178191e-7,9.091057146242736e-7,1.9911826884013067e-9,1.5544504776968699e-9,2.6484301615272815e-9 +LessThanEqualsInteger/51/51,9.1886002653915e-7,9.177619755844916e-7,9.198260972420142e-7,3.4898568386919766e-9,2.82289382332432e-9,4.24958457233322e-9 +LessThanEqualsInteger/53/53,9.134670005461746e-7,9.126497159053217e-7,9.144527154829603e-7,2.928046846256514e-9,2.5467790084291548e-9,3.3650372239619373e-9 +LessThanEqualsInteger/55/55,9.104202017099009e-7,9.098613174164237e-7,9.109858645506592e-7,1.9047685475911675e-9,1.6080863038710324e-9,2.2489097805147968e-9 +LessThanEqualsInteger/57/57,9.089069144284483e-7,9.08171233767814e-7,9.096946486144851e-7,2.647049522199357e-9,2.293676564658871e-9,3.0378678096433304e-9 +LessThanEqualsInteger/59/59,9.105788072525165e-7,9.099253116167945e-7,9.112233374626044e-7,2.2640408245132078e-9,1.8814711510273443e-9,2.768974773879739e-9 +LessThanEqualsInteger/61/61,9.119328536787656e-7,9.112838417178657e-7,9.125801506412439e-7,2.185066922255414e-9,1.8317993270739033e-9,2.6665344677844407e-9 +LessThanEqualsInteger/63/63,9.17366957712888e-7,9.169473324513513e-7,9.178745423936393e-7,1.5498202330175813e-9,1.3041330597967147e-9,1.8403261311891835e-9 +LessThanEqualsInteger/65/65,9.145888096865438e-7,9.140471432769629e-7,9.151492042778877e-7,1.9164521608567242e-9,1.5148981771715237e-9,2.486226465507454e-9 +LessThanEqualsInteger/67/67,9.194936677554622e-7,9.187132937785397e-7,9.20286975674933e-7,2.7560286993577402e-9,2.271738544278359e-9,3.4560289743362957e-9 +LessThanEqualsInteger/69/69,9.161544713841826e-7,9.155125654588763e-7,9.168164590330595e-7,2.206451154970865e-9,1.8910246500243627e-9,2.633780650675669e-9 +LessThanEqualsInteger/71/71,9.200883802778201e-7,9.195347693510807e-7,9.206830172262794e-7,1.9058851663873177e-9,1.5291808522918684e-9,2.314874848105454e-9 +LessThanEqualsInteger/73/73,9.220921313699098e-7,9.215357659962778e-7,9.226090918577783e-7,1.7842437402925584e-9,1.492290693366569e-9,2.1737918215235766e-9 +LessThanEqualsInteger/75/75,9.186472414828742e-7,9.179048199403311e-7,9.192655526444777e-7,2.2458029530375585e-9,1.920060080445615e-9,2.6695352563209122e-9 +LessThanEqualsInteger/77/77,9.227469015155979e-7,9.220709314128833e-7,9.234536736899161e-7,2.2861892309286273e-9,1.961357659244761e-9,2.7882240429750187e-9 +LessThanEqualsInteger/79/79,9.222897414933698e-7,9.215372168598238e-7,9.229726411831053e-7,2.363149200976806e-9,2.0424510132225305e-9,2.8277607741636224e-9 +LessThanEqualsInteger/81/81,9.248036990678428e-7,9.242121019586636e-7,9.252986233860663e-7,1.8305662027093983e-9,1.4886374822564607e-9,2.2298466103629665e-9 +LessThanEqualsInteger/83/83,9.237076429291019e-7,9.228470893143887e-7,9.246022962634091e-7,2.811445970963236e-9,2.1461723285882435e-9,3.749629642101005e-9 +LessThanEqualsInteger/85/85,9.253268370625517e-7,9.245808577717367e-7,9.260510153645307e-7,2.5401809099340534e-9,2.1269371737796443e-9,3.096992366410846e-9 +LessThanEqualsInteger/87/87,9.254175123439144e-7,9.245751630595094e-7,9.260704447158183e-7,2.4687126318678782e-9,1.984119530447834e-9,3.5035693156421727e-9 +LessThanEqualsInteger/89/89,9.255958826107452e-7,9.250832062802143e-7,9.261925525708594e-7,1.8677860221351007e-9,1.5114861129544651e-9,2.3170154961723588e-9 +LessThanEqualsInteger/91/91,9.310636025846546e-7,9.303081435710319e-7,9.318649466566445e-7,2.572210407770958e-9,2.1817132224409014e-9,3.1034634896545326e-9 +LessThanEqualsInteger/93/93,9.367900428542985e-7,9.361243105039396e-7,9.373923057964516e-7,2.1521078855722877e-9,1.8249951769099612e-9,2.673750406686592e-9 +LessThanEqualsInteger/95/95,9.436847081923252e-7,9.430407733786046e-7,9.443179397628656e-7,2.1266380776468413e-9,1.7269907380333424e-9,2.59466399971362e-9 +LessThanEqualsInteger/97/97,9.381475451479076e-7,9.37504659841208e-7,9.388749917843402e-7,2.3623741535864612e-9,1.93636675510192e-9,3.0215861845898636e-9 +LessThanEqualsInteger/99/99,9.398230840838317e-7,9.392581532665538e-7,9.405044649487067e-7,2.0556289518070653e-9,1.661733405993276e-9,2.727899900305057e-9 +LessThanEqualsInteger/101/101,9.404215393537805e-7,9.394798222107012e-7,9.412924962173835e-7,3.2403866484960868e-9,2.785839801605208e-9,3.847154849939414e-9 +ChooseList/0/100/100,1.1010316238210284e-6,1.1005175119511303e-6,1.101514433395064e-6,1.6410355811016905e-9,1.3827986513262092e-9,2.009654498495507e-9 +ChooseList/0/100/500,1.0998281146043101e-6,1.0991574261905686e-6,1.1005617534166726e-6,2.366357362278927e-9,1.9191466522568565e-9,2.9425454555783267e-9 +ChooseList/0/100/1500,1.0997530454474541e-6,1.0991781128966958e-6,1.1004443637871642e-6,2.027461047616423e-9,1.757228137961839e-9,2.400828913897325e-9 +ChooseList/0/100/3000,1.1006319245258172e-6,1.0999184993761268e-6,1.1011990716636402e-6,2.055819388430637e-9,1.789260936830237e-9,2.4190013347888715e-9 +ChooseList/0/100/5000,1.099923449108275e-6,1.0995760837442925e-6,1.10027734461005e-6,1.1746248151501334e-9,9.946401337857885e-10,1.418674015389193e-9 +ChooseList/0/500/100,1.098184642351537e-6,1.0977913601271728e-6,1.0985680301418459e-6,1.3158909653701523e-9,1.073347051317916e-9,1.6933328485416893e-9 +ChooseList/0/500/500,1.100304359102617e-6,1.0991051908315178e-6,1.101515725527692e-6,3.948821826267367e-9,3.52490374912348e-9,4.4386188839443095e-9 +ChooseList/0/500/1500,1.0996024952835757e-6,1.0988900645766365e-6,1.1003370051496158e-6,2.3627742979030142e-9,2.0009267205835283e-9,2.927695459608045e-9 +ChooseList/0/500/3000,1.1035568123128645e-6,1.1028283881147693e-6,1.1043452509496628e-6,2.4335275959957163e-9,2.072511675642798e-9,2.868486483564566e-9 +ChooseList/0/500/5000,1.0996716360312314e-6,1.09923582021126e-6,1.1001815912330822e-6,1.6314778999835044e-9,1.3309651635643107e-9,2.249289073164993e-9 +ChooseList/0/1500/100,1.100386477240348e-6,1.0996865713539868e-6,1.1010447684631412e-6,2.1957072404115416e-9,1.7886232457701217e-9,2.737560364901244e-9 +ChooseList/0/1500/500,1.0977030369791823e-6,1.0974006804994487e-6,1.097956717197095e-6,9.222215004818701e-10,7.861821454874784e-10,1.1001591766707417e-9 +ChooseList/0/1500/1500,1.0965501792600893e-6,1.0961123101556717e-6,1.096951757517664e-6,1.3915748179820815e-9,1.1100565776430564e-9,1.7648761674366511e-9 +ChooseList/0/1500/3000,1.0975591711335886e-6,1.0967748966673394e-6,1.098427211550125e-6,2.522982515732559e-9,2.1500629220760137e-9,3.0134211587477564e-9 +ChooseList/0/1500/5000,1.0995305615605321e-6,1.0987264330569609e-6,1.1001949208688913e-6,2.5305852938076666e-9,2.1489552596981374e-9,3.0051052062500244e-9 +ChooseList/0/3000/100,1.0981261724988293e-6,1.0976171912892146e-6,1.0987203507714953e-6,1.8390247435770743e-9,1.3946910584302484e-9,2.448207287145018e-9 +ChooseList/0/3000/500,1.0978700684215907e-6,1.0974844200875437e-6,1.0981963068220746e-6,1.225836697558571e-9,1.0237044886401223e-9,1.5228856232961392e-9 +ChooseList/0/3000/1500,1.1007227221619255e-6,1.1000541647683792e-6,1.1014214465425757e-6,2.361018950455053e-9,1.8928680037112195e-9,2.9662460419582896e-9 +ChooseList/0/3000/3000,1.0986103518475828e-6,1.0980428517295925e-6,1.0993538388345708e-6,2.1699344206219517e-9,1.770621919589701e-9,3.010708933464579e-9 +ChooseList/0/3000/5000,1.0973905935819707e-6,1.0966779283858589e-6,1.0981052564120497e-6,2.410073450316224e-9,2.1189554995678867e-9,2.692690121261637e-9 +ChooseList/0/5000/100,1.097864398869758e-6,1.0972945023252895e-6,1.0983283124853411e-6,1.6758099603123313e-9,1.4020890449709778e-9,2.0833493389823323e-9 +ChooseList/0/5000/500,1.0969404884468325e-6,1.0962953238590653e-6,1.0975579713743204e-6,2.0784709045543456e-9,1.7748090845488683e-9,2.5265549174726312e-9 +ChooseList/0/5000/1500,1.0989445205100446e-6,1.0983068977280838e-6,1.0995838420977564e-6,2.170616669468051e-9,1.8014843919300146e-9,2.716616032793775e-9 +ChooseList/0/5000/3000,1.096930545923049e-6,1.0962358641608902e-6,1.0974530579570144e-6,2.074477340588476e-9,1.6406277958591776e-9,2.5878584669048004e-9 +ChooseList/0/5000/5000,1.0999971972167207e-6,1.0995161969043005e-6,1.1008176737490566e-6,2.008318684625869e-9,1.2753473291290519e-9,3.454667069224079e-9 +ChooseList/0/100/100,1.0963918445193246e-6,1.0957320951923826e-6,1.097073480803359e-6,2.1724626807203483e-9,1.872390998645395e-9,2.606514202134222e-9 +ChooseList/0/100/500,1.0995488826253527e-6,1.0990237865825392e-6,1.1000688476385612e-6,1.6944648069215174e-9,1.3896396765861896e-9,2.2282255026721032e-9 +ChooseList/0/100/1500,1.0971136700673002e-6,1.0966293826006934e-6,1.0976003597208483e-6,1.6836585319587718e-9,1.3926573727226597e-9,2.169350371482661e-9 +ChooseList/0/100/3000,1.1013058998281698e-6,1.1007228838049646e-6,1.1018624852214925e-6,1.919729166749231e-9,1.6144162526105563e-9,2.3122315740532857e-9 +ChooseList/0/100/5000,1.10108132124132e-6,1.1002141150563261e-6,1.1017760038326915e-6,2.751429549145434e-9,2.4994303118167635e-9,3.0929236329083533e-9 +ChooseList/0/500/100,1.0980144272179664e-6,1.0973985319994628e-6,1.0986210061811997e-6,2.3005111288884134e-9,2.0009010529639837e-9,2.7305676484802315e-9 +ChooseList/0/500/500,1.1001843589514491e-6,1.099679353256927e-6,1.1006652635224277e-6,1.646088442398904e-9,1.3869632077807784e-9,2.03723617499206e-9 +ChooseList/0/500/1500,1.1007678430935093e-6,1.1002526537134107e-6,1.1013116853005246e-6,1.7967038140400436e-9,1.5342079222274279e-9,2.092497504965828e-9 +ChooseList/0/500/3000,1.099787024354234e-6,1.099088229359548e-6,1.1005389937312634e-6,2.419673470450146e-9,2.1667068441923203e-9,2.7128453065983655e-9 +ChooseList/0/500/5000,1.0996100723599224e-6,1.0990407467427778e-6,1.1000240499095865e-6,1.5227230071961862e-9,1.1457914588142599e-9,1.9665146963959847e-9 +ChooseList/0/1500/100,1.0994123264238452e-6,1.0989952615947048e-6,1.099938172646936e-6,1.5925806317467457e-9,1.3058455893713446e-9,2.107162365278054e-9 +ChooseList/0/1500/500,1.099980135040388e-6,1.099605653823085e-6,1.100397885143452e-6,1.3203877579423272e-9,1.1043984635138442e-9,1.6051017550619058e-9 +ChooseList/0/1500/1500,1.100627372562607e-6,1.100021524692279e-6,1.1012464580998208e-6,2.009278119432938e-9,1.774594399619806e-9,2.3302573049737156e-9 +ChooseList/0/1500/3000,1.0996530308670122e-6,1.0993064967720246e-6,1.1000069007312623e-6,1.2076570513228947e-9,1.038635825332931e-9,1.4329642786907917e-9 +ChooseList/0/1500/5000,1.1020030908660766e-6,1.1011787165548515e-6,1.1026641472543984e-6,2.4059539526703785e-9,2.037945500116316e-9,2.8227798797702985e-9 +ChooseList/0/3000/100,1.0983893418096495e-6,1.0974425926871724e-6,1.0992257889455072e-6,3.0135690647381872e-9,2.6476597325873405e-9,3.4695677235192236e-9 +ChooseList/0/3000/500,1.0971585722029753e-6,1.0964031094654518e-6,1.0981439658774148e-6,2.9995692628448286e-9,2.5647371034562843e-9,3.502548701675027e-9 +ChooseList/0/3000/1500,1.1014715114637038e-6,1.1009711893367802e-6,1.102100121972362e-6,1.8266337560251001e-9,1.4186973895089238e-9,2.2382406035331544e-9 +ChooseList/0/3000/3000,1.099387058778031e-6,1.0988045303782069e-6,1.1000404583793535e-6,2.0012898160693658e-9,1.6767704198942627e-9,2.4432636116884794e-9 +ChooseList/0/3000/5000,1.0994595822121383e-6,1.0989511832905414e-6,1.1000511621056548e-6,1.901088192259687e-9,1.6624689283466228e-9,2.3292657786540886e-9 +ChooseList/0/5000/100,1.0980655047670467e-6,1.0976583565130938e-6,1.0985120716235065e-6,1.3628497256024055e-9,1.1091555066540538e-9,1.7537743876443496e-9 +ChooseList/0/5000/500,1.099865863472341e-6,1.0995174669163296e-6,1.1001901398814248e-6,1.1564766393159494e-9,9.247975488731891e-10,1.512963718757405e-9 +ChooseList/0/5000/1500,1.0981044192931178e-6,1.0976572366090222e-6,1.0986308080741756e-6,1.628784518703444e-9,1.3588067612034126e-9,2.039137791188479e-9 +ChooseList/0/5000/3000,1.1001293610194436e-6,1.0997638097446954e-6,1.1004909812381515e-6,1.2273089070964398e-9,9.959556470113807e-10,1.7004454908044642e-9 +ChooseList/0/5000/5000,1.098106464403272e-6,1.0976773419032086e-6,1.098480674755892e-6,1.4225756501469277e-9,1.1942322709683341e-9,1.7235980066060216e-9 +ChooseList/0/100/100,1.1012129102305441e-6,1.1008303288559683e-6,1.1015653515513064e-6,1.1819336964120106e-9,9.827304530678747e-10,1.5714955499147868e-9 +ChooseList/0/100/500,1.100571127657974e-6,1.1000424451063323e-6,1.1010484337465214e-6,1.6598400965941675e-9,1.3657231905671916e-9,2.025613654591661e-9 +ChooseList/0/100/1500,1.100443229670727e-6,1.099963745740521e-6,1.1008959653495614e-6,1.5189680573004349e-9,1.2608683557066617e-9,1.886478480219645e-9 +ChooseList/0/100/3000,1.098819707124485e-6,1.0983603446709732e-6,1.0993928810637504e-6,1.7248218711433842e-9,1.3530963948880454e-9,2.3159289103964583e-9 +ChooseList/0/100/5000,1.098423440761141e-6,1.0975514811034648e-6,1.099090627985529e-6,2.568319843588433e-9,2.220072563752079e-9,3.007110766694025e-9 +ChooseList/0/500/100,1.0960090607966692e-6,1.0954019373597e-6,1.0966595983292603e-6,2.129391356459732e-9,1.9288152971663176e-9,2.447608165207436e-9 +ChooseList/0/500/500,1.099400237986316e-6,1.0989765622881732e-6,1.099817846162254e-6,1.4591825146792343e-9,1.2389725601893126e-9,1.7916440559964395e-9 +ChooseList/0/500/1500,1.0998016294896366e-6,1.0991163926848881e-6,1.1004309733535618e-6,2.156711626774472e-9,1.7726664198852612e-9,2.7972042092693743e-9 +ChooseList/0/500/3000,1.1040940180660417e-6,1.1032981988414124e-6,1.1048696219616393e-6,2.730695487263872e-9,2.3344419787743795e-9,3.3026439999606648e-9 +ChooseList/0/500/5000,1.097546858765609e-6,1.097075409337108e-6,1.0981120908658919e-6,1.6485641078158108e-9,1.3979090640576316e-9,2.025478873550119e-9 +ChooseList/0/1500/100,1.1017527328229063e-6,1.100782000900723e-6,1.1026620863711408e-6,3.2544540927208393e-9,2.8712431738555595e-9,3.763832203849325e-9 +ChooseList/0/1500/500,1.0996104137525964e-6,1.0988077620219396e-6,1.100280025083095e-6,2.5104336995872608e-9,2.141236685387677e-9,3.1202171277065905e-9 +ChooseList/0/1500/1500,1.100220194232184e-6,1.099834705705264e-6,1.1005665067731722e-6,1.1728151865761073e-9,9.990108231877876e-10,1.3921510754070175e-9 +ChooseList/0/1500/3000,1.1032360504713317e-6,1.1026326830617554e-6,1.1038338840344721e-6,1.9369201701205054e-9,1.6184600464039074e-9,2.3530169884380885e-9 +ChooseList/0/1500/5000,1.1030175745516498e-6,1.1025158339548858e-6,1.1035784589715698e-6,1.7968026793932223e-9,1.4595797866425435e-9,2.1991816681623658e-9 +ChooseList/0/3000/100,1.099279746985439e-6,1.0987421020527109e-6,1.099814049196592e-6,1.886064794587569e-9,1.6226782786825755e-9,2.2717049872132314e-9 +ChooseList/0/3000/500,1.0999411889467596e-6,1.0991394468973735e-6,1.100967206553097e-6,2.9512727007148523e-9,2.403092128389677e-9,3.3913627931323042e-9 +ChooseList/0/3000/1500,1.0999933340734151e-6,1.09950025867636e-6,1.1005133494116202e-6,1.7042006074197118e-9,1.4068980161775879e-9,2.102786852999859e-9 +ChooseList/0/3000/3000,1.0989271947857157e-6,1.0982868464327462e-6,1.0996409882177688e-6,2.1994275623903204e-9,1.8661924293464645e-9,2.6113028830796193e-9 +ChooseList/0/3000/5000,1.099465366929992e-6,1.0988625464732693e-6,1.1000360754385358e-6,2.0412908645202002e-9,1.679311535078848e-9,2.462193549455435e-9 +ChooseList/0/5000/100,1.0988215669460027e-6,1.0982989750333624e-6,1.0993548553728214e-6,1.9335277433463384e-9,1.5325638528210634e-9,2.4647097631520913e-9 +ChooseList/0/5000/500,1.1000599632978701e-6,1.09969673674214e-6,1.1006598993666096e-6,1.534334175570598e-9,1.031737215962423e-9,2.627079919699187e-9 +ChooseList/0/5000/1500,1.1003299083139775e-6,1.0998585763288871e-6,1.1008677273497128e-6,1.6640512309821347e-9,1.420409176571841e-9,1.968536190855023e-9 +ChooseList/0/5000/3000,1.1001153496762084e-6,1.0997348906728378e-6,1.1005838921707486e-6,1.4166129800325384e-9,1.2438919287620254e-9,1.6625523308088967e-9 +ChooseList/0/5000/5000,1.10092275622633e-6,1.1004603458648998e-6,1.1014054751110187e-6,1.6065700273321338e-9,1.3460325726351845e-9,1.9511235856117103e-9 +ChooseList/0/100/100,1.101778787808311e-6,1.1013063347409716e-6,1.1022024675966119e-6,1.5041129208083898e-9,1.2165767545353427e-9,2.1391677369184503e-9 +ChooseList/0/100/500,1.103173295127905e-6,1.1022455852750696e-6,1.1041910555616174e-6,3.2533267370637784e-9,2.7798984371676144e-9,3.752467336220845e-9 +ChooseList/0/100/1500,1.1020082245601454e-6,1.1015573858309388e-6,1.1024405153742868e-6,1.5499097923267701e-9,1.3065623980549274e-9,1.8310370261749906e-9 +ChooseList/0/100/3000,1.0991176935188317e-6,1.0985229281037085e-6,1.0997167073525048e-6,1.8928769560528065e-9,1.572072781880615e-9,2.3038601292776615e-9 +ChooseList/0/100/5000,1.1007638261156399e-6,1.1003183079878326e-6,1.1011729660997776e-6,1.4565428309237597e-9,1.25668699558748e-9,1.7132924445450195e-9 +ChooseList/0/500/100,1.0986168150109382e-6,1.098065408204593e-6,1.099196035369708e-6,1.911651885264781e-9,1.5974084044582343e-9,2.3417514174180225e-9 +ChooseList/0/500/500,1.0986637210302907e-6,1.0980042655302088e-6,1.0993555123301254e-6,2.240884030192108e-9,1.9085729532287745e-9,2.625450190392459e-9 +ChooseList/0/500/1500,1.1006074150201012e-6,1.100073550391974e-6,1.1010619847662399e-6,1.6840996621084868e-9,1.4060317100873219e-9,2.223246590102647e-9 +ChooseList/0/500/3000,1.0951349939643793e-6,1.0944224244094749e-6,1.0958071580423373e-6,2.287978219019931e-9,1.966556292446488e-9,2.637387947144267e-9 +ChooseList/0/500/5000,1.0976956991706512e-6,1.0971343195616448e-6,1.0982627995817441e-6,1.834563207744504e-9,1.5263131615868293e-9,2.265055289835383e-9 +ChooseList/0/1500/100,1.100981021755695e-6,1.1003183278469582e-6,1.1017647361445116e-6,2.426600577068181e-9,2.052108264976257e-9,2.884854836271444e-9 +ChooseList/0/1500/500,1.0970378192421065e-6,1.0964033502938917e-6,1.0977248116514776e-6,2.1410267155170267e-9,1.812748295013527e-9,2.593580406708704e-9 +ChooseList/0/1500/1500,1.1002314351981416e-6,1.0996333147115504e-6,1.1008265234777809e-6,1.9853497647153345e-9,1.660935248397376e-9,2.409757284746181e-9 +ChooseList/0/1500/3000,1.097269398048663e-6,1.0967881506217821e-6,1.0977680495199627e-6,1.6620581009956272e-9,1.4171416339359586e-9,2.065421893237471e-9 +ChooseList/0/1500/5000,1.1003196151363596e-6,1.0995121922683197e-6,1.101288065866664e-6,2.9974881709326e-9,2.489150922746198e-9,3.5356382209587478e-9 +ChooseList/0/3000/100,1.0975657190524059e-6,1.0969502491323642e-6,1.0982194520232919e-6,2.1042864344932397e-9,1.8391717459942572e-9,2.4793772630966854e-9 +ChooseList/0/3000/500,1.099904808502217e-6,1.0993383888793565e-6,1.1004808717414232e-6,1.9193825442492824e-9,1.6162207060666767e-9,2.2784803889357565e-9 +ChooseList/0/3000/1500,1.0987697994275907e-6,1.0978856278432236e-6,1.0994981868571014e-6,2.784036699352738e-9,2.386056500099894e-9,3.4234097903760962e-9 +ChooseList/0/3000/3000,1.0972589917376556e-6,1.0964078141658782e-6,1.0982201948330858e-6,3.006567237245696e-9,2.539211026492653e-9,3.6073990060838425e-9 +ChooseList/0/3000/5000,1.0995352906736943e-6,1.0990272913661929e-6,1.1000283178301797e-6,1.6653760400010022e-9,1.4066398867445446e-9,1.9644064958541434e-9 +ChooseList/0/5000/100,1.0982618375885607e-6,1.0977606770008336e-6,1.0987047963432351e-6,1.6438361003590261e-9,1.3681231647464445e-9,1.9916229053771826e-9 +ChooseList/0/5000/500,1.0991452261480153e-6,1.0983555782225388e-6,1.1000366838739275e-6,2.8127199938562287e-9,2.4448204720046045e-9,3.3581002266820836e-9 +ChooseList/0/5000/1500,1.0970608667074391e-6,1.0964553452988554e-6,1.0975436258922751e-6,1.7866053571231695e-9,1.4796433253701661e-9,2.2030490336364483e-9 +ChooseList/0/5000/3000,1.0981967746355388e-6,1.0976855226912306e-6,1.0987535431340617e-6,1.8909623477397904e-9,1.6337632820701809e-9,2.1849070098540694e-9 +ChooseList/0/5000/5000,1.0996246728174969e-6,1.0990710963767526e-6,1.1002084229881735e-6,1.9846021992242397e-9,1.664024802933084e-9,2.3840384265121878e-9 +ChooseList/0/100/100,1.0970073968656225e-6,1.096494301826656e-6,1.0975201259052348e-6,1.6648467783834922e-9,1.4216125623389709e-9,2.0085997130924962e-9 +ChooseList/0/100/500,1.098637080945825e-6,1.0979211145902048e-6,1.0992358618912076e-6,2.1693834026742667e-9,1.7854556735686066e-9,2.8751347453380238e-9 +ChooseList/0/100/1500,1.0999535808365524e-6,1.0994788880410276e-6,1.1004097239164658e-6,1.6077234298837926e-9,1.352752482451029e-9,1.9357999068114236e-9 +ChooseList/0/100/3000,1.097261131520445e-6,1.096710685919188e-6,1.0978803283214694e-6,1.946751891658996e-9,1.6773272120014816e-9,2.3384093213289875e-9 +ChooseList/0/100/5000,1.1011368729920683e-6,1.1007997235433529e-6,1.1014650706939278e-6,1.1383981968862318e-9,9.56028716971134e-10,1.3775691620167187e-9 +ChooseList/0/500/100,1.101138783191423e-6,1.1002538294705052e-6,1.102502102844488e-6,3.6033850357200965e-9,2.8765567486532615e-9,4.419585047344709e-9 +ChooseList/0/500/500,1.0982543002192364e-6,1.0976996877176213e-6,1.0987866185489618e-6,1.828626457387607e-9,1.4796785550725494e-9,2.6359738022661795e-9 +ChooseList/0/500/1500,1.1017952382767389e-6,1.101085777373695e-6,1.1024265017359538e-6,2.1771086329249913e-9,1.8468252376418518e-9,2.6245119009697583e-9 +ChooseList/0/500/3000,1.1014887999025637e-6,1.100991798647795e-6,1.1019115763571585e-6,1.5768577180970404e-9,1.2993904156623284e-9,1.8815748423854514e-9 +ChooseList/0/500/5000,1.104508204688401e-6,1.1034955400463882e-6,1.1054170559919406e-6,3.232695210325194e-9,2.848478999090366e-9,3.961535819144944e-9 +ChooseList/0/1500/100,1.1016783452672225e-6,1.1010624352280377e-6,1.1023313193596513e-6,2.1471230629358058e-9,1.8233575040894315e-9,2.521467661737001e-9 +ChooseList/0/1500/500,1.0983191893192664e-6,1.09734501859172e-6,1.0992008665845116e-6,2.999659951125401e-9,2.5387891647241547e-9,3.7332160728575e-9 +ChooseList/0/1500/1500,1.0982057480731043e-6,1.097593735985208e-6,1.0988683152860931e-6,2.117097683133654e-9,1.8258633709696373e-9,2.4615962337516233e-9 +ChooseList/0/1500/3000,1.0990695268806758e-6,1.0984090885349812e-6,1.0996939842921686e-6,2.061048984235786e-9,1.7601018398094898e-9,2.4749039215705466e-9 +ChooseList/0/1500/5000,1.1012938782468612e-6,1.1009011185052938e-6,1.1017014529324115e-6,1.3495407190454129e-9,1.0887301820439633e-9,1.681629148479213e-9 +ChooseList/0/3000/100,1.098849427127151e-6,1.098400850796976e-6,1.0992341447572311e-6,1.3874272936151473e-9,1.178611142660904e-9,1.7180745643091985e-9 +ChooseList/0/3000/500,1.0989880219205906e-6,1.0984333187096439e-6,1.0995280677581217e-6,1.7782415690906982e-9,1.4855056415245108e-9,2.1376333629490485e-9 +ChooseList/0/3000/1500,1.1037795177956736e-6,1.10327944718886e-6,1.104281303478689e-6,1.7398902183807142e-9,1.464942196460352e-9,2.1306008547714006e-9 +ChooseList/0/3000/3000,1.101066397925626e-6,1.1003177900274128e-6,1.1018612461917355e-6,2.489165143210066e-9,2.065239276893804e-9,3.0404978883217567e-9 +ChooseList/0/3000/5000,1.095171559614583e-6,1.0947448316504616e-6,1.0956175834705519e-6,1.5293599491504278e-9,1.2876600023871331e-9,1.9007331022095306e-9 +ChooseList/0/5000/100,1.09795015945212e-6,1.097234623383905e-6,1.0986185815865082e-6,2.260961450479272e-9,1.9414879826734235e-9,2.703044510175529e-9 +ChooseList/0/5000/500,1.0971779918078318e-6,1.0965660345770624e-6,1.0978233816261796e-6,2.0821702977849987e-9,1.7527911947908269e-9,2.536228469918017e-9 +ChooseList/0/5000/1500,1.0992922767214412e-6,1.0989899860786981e-6,1.099675646158884e-6,1.1485000549147378e-9,9.220677346176924e-10,1.4879868769921369e-9 +ChooseList/0/5000/3000,1.0965318901549635e-6,1.095773936874057e-6,1.0972575596351294e-6,2.4685330417774588e-9,1.9999934905050503e-9,3.0807612279218108e-9 +ChooseList/0/5000/5000,1.0990930897276723e-6,1.098591746426058e-6,1.0997193356669726e-6,1.8825910786068257e-9,1.4984259398078853e-9,2.555663261762081e-9 +ChooseList/0/100/100,1.0954867205335965e-6,1.0949234967790401e-6,1.0962164071378225e-6,2.0968775519167015e-9,1.7680237581723416e-9,2.764217815456531e-9 +ChooseList/0/100/500,1.0989983229852292e-6,1.0978921133772382e-6,1.1005942588781161e-6,4.568112268202604e-9,3.401465018091523e-9,5.789636321792061e-9 +ChooseList/0/100/1500,1.1020302792285407e-6,1.1016100619115732e-6,1.1024609993327593e-6,1.4765155128984943e-9,1.2587735070103804e-9,1.7605423895444105e-9 +ChooseList/0/100/3000,1.1025863170759323e-6,1.1019969714915744e-6,1.1032052508174347e-6,2.002587747004002e-9,1.7371259702308665e-9,2.454116925790192e-9 +ChooseList/0/100/5000,1.102503898560456e-6,1.1019824732825025e-6,1.1029631657021911e-6,1.7430152976411994e-9,1.4018543724525182e-9,2.1816316722473164e-9 +ChooseList/0/500/100,1.1036692690214654e-6,1.1032903144343544e-6,1.1040390464327804e-6,1.2590999537257217e-9,1.0836801099264347e-9,1.5108918140521146e-9 +ChooseList/0/500/500,1.0989494730306827e-6,1.0981804697090675e-6,1.0998394253984094e-6,2.6784172087910546e-9,2.2716304952087595e-9,3.197613627502495e-9 +ChooseList/0/500/1500,1.1022805510813697e-6,1.1016939143762073e-6,1.102924996976659e-6,2.118018072617328e-9,1.8243737189323975e-9,2.574401087549378e-9 +ChooseList/0/500/3000,1.1007086605178145e-6,1.1000783055688832e-6,1.1012512253834609e-6,1.918155082537377e-9,1.6147894284541216e-9,2.275649930911311e-9 +ChooseList/0/500/5000,1.1015611741563e-6,1.1009040947386385e-6,1.1021635586423101e-6,2.0110604167992896e-9,1.7008550310416477e-9,2.3870066896685094e-9 +ChooseList/0/1500/100,1.0999838827749918e-6,1.0991040271121305e-6,1.100801208948551e-6,2.8431690759373e-9,2.474899756215425e-9,3.3163424401412674e-9 +ChooseList/0/1500/500,1.099201686026793e-6,1.0986035172514698e-6,1.0998090447392866e-6,1.988307793498336e-9,1.6625056371905107e-9,2.4824924012747777e-9 +ChooseList/0/1500/1500,1.097422330355942e-6,1.09698807000772e-6,1.0979010046268172e-6,1.48769216246929e-9,1.2811198152454707e-9,1.8569361539653616e-9 +ChooseList/0/1500/3000,1.096977790822767e-6,1.096385194110333e-6,1.0976935366241423e-6,2.2267409988648088e-9,1.7732848466797435e-9,2.7157526703170107e-9 +ChooseList/0/1500/5000,1.0995281279327377e-6,1.0990088671597937e-6,1.1001187400576714e-6,1.8449795726349794e-9,1.3891249525381586e-9,2.447461580052342e-9 +ChooseList/0/3000/100,1.1027744497199808e-6,1.1022411784896557e-6,1.1032717081527308e-6,1.700012738858368e-9,1.383308423748552e-9,2.113790663502143e-9 +ChooseList/0/3000/500,1.100935235343818e-6,1.10015796680786e-6,1.10170308911459e-6,2.565791209716936e-9,2.202213496977989e-9,3.135121668720046e-9 +ChooseList/0/3000/1500,1.1005948835005068e-6,1.1001314002943135e-6,1.1010666820288529e-6,1.5354044562321291e-9,1.2565886561830316e-9,1.9564335801544237e-9 +ChooseList/0/3000/3000,1.0999217049289711e-6,1.099446142702691e-6,1.1003941656664002e-6,1.6448329909101136e-9,1.3814058582516678e-9,2.0183178038953567e-9 +ChooseList/0/3000/5000,1.1004705994345716e-6,1.0998234034218842e-6,1.1012574948157172e-6,2.2911143373490593e-9,1.950666025423611e-9,2.7948333755194514e-9 +ChooseList/0/5000/100,1.1042107179643751e-6,1.1038638225886229e-6,1.104588867542822e-6,1.2334452927120122e-9,9.890461501215122e-10,1.6052809940715715e-9 +ChooseList/0/5000/500,1.0987427554555595e-6,1.098184950134839e-6,1.0992059150496789e-6,1.7561211978515753e-9,1.5007895734437668e-9,2.1183084100175644e-9 +ChooseList/0/5000/1500,1.102143732048551e-6,1.1013459967781164e-6,1.1028741784693492e-6,2.4990608685856727e-9,2.139544007700582e-9,2.9452840030569858e-9 +ChooseList/0/5000/3000,1.0987788335293703e-6,1.0982053933287389e-6,1.099337841618179e-6,1.9644408151272343e-9,1.6509576916986293e-9,2.350983651769698e-9 +ChooseList/0/5000/5000,1.1041350187113627e-6,1.1037174262091562e-6,1.1045473588145194e-6,1.3893814558496026e-9,1.1286637433790643e-9,2.0948921836928537e-9 +ChooseList/0/100/100,1.1005768965480061e-6,1.0997787144736239e-6,1.1017453196556987e-6,3.2123652868471056e-9,2.6417110872061103e-9,3.949288499151308e-9 +ChooseList/0/100/500,1.099672691370889e-6,1.099101212543376e-6,1.1003399642786304e-6,2.115087950215593e-9,1.7070796898666082e-9,2.785341029153726e-9 +ChooseList/0/100/1500,1.101361935162585e-6,1.1010277934850598e-6,1.101745175234746e-6,1.2405881639929555e-9,1.0838297873264034e-9,1.463323509156652e-9 +ChooseList/0/100/3000,1.1018758772185756e-6,1.1013944688035507e-6,1.1024446733209077e-6,1.7616639700067405e-9,1.452271635270946e-9,2.252389261686865e-9 +ChooseList/0/100/5000,1.0994539815664735e-6,1.0988555702841539e-6,1.1000016268859423e-6,1.9411967227380507e-9,1.6006505937636943e-9,2.4521522817424658e-9 +ChooseList/0/500/100,1.0985114401538188e-6,1.097596604855408e-6,1.0993360896472716e-6,2.7601018495058814e-9,2.3529674106166005e-9,3.3221160454773607e-9 +ChooseList/0/500/500,1.1016386741522165e-6,1.1011058412879186e-6,1.1021534268724088e-6,1.8093626630865086e-9,1.4953840563549564e-9,2.3296092866596885e-9 +ChooseList/0/500/1500,1.0996977424008936e-6,1.0991065668116154e-6,1.1002156671600721e-6,1.8045816848548814e-9,1.5709474090166259e-9,2.0449982767405883e-9 +ChooseList/0/500/3000,1.098065006850714e-6,1.097540872664112e-6,1.0986077277177682e-6,1.7807475226040748e-9,1.4935797698592167e-9,2.1207394244641355e-9 +ChooseList/0/500/5000,1.0989731567976484e-6,1.098372335023786e-6,1.0994657677739349e-6,1.7886446616713619e-9,1.4015426300310236e-9,2.3324527943100804e-9 +ChooseList/0/1500/100,1.0994071033645971e-6,1.0986578941767215e-6,1.100040115157728e-6,2.2000090949513845e-9,1.8336411031015764e-9,2.725576674852418e-9 +ChooseList/0/1500/500,1.0994209363112627e-6,1.099086367476747e-6,1.0997712940541848e-6,1.1422207581154893e-9,9.835405923678916e-10,1.3384418546244305e-9 +ChooseList/0/1500/1500,1.0999304904222352e-6,1.0994577787647788e-6,1.1003127644570075e-6,1.363201830417896e-9,1.0756783262663796e-9,1.801341934608333e-9 +ChooseList/0/1500/3000,1.1055286712087589e-6,1.1047193050523092e-6,1.1062414894461887e-6,2.6215473436770673e-9,2.1448356117919196e-9,3.830249072087701e-9 +ChooseList/0/1500/5000,1.0995786591031587e-6,1.0990590146098215e-6,1.1000871059412005e-6,1.6985929197907814e-9,1.413828529127149e-9,2.144258185912231e-9 +ChooseList/0/3000/100,1.0969626017218874e-6,1.0966422826776423e-6,1.097351395951984e-6,1.156878779508079e-9,9.450802598692274e-10,1.5229965424964089e-9 +ChooseList/0/3000/500,1.0977522944593412e-6,1.0972343977330268e-6,1.0983349992097145e-6,1.910476076557046e-9,1.639863977465027e-9,2.207264642852723e-9 +ChooseList/0/3000/1500,1.0984721824293411e-6,1.0979966790320551e-6,1.0989137680151235e-6,1.5024227624806226e-9,1.1913747053661093e-9,2.109226743211896e-9 +ChooseList/0/3000/3000,1.0980594336736076e-6,1.0966972565141236e-6,1.1018039753719526e-6,6.6377612915954385e-9,3.167111398550634e-9,1.2853139144378198e-8 +ChooseList/0/3000/5000,1.100038487186339e-6,1.0994245580352793e-6,1.1006430532929877e-6,1.9831575069172996e-9,1.6610647822524799e-9,2.3529717267123757e-9 +ChooseList/0/5000/100,1.1019129940417893e-6,1.1015824731916467e-6,1.102215434938877e-6,1.1113188936604833e-9,9.538539402777717e-10,1.3906394982862498e-9 +ChooseList/0/5000/500,1.1019822464744843e-6,1.101519372002006e-6,1.1025286121570476e-6,1.670178591760326e-9,1.4564411853701218e-9,1.9549596068326123e-9 +ChooseList/0/5000/1500,1.100350085145753e-6,1.10005031993076e-6,1.1006279516571806e-6,9.74757464527908e-10,7.823014258418703e-10,1.2315037435791312e-9 +ChooseList/0/5000/3000,1.100146085862556e-6,1.0995461903798581e-6,1.1007766798266522e-6,2.019742717398996e-9,1.7605589924009124e-9,2.2978682381948087e-9 +ChooseList/0/5000/5000,1.0987953675840898e-6,1.0983324736390638e-6,1.0992186848381124e-6,1.455670536363267e-9,1.240106721995987e-9,1.8121015152815667e-9 +ChooseList/1/100/100,1.1003814583690622e-6,1.099788473397836e-6,1.1009213156317528e-6,1.9400843661762493e-9,1.6304869344185482e-9,2.380014930699402e-9 +ChooseList/1/100/500,1.09970953260138e-6,1.0992275291916105e-6,1.1001711279908221e-6,1.5084754610948079e-9,1.2964242118519198e-9,1.7831689182168952e-9 +ChooseList/1/100/1500,1.103922852340312e-6,1.103043628243871e-6,1.104793220372058e-6,2.9108908525580465e-9,2.536301267680634e-9,3.3637815502934488e-9 +ChooseList/1/100/3000,1.1011375850691058e-6,1.1005403565958444e-6,1.101729978116978e-6,1.9797891459052413e-9,1.7078240357729387e-9,2.347855442001652e-9 +ChooseList/1/100/5000,1.1023765001594547e-6,1.1019125868557969e-6,1.1028341225615015e-6,1.507295773298632e-9,1.284003187923946e-9,1.9268128131199613e-9 +ChooseList/1/500/100,1.1013768492078154e-6,1.1007092283381486e-6,1.1020749690196356e-6,2.321087632393377e-9,1.9323002601289773e-9,2.77988084048546e-9 +ChooseList/1/500/500,1.103923921198895e-6,1.103273776411193e-6,1.1045938366216905e-6,2.2092633860059624e-9,1.7897877211265702e-9,2.8320264702371994e-9 +ChooseList/1/500/1500,1.1014582636305117e-6,1.100990732906031e-6,1.101938190394842e-6,1.6286518655446278e-9,1.377489241287998e-9,2.0614348668561263e-9 +ChooseList/1/500/3000,1.1006551266792264e-6,1.100062104213342e-6,1.101400787959802e-6,2.256300288489867e-9,1.879421330170493e-9,2.878100272188586e-9 +ChooseList/1/500/5000,1.102667432373219e-6,1.101808626536667e-6,1.1033938513112174e-6,2.5300465892702272e-9,2.2104020383769196e-9,2.9103078063864177e-9 +ChooseList/1/1500/100,1.1002317499835316e-6,1.0997825242950702e-6,1.1007349011307683e-6,1.6045197117557313e-9,1.3791463708968215e-9,1.9136494981423316e-9 +ChooseList/1/1500/500,1.1021571149740395e-6,1.1018226140521142e-6,1.1024495744231758e-6,1.094736060774563e-9,9.103937747185736e-10,1.3314043228169416e-9 +ChooseList/1/1500/1500,1.1031521163484768e-6,1.1025693537420791e-6,1.1037223738787605e-6,2.014915272091617e-9,1.7227128446264956e-9,2.3534664912989006e-9 +ChooseList/1/1500/3000,1.1006691130655788e-6,1.1000888722542633e-6,1.1012800290204783e-6,2.0219152860844255e-9,1.6911636014222522e-9,2.6461721606179964e-9 +ChooseList/1/1500/5000,1.100576764400571e-6,1.1000286322256567e-6,1.1010910444338272e-6,1.771407194597106e-9,1.4497696495416426e-9,2.2594630906056198e-9 +ChooseList/1/3000/100,1.0998329752109577e-6,1.0993174507495848e-6,1.1004023910867018e-6,1.8937141395569032e-9,1.5196223663725543e-9,2.3278170147937673e-9 +ChooseList/1/3000/500,1.1008417380369202e-6,1.1003013738108923e-6,1.101395199968152e-6,1.7608344735624976e-9,1.5119979938671137e-9,2.0967919248224957e-9 +ChooseList/1/3000/1500,1.1000804490621053e-6,1.0996439557720529e-6,1.1006293858002664e-6,1.5791226183820208e-9,1.3176839460282405e-9,2.103774031553425e-9 +ChooseList/1/3000/3000,1.1010925582717729e-6,1.100656628193896e-6,1.1015868957134755e-6,1.555958292778871e-9,1.333276906334558e-9,1.9501744617843433e-9 +ChooseList/1/3000/5000,1.1014840575829703e-6,1.100856918423791e-6,1.102170838898209e-6,2.1096078894391137e-9,1.7159861896402786e-9,2.5549340611891816e-9 +ChooseList/1/5000/100,1.1016658875307523e-6,1.1012577489072294e-6,1.101991821061558e-6,1.264049435617502e-9,1.0493240526745997e-9,1.5440742232745318e-9 +ChooseList/1/5000/500,1.0999485321090177e-6,1.099313402429789e-6,1.1005763634843767e-6,2.1210022881518842e-9,1.858329312921356e-9,2.4596200850052366e-9 +ChooseList/1/5000/1500,1.1005397664711662e-6,1.0996243832922324e-6,1.1014237208687477e-6,2.9607330994321737e-9,2.5414096256421805e-9,3.51377687033306e-9 +ChooseList/1/5000/3000,1.1036859039979102e-6,1.1032444485437638e-6,1.1041191155169691e-6,1.4304330292964269e-9,1.2046284202729282e-9,1.7418097866920488e-9 +ChooseList/1/5000/5000,1.102009626079203e-6,1.1014919824060294e-6,1.1024939962984276e-6,1.734108199209921e-9,1.4130076258034444e-9,2.1727678284199645e-9 +ChooseList/2/100/100,1.1004074573217532e-6,1.0997048391883766e-6,1.1010516555442824e-6,2.16442338263951e-9,1.764249502155672e-9,2.6000071390892614e-9 +ChooseList/2/100/500,1.1026149454635074e-6,1.1019812986547977e-6,1.1033320168343274e-6,2.2183408401420356e-9,1.9086993205276078e-9,2.6900538067328414e-9 +ChooseList/2/100/1500,1.1020428045634919e-6,1.101732813453749e-6,1.1023064222696182e-6,9.45388005063459e-10,7.797500650498057e-10,1.1670869801266175e-9 +ChooseList/2/100/3000,1.1027595072365818e-6,1.1022777579915583e-6,1.1032467799865707e-6,1.5404116260279584e-9,1.2884423182521179e-9,1.898536333800006e-9 +ChooseList/2/100/5000,1.104432422592858e-6,1.1035555838747276e-6,1.1052456223375635e-6,2.931368752415198e-9,2.3959674831981754e-9,3.785456818746172e-9 +ChooseList/2/500/100,1.103494255123977e-6,1.1029336017254294e-6,1.1040647653676156e-6,1.8644443409082014e-9,1.5394945660441602e-9,2.4613524903099563e-9 +ChooseList/2/500/500,1.1019674798694127e-6,1.1012373601597182e-6,1.1026428665396035e-6,2.457128154201367e-9,2.0563374766123214e-9,2.9762106902608063e-9 +ChooseList/2/500/1500,1.1028762665156787e-6,1.1023874914496628e-6,1.1033838494921379e-6,1.6155224041619164e-9,1.3192389354510204e-9,2.070438089146962e-9 +ChooseList/2/500/3000,1.0993884009516621e-6,1.098894498561601e-6,1.0999241190111215e-6,1.7020321248770394e-9,1.384050866631706e-9,2.1744202800885584e-9 +ChooseList/2/500/5000,1.1018154630437216e-6,1.101343604695489e-6,1.102443198131164e-6,1.7459580514592699e-9,1.4334998374326195e-9,2.393893164978015e-9 +ChooseList/2/1500/100,1.1025462608312156e-6,1.102070924927326e-6,1.1029281401131662e-6,1.4700256974356067e-9,1.2013745727958505e-9,1.904018247140487e-9 +ChooseList/2/1500/500,1.10088251689488e-6,1.1005254742635483e-6,1.101317875146946e-6,1.3036093614733589e-9,1.0804464160028322e-9,1.593419455741573e-9 +ChooseList/2/1500/1500,1.1067288611652255e-6,1.1061805684174336e-6,1.107203804822935e-6,1.6805127109782636e-9,1.4061760443582452e-9,2.0545709684643936e-9 +ChooseList/2/1500/3000,1.1048578092587514e-6,1.1043233147581494e-6,1.1054637155805236e-6,1.9114198456401977e-9,1.5584631079688872e-9,2.65183479721827e-9 +ChooseList/2/1500/5000,1.1016473921160928e-6,1.1012424941927965e-6,1.1020278348367097e-6,1.3302047824365267e-9,1.0729677322713843e-9,1.7024339371123996e-9 +ChooseList/2/3000/100,1.0990717633358186e-6,1.0987063091319966e-6,1.0994487579952895e-6,1.2379257970179417e-9,1.0106378798092358e-9,1.5059216626143654e-9 +ChooseList/2/3000/500,1.100538115686937e-6,1.100099641590668e-6,1.1009782574061632e-6,1.488479496735699e-9,1.1886543122333262e-9,1.8568875366285485e-9 +ChooseList/2/3000/1500,1.1049960905868547e-6,1.1044308744535298e-6,1.1055224785893688e-6,1.874881266455131e-9,1.5638859139066556e-9,2.3856178450079303e-9 +ChooseList/2/3000/3000,1.1021152883233288e-6,1.1015071010572177e-6,1.1025843267081095e-6,1.7986784988482418e-9,1.4642422588083496e-9,2.362847878050145e-9 +ChooseList/2/3000/5000,1.1030816496535908e-6,1.1021025550658353e-6,1.104034117303113e-6,3.059093351102138e-9,2.6710539981997918e-9,3.604935239961218e-9 +ChooseList/2/5000/100,1.1047664073755496e-6,1.1040882013307753e-6,1.1053334145708758e-6,1.9699848196257275e-9,1.6871192170435333e-9,2.344719137808865e-9 +ChooseList/2/5000/500,1.1009792563527975e-6,1.1005546080725841e-6,1.1013201723192815e-6,1.3157367448525432e-9,1.054180411355173e-9,1.7241099247973138e-9 +ChooseList/2/5000/1500,1.1013879251196225e-6,1.1007799870219526e-6,1.1019923753745423e-6,1.9158344145696997e-9,1.5910400411921375e-9,2.3500780045125473e-9 +ChooseList/2/5000/3000,1.1020921835495458e-6,1.1017651625248786e-6,1.102428039877576e-6,1.1588915940325065e-9,9.94543468467092e-10,1.3566871232833743e-9 +ChooseList/2/5000/5000,1.1041408164129196e-6,1.103337697727221e-6,1.1052003280095881e-6,3.1719355898437697e-9,2.3521130536536284e-9,4.90038996337201e-9 +ChooseList/3/100/100,1.1017815299806342e-6,1.1012853479993289e-6,1.102208850282089e-6,1.53433370881401e-9,1.2640148990133871e-9,1.9427440654880672e-9 +ChooseList/3/100/500,1.101053667238928e-6,1.1003745497885754e-6,1.1016751553413216e-6,2.1635423426738616e-9,1.855085281673518e-9,2.592882085194481e-9 +ChooseList/3/100/1500,1.1073898912411323e-6,1.106193433812747e-6,1.1085453711705992e-6,4.044984601161066e-9,3.6291937228839937e-9,4.51654220665018e-9 +ChooseList/3/100/3000,1.1028465912394392e-6,1.102211636837751e-6,1.1034026773283752e-6,2.0810220362132407e-9,1.7995473973512296e-9,2.441248741004352e-9 +ChooseList/3/100/5000,1.100095877488109e-6,1.0996028841775848e-6,1.1006416092125027e-6,1.7814752297444918e-9,1.4034347002215455e-9,2.6557213709540433e-9 +ChooseList/3/500/100,1.1057329128395283e-6,1.1048177367809595e-6,1.10654034365684e-6,2.848199734371783e-9,2.4852744927703557e-9,3.298731590097429e-9 +ChooseList/3/500/500,1.1042251768617256e-6,1.1038434447778564e-6,1.104598856601813e-6,1.2383429975070493e-9,1.029935697655759e-9,1.5876031641808775e-9 +ChooseList/3/500/1500,1.1039374566812447e-6,1.1030149256459015e-6,1.1052036516347134e-6,3.637026620595899e-9,2.510891529635054e-9,5.393491194844636e-9 +ChooseList/3/500/3000,1.104471280161039e-6,1.1041057274210087e-6,1.1048310783323942e-6,1.2198929466094133e-9,1.0558340502234917e-9,1.4377251306867443e-9 +ChooseList/3/500/5000,1.1101609681674328e-6,1.1096191565736863e-6,1.1106921343555515e-6,1.7946146999311684e-9,1.3840536673570916e-9,2.423445335210342e-9 +ChooseList/3/1500/100,1.1034880011212995e-6,1.102727159006187e-6,1.104337792632509e-6,2.638209981156581e-9,2.2208939116477e-9,3.1633561451147434e-9 +ChooseList/3/1500/500,1.1010808602364837e-6,1.1003571112412763e-6,1.1017830037371228e-6,2.2913733465034814e-9,1.961845024489198e-9,2.7069554092108188e-9 +ChooseList/3/1500/1500,1.1018461703876075e-6,1.1010670360783253e-6,1.1026857528379382e-6,2.697595847585681e-9,2.319126818603389e-9,3.1189804573130356e-9 +ChooseList/3/1500/3000,1.1010087295788315e-6,1.1002209095840008e-6,1.1017766926124086e-6,2.5684403978791023e-9,2.2201471672235137e-9,3.021335206208595e-9 +ChooseList/3/1500/5000,1.1011106509173242e-6,1.1006301238634457e-6,1.1015663754902191e-6,1.6747741311012075e-9,1.4019339676731906e-9,2.1385838381420564e-9 +ChooseList/3/3000/100,1.102181851315388e-6,1.1018054623905441e-6,1.1026360489177777e-6,1.3462877911691263e-9,1.1069375812656096e-9,1.7309004930830361e-9 +ChooseList/3/3000/500,1.1014930299303782e-6,1.1008370421327153e-6,1.1021275390009904e-6,2.0951482741329845e-9,1.7537825648144697e-9,2.518583866885784e-9 +ChooseList/3/3000/1500,1.1069529401460038e-6,1.1062254510728296e-6,1.1077757096515247e-6,2.5636254005823405e-9,2.1536210279302465e-9,2.987728359445802e-9 +ChooseList/3/3000/3000,1.1021891465821169e-6,1.101519365486587e-6,1.1028958306597626e-6,2.449481574132938e-9,2.0352990305405843e-9,3.113370761379904e-9 +ChooseList/3/3000/5000,1.1022663887590593e-6,1.1017796185294671e-6,1.1027733501240416e-6,1.646426888550053e-9,1.3099044572969138e-9,2.0819412508535995e-9 +ChooseList/3/5000/100,1.1022799490544922e-6,1.1017095852477772e-6,1.1027720641212036e-6,1.768279698635951e-9,1.4115380050863688e-9,2.2364722910013434e-9 +ChooseList/3/5000/500,1.1044223738851944e-6,1.1040026402159747e-6,1.1048649735802607e-6,1.4155481789668718e-9,1.1876391074950275e-9,1.6934717729374145e-9 +ChooseList/3/5000/1500,1.1049669210765415e-6,1.1044126378917173e-6,1.105564782574572e-6,1.9732150150705765e-9,1.7052671094458084e-9,2.3293154058023107e-9 +ChooseList/3/5000/3000,1.1009282704735068e-6,1.1004921705772318e-6,1.1014708859662851e-6,1.5895764756945365e-9,1.195599383811744e-9,2.2170381984991617e-9 +ChooseList/3/5000/5000,1.0997802763114174e-6,1.0990476326551937e-6,1.1003713278709777e-6,2.161990506964878e-9,1.7946787074817569e-9,2.5646743415172026e-9 +ChooseList/0/100/100,1.1004623485128608e-6,1.1000162289287331e-6,1.1009042996239911e-6,1.3972013213287918e-9,1.0963163403810809e-9,1.93933164284088e-9 +ChooseList/0/100/500,1.0985222092612304e-6,1.0979339790850612e-6,1.099103601588747e-6,1.943379608342967e-9,1.6052335596640418e-9,2.5505193746671336e-9 +ChooseList/0/100/1500,1.106389099175221e-6,1.1044022968781996e-6,1.1082239984845774e-6,6.0599115867736104e-9,5.657421927713044e-9,6.509359966208857e-9 +ChooseList/0/100/3000,1.099110286187642e-6,1.0985437119443223e-6,1.099675975781573e-6,1.969662246990501e-9,1.656872406982571e-9,2.3744116591183618e-9 +ChooseList/0/100/5000,1.1009078521170121e-6,1.1004891938430934e-6,1.1013136953839558e-6,1.4192495533949886e-9,1.191389944012675e-9,1.7284856417383768e-9 +ChooseList/0/500/100,1.1029028227187872e-6,1.1024094567225522e-6,1.1035482008634485e-6,1.8228266176223591e-9,1.5176492258317057e-9,2.205914326603125e-9 +ChooseList/0/500/500,1.1022060546379176e-6,1.1011190148820561e-6,1.1033408579548714e-6,3.6501259611351394e-9,2.918727884952145e-9,4.475291950831421e-9 +ChooseList/0/500/1500,1.0982623058910334e-6,1.0976582277425608e-6,1.0987945621959966e-6,1.912310103617979e-9,1.6638467103833135e-9,2.3165959877481457e-9 +ChooseList/0/500/3000,1.1007098711600249e-6,1.1002470853781745e-6,1.1011817976676831e-6,1.5467196413414932e-9,1.2931490136172145e-9,1.895070925569624e-9 +ChooseList/0/500/5000,1.102736557881735e-6,1.1021695224279132e-6,1.1033058707473816e-6,2.048200857726562e-9,1.7039909686728468e-9,2.5109878855577495e-9 +ChooseList/0/1500/100,1.0988279020826526e-6,1.0982910739502956e-6,1.0995188875353134e-6,2.0093634486057516e-9,1.5612180272167532e-9,2.7949496143140214e-9 +ChooseList/0/1500/500,1.1005171147601226e-6,1.0999355176767141e-6,1.101305131156873e-6,2.2755700409558486e-9,1.6205453160810823e-9,3.1536199510010313e-9 +ChooseList/0/1500/1500,1.1012661124200945e-6,1.100777824745193e-6,1.101816883899583e-6,1.7190110164692125e-9,1.481789928441087e-9,2.041583084864872e-9 +ChooseList/0/1500/3000,1.0994294892516572e-6,1.0989855690572698e-6,1.0998652800244046e-6,1.4244125731591615e-9,1.2070475822844301e-9,1.724616483926966e-9 +ChooseList/0/1500/5000,1.1009962761418373e-6,1.1005881560576242e-6,1.1013456724788394e-6,1.2524697124088555e-9,1.0100916013296391e-9,1.6259699156655564e-9 +ChooseList/0/3000/100,1.1009971620056808e-6,1.1002439049302729e-6,1.101734285826583e-6,2.552449447896838e-9,2.0677891863321028e-9,3.203891073330209e-9 +ChooseList/0/3000/500,1.1026661312881213e-6,1.1023649405497529e-6,1.1030215882996206e-6,1.0479222738218205e-9,8.981407027389117e-10,1.2656292128024924e-9 +ChooseList/0/3000/1500,1.0990436383800822e-6,1.0987172337166258e-6,1.0993779522245697e-6,1.1240569698140203e-9,9.756638950478532e-10,1.3522875290687868e-9 +ChooseList/0/3000/3000,1.0994115841434542e-6,1.0987638581800995e-6,1.1000366975316257e-6,2.1312378002377994e-9,1.7108671820568724e-9,2.6564376573036967e-9 +ChooseList/0/3000/5000,1.1031269717106782e-6,1.1025467163776967e-6,1.1036968091437564e-6,1.94446690576076e-9,1.6941026089632158e-9,2.3540792641367375e-9 +ChooseList/0/5000/100,1.100478650283505e-6,1.0999694796986832e-6,1.1012562450137577e-6,2.0379625456011584e-9,1.5491764642709092e-9,3.2307623606190312e-9 +ChooseList/0/5000/500,1.099727401264002e-6,1.0992726136561486e-6,1.1001971217448258e-6,1.5174693031580328e-9,1.269597229191159e-9,1.7763261317755166e-9 +ChooseList/0/5000/1500,1.1022444834731756e-6,1.101694701732051e-6,1.1028584251138422e-6,1.9400223905758854e-9,1.6198384822609199e-9,2.3319473573381764e-9 +ChooseList/0/5000/3000,1.1016728970708266e-6,1.1009736879380819e-6,1.1025920525609823e-6,2.707971631568368e-9,2.21654721602568e-9,3.2841112824258226e-9 +ChooseList/0/5000/5000,1.0999185405756184e-6,1.099365817221635e-6,1.1004769980059357e-6,1.7680234956089332e-9,1.459795382819126e-9,2.1166378188342366e-9 +ChooseList/0/100/100,1.101555257150048e-6,1.1009856566275699e-6,1.1020998088122272e-6,1.9123963197073434e-9,1.4586730145313993e-9,2.6687190312763383e-9 +ChooseList/0/100/500,1.1049412924798838e-6,1.1044032153657275e-6,1.1054868342699864e-6,1.968091008549622e-9,1.703104902315085e-9,2.6211349448845107e-9 +ChooseList/0/100/1500,1.103819529840979e-6,1.1034466712541856e-6,1.1041989539735196e-6,1.2270035083320142e-9,1.0757638171225497e-9,1.4701500459256817e-9 +ChooseList/0/100/3000,1.097077408530114e-6,1.0964333193575856e-6,1.0979799905270444e-6,2.4968905194789328e-9,1.969147878083259e-9,3.5778063436263308e-9 +ChooseList/0/100/5000,1.0970630064455892e-6,1.0964030539138892e-6,1.0977058751373677e-6,2.189791640509858e-9,1.905572802649963e-9,2.5829089177074585e-9 +ChooseList/0/500/100,1.1008745738979181e-6,1.1004400335614155e-6,1.1014580244272758e-6,1.6238836251607916e-9,1.2886788640944444e-9,2.1577111979664624e-9 +ChooseList/0/500/500,1.0987481678067952e-6,1.0981215950110434e-6,1.0994337939852756e-6,2.1100272800742087e-9,1.7576193920128027e-9,2.6982164144660753e-9 +ChooseList/0/500/1500,1.1015219571451815e-6,1.1009826274262383e-6,1.102104123714155e-6,1.909757718169218e-9,1.5524532401839463e-9,2.554379653357617e-9 +ChooseList/0/500/3000,1.1027532928466855e-6,1.1021539762965512e-6,1.1033690036590062e-6,2.093065079722619e-9,1.7332325435099825e-9,2.5227599090619026e-9 +ChooseList/0/500/5000,1.1034448712234989e-6,1.1030191145732405e-6,1.1038762413387164e-6,1.3967681575908553e-9,1.1969977134019848e-9,1.679400229960907e-9 +ChooseList/0/1500/100,1.1048716533655222e-6,1.1045098004513285e-6,1.1052484811694782e-6,1.2235138271770947e-9,1.018449019238467e-9,1.4772612345177435e-9 +ChooseList/0/1500/500,1.1058695456927023e-6,1.1054640024125653e-6,1.106268127913324e-6,1.4255736163780655e-9,1.166190251885599e-9,1.7837879315542149e-9 +ChooseList/0/1500/1500,1.1038560652411034e-6,1.10315356804581e-6,1.104375024689548e-6,2.0602963160598324e-9,1.7412119490980442e-9,2.5330750924355555e-9 +ChooseList/0/1500/3000,1.1026339613076647e-6,1.1020406945860676e-6,1.1033060552092255e-6,2.1063780840866147e-9,1.6688267740425274e-9,2.761147271135899e-9 +ChooseList/0/1500/5000,1.100607173948745e-6,1.1000235649161284e-6,1.1011971969023697e-6,1.9132320174153116e-9,1.6467893577118756e-9,2.194851572156063e-9 +ChooseList/0/3000/100,1.1026425108185386e-6,1.1020981668028484e-6,1.103151453791521e-6,1.8029079087748212e-9,1.5222773115924561e-9,2.1391914184100613e-9 +ChooseList/0/3000/500,1.100617975579438e-6,1.100145814502808e-6,1.101156885136705e-6,1.6610883254262114e-9,1.4132064339454802e-9,2.0223565599040214e-9 +ChooseList/0/3000/1500,1.1017227307571035e-6,1.1010021620656458e-6,1.1024654810553117e-6,2.4245076039579926e-9,2.0769468289734388e-9,2.8151969308978307e-9 +ChooseList/0/3000/3000,1.1030817836646915e-6,1.1024916219624353e-6,1.1036859413129307e-6,2.080668100119278e-9,1.7721053197878458e-9,2.5301002602675116e-9 +ChooseList/0/3000/5000,1.1041159917826549e-6,1.1032105340427326e-6,1.1049103305956823e-6,2.817606903970463e-9,2.3427647159973043e-9,3.4809525792884096e-9 +ChooseList/0/5000/100,1.1022789399116473e-6,1.1012324254657584e-6,1.1032509030871438e-6,3.4186042317081426e-9,3.0017732768307723e-9,3.990722154555163e-9 +ChooseList/0/5000/500,1.1004136601171551e-6,1.0997463767515257e-6,1.1010243212588295e-6,2.13197003899529e-9,1.8388254431762328e-9,2.4548270681973942e-9 +ChooseList/0/5000/1500,1.098877277437173e-6,1.0981120811208005e-6,1.0995815316122492e-6,2.3742330912075215e-9,1.978511599466893e-9,2.8721404609376187e-9 +ChooseList/0/5000/3000,1.1044404103855315e-6,1.1037718761580093e-6,1.1051464295248682e-6,2.428528822578492e-9,2.060437707158647e-9,3.0217325667174505e-9 +ChooseList/0/5000/5000,1.1025364603269055e-6,1.1019979497404075e-6,1.1030679415957527e-6,1.8670296971661067e-9,1.5678673796019688e-9,2.249592439515806e-9 +ChooseList/0/100/100,1.1027938408263617e-6,1.102320057911859e-6,1.1032662230966857e-6,1.620018842675555e-9,1.3747148445683568e-9,2.0195129245971844e-9 +ChooseList/0/100/500,1.1022386841464685e-6,1.1015522840686972e-6,1.1028760382374224e-6,2.1732167235127262e-9,1.8708062850442095e-9,2.661525961894448e-9 +ChooseList/0/100/1500,1.1017777550988573e-6,1.101235581149818e-6,1.1022477204159767e-6,1.6404667778776081e-9,1.3869571718194606e-9,1.943139561556815e-9 +ChooseList/0/100/3000,1.101551788991874e-6,1.100931567436594e-6,1.102221783992363e-6,2.206367982690862e-9,1.8866714541669845e-9,2.6615988591437616e-9 +ChooseList/0/100/5000,1.1009757791355365e-6,1.1000118212870576e-6,1.1023518843279737e-6,3.763147938945648e-9,2.504893338684628e-9,5.061965414440076e-9 +ChooseList/0/500/100,1.1006569620071244e-6,1.1002868583591192e-6,1.1010345584198263e-6,1.2759740093215297e-9,1.039746137695123e-9,1.6338986446477238e-9 +ChooseList/0/500/500,1.101269138576428e-6,1.1007787017593058e-6,1.1018022858196769e-6,1.716513617324673e-9,1.456358353154859e-9,2.11656889029562e-9 +ChooseList/0/500/1500,1.102932599723346e-6,1.102486233526599e-6,1.1034443531196146e-6,1.5673639632876807e-9,1.3153022076073533e-9,1.950349324216243e-9 +ChooseList/0/500/3000,1.1002624272850861e-6,1.0996458120410989e-6,1.1008222169068822e-6,1.9313727403264004e-9,1.5777237438689672e-9,2.522377820504557e-9 +ChooseList/0/500/5000,1.1017763052622326e-6,1.1013820079355405e-6,1.1022004462208502e-6,1.372216268730569e-9,1.198487080430656e-9,1.6384274425173307e-9 +ChooseList/0/1500/100,1.1061881384931253e-6,1.1056793580287353e-6,1.1066985674216887e-6,1.741813093838356e-9,1.4324890446913579e-9,2.103216402594236e-9 +ChooseList/0/1500/500,1.1025654649973592e-6,1.1023063525497807e-6,1.1028321260534862e-6,8.881014918069055e-10,7.206514964458144e-10,1.0869294549701897e-9 +ChooseList/0/1500/1500,1.1027080801455013e-6,1.1019332373225474e-6,1.103350746373964e-6,2.3932799009242567e-9,1.8122816249545907e-9,3.084930310056309e-9 +ChooseList/0/1500/3000,1.1048129095390119e-6,1.1044581321709428e-6,1.1051770283336695e-6,1.1954226968314996e-9,9.832328164404643e-10,1.4915287099065676e-9 +ChooseList/0/1500/5000,1.1021670754341106e-6,1.1015749449157387e-6,1.1026303302995322e-6,1.8291552933061913e-9,1.589927112588952e-9,2.1472265761100114e-9 +ChooseList/0/3000/100,1.105331033854085e-6,1.1048823119000516e-6,1.1057466168361295e-6,1.4154498084157863e-9,1.1962882044147798e-9,1.8146330601066426e-9 +ChooseList/0/3000/500,1.104984791364629e-6,1.1044684796497538e-6,1.1054735803858982e-6,1.6527702199797333e-9,1.3735208559460967e-9,2.117244015587666e-9 +ChooseList/0/3000/1500,1.1038038779607159e-6,1.1034938567947412e-6,1.1041102933533859e-6,1.0374404443334909e-9,8.76467889199758e-10,1.2635764875940668e-9 +ChooseList/0/3000/3000,1.1057716807555996e-6,1.1044484677359127e-6,1.1069783251453525e-6,4.318440711406722e-9,3.895707877297011e-9,4.798166795280675e-9 +ChooseList/0/3000/5000,1.1023046367769294e-6,1.1017019928701163e-6,1.102837112484887e-6,1.8978896960329173e-9,1.6466235571796336e-9,2.142387300814236e-9 +ChooseList/0/5000/100,1.10241993705178e-6,1.1018633397640018e-6,1.1028369925615957e-6,1.5844462469911364e-9,1.2007882848247178e-9,2.178877163119952e-9 +ChooseList/0/5000/500,1.1038658448125821e-6,1.1035117382406246e-6,1.104195698345779e-6,1.1410639810523805e-9,9.197794538144565e-10,1.5314998435738825e-9 +ChooseList/0/5000/1500,1.1017091776995329e-6,1.1009647284155218e-6,1.1025661812510346e-6,2.7365625148931155e-9,2.102459830433068e-9,4.1561443455447935e-9 +ChooseList/0/5000/3000,1.1023831040167695e-6,1.1018936532925738e-6,1.1029411342294036e-6,1.7764349716452397e-9,1.4829271821977256e-9,2.219965447765733e-9 +ChooseList/0/5000/5000,1.1047996947980748e-6,1.104546031536348e-6,1.1050726602624038e-6,8.857832021175428e-10,7.451762006655346e-10,1.2802698116321336e-9 +ChooseList/0/100/100,1.1045741492106576e-6,1.1040656189206936e-6,1.1051456174005909e-6,1.890617734513315e-9,1.614163670164656e-9,2.2423826812591776e-9 +ChooseList/0/100/500,1.100823110156276e-6,1.1003121987107664e-6,1.1013541017278065e-6,1.7842203640990687e-9,1.533217280531683e-9,2.225170942594321e-9 +ChooseList/0/100/1500,1.1051748872773009e-6,1.1045160192237437e-6,1.1057707681718504e-6,2.1242566879158277e-9,1.8076660953193787e-9,2.752668360801179e-9 +ChooseList/0/100/3000,1.10175272490411e-6,1.1012986368680867e-6,1.1022418429120941e-6,1.6308611195560256e-9,1.3889463274765927e-9,2.020168418451899e-9 +ChooseList/0/100/5000,1.1019538143811582e-6,1.1015281576744984e-6,1.1023550515169075e-6,1.4177564001165117e-9,1.256840599921696e-9,1.640969649933518e-9 +ChooseList/0/500/100,1.1047946231898515e-6,1.1041337757360978e-6,1.1053093746676552e-6,2.0145891646725056e-9,1.603342351856184e-9,2.6883759292442353e-9 +ChooseList/0/500/500,1.1008910784167903e-6,1.100298152762554e-6,1.1015198986424003e-6,2.047561910219396e-9,1.688973580993011e-9,2.579806480153219e-9 +ChooseList/0/500/1500,1.10441900268033e-6,1.1036651569815385e-6,1.105247026361724e-6,2.552248053034624e-9,2.232421248503665e-9,3.047058896257242e-9 +ChooseList/0/500/3000,1.1023158448269605e-6,1.1018451696496783e-6,1.102873153988985e-6,1.7338593887883266e-9,1.3728823460862583e-9,2.306744651745186e-9 +ChooseList/0/500/5000,1.102324480599184e-6,1.1018661458066611e-6,1.1029792478968532e-6,1.8392345767056475e-9,1.3684433332221895e-9,2.8648700376070356e-9 +ChooseList/0/1500/100,1.0995580939761525e-6,1.099030364631258e-6,1.1001553302593374e-6,1.9224831772070464e-9,1.6030551380137236e-9,2.3181708808988375e-9 +ChooseList/0/1500/500,1.1034987015945205e-6,1.1027771099307413e-6,1.1041064692230998e-6,2.078506462833526e-9,1.7685142584851195e-9,2.3861983941635586e-9 +ChooseList/0/1500/1500,1.1034849579639994e-6,1.1028853327381284e-6,1.1041096631617769e-6,2.0618713609912125e-9,1.7088686125596762e-9,2.568312296693586e-9 +ChooseList/0/1500/3000,1.1001356255521145e-6,1.099663259766764e-6,1.1007107611819804e-6,1.7614704841115585e-9,1.545301567198135e-9,2.078305891531356e-9 +ChooseList/0/1500/5000,1.100232740591819e-6,1.0998048155198652e-6,1.100617382241595e-6,1.3309542681844852e-9,1.0934969110711948e-9,1.611709241351242e-9 +ChooseList/0/3000/100,1.1034513469727212e-6,1.1028605131650434e-6,1.104091973494118e-6,1.945986906877058e-9,1.6644897721344592e-9,2.2858470351989027e-9 +ChooseList/0/3000/500,1.0982010398373045e-6,1.0977110000051978e-6,1.0986767409205978e-6,1.6175822801006322e-9,1.3991402195134903e-9,1.963056803946022e-9 +ChooseList/0/3000/1500,1.1023514591331337e-6,1.1019393234482763e-6,1.1027609235488628e-6,1.3871062180418868e-9,1.1462569371243103e-9,1.7300136562179775e-9 +ChooseList/0/3000/3000,1.1031881591555826e-6,1.1027599529962378e-6,1.1036079856666399e-6,1.456956374996528e-9,1.2306576604376485e-9,1.895261741393676e-9 +ChooseList/0/3000/5000,1.1009314059550007e-6,1.1004220910138842e-6,1.101499769075153e-6,1.7772265030323999e-9,1.5462309604621107e-9,2.1137944787766736e-9 +ChooseList/0/5000/100,1.0999851547288797e-6,1.0995409034925432e-6,1.1005281613841738e-6,1.6057021520861903e-9,1.1746285018717607e-9,2.740969322696194e-9 +ChooseList/0/5000/500,1.1012713281562788e-6,1.1007821261320754e-6,1.101770789770877e-6,1.6711228003988768e-9,1.3723832615357543e-9,2.0767518520589734e-9 +ChooseList/0/5000/1500,1.1011339774963505e-6,1.100334067710918e-6,1.101950834176669e-6,2.6779982313366927e-9,2.3531361520857e-9,3.226600693264748e-9 +ChooseList/0/5000/3000,1.1033508024377273e-6,1.1023561687357928e-6,1.1043048225021517e-6,3.0484382634651534e-9,2.5954464250534572e-9,3.5210591271336317e-9 +ChooseList/0/5000/5000,1.1009617600709747e-6,1.1001609891776577e-6,1.1016399900848195e-6,2.4207819041648194e-9,1.9607358460468136e-9,3.1808972580203035e-9 +ChooseList/0/100/100,1.0993962679395697e-6,1.0986048655505093e-6,1.100136281378823e-6,2.5673402658115454e-9,2.216203669664228e-9,3.148936442113864e-9 +ChooseList/0/100/500,1.0975843103378202e-6,1.0967243192953318e-6,1.0985076324564717e-6,2.9496715275406764e-9,2.6028536553261666e-9,3.462747899036186e-9 +ChooseList/0/100/1500,1.1010351416638953e-6,1.100062764038443e-6,1.101836724716162e-6,2.7780665480146808e-9,2.119842887717879e-9,3.4322757165674945e-9 +ChooseList/0/100/3000,1.1030015615576714e-6,1.1021738268740738e-6,1.1045540606845235e-6,3.7252820854713836e-9,2.216294960169384e-9,5.652552844786003e-9 +ChooseList/0/100/5000,1.1003443205864089e-6,1.09959521997237e-6,1.1010219760713164e-6,2.3670132869748177e-9,1.9335639950849413e-9,2.875440990723425e-9 +ChooseList/0/500/100,1.0985942022916617e-6,1.0981773868394853e-6,1.0991081954170534e-6,1.5619299041558892e-9,1.2745275963770296e-9,1.917845118531021e-9 +ChooseList/0/500/500,1.1020537255762979e-6,1.1015340275754941e-6,1.1025572285217669e-6,1.694983337469387e-9,1.4949948077018674e-9,1.9549056665982422e-9 +ChooseList/0/500/1500,1.1020997764121913e-6,1.1014928741593419e-6,1.1026059963637392e-6,1.7954508065285253e-9,1.4951082511781359e-9,2.2038212929725506e-9 +ChooseList/0/500/3000,1.1048446555104888e-6,1.1041471901972139e-6,1.1056847686452577e-6,2.7328985026789877e-9,2.347702660179562e-9,3.21049034012929e-9 +ChooseList/0/500/5000,1.102290116136823e-6,1.101593559267279e-6,1.102962597419634e-6,2.2874486493272077e-9,1.8537410451428905e-9,2.9329191125780418e-9 +ChooseList/0/1500/100,1.1014359194002164e-6,1.1009795621721134e-6,1.1019060642189438e-6,1.6105091046728785e-9,1.4260564788293775e-9,1.9171305549358427e-9 +ChooseList/0/1500/500,1.105306020213903e-6,1.1048734567076372e-6,1.1057605419690082e-6,1.4726259689177112e-9,1.2737686322816683e-9,1.828263633354541e-9 +ChooseList/0/1500/1500,1.102642047795328e-6,1.1021307103653853e-6,1.1031027795499504e-6,1.6489811631728732e-9,1.3595925471387854e-9,2.089056970567806e-9 +ChooseList/0/1500/3000,1.102159504998648e-6,1.101560233030804e-6,1.1027765565473454e-6,2.247977544048286e-9,1.9964450782451385e-9,2.5794936579876523e-9 +ChooseList/0/1500/5000,1.1058136017403716e-6,1.1045196009651048e-6,1.1072338149352783e-6,4.737323338952318e-9,4.0410245863520096e-9,5.4286695355056184e-9 +ChooseList/0/3000/100,1.1000838802758893e-6,1.099538140702176e-6,1.1006772279021968e-6,1.979880011650582e-9,1.669272122378307e-9,2.4667418065574005e-9 +ChooseList/0/3000/500,1.1039729609065015e-6,1.1035398137826985e-6,1.1044252301437809e-6,1.4834359920514413e-9,1.2314630090625694e-9,1.8391351573343485e-9 +ChooseList/0/3000/1500,1.1002616925420107e-6,1.0998543739496233e-6,1.1007202022532981e-6,1.4609984510602434e-9,1.1848813000769054e-9,1.8454082136102207e-9 +ChooseList/0/3000/3000,1.0989649601151217e-6,1.0985605629056513e-6,1.0993968559334427e-6,1.4605452292656503e-9,1.1948977873794746e-9,1.8604980579690145e-9 +ChooseList/0/3000/5000,1.1035744617755032e-6,1.1031197887350351e-6,1.1042098351025657e-6,1.8004848593115565e-9,1.3228042029670962e-9,2.828690116270376e-9 +ChooseList/0/5000/100,1.0992046829391034e-6,1.0987221243679394e-6,1.0996975928197676e-6,1.66001638515062e-9,1.3972671342193022e-9,1.980199987253538e-9 +ChooseList/0/5000/500,1.1014595400840464e-6,1.100996994019871e-6,1.1019130655396102e-6,1.5078658751323766e-9,1.2954112256373858e-9,1.8434230733255254e-9 +ChooseList/0/5000/1500,1.0983299946788773e-6,1.0978797723656525e-6,1.0988111775326615e-6,1.5730797090712133e-9,1.276120428474919e-9,1.98867386471564e-9 +ChooseList/0/5000/3000,1.1007926106177725e-6,1.1002093381559933e-6,1.1012791980815274e-6,1.77242844756738e-9,1.4444897331427423e-9,2.2737908653781836e-9 +ChooseList/0/5000/5000,1.1005668456775124e-6,1.1000065217520281e-6,1.1011418830078932e-6,1.864936474443505e-9,1.5509021741740436e-9,2.3611163689257968e-9 +ChooseList/0/100/100,1.0987750881897437e-6,1.098283926125238e-6,1.0992140367968247e-6,1.5918807098572195e-9,1.3626210388055186e-9,1.909521494400379e-9 +ChooseList/0/100/500,1.100627849627244e-6,1.0997493368831242e-6,1.1014904223149145e-6,2.8689876029941867e-9,2.5144200687176663e-9,3.343139899133071e-9 +ChooseList/0/100/1500,1.1044902352524997e-6,1.1040477532652628e-6,1.1050086770391323e-6,1.5983979713787008e-9,1.3126114753403546e-9,1.9536284640220836e-9 +ChooseList/0/100/3000,1.0995094453663423e-6,1.0991383867178622e-6,1.0999008757347686e-6,1.264550177250875e-9,1.0832767534172998e-9,1.5377142539904543e-9 +ChooseList/0/100/5000,1.0984758043852878e-6,1.0980103836363574e-6,1.0990220043398529e-6,1.5184697618279966e-9,1.1885465398267471e-9,2.0507435216897396e-9 +ChooseList/0/500/100,1.1025614176395926e-6,1.1019584818817162e-6,1.1032731210188388e-6,2.2476827554038017e-9,1.8461795772074065e-9,2.7594853442622316e-9 +ChooseList/0/500/500,1.1016456031061058e-6,1.1008745605473044e-6,1.1024111427885275e-6,2.6715400821841526e-9,2.1935249561887565e-9,3.454511137296073e-9 +ChooseList/0/500/1500,1.1044503943155632e-6,1.1039898288869048e-6,1.1049063057820788e-6,1.5011471196700487e-9,1.2668955856411946e-9,1.796670419673758e-9 +ChooseList/0/500/3000,1.1015585444108984e-6,1.101022403603421e-6,1.102144230556487e-6,1.9331039411584243e-9,1.5269513264823627e-9,2.5395783041514196e-9 +ChooseList/0/500/5000,1.0998444535186794e-6,1.0993806634676527e-6,1.1003975191069308e-6,1.7675645155898391e-9,1.5189328121275356e-9,2.0625881397560892e-9 +ChooseList/0/1500/100,1.1031061463770693e-6,1.1025246062454618e-6,1.1036542923670356e-6,1.920406876379084e-9,1.6392166838404653e-9,2.4139381604913533e-9 +ChooseList/0/1500/500,1.1021886367432308e-6,1.1014210771205479e-6,1.1028277274534205e-6,2.3704913518665585e-9,1.9621653505617746e-9,2.848840228305687e-9 +ChooseList/0/1500/1500,1.104471863267596e-6,1.1037515157758956e-6,1.1052156934307341e-6,2.4430686922425967e-9,2.1433707641338242e-9,2.924912702286879e-9 +ChooseList/0/1500/3000,1.0998866315992262e-6,1.099124758949883e-6,1.1007518607746959e-6,2.748083120723466e-9,2.3448198249966864e-9,3.2545761336740444e-9 +ChooseList/0/1500/5000,1.100966676595672e-6,1.1005028496532296e-6,1.1014412116839487e-6,1.6076287737016095e-9,1.3417323506005815e-9,1.9669078252429e-9 +ChooseList/0/3000/100,1.0990785873877149e-6,1.0985973960930936e-6,1.0996487496118728e-6,1.754234327067617e-9,1.4076652398993053e-9,2.2598912793423476e-9 +ChooseList/0/3000/500,1.1042688908102202e-6,1.103478028629529e-6,1.1051620412734132e-6,2.7295490314574368e-9,2.171076273900062e-9,3.853080271104028e-9 +ChooseList/0/3000/1500,1.1007873399515928e-6,1.1003965088148475e-6,1.1012093612081549e-6,1.3986146140016612e-9,1.153936646949832e-9,1.740657609765466e-9 +ChooseList/0/3000/3000,1.103102539735655e-6,1.102469633185124e-6,1.104108195443161e-6,2.601158077246416e-9,1.965148076673236e-9,3.5750285528872373e-9 +ChooseList/0/3000/5000,1.1013217911426364e-6,1.1009234416638603e-6,1.101715579534811e-6,1.3514600345189892e-9,1.1019525113050862e-9,1.6260673272701024e-9 +ChooseList/0/5000/100,1.1003791412855498e-6,1.0999706852800362e-6,1.1007844463917329e-6,1.3493148124258096e-9,1.1274199392856803e-9,1.6122305685229675e-9 +ChooseList/0/5000/500,1.1017969182314588e-6,1.1008666415082627e-6,1.1025027219219338e-6,2.6146139046728714e-9,2.033082784294024e-9,3.4447789257513143e-9 +ChooseList/0/5000/1500,1.103155273176282e-6,1.102464851922586e-6,1.1038602658903408e-6,2.336377601684504e-9,2.0861480021585614e-9,2.652727543538804e-9 +ChooseList/0/5000/3000,1.1008975578647377e-6,1.1001284115155804e-6,1.1016754536620358e-6,2.5984501231494864e-9,2.2792353983557133e-9,2.98904287450462e-9 +ChooseList/0/5000/5000,1.0985228034051365e-6,1.0980974732610525e-6,1.0989326023564783e-6,1.3558490779275247e-9,1.1486298631591272e-9,1.6564534953696473e-9 +ChooseList/0/100/100,1.0996829223128636e-6,1.0992701018754832e-6,1.100167679672923e-6,1.4483571281858889e-9,1.2087586404854227e-9,1.7930795395182827e-9 +ChooseList/0/100/500,1.0990187663859021e-6,1.098429857478077e-6,1.099768501124191e-6,2.2864821553521e-9,1.9037401476418023e-9,2.791916182233412e-9 +ChooseList/0/100/1500,1.0989664738969166e-6,1.0983731375530507e-6,1.0995734820694366e-6,2.046863435171576e-9,1.7560770212024213e-9,2.451547638466644e-9 +ChooseList/0/100/3000,1.0997646107245712e-6,1.0989240909207232e-6,1.100572495511853e-6,2.7767845078952104e-9,2.4087227413154047e-9,3.22285327680808e-9 +ChooseList/0/100/5000,1.1001847008873272e-6,1.0996243260554889e-6,1.1008058191156695e-6,2.022790686509829e-9,1.7205201115229808e-9,2.4494027890827093e-9 +ChooseList/0/500/100,1.1023613363891527e-6,1.101869999055578e-6,1.1028259346111596e-6,1.577112474748055e-9,1.3437739051459365e-9,1.897445385179523e-9 +ChooseList/0/500/500,1.1016810202787858e-6,1.1007008948743931e-6,1.1024903713565555e-6,3.0887854696913606e-9,2.4799981082875283e-9,3.787682299405795e-9 +ChooseList/0/500/1500,1.101935984750635e-6,1.1013284852537573e-6,1.102629273023316e-6,2.1774579069426694e-9,1.781094173244872e-9,2.77964807511034e-9 +ChooseList/0/500/3000,1.0983168237839826e-6,1.0978754111881933e-6,1.0987624276074846e-6,1.5602132984772965e-9,1.2672968554968916e-9,2.0020394834412327e-9 +ChooseList/0/500/5000,1.0962101384129916e-6,1.0951774333367666e-6,1.0972287170695727e-6,3.4037383862195465e-9,2.9464863215473153e-9,3.877430750523157e-9 +ChooseList/0/1500/100,1.0990904249424787e-6,1.0983590547503033e-6,1.0996808877040547e-6,2.267971749282735e-9,1.89924747196243e-9,2.769317535423351e-9 +ChooseList/0/1500/500,1.100164062800125e-6,1.0997864026546631e-6,1.1005503804813668e-6,1.262762772987825e-9,1.0511357489644061e-9,1.5464117810336407e-9 +ChooseList/0/1500/1500,1.102225647850565e-6,1.1016851268104814e-6,1.1027791384185922e-6,1.8313713419134353e-9,1.550816632154718e-9,2.152645361468338e-9 +ChooseList/0/1500/3000,1.1006078649484902e-6,1.099950894213881e-6,1.1012478333808738e-6,2.2281710032806935e-9,1.824056807271715e-9,2.781714409625988e-9 +ChooseList/0/1500/5000,1.0985661113093965e-6,1.0980386902488414e-6,1.09927362039475e-6,1.9963681564093093e-9,1.5353491151977255e-9,2.6254708160112875e-9 +ChooseList/0/3000/100,1.1012616205265746e-6,1.1006271169532187e-6,1.1018995011187504e-6,2.1267014383672132e-9,1.8674168886564587e-9,2.4713659114076837e-9 +ChooseList/0/3000/500,1.1009817400743464e-6,1.1003740544927667e-6,1.1017305108319629e-6,2.0977968292965587e-9,1.818422029628496e-9,2.562062894193492e-9 +ChooseList/0/3000/1500,1.101779148155999e-6,1.101380144778465e-6,1.102170505876611e-6,1.4060832684462325e-9,1.1508725624338925e-9,1.780537102861131e-9 +ChooseList/0/3000/3000,1.101396700899347e-6,1.1011318469884921e-6,1.1017419735517711e-6,1.0281597582868067e-9,8.478572355300351e-10,1.2627190983471584e-9 +ChooseList/0/3000/5000,1.1020719250984093e-6,1.101615613427012e-6,1.102594480654216e-6,1.6315687349611217e-9,1.3617239948788917e-9,2.0484213843632307e-9 +ChooseList/0/5000/100,1.1027061664376172e-6,1.1022355404977045e-6,1.1032149905464862e-6,1.6630081495941954e-9,1.3960328911517121e-9,2.008333347945185e-9 +ChooseList/0/5000/500,1.1001903466100714e-6,1.099507292978544e-6,1.1008055793043632e-6,2.3487234556145984e-9,1.9757280679601127e-9,2.8642753204059176e-9 +ChooseList/0/5000/1500,1.1024659730627064e-6,1.1021236266569602e-6,1.1028136738224412e-6,1.1639454937602434e-9,9.702379061992134e-10,1.4292709900749163e-9 +ChooseList/0/5000/3000,1.1034135795546005e-6,1.1027451735675713e-6,1.1041704223042066e-6,2.415392232633279e-9,1.9708019168019296e-9,3.01860991378024e-9 +ChooseList/0/5000/5000,1.1015148998590175e-6,1.1009017018852054e-6,1.1020421261877266e-6,1.8380092280750972e-9,1.524477757157114e-9,2.242606915831528e-9 +ChooseList/1/100/100,1.102373710167223e-6,1.101862332671852e-6,1.1027414365721824e-6,1.407139068449629e-9,1.144615990666769e-9,1.8245132029935796e-9 +ChooseList/1/100/500,1.1037573660582245e-6,1.1031830983920176e-6,1.104353438334513e-6,1.962973839526857e-9,1.6918219873986704e-9,2.3300339360051613e-9 +ChooseList/1/100/1500,1.1044874590649851e-6,1.1033506018707596e-6,1.105667516338996e-6,3.9209857997470155e-9,3.4293129580651695e-9,4.628523603396686e-9 +ChooseList/1/100/3000,1.1022508916170807e-6,1.101763532832555e-6,1.102664894842491e-6,1.5206748161744458e-9,1.2948016092007705e-9,1.7789238329374027e-9 +ChooseList/1/100/5000,1.102879817861607e-6,1.1022387325769805e-6,1.1033513118437532e-6,1.8864832137925812e-9,1.517810485337569e-9,2.3811512179598226e-9 +ChooseList/1/500/100,1.1025128018589784e-6,1.1020678262018746e-6,1.1029933661315175e-6,1.647026376415521e-9,1.3866465736882116e-9,1.992788131115966e-9 +ChooseList/1/500/500,1.1059736455568573e-6,1.1054819579608932e-6,1.106400847454833e-6,1.5297461924438325e-9,1.2554714221649899e-9,1.9325128577763324e-9 +ChooseList/1/500/1500,1.1043178007333013e-6,1.103984675197321e-6,1.104667545726901e-6,1.1104612395050507e-9,9.481355834319347e-10,1.3688498773999771e-9 +ChooseList/1/500/3000,1.1048235489016916e-6,1.1043266530387032e-6,1.1052807396049975e-6,1.6750459867402765e-9,1.4763753709406788e-9,1.9290227118142067e-9 +ChooseList/1/500/5000,1.1035280467548224e-6,1.1031204617143445e-6,1.1039369522565012e-6,1.4070253944910344e-9,1.190107946942715e-9,1.7052584973710785e-9 +ChooseList/1/1500/100,1.1006838453523183e-6,1.1003280090226307e-6,1.101096048050812e-6,1.2741694785221443e-9,1.0647182430577083e-9,1.5426073998068363e-9 +ChooseList/1/1500/500,1.1060292214300557e-6,1.1053169982123595e-6,1.1067627546574464e-6,2.548489680184565e-9,2.2108932210091065e-9,2.9437088150464505e-9 +ChooseList/1/1500/1500,1.1041427306134866e-6,1.1036328413613378e-6,1.104653362198657e-6,1.7610890860423716e-9,1.5033960142627824e-9,2.225470050894519e-9 +ChooseList/1/1500/3000,1.1033916601331603e-6,1.102888185590826e-6,1.103862293556999e-6,1.6390433497574169e-9,1.3547386497892972e-9,2.0608207355442083e-9 +ChooseList/1/1500/5000,1.100832047875406e-6,1.1002432533939298e-6,1.1013826529783416e-6,1.882278340425385e-9,1.5889382516300338e-9,2.3977263532908395e-9 +ChooseList/1/3000/100,1.1004893446816485e-6,1.0996140381837423e-6,1.1013622748528039e-6,2.7880268996733226e-9,2.3618386900172392e-9,3.3172239702965864e-9 +ChooseList/1/3000/500,1.1003712066039608e-6,1.0996895781282456e-6,1.1010942635063268e-6,2.3715704205339555e-9,1.9457945576791457e-9,2.882391557194324e-9 +ChooseList/1/3000/1500,1.103366739950627e-6,1.1028724947653858e-6,1.1039079465863553e-6,1.7514289686421156e-9,1.375522364388258e-9,2.388615575805094e-9 +ChooseList/1/3000/3000,1.1048231766384183e-6,1.1044073250387028e-6,1.1053184904604964e-6,1.4833956062620134e-9,1.2728170207823498e-9,1.8318821557181905e-9 +ChooseList/1/3000/5000,1.1029012233523955e-6,1.1021290241154242e-6,1.1037465766669521e-6,2.708046422250949e-9,2.143354872188174e-9,3.5572322149837213e-9 +ChooseList/1/5000/100,1.1033820133798962e-6,1.1030291584112071e-6,1.1037533963670779e-6,1.2349991095962295e-9,1.0557311942434952e-9,1.4696645445735536e-9 +ChooseList/1/5000/500,1.101919897633672e-6,1.1014945254326116e-6,1.102312884050252e-6,1.4170600541454316e-9,1.1366376187782508e-9,1.7924904234910586e-9 +ChooseList/1/5000/1500,1.1036239965717923e-6,1.1030676729014395e-6,1.1043435434718535e-6,2.0174063204554995e-9,1.6932655684125639e-9,2.56600512518422e-9 +ChooseList/1/5000/3000,1.104254188200489e-6,1.1038776731332954e-6,1.104664147734592e-6,1.2942750471489765e-9,1.0740191520640716e-9,1.5906744974639811e-9 +ChooseList/1/5000/5000,1.1044577205380647e-6,1.1040642463952847e-6,1.1049486814572003e-6,1.4337954753960325e-9,1.1733050948602831e-9,1.7669772941132716e-9 +ChooseList/500/100/100,1.1014654274554822e-6,1.101127450030483e-6,1.1019132033325775e-6,1.272165447593733e-9,1.0788334718957046e-9,1.6701095152798e-9 +ChooseList/500/100/500,1.1039566667159144e-6,1.1034822557959831e-6,1.1044851568134355e-6,1.7012142118512297e-9,1.4697632843917666e-9,2.0674254746277158e-9 +ChooseList/500/100/1500,1.104059611753106e-6,1.1036829548447709e-6,1.1044808647188091e-6,1.3263066416978145e-9,1.1451362468323227e-9,1.5800000819353413e-9 +ChooseList/500/100/3000,1.1040070947541903e-6,1.103387564231002e-6,1.10459318610609e-6,2.0289044522978516e-9,1.7523133239880158e-9,2.429361846615553e-9 +ChooseList/500/100/5000,1.101505869209542e-6,1.101060919719541e-6,1.101969546600142e-6,1.5061961469283004e-9,1.2873968047386435e-9,1.828218470625436e-9 +ChooseList/500/500/100,1.1011467268901272e-6,1.1006461861524205e-6,1.101651386670771e-6,1.7007947292584572e-9,1.5041378868110722e-9,1.9463275815516765e-9 +ChooseList/500/500/500,1.1016374472130404e-6,1.1013135374057519e-6,1.1019734013101502e-6,1.1267005003674421e-9,9.14916819551421e-10,1.463594344748199e-9 +ChooseList/500/500/1500,1.1009929840182287e-6,1.1005674261645953e-6,1.1014403392115986e-6,1.5092346513843976e-9,1.2584325465785065e-9,1.806345111134364e-9 +ChooseList/500/500/3000,1.1016047470855708e-6,1.1006774901871667e-6,1.1032310939033195e-6,4.109284507363126e-9,2.786054792585917e-9,6.370814239856228e-9 +ChooseList/500/500/5000,1.1027964069855636e-6,1.1021844795198575e-6,1.1034106887802852e-6,2.0536048618775413e-9,1.7568034502613653e-9,2.417145231866853e-9 +ChooseList/500/1500/100,1.1069590108955249e-6,1.1061978788338834e-6,1.1078884579089809e-6,2.924478972718804e-9,2.5498062955662796e-9,3.486639513636346e-9 +ChooseList/500/1500/500,1.1023547507634914e-6,1.1019516050219145e-6,1.1028312399155086e-6,1.4178372362599073e-9,1.130368958506087e-9,1.9497505174711542e-9 +ChooseList/500/1500/1500,1.1016183731649404e-6,1.1011638925328308e-6,1.102069430166773e-6,1.4702231661612756e-9,1.2763114206023006e-9,1.7654444857828422e-9 +ChooseList/500/1500/3000,1.1010056382183524e-6,1.1005302600570656e-6,1.1015597877092705e-6,1.739088300752366e-9,1.51899482230248e-9,2.127330651185518e-9 +ChooseList/500/1500/5000,1.1053948818761247e-6,1.1047028047556065e-6,1.1061401246527068e-6,2.329062030541184e-9,1.9867132571026284e-9,2.7171847147713097e-9 +ChooseList/500/3000/100,1.1018363356817213e-6,1.1011717166506747e-6,1.1024319600875717e-6,2.0301093954825036e-9,1.682589010313516e-9,2.432205905026467e-9 +ChooseList/500/3000/500,1.1030165354321128e-6,1.1024907770765632e-6,1.103461807804709e-6,1.4645211563077712e-9,1.2265890125449452e-9,1.8939586508733744e-9 +ChooseList/500/3000/1500,1.1000336236108907e-6,1.0994538136031282e-6,1.100702441662868e-6,2.0736871229641042e-9,1.7473377985606727e-9,2.5564495026154095e-9 +ChooseList/500/3000/3000,1.1021749900776462e-6,1.1016634626066357e-6,1.1027225807739935e-6,1.7875751213313459e-9,1.5500360684201343e-9,2.081793501956169e-9 +ChooseList/500/3000/5000,1.0998986985065907e-6,1.0992801406194076e-6,1.100648444061838e-6,2.162472351242279e-9,1.917222207954923e-9,2.537179914415375e-9 +ChooseList/500/5000/100,1.1100996157681555e-6,1.1095273093172037e-6,1.1106191222211003e-6,1.8301732818355364e-9,1.557238116414151e-9,2.205744538406366e-9 +ChooseList/500/5000/500,1.100153677159525e-6,1.0995513371623497e-6,1.1008281191890763e-6,2.2288169850768267e-9,1.918967645421222e-9,2.7284888582492187e-9 +ChooseList/500/5000/1500,1.1032453309653088e-6,1.102880459921773e-6,1.1036722499324748e-6,1.3828593048791812e-9,1.1331264618454364e-9,1.7982448216495402e-9 +ChooseList/500/5000/3000,1.102326537934283e-6,1.1018655567755273e-6,1.1028031810536706e-6,1.6777181204751656e-9,1.4101743229611533e-9,2.0317146360673052e-9 +ChooseList/500/5000/5000,1.1022277561126544e-6,1.1014120244748155e-6,1.1030195666101935e-6,2.6759311078233194e-9,2.2751812912536246e-9,3.0074998482461266e-9 +ChooseList/1000/100/100,1.1030052265569894e-6,1.1023792580150634e-6,1.1035889318622013e-6,1.923976687019008e-9,1.6342559599762687e-9,2.519256412731781e-9 +ChooseList/1000/100/500,1.1072420582460422e-6,1.1060503639436548e-6,1.1084598524955273e-6,3.85981077817926e-9,3.497873442866313e-9,4.3406342164626294e-9 +ChooseList/1000/100/1500,1.0990919797188144e-6,1.0985426219773846e-6,1.099576790182499e-6,1.7588871027714358e-9,1.4688951853178805e-9,2.1341062318714074e-9 +ChooseList/1000/100/3000,1.1037111668246537e-6,1.103408038558713e-6,1.1040639498192369e-6,1.177490804735797e-9,9.405718545268265e-10,1.4720629349089114e-9 +ChooseList/1000/100/5000,1.102298431708882e-6,1.101837041456016e-6,1.1027093919262957e-6,1.4095571946250043e-9,1.077396374899794e-9,1.9234177730287174e-9 +ChooseList/1000/500/100,1.1035144241379913e-6,1.1029287541468475e-6,1.1040333762824682e-6,1.8240411810053197e-9,1.5408503124558118e-9,2.289167580662677e-9 +ChooseList/1000/500/500,1.1026422592158995e-6,1.1022382367616042e-6,1.1030817264860454e-6,1.3909072496783838e-9,1.1547702320942459e-9,1.687222866117016e-9 +ChooseList/1000/500/1500,1.102116509276813e-6,1.1012996503850512e-6,1.1027985778248867e-6,2.5005240625457466e-9,2.0027512711912013e-9,3.083378357408613e-9 +ChooseList/1000/500/3000,1.100762222902094e-6,1.1001919352409965e-6,1.101335350165644e-6,1.9849450261331902e-9,1.6058518462220364e-9,2.6162205089429197e-9 +ChooseList/1000/500/5000,1.1025314674577628e-6,1.102139125511858e-6,1.1029180997253469e-6,1.3232725104271798e-9,1.0817227052951091e-9,1.7773040887516917e-9 +ChooseList/1000/1500/100,1.1034901057146742e-6,1.103040947666897e-6,1.103872592285e-6,1.2694508214005e-9,1.0803928679841034e-9,1.51245119504468e-9 +ChooseList/1000/1500/500,1.1036086663559463e-6,1.1032056723445265e-6,1.1039891820252436e-6,1.2730857970271854e-9,1.0504087708670439e-9,1.6262871569771488e-9 +ChooseList/1000/1500/1500,1.10146728371749e-6,1.1008486679107067e-6,1.1021584493046065e-6,2.1993228185397842e-9,1.897894442742608e-9,2.5678679019194746e-9 +ChooseList/1000/1500/3000,1.1044163945709446e-6,1.104049259308019e-6,1.1047628677260496e-6,1.2064589990360447e-9,9.91402103051006e-10,1.5204067064592192e-9 +ChooseList/1000/1500/5000,1.1029079363956964e-6,1.1024923723265324e-6,1.103346214169412e-6,1.3510611276415085e-9,1.1102439393019405e-9,1.6795391881065874e-9 +ChooseList/1000/3000/100,1.1045624716247735e-6,1.1040832364252994e-6,1.1049133341067305e-6,1.372798565282173e-9,1.0385996065205233e-9,1.9159301333334014e-9 +ChooseList/1000/3000/500,1.1009793205984881e-6,1.0997824169179165e-6,1.1021467439559032e-6,4.000334646377902e-9,3.5030925411440924e-9,4.6556738099636484e-9 +ChooseList/1000/3000/1500,1.104303096392251e-6,1.1037127659256613e-6,1.1051958375222524e-6,2.4545953478868397e-9,1.6745460520493602e-9,3.486311830302662e-9 +ChooseList/1000/3000/3000,1.1055365897083096e-6,1.1044869323121867e-6,1.1067966406744102e-6,3.888151590987471e-9,3.2749433777523394e-9,4.3481280449937075e-9 +ChooseList/1000/3000/5000,1.10134238500885e-6,1.1004867504207483e-6,1.1021242684036637e-6,2.821457731095294e-9,2.451422740813585e-9,3.260404049704524e-9 +ChooseList/1000/5000/100,1.1019021624555898e-6,1.1012523944881034e-6,1.102368867190083e-6,1.9058413094339065e-9,1.3606868524056805e-9,2.9262257230047626e-9 +ChooseList/1000/5000/500,1.101573355823511e-6,1.1008485654959755e-6,1.1023320891383125e-6,2.50529408535497e-9,2.095161877114555e-9,3.0639432603718546e-9 +ChooseList/1000/5000/1500,1.102831066351989e-6,1.1022752046202834e-6,1.1035103374237554e-6,2.046823065964298e-9,1.790761362864408e-9,2.398023689285826e-9 +ChooseList/1000/5000/3000,1.0976525109040884e-6,1.0968067338402275e-6,1.0986152786483932e-6,2.9601448047701136e-9,2.634787363031683e-9,3.423489436090066e-9 +ChooseList/1000/5000/5000,1.1043283140899644e-6,1.1036814203658846e-6,1.1050586460410704e-6,2.3799574089147957e-9,2.009353661309835e-9,3.100609280286057e-9 +MkCons/1,9.081653925551921e-7,9.075363904539978e-7,9.088748437746562e-7,2.308169516239359e-9,1.8422632945949395e-9,3.3280479078404766e-9 +MkCons/2,9.062043843353943e-7,9.057533575522403e-7,9.067355455677078e-7,1.5389895073396488e-9,1.2973588151614017e-9,1.9561459720475497e-9 +MkCons/4,9.073532082079129e-7,9.068405696874559e-7,9.07821685670931e-7,1.6638135108685584e-9,1.3886828433989683e-9,2.1832409590918663e-9 +MkCons/10,9.079175641389618e-7,9.073812359885106e-7,9.084239262946555e-7,1.7237435214759792e-9,1.4150259445688516e-9,2.1798609673854743e-9 +MkCons/15,9.073538546093768e-7,9.069809390857458e-7,9.077632533843527e-7,1.3017062745986562e-9,1.0905147887200104e-9,1.5899411598092695e-9 +MkCons/1,9.102262119681008e-7,9.090147035652786e-7,9.109790296397147e-7,3.0627881589603055e-9,2.3574542008208573e-9,3.85593038310148e-9 +MkCons/2,9.093553992461751e-7,9.089683264211668e-7,9.097242929204487e-7,1.2833328380237332e-9,1.0761447370539348e-9,1.5422786659799689e-9 +MkCons/4,9.11126147881882e-7,9.102362155885216e-7,9.119355144089742e-7,2.9466595910377567e-9,2.579616694554177e-9,3.3343930626197696e-9 +MkCons/10,9.110799585740131e-7,9.106308252606968e-7,9.115151210250819e-7,1.4071139199047907e-9,1.212773105675154e-9,1.6536631962474561e-9 +MkCons/15,9.12753324700673e-7,9.121163637934181e-7,9.134210245691854e-7,2.2366966432013567e-9,1.9205465412946694e-9,2.677739439070484e-9 +MkCons/1,9.107580747651497e-7,9.100971933342324e-7,9.114343187639675e-7,2.2626202621012225e-9,1.7684307461504192e-9,2.938570203036154e-9 +MkCons/2,9.102427963444849e-7,9.094452141718438e-7,9.108664636080229e-7,2.3518823051029614e-9,1.8188446451545872e-9,3.233305343107038e-9 +MkCons/4,9.082812094714033e-7,9.070880509258223e-7,9.094056848189566e-7,3.820616738462743e-9,3.4041740883296705e-9,4.260307092492388e-9 +MkCons/10,9.082977563817965e-7,9.077396393479662e-7,9.088226792305249e-7,1.840867768523464e-9,1.5107339370998547e-9,2.336559317649455e-9 +MkCons/15,9.148848618353703e-7,9.142561333866654e-7,9.155089523253197e-7,2.2131073229768118e-9,1.83887480423184e-9,2.894477904356997e-9 +MkCons/1,9.098102423848444e-7,9.093581705245996e-7,9.10209068089714e-7,1.4223556617199982e-9,1.1840033722631694e-9,1.7456209745799067e-9 +MkCons/2,9.130981751579069e-7,9.121113137263163e-7,9.13959433480742e-7,2.9502918731646747e-9,2.391717503335074e-9,3.794177756777092e-9 +MkCons/4,9.100754991880083e-7,9.097187577530028e-7,9.104065395778966e-7,1.1470031093669054e-9,9.501317612627376e-10,1.405171230797048e-9 +MkCons/10,9.093026453794125e-7,9.087801213533206e-7,9.09750992174117e-7,1.507616258444459e-9,1.2140938242538126e-9,1.8931602020993304e-9 +MkCons/15,9.13568162542965e-7,9.130718689518484e-7,9.140239217015542e-7,1.6047381014859266e-9,1.4230290445675136e-9,1.8070558804843902e-9 +MkCons/1,9.102898899003447e-7,9.09570654629655e-7,9.108416730832693e-7,2.0717227374884656e-9,1.6908446994624548e-9,2.553363837059632e-9 +MkCons/2,9.099977297081857e-7,9.093351168806328e-7,9.105802292584189e-7,2.0118191447846328e-9,1.6686967107332125e-9,2.4867926759517e-9 +MkCons/4,9.116266878050303e-7,9.109210974815439e-7,9.122618323618437e-7,2.2303567523293997e-9,1.9000393535103032e-9,2.655347850384888e-9 +MkCons/10,9.125576277571222e-7,9.120746518646723e-7,9.130517658402311e-7,1.5723329565994099e-9,1.3489914214543513e-9,1.8422606493703146e-9 +MkCons/15,9.129027811760121e-7,9.122144933676137e-7,9.135622319299389e-7,2.1359487132178013e-9,1.7174126540622124e-9,2.673707017743798e-9 +MkCons/1,9.176399302793748e-7,9.171365149495899e-7,9.182138535924862e-7,1.728733699682849e-9,1.4048501403607022e-9,2.2198249258461915e-9 +MkCons/2,9.116047141057013e-7,9.110515379045539e-7,9.120699401493097e-7,1.738572294583442e-9,1.391522921070632e-9,2.1893797348728627e-9 +MkCons/4,9.123263410644174e-7,9.119379813221743e-7,9.127489269467938e-7,1.3600778732098454e-9,1.1275541085937473e-9,1.6622721586353486e-9 +MkCons/10,9.090656013049594e-7,9.08678986499434e-7,9.094785475911127e-7,1.3043979180894808e-9,1.1010459551533964e-9,1.6089449909456084e-9 +MkCons/15,9.170697106286609e-7,9.167313343519115e-7,9.174717022027165e-7,1.2176163002405373e-9,9.052861490897804e-10,1.657890822618139e-9 +MkCons/1,9.128005670545395e-7,9.121261081916148e-7,9.134732422479917e-7,2.26637997866203e-9,1.9480118577088828e-9,2.6558262373326607e-9 +MkCons/2,9.117117876702856e-7,9.112109602657463e-7,9.122573850343125e-7,1.6747905121495622e-9,1.393806811709522e-9,2.0110087640635156e-9 +MkCons/4,9.119036757193009e-7,9.113798072964028e-7,9.124091267286549e-7,1.6684047135007434e-9,1.4097841303392198e-9,2.0120677456930895e-9 +MkCons/10,9.107812071344035e-7,9.104472813824259e-7,9.111025964877658e-7,1.0921672622024438e-9,9.34374884122292e-10,1.3148454834843205e-9 +MkCons/15,9.091051367620281e-7,9.08549980826375e-7,9.096802644940052e-7,1.9754290993526267e-9,1.6229150465051506e-9,2.5665891811786633e-9 +MkCons/1,9.108678449183457e-7,9.104249874622755e-7,9.114483723752676e-7,1.6776487093910521e-9,1.3773376776319595e-9,2.2992680874001205e-9 +MkCons/2,9.155850877847887e-7,9.152456620072436e-7,9.159312506384466e-7,1.1766874492824676e-9,1.001957793743584e-9,1.4268508529463575e-9 +MkCons/4,9.089108868294989e-7,9.08444569635869e-7,9.093554976436012e-7,1.5387849056111473e-9,1.2842583427235316e-9,1.82849895197262e-9 +MkCons/10,9.107186622516465e-7,9.100254412146884e-7,9.112338040366864e-7,1.9584412411210227e-9,1.5281061291608242e-9,2.668227193774736e-9 +MkCons/15,9.079375173403202e-7,9.072610143886006e-7,9.087986873940324e-7,2.5824644520080748e-9,2.045276708499092e-9,3.4617691833344364e-9 +MkCons/1,9.079413698411783e-7,9.074323500536005e-7,9.084571566419875e-7,1.6444500887646627e-9,1.390124143711639e-9,2.0570586183252314e-9 +MkCons/2,9.064474774002351e-7,9.05870843777521e-7,9.070641844713332e-7,1.897667631105367e-9,1.6621278810012426e-9,2.2492751976071096e-9 +MkCons/4,9.077030909842002e-7,9.072711781074111e-7,9.081513697119004e-7,1.477250013461393e-9,1.2368784219823081e-9,1.7647578466276592e-9 +MkCons/10,9.089738439321544e-7,9.084162652412287e-7,9.096970724582571e-7,2.05485136276447e-9,1.6489459124336429e-9,2.845521700543042e-9 +MkCons/15,9.103255120395274e-7,9.097778201762934e-7,9.109600648000903e-7,1.986434663056259e-9,1.7086441711598683e-9,2.3634489920208332e-9 +MkCons/1,9.145631677393003e-7,9.139791156575536e-7,9.15168895472747e-7,2.0149467899585474e-9,1.6251501135474648e-9,2.6466673241115757e-9 +MkCons/2,9.122589608456253e-7,9.116911140730161e-7,9.127893547848043e-7,1.7853295978452373e-9,1.49836806378266e-9,2.213958513046223e-9 +MkCons/4,9.090294160012875e-7,9.08412928282183e-7,9.097098905467722e-7,2.0493072511382574e-9,1.6959209315858554e-9,2.387515969379618e-9 +MkCons/10,9.106552168287596e-7,9.103141272959801e-7,9.11025491432512e-7,1.1417395183260391e-9,9.844671915249642e-10,1.356703011851823e-9 +MkCons/15,9.101990424473109e-7,9.098190686875617e-7,9.106017975090111e-7,1.3403597779722626e-9,1.1368507710489295e-9,1.6356465817754972e-9 +MkCons/1,9.098052722032477e-7,9.090134782973376e-7,9.105497768277223e-7,2.517339477253628e-9,2.119993330635409e-9,2.976186154623908e-9 +MkCons/2,9.127765557379648e-7,9.123724005789959e-7,9.131489682225335e-7,1.2891532055577434e-9,1.0655375968306021e-9,1.6167361501345924e-9 +MkCons/4,9.120723985419522e-7,9.116212553362059e-7,9.126092022374642e-7,1.6436219664943821e-9,1.3934628772378699e-9,1.9877389210509513e-9 +MkCons/10,9.128481882156165e-7,9.124093768499209e-7,9.13276884038312e-7,1.4810645516847e-9,1.2516051471243855e-9,1.8217100141298495e-9 +MkCons/15,9.106872336548266e-7,9.101342155636591e-7,9.112589303229353e-7,1.908137795276718e-9,1.6255164881374263e-9,2.2722853540692124e-9 +MkCons/1,9.100745597225281e-7,9.094792937450654e-7,9.105955599481306e-7,1.8960948188148274e-9,1.5624732766455986e-9,2.408183500874887e-9 +MkCons/5,9.135696609919242e-7,9.130399635883457e-7,9.140153584997044e-7,1.6943351019120262e-9,1.4394570058083233e-9,2.0866244940139517e-9 +MkCons/80,9.118402408309472e-7,9.111850563883208e-7,9.126075215153423e-7,2.350704504081096e-9,1.957967654239359e-9,2.9527906899261725e-9 +MkCons/500,9.129542971157424e-7,9.122969991176874e-7,9.135533216621619e-7,2.0658358735818467e-9,1.744949987918922e-9,2.5600146386000904e-9 +MkCons/1000,9.12770527129316e-7,9.123491074121619e-7,9.131621439878764e-7,1.3782386563097519e-9,1.1445557157112685e-9,1.6861099485380665e-9 +MkCons/5000,9.10367747610778e-7,9.098479391363534e-7,9.108568149660571e-7,1.6619374295951057e-9,1.3357336492718714e-9,2.1794936341514075e-9 +MkCons/5,9.068765370654386e-7,9.064673404566781e-7,9.073694726428028e-7,1.560739958194429e-9,1.2816609159731864e-9,1.8966924174247924e-9 +MkCons/80,9.090679435577855e-7,9.082437240745132e-7,9.098262215800494e-7,2.5662303134037255e-9,2.031505160980659e-9,3.2740819321402294e-9 +MkCons/500,9.094283481005421e-7,9.087724844236984e-7,9.099550356610095e-7,1.8697460610833732e-9,1.579160045145914e-9,2.288570911158085e-9 +MkCons/1000,9.111839534619222e-7,9.10561983827423e-7,9.117171942624084e-7,1.8785193348803904e-9,1.4795252608346225e-9,2.4387657586129306e-9 +MkCons/5000,9.130735712940268e-7,9.125426263205706e-7,9.135385935037818e-7,1.6845302205472312e-9,1.4537761898407128e-9,1.9839033726995367e-9 +MkCons/5,9.110489851677812e-7,9.103117287820753e-7,9.116998646727279e-7,2.245712024361579e-9,1.9682236416862864e-9,2.725760149124471e-9 +MkCons/80,9.117539790235721e-7,9.110363943647814e-7,9.124528199835411e-7,2.4139334700766384e-9,2.101768583093115e-9,3.1940212285233478e-9 +MkCons/500,9.109510490542847e-7,9.10385952590057e-7,9.11348265906276e-7,1.5966827969402597e-9,1.3110404116582101e-9,2.108874918746042e-9 +MkCons/1000,9.125401986299499e-7,9.120739529047629e-7,9.129135091396367e-7,1.4912543987423386e-9,1.2600400986233518e-9,1.9051830560785297e-9 +MkCons/5000,9.142172992408369e-7,9.130106057010614e-7,9.150737669223563e-7,3.3820426817437348e-9,2.7418102569235213e-9,4.521652799644234e-9 +MkCons/5,9.134130368126189e-7,9.130885883423636e-7,9.137669163197169e-7,1.1766507419725483e-9,9.812959575498409e-10,1.5154649968378184e-9 +MkCons/80,9.154669569359402e-7,9.150557242146913e-7,9.159319540754704e-7,1.466921620964109e-9,1.2346250953289456e-9,1.7924715996291419e-9 +MkCons/500,9.108849304204352e-7,9.105586192382039e-7,9.112930556174531e-7,1.3442316413214341e-9,1.1327093958811872e-9,1.658589419282452e-9 +MkCons/1000,9.149654646427304e-7,9.13958362047014e-7,9.158004117540654e-7,3.162847016496866e-9,2.510962019515791e-9,4.0236977949677944e-9 +MkCons/5000,9.070433258136373e-7,9.063655436128554e-7,9.076107540178973e-7,2.0890848201860143e-9,1.8451580306889612e-9,2.4126121824454174e-9 +MkCons/5,9.129992076832701e-7,9.125208395638331e-7,9.134908169606395e-7,1.687399682017776e-9,1.3360822785180772e-9,2.348794241120919e-9 +MkCons/80,9.106586831861811e-7,9.102247916308485e-7,9.111427801387778e-7,1.5884252276662628e-9,1.2516204262896269e-9,2.160922255638139e-9 +MkCons/500,9.103998835819328e-7,9.097929114503953e-7,9.11016523725736e-7,2.112441245603434e-9,1.7882030118305913e-9,2.598670837179701e-9 +MkCons/1000,9.082182506993629e-7,9.077005167097027e-7,9.087213677215077e-7,1.787980773810303e-9,1.436295921575281e-9,2.2943635669658042e-9 +MkCons/5000,9.119987037277062e-7,9.116070425237806e-7,9.124405786290687e-7,1.4076374484611398e-9,1.1054059900112047e-9,1.8248066811805202e-9 +MkCons/5,9.123356588262741e-7,9.118122827836344e-7,9.128400707443443e-7,1.7334855853619555e-9,1.4430023917579552e-9,2.151623315102826e-9 +MkCons/80,9.102894349411487e-7,9.098228010046131e-7,9.109610664487374e-7,1.8651164389243915e-9,1.5780309611172264e-9,2.33209066012862e-9 +MkCons/500,9.132496569603559e-7,9.128094172340169e-7,9.136963905812197e-7,1.5255500687239261e-9,1.3119196993287064e-9,1.8342916336459697e-9 +MkCons/1000,9.09446370085892e-7,9.080883052268595e-7,9.104512155150668e-7,3.8797955245578236e-9,3.122455246931053e-9,4.799977153465353e-9 +MkCons/5000,9.098972572768296e-7,9.095363507416105e-7,9.103203206054793e-7,1.3296495053333166e-9,1.1039948047461195e-9,1.7150432577571487e-9 +MkCons/5,9.036674608181194e-7,9.030685123392051e-7,9.041935876942999e-7,1.908525040527472e-9,1.5844646043908469e-9,2.5604708812433986e-9 +MkCons/80,9.071388387037136e-7,9.06551925603126e-7,9.077562540274415e-7,1.9864268994737047e-9,1.6643325099864071e-9,2.363852661388437e-9 +MkCons/500,9.018227795132783e-7,9.009506687152373e-7,9.026115755590025e-7,2.744664422463688e-9,2.1685446479405137e-9,3.471970835503214e-9 +MkCons/1000,9.082360053731024e-7,9.077105719249279e-7,9.087586630675091e-7,1.7882644716835676e-9,1.5224802710625797e-9,2.2082420219409406e-9 +MkCons/5000,9.109521621048463e-7,9.105301297140914e-7,9.113794024117043e-7,1.368834389908109e-9,1.156954939651482e-9,1.6642645621219253e-9 +MkCons/5,9.074147980508498e-7,9.065969877476431e-7,9.08193479565079e-7,2.7468454089158077e-9,2.315260647496274e-9,3.3112606385291963e-9 +MkCons/80,9.097210531705478e-7,9.090762128018467e-7,9.101683361059556e-7,1.910160301980346e-9,1.5725018007193025e-9,2.3742169267751287e-9 +MkCons/500,9.091111196449451e-7,9.086762139922667e-7,9.095147365202774e-7,1.4513949482601e-9,1.193042319709268e-9,1.800757459078034e-9 +MkCons/1000,9.091820384400046e-7,9.085552451577627e-7,9.097953641872541e-7,2.1127904848755e-9,1.869409144091658e-9,2.492558452300924e-9 +MkCons/5000,9.112016315935619e-7,9.108196936263421e-7,9.116163148128945e-7,1.3821805996676776e-9,1.1071818072084775e-9,1.9209057188445764e-9 +MkCons/5,9.118962721836127e-7,9.114028469886682e-7,9.123715282944588e-7,1.5817416217178706e-9,1.3336739437968791e-9,1.9389750501745375e-9 +MkCons/80,9.086829147260754e-7,9.077655375152856e-7,9.094660652930554e-7,3.013150807761086e-9,2.472353242727873e-9,3.800465903726096e-9 +MkCons/500,9.135927797614531e-7,9.131847568953775e-7,9.139885735561757e-7,1.2980432922795755e-9,1.0677086402243696e-9,1.6651763287478829e-9 +MkCons/1000,9.132596926912926e-7,9.12389544755256e-7,9.139626160445537e-7,2.6642069925616322e-9,2.2658664402019363e-9,3.262882636615291e-9 +MkCons/5000,9.08924930949456e-7,9.083745206687366e-7,9.094828511993366e-7,1.847509979000529e-9,1.5829925733826612e-9,2.1914782238243954e-9 +MkCons/5,9.102913953904406e-7,9.098035363672638e-7,9.107567755160393e-7,1.54389435441808e-9,1.3182673861348797e-9,1.860354860452379e-9 +MkCons/80,9.107656339226013e-7,9.101452714588553e-7,9.114522640635943e-7,2.163679423273637e-9,1.6883512522883977e-9,2.6448693224881085e-9 +MkCons/500,9.077744052602055e-7,9.074910127082654e-7,9.080998268546598e-7,1.0251777897779093e-9,8.550563467992792e-10,1.310813393395573e-9 +MkCons/1000,9.092405616240168e-7,9.087865073795798e-7,9.097467092839553e-7,1.68994570747129e-9,1.3760828422657839e-9,2.0896212784149135e-9 +MkCons/5000,9.068210616048494e-7,9.061479826816124e-7,9.075474122613932e-7,2.3886899557288332e-9,1.952986280233746e-9,2.9140960783210326e-9 +MkCons/5,9.119023719093336e-7,9.110943373351628e-7,9.125970852476449e-7,2.490588599677305e-9,2.1711948587403594e-9,3.0081219787982446e-9 +MkCons/80,9.07996562094908e-7,9.074045676443937e-7,9.087017922929681e-7,2.206797161404031e-9,1.6665225992148502e-9,3.404584915101057e-9 +MkCons/500,9.083079818702865e-7,9.076280263317387e-7,9.089958515638694e-7,2.272911069335314e-9,1.870650735231669e-9,2.7552462560099684e-9 +MkCons/1000,9.104287580148781e-7,9.09926277235596e-7,9.110072916416293e-7,1.6828157408734699e-9,1.4837385026111578e-9,2.0320919134882556e-9 +MkCons/5000,9.050057106874396e-7,9.043068015121709e-7,9.058239324153846e-7,2.503283640338545e-9,2.0714532858334692e-9,3.0818647322122066e-9 +MkCons/5,9.085169351589251e-7,9.077919854266119e-7,9.091613304653158e-7,2.378426311158675e-9,2.0667248513370125e-9,2.845713687840978e-9 +HeadList/1,7.523404910684409e-7,7.518609873304661e-7,7.528915245633268e-7,1.8426161725639527e-9,1.441881046722918e-9,2.400275268265959e-9 +HeadList/2,7.516398289351688e-7,7.511557958270765e-7,7.520489925585768e-7,1.4983766563624676e-9,1.2595133336788135e-9,1.8482477826019549e-9 +HeadList/3,7.540777503894665e-7,7.536870323862564e-7,7.544689839100626e-7,1.3329675797009004e-9,1.094693263628752e-9,1.705887044887115e-9 +HeadList/4,7.554056358098131e-7,7.550289712677231e-7,7.559351769740212e-7,1.4931873310758478e-9,1.1442070915826585e-9,1.982563500699805e-9 +HeadList/5,7.547435633814838e-7,7.541926481675053e-7,7.554186226637917e-7,2.1208685492443088e-9,1.5974617975506232e-9,2.701396216936083e-9 +HeadList/6,7.551029592728918e-7,7.54452601100162e-7,7.558237922363756e-7,2.25458106981298e-9,1.914440427598112e-9,2.7742460612823544e-9 +HeadList/7,7.539839672242558e-7,7.532921717400092e-7,7.546096309991075e-7,2.115533336260857e-9,1.7560466548076553e-9,2.492252298023279e-9 +HeadList/2,7.544190438976772e-7,7.541039840440516e-7,7.547798906016093e-7,1.124559003715951e-9,9.092255447455173e-10,1.4139537954118424e-9 +HeadList/4,7.54845664181501e-7,7.541157002805562e-7,7.555451821417473e-7,2.454238445947401e-9,2.1534823206553606e-9,2.8018543929739737e-9 +HeadList/6,7.545980758318432e-7,7.541209264960367e-7,7.551380648075829e-7,1.7222314226206741e-9,1.3784879929769616e-9,2.172329822171461e-9 +HeadList/8,7.55151541129784e-7,7.545832114864248e-7,7.557452813036068e-7,2.031404110624612e-9,1.7042974416242076e-9,2.4432318771353964e-9 +HeadList/10,7.533026595313784e-7,7.526297783433532e-7,7.539317265727012e-7,2.2071184785299023e-9,1.8415862217323056e-9,2.8117440365229586e-9 +HeadList/12,7.513114877629558e-7,7.504985862611853e-7,7.52345631381089e-7,3.0297043559360666e-9,2.6426826715616057e-9,3.522547810152132e-9 +HeadList/14,7.556818672599706e-7,7.551476943352997e-7,7.562640751791464e-7,1.891350396274121e-9,1.6502495148446885e-9,2.2525787541763577e-9 +HeadList/3,7.505834297194073e-7,7.498660321437701e-7,7.513243063584e-7,2.444482906958807e-9,2.0341666785896677e-9,2.9333332748617178e-9 +HeadList/6,7.530711557226452e-7,7.525448911348295e-7,7.536647912168173e-7,1.897933255922022e-9,1.6361699875524901e-9,2.2488832659948213e-9 +HeadList/9,7.529023882553471e-7,7.524475447197556e-7,7.532761190903491e-7,1.376001332069602e-9,1.1667673694306381e-9,1.6094657363033014e-9 +HeadList/12,7.504762185911932e-7,7.499330455707456e-7,7.511438280421607e-7,1.884391446580853e-9,1.5397481072248496e-9,2.376688894549434e-9 +HeadList/15,7.510475937918792e-7,7.504990225877514e-7,7.515935219416262e-7,1.800047947642141e-9,1.5744134097900728e-9,2.0898851240327084e-9 +HeadList/18,7.515438126955966e-7,7.510423450761706e-7,7.520674689589024e-7,1.764378461767747e-9,1.4232224051653466e-9,2.1829279691359212e-9 +HeadList/21,7.511591524877352e-7,7.5059195204332e-7,7.517869479860746e-7,1.9737387485155908e-9,1.6548445512007997e-9,2.3475870221962072e-9 +HeadList/4,7.519884622224343e-7,7.5132068951231e-7,7.525960046874196e-7,2.143843321142879e-9,1.81399222327254e-9,2.579532251252097e-9 +HeadList/8,7.512144051779853e-7,7.507176867486278e-7,7.517705789458548e-7,1.873424557735628e-9,1.6179875007767674e-9,2.2295776057113923e-9 +HeadList/12,7.543978012231285e-7,7.537249339439562e-7,7.550153612462559e-7,2.1627233789536268e-9,1.740685442972383e-9,2.9110412658213805e-9 +HeadList/16,7.536836890600374e-7,7.531204192013741e-7,7.541847911752713e-7,1.8561413970562658e-9,1.4780584359956636e-9,2.3565617049770247e-9 +HeadList/20,7.540936086217573e-7,7.536186786204804e-7,7.545177620389261e-7,1.558685828537674e-9,1.2949729328884507e-9,1.9599743375308387e-9 +HeadList/24,7.533981754764693e-7,7.529468821695905e-7,7.53861376825491e-7,1.5747741027292642e-9,1.3257985502899846e-9,1.9285244737030342e-9 +HeadList/28,7.538833569645671e-7,7.534040599412248e-7,7.543657092595037e-7,1.6233187625311692e-9,1.3199099798694998e-9,1.984086122033776e-9 +HeadList/5,7.527466894438008e-7,7.52268767775129e-7,7.532632710356737e-7,1.599131817030762e-9,1.3142413568453896e-9,2.075917424801091e-9 +HeadList/10,7.511093853203996e-7,7.503989991496577e-7,7.518222324365607e-7,2.380141740572912e-9,2.0367098819613358e-9,2.8001176509813718e-9 +HeadList/15,7.5753590482708e-7,7.569726032330333e-7,7.581682953857005e-7,2.021870299786502e-9,1.7009226091770945e-9,2.443207303163465e-9 +HeadList/20,7.526992989358736e-7,7.522955818771659e-7,7.531140123928438e-7,1.332790477466838e-9,1.096355138720023e-9,1.6979582081203186e-9 +HeadList/25,7.510589591333759e-7,7.50577395525257e-7,7.515775143557895e-7,1.6781857393943667e-9,1.4114947781535042e-9,2.0055990578228624e-9 +HeadList/30,7.518163977580818e-7,7.513435211967393e-7,7.52270685738865e-7,1.5324485293478385e-9,1.2988558140205012e-9,1.8668350384665047e-9 +HeadList/35,7.504098354308179e-7,7.500622299149776e-7,7.509054895856381e-7,1.3911489310782085e-9,1.123375379727887e-9,2.0030113936371796e-9 +HeadList/6,7.495769261950071e-7,7.493223451398096e-7,7.498868269739206e-7,9.223091700741928e-10,7.665711556911487e-10,1.17488533957139e-9 +HeadList/12,7.521740195712156e-7,7.517633957478343e-7,7.525738651536202e-7,1.3250379659431074e-9,1.1571380366337545e-9,1.6493494381159674e-9 +HeadList/18,7.532125919491217e-7,7.525518179055668e-7,7.538475336867427e-7,2.0809920980960016e-9,1.7007177007949315e-9,2.71695717873941e-9 +HeadList/24,7.491619217601437e-7,7.487198119016541e-7,7.4966158480192e-7,1.6332325354518581e-9,1.3700067351265739e-9,1.9316195972753137e-9 +HeadList/30,7.509493857339145e-7,7.504871801837018e-7,7.514946306214668e-7,1.6890642537169124e-9,1.3589347135627524e-9,2.191045620424245e-9 +HeadList/36,7.525291985838876e-7,7.5188130420583e-7,7.53211443787908e-7,2.1983393962387505e-9,1.9267928275939435e-9,2.5749989946431742e-9 +HeadList/42,7.51555735475292e-7,7.506764529482586e-7,7.522687766145178e-7,2.6178652660266867e-9,2.1752431281463467e-9,3.1890786732769715e-9 +HeadList/7,7.518034779945302e-7,7.513708896265613e-7,7.522830084810662e-7,1.5564995647828063e-9,1.3187752873967178e-9,1.826084331912355e-9 +HeadList/14,7.531828967000309e-7,7.527655696725869e-7,7.536370287547219e-7,1.5157112968559758e-9,1.2230600779045675e-9,2.014349176652588e-9 +HeadList/21,7.522022986206998e-7,7.51542871824246e-7,7.52738790958157e-7,2.0808813912120737e-9,1.7660412158810743e-9,2.5330326565295494e-9 +HeadList/28,7.560790949432257e-7,7.556237734182043e-7,7.566327677624736e-7,1.6198918334500036e-9,1.3575469043582053e-9,2.1194093615640036e-9 +HeadList/35,7.543170624015149e-7,7.536535761997267e-7,7.549637781562561e-7,2.2217022781323975e-9,1.9355738117285713e-9,2.6321122366719447e-9 +HeadList/42,7.548179926566544e-7,7.542753891695041e-7,7.552961464574168e-7,1.6699550729647148e-9,1.3416464112379343e-9,2.3061598802707545e-9 +HeadList/49,7.519442848265979e-7,7.513797067209272e-7,7.524824763421317e-7,1.7678943967093049e-9,1.432314933792055e-9,2.2810590194612905e-9 +HeadList/1,7.495397490816152e-7,7.491296190909073e-7,7.5001347935881e-7,1.4623981064121586e-9,1.2685909909527507e-9,1.6873461881995398e-9 +HeadList/500,7.496666811945441e-7,7.490567922325652e-7,7.502313011083984e-7,1.8869293024283736e-9,1.6095939075189291e-9,2.433351451609073e-9 +HeadList/1000,7.528399941135659e-7,7.52309168402311e-7,7.533559328515475e-7,1.728033824481737e-9,1.4590375265006049e-9,2.2716428099840877e-9 +HeadList/1500,7.551015907890248e-7,7.541563913993851e-7,7.558886197035725e-7,2.749871433690144e-9,2.380767195138474e-9,3.329262356816373e-9 +HeadList/2000,7.55446749917397e-7,7.549289607122409e-7,7.559304748151658e-7,1.70615202358982e-9,1.4565578694680604e-9,2.088173422300801e-9 +HeadList/2500,7.535423015121238e-7,7.530203026091175e-7,7.541082798949086e-7,1.8235852004848e-9,1.5563141086260076e-9,2.2634268839920717e-9 +HeadList/3000,7.557013432616412e-7,7.553056077701993e-7,7.561285925121944e-7,1.4631532304514983e-9,1.2376489759125809e-9,1.769845263345982e-9 +HeadList/2,7.525161525966712e-7,7.520876001528067e-7,7.529858870672495e-7,1.4907363220928293e-9,1.2035660612506959e-9,1.9414937751773194e-9 +HeadList/1000,7.533539999570687e-7,7.527191432382982e-7,7.538987355452895e-7,1.9294388811838934e-9,1.5337426728517341e-9,2.464548821036448e-9 +HeadList/2000,7.533385098933928e-7,7.52836100434144e-7,7.537523675305724e-7,1.508379517687054e-9,1.1874125256756131e-9,2.0431438274587518e-9 +HeadList/3000,7.502258949936386e-7,7.494204845047511e-7,7.51056709521433e-7,2.8548399748498684e-9,2.504699766937977e-9,3.3731651367751223e-9 +HeadList/4000,7.528091803358434e-7,7.523948847406933e-7,7.533536476196101e-7,1.6190723564870577e-9,1.2691263268359456e-9,2.067463590464358e-9 +HeadList/5000,7.565594807099543e-7,7.56168362947142e-7,7.569361290693916e-7,1.2914828819839354e-9,1.1029658382735827e-9,1.5342096490922019e-9 +HeadList/6000,7.509426274931391e-7,7.500873083496264e-7,7.518761047484832e-7,2.903436346007195e-9,2.3396253408897027e-9,3.7101309909547546e-9 +HeadList/3,7.558021149298604e-7,7.552696186887318e-7,7.56335090699811e-7,1.8415778303405184e-9,1.594624420068125e-9,2.1435015925109028e-9 +HeadList/1500,7.545163130163145e-7,7.53898499692683e-7,7.551302755729877e-7,2.103087234916553e-9,1.7982649289288336e-9,2.486373088657562e-9 +HeadList/3000,7.486512567949242e-7,7.479774642978864e-7,7.494948371144778e-7,2.3683337473507744e-9,1.976488608133716e-9,2.9021110750549756e-9 +HeadList/4500,7.502931876042906e-7,7.498480461990439e-7,7.507467832530361e-7,1.4847814661356782e-9,1.207616901671327e-9,1.875671938882576e-9 +HeadList/6000,7.525627572053736e-7,7.521393917301544e-7,7.530309371632317e-7,1.4008527125301938e-9,1.200777976957402e-9,1.6515436428405297e-9 +HeadList/7500,7.52404560010492e-7,7.517386776320858e-7,7.530570465848877e-7,2.2996741357727626e-9,1.884557708692353e-9,2.7270706060299105e-9 +HeadList/9000,7.526771667131475e-7,7.52185151855388e-7,7.531589257948731e-7,1.6383062458097207e-9,1.30725948099391e-9,2.1295626584489537e-9 +HeadList/4,7.542448233569306e-7,7.536840095956907e-7,7.54882187545454e-7,2.0208763518088577e-9,1.6759427607348888e-9,2.5418489930155354e-9 +HeadList/2000,7.543024801449549e-7,7.538509701442311e-7,7.548671108678919e-7,1.5821623609123598e-9,1.2938337017224653e-9,2.166516096878406e-9 +HeadList/4000,7.551038680867965e-7,7.546380399196974e-7,7.555724743600812e-7,1.539467930030573e-9,1.2833754898144451e-9,1.9743747304574076e-9 +HeadList/6000,7.539637478179691e-7,7.533021126034538e-7,7.546871832843448e-7,2.210765916748936e-9,1.908437754046816e-9,2.555736475403119e-9 +HeadList/8000,7.550897944911791e-7,7.546384876086659e-7,7.55600578373151e-7,1.635233935450991e-9,1.3288892973098984e-9,2.040085515554097e-9 +HeadList/10000,7.552463123716318e-7,7.547186298282182e-7,7.558759872982413e-7,1.978687719807633e-9,1.6413238003497974e-9,2.4919322263486903e-9 +HeadList/12000,7.54964131314607e-7,7.544084487571405e-7,7.55519186253104e-7,1.8433874564008568e-9,1.6088163301010484e-9,2.3122346820881378e-9 +HeadList/5,7.570866390984828e-7,7.566398631461875e-7,7.575411078030178e-7,1.4700655455672842e-9,1.2535705748290265e-9,1.723458156858441e-9 +HeadList/2500,7.523924625646319e-7,7.519383354670999e-7,7.528324333521319e-7,1.4832220507811617e-9,1.251678331495501e-9,1.883172866567659e-9 +HeadList/5000,7.543518191862911e-7,7.536800943799598e-7,7.551491124029879e-7,2.447869371341473e-9,1.9609650585820954e-9,3.378772779842351e-9 +HeadList/7500,7.532126718202667e-7,7.526209012589246e-7,7.537869361266953e-7,1.9044535567043178e-9,1.5383720999655874e-9,2.5382356727169298e-9 +HeadList/10000,7.525195986763593e-7,7.52098370678722e-7,7.529422530898887e-7,1.420945580087409e-9,1.0881103730281906e-9,1.983116116659987e-9 +HeadList/12500,7.541183274755129e-7,7.537072588712768e-7,7.545733351702794e-7,1.5129362780525634e-9,1.3095415409802732e-9,1.7538192620913217e-9 +HeadList/15000,7.521562050041684e-7,7.51529625278476e-7,7.529107056019835e-7,2.32020074124244e-9,1.9774445317875554e-9,2.8095582563605373e-9 +HeadList/6,7.499362957073536e-7,7.49379293904884e-7,7.505465077013174e-7,1.7899431825224815e-9,1.5058229089277283e-9,2.2799455494168513e-9 +HeadList/3000,7.51269059515892e-7,7.508445891264996e-7,7.517134679006589e-7,1.5165966025202947e-9,1.249614468943815e-9,1.8123673041740489e-9 +HeadList/6000,7.524621992764513e-7,7.520203644553956e-7,7.529310679667607e-7,1.5771600436089672e-9,1.2871924443056588e-9,1.93692218708685e-9 +HeadList/9000,7.488155796301598e-7,7.482118598563887e-7,7.493896600025953e-7,1.8406086109960757e-9,1.528803280638717e-9,2.3221319583808326e-9 +HeadList/12000,7.507756194192917e-7,7.504717229326594e-7,7.511489282248572e-7,1.1373383758328762e-9,9.846429461660745e-10,1.3317873314096102e-9 +HeadList/15000,7.512324842399206e-7,7.508246888010902e-7,7.515836996241264e-7,1.2198621883824924e-9,9.336620936127987e-10,1.543661297157886e-9 +HeadList/18000,7.53449895645128e-7,7.530863529196054e-7,7.539724180389519e-7,1.5057874546174444e-9,1.165595402905446e-9,2.1401276314773935e-9 +HeadList/7,7.559152839547671e-7,7.552699443664733e-7,7.565304705817471e-7,2.0300348103698693e-9,1.6791071526729476e-9,2.4964762205486633e-9 +HeadList/3500,7.521354437081849e-7,7.516928214772968e-7,7.525938512701976e-7,1.533106015767123e-9,1.2590406127320147e-9,1.9528162185094615e-9 +HeadList/7000,7.506373742115124e-7,7.502920189042215e-7,7.51074834352265e-7,1.2666484546320252e-9,9.548341702668214e-10,1.6864494185198891e-9 +HeadList/10500,7.497515528223966e-7,7.493335350929557e-7,7.502773148521895e-7,1.592286791861622e-9,1.207268944737477e-9,2.296399463430639e-9 +HeadList/14000,7.514049567063338e-7,7.508610216035889e-7,7.519198184956056e-7,1.881189281200907e-9,1.5659536413288545e-9,2.2758658193898616e-9 +HeadList/17500,7.520858436950408e-7,7.516811865835113e-7,7.52653440701113e-7,1.5576841493467798e-9,1.2556807162233637e-9,1.9724033486725126e-9 +HeadList/21000,7.564745489595197e-7,7.560083889334943e-7,7.570617263526856e-7,1.7330885464163922e-9,1.3535118128564795e-9,2.649269180601829e-9 +TailList/1,7.526164814683934e-7,7.5211285187501e-7,7.530667052548949e-7,1.6407573999676405e-9,1.3918552706937256e-9,2.0473354099767683e-9 +TailList/2,7.524005589318843e-7,7.519699389580404e-7,7.528760318412276e-7,1.4556260640787183e-9,1.2500904648731627e-9,1.8056076667298789e-9 +TailList/3,7.561415168133675e-7,7.558161313344412e-7,7.56495095411093e-7,1.1525993236164624e-9,9.32324352046704e-10,1.5505175869583648e-9 +TailList/4,7.501011705472609e-7,7.498034310529071e-7,7.505492438326684e-7,1.2165627333135327e-9,9.563078111695942e-10,1.592871460417397e-9 +TailList/5,7.517767926095188e-7,7.5142780206266e-7,7.521059641624671e-7,1.1672075151974974e-9,9.614398171222717e-10,1.4618546671892382e-9 +TailList/6,7.503254970173197e-7,7.499286709535536e-7,7.506660060800241e-7,1.2426247751688599e-9,1.0362119755425059e-9,1.489829691551862e-9 +TailList/7,7.492152143874075e-7,7.488972202069735e-7,7.496035233534551e-7,1.1977668099951157e-9,9.566634641232513e-10,1.5553404883075254e-9 +TailList/2,7.533610904038158e-7,7.530273154281151e-7,7.536852334839362e-7,1.0814179078555903e-9,8.914687877718165e-10,1.3250659160390788e-9 +TailList/4,7.51325318688866e-7,7.510334190225746e-7,7.516301565199365e-7,1.0887014865043655e-9,8.804897269816005e-10,1.3495177307013651e-9 +TailList/6,7.54083154099307e-7,7.535451868794994e-7,7.546822593962954e-7,1.8586015310563226e-9,1.5620491566102016e-9,2.2502635753167344e-9 +TailList/8,7.537238852771604e-7,7.532136527272679e-7,7.542198618140656e-7,1.648885735875067e-9,1.3985827631796052e-9,2.015088205423076e-9 +TailList/10,7.499581303797293e-7,7.492226502602723e-7,7.506256592549852e-7,2.3596639943012286e-9,2.0947771339288555e-9,2.6888343516811042e-9 +TailList/12,7.493254625698125e-7,7.489624416401326e-7,7.497003146293371e-7,1.2499521573090914e-9,1.0599126869140246e-9,1.5226935422978e-9 +TailList/14,7.492565309590014e-7,7.488796411826259e-7,7.496366065755766e-7,1.2609337863450148e-9,1.038593485972518e-9,1.6152431336276736e-9 +TailList/3,7.526570039425033e-7,7.522185960093191e-7,7.530933277485515e-7,1.4939111001675556e-9,1.256496170275651e-9,1.862994919615512e-9 +TailList/6,7.497754529945976e-7,7.4924205806272e-7,7.502728091095751e-7,1.7508816864414925e-9,1.4979765771659031e-9,2.0733664646205724e-9 +TailList/9,7.482409986026138e-7,7.477271744204983e-7,7.48818593319151e-7,1.894040922940528e-9,1.5982686663872481e-9,2.2492391719951656e-9 +TailList/12,7.515898096245048e-7,7.511199667037572e-7,7.520691417177592e-7,1.5216093941193835e-9,1.2561645128549235e-9,1.9093148746276825e-9 +TailList/15,7.508015762670316e-7,7.503750826189213e-7,7.512687470596299e-7,1.5412655281599406e-9,1.2684019535912976e-9,1.9866136254400534e-9 +TailList/18,7.531749552204655e-7,7.527028092392022e-7,7.536348985901171e-7,1.5822439162686e-9,1.2578337179224782e-9,2.0835600249886964e-9 +TailList/21,7.496761942647904e-7,7.492008991478765e-7,7.502776963557735e-7,1.7734231630351663e-9,1.3819580241274947e-9,2.2801554773763802e-9 +TailList/4,7.502163399117599e-7,7.49826480241847e-7,7.506561393813973e-7,1.386785391209509e-9,1.1648148964671087e-9,1.7967826178299495e-9 +TailList/8,7.529506693517157e-7,7.527310545169609e-7,7.53201949723245e-7,8.316297821977424e-10,6.798348683445635e-10,1.0520077590421914e-9 +TailList/12,7.527596132553267e-7,7.523152803024155e-7,7.532433802775923e-7,1.5534628175213916e-9,1.2322942508620438e-9,1.969545395040795e-9 +TailList/16,7.54152586065927e-7,7.533865370100185e-7,7.549139101368167e-7,2.6265542561941244e-9,2.1829082573819187e-9,3.1569740212272397e-9 +TailList/20,7.513329038183657e-7,7.510074156474983e-7,7.516596753128984e-7,1.0601652314586502e-9,9.156336813743276e-10,1.2623479218446166e-9 +TailList/24,7.525979984178452e-7,7.520352130299523e-7,7.532546989634786e-7,1.949963771644866e-9,1.673713740188842e-9,2.3090582984236297e-9 +TailList/28,7.540430930422656e-7,7.534556462360336e-7,7.546858688830508e-7,2.0833905036825443e-9,1.8067780800732805e-9,2.4135922637072534e-9 +TailList/5,7.547272515151357e-7,7.542493251405776e-7,7.551566212036652e-7,1.4119763051651442e-9,1.1206131276062018e-9,1.8766497134823947e-9 +TailList/10,7.544212670708832e-7,7.539352171960497e-7,7.54896041961533e-7,1.6327694528406004e-9,1.4634166973443779e-9,1.944849573636906e-9 +TailList/15,7.544361971327754e-7,7.540800620638828e-7,7.548035480004482e-7,1.2073141764721552e-9,1.0223743295673377e-9,1.486708592945373e-9 +TailList/20,7.531767674143405e-7,7.527269468728377e-7,7.536365447690509e-7,1.5030143791654133e-9,1.2803815010080002e-9,1.7475540040374997e-9 +TailList/25,7.515968248474893e-7,7.512971069749343e-7,7.519820035657598e-7,1.1902144558499575e-9,9.240969852795281e-10,1.6183332171270034e-9 +TailList/30,7.532345152418461e-7,7.529231423037204e-7,7.536002235866771e-7,1.2133238384340216e-9,1.0121856182437793e-9,1.4741344651522024e-9 +TailList/35,7.538923554887053e-7,7.53537929600204e-7,7.542979145670075e-7,1.2785956382726466e-9,1.0782552243288803e-9,1.5423963575310496e-9 +TailList/6,7.505294668515363e-7,7.500303255739026e-7,7.508081129814999e-7,1.1570653507348228e-9,7.286134062861934e-10,2.047701194768607e-9 +TailList/12,7.493808466269512e-7,7.487765189478496e-7,7.499837327906977e-7,1.972703263239835e-9,1.7464137724979422e-9,2.2174468864845192e-9 +TailList/18,7.463498972847464e-7,7.459332631920909e-7,7.468161794105364e-7,1.55411920760792e-9,1.329674199726642e-9,1.8570764635194733e-9 +TailList/24,7.517232961745977e-7,7.510560732956851e-7,7.524306451180092e-7,2.2875633740432926e-9,2.081636691283185e-9,2.557471798814091e-9 +TailList/30,7.487090690324783e-7,7.484621824385091e-7,7.489358707818302e-7,8.209015606806946e-10,6.652460590424124e-10,1.081175500607959e-9 +TailList/36,7.503373500121838e-7,7.499638691490931e-7,7.507585763376151e-7,1.3695864240745918e-9,1.16835531467944e-9,1.6520216564518437e-9 +TailList/42,7.515459713231951e-7,7.513025136003771e-7,7.518169498781848e-7,8.728439053180685e-10,6.965826219581946e-10,1.104171440112397e-9 +TailList/7,7.494726177884147e-7,7.49060331708236e-7,7.499599879462135e-7,1.499128030356662e-9,1.2284559103837139e-9,2.1104351113419756e-9 +TailList/14,7.525501841137604e-7,7.521881267900536e-7,7.529293149203293e-7,1.1875103879792057e-9,9.993906608353644e-10,1.4679970708558785e-9 +TailList/21,7.524377469160736e-7,7.521113467140519e-7,7.528118896589804e-7,1.1484358304125601e-9,9.293037977702492e-10,1.5140031480904282e-9 +TailList/28,7.523033109582015e-7,7.517104384885671e-7,7.528359727477364e-7,1.809335546958738e-9,1.5045068254842074e-9,2.1161388066067843e-9 +TailList/35,7.484429065577592e-7,7.480786577354904e-7,7.488316301147798e-7,1.3016305342823036e-9,1.0942923916491101e-9,1.6131136810393188e-9 +TailList/42,7.497706384435888e-7,7.49328803323781e-7,7.501019822715501e-7,1.2845490735493758e-9,1.025547772991873e-9,1.6213738475548164e-9 +TailList/49,7.490829845084874e-7,7.483424370774623e-7,7.497517542631083e-7,2.480029321765871e-9,2.099713507134694e-9,2.857100822892618e-9 +TailList/1,7.490675795661291e-7,7.48580029398969e-7,7.495506912204971e-7,1.6436401816652855e-9,1.3944738559832203e-9,1.988088008722145e-9 +TailList/500,7.514125961303149e-7,7.509414150474393e-7,7.518200320621741e-7,1.5191128860438069e-9,1.305858435526415e-9,1.812686840616428e-9 +TailList/1000,7.516970911340832e-7,7.507478287516417e-7,7.525726439648472e-7,3.124884824077009e-9,2.7440177530182976e-9,3.673632109449605e-9 +TailList/1500,7.524280846480199e-7,7.520690172448159e-7,7.528303537628099e-7,1.2944832622498973e-9,1.074101313760232e-9,1.6404344344523317e-9 +TailList/2000,7.533343489223828e-7,7.52976132637578e-7,7.537108785617546e-7,1.1588651872764464e-9,9.458044376735216e-10,1.6791561132298523e-9 +TailList/2500,7.516385654153017e-7,7.512606117767165e-7,7.519983129552126e-7,1.1989446127364012e-9,9.805066848465514e-10,1.473428355733001e-9 +TailList/3000,7.500467672712105e-7,7.496283585918575e-7,7.503728905047102e-7,1.18168088084843e-9,9.454062850758519e-10,1.4664715672309895e-9 +TailList/2,7.501390956540985e-7,7.497382746943548e-7,7.504721206900176e-7,1.260820366036713e-9,1.0404666319260807e-9,1.559951117539768e-9 +TailList/1000,7.477616193720863e-7,7.472965535981192e-7,7.482442444424466e-7,1.553600314667957e-9,1.2648955998368348e-9,1.917315082394532e-9 +TailList/2000,7.458285734324272e-7,7.452699180713116e-7,7.462661490849449e-7,1.589088757658198e-9,1.3222986630933638e-9,1.964235827327083e-9 +TailList/3000,7.517362619247747e-7,7.508213074681745e-7,7.525924658045512e-7,2.915198575400547e-9,2.423025398739379e-9,3.5913734018659123e-9 +TailList/4000,7.511543468445757e-7,7.507745348624596e-7,7.515226379402674e-7,1.276335589010831e-9,1.1250452875459235e-9,1.521540560793615e-9 +TailList/5000,7.511064520122496e-7,7.507924844312318e-7,7.515175201669613e-7,1.161582995082795e-9,9.287251375006436e-10,1.474071436241091e-9 +TailList/6000,7.538814957560157e-7,7.534193011917509e-7,7.543603440302336e-7,1.6126081133261633e-9,1.3396589898915198e-9,2.0733674715096467e-9 +TailList/3,7.512519277335407e-7,7.506713332820524e-7,7.518110622273021e-7,1.896503816323578e-9,1.5017639580000291e-9,2.234074014262482e-9 +TailList/1500,7.516708340308934e-7,7.51350793350374e-7,7.519591203155054e-7,9.968188233192514e-10,8.430201639378704e-10,1.3020334131555408e-9 +TailList/3000,7.574673192391304e-7,7.567896626496276e-7,7.581254124711191e-7,2.3071682862076015e-9,2.0015694520475247e-9,2.7700978636287567e-9 +TailList/4500,7.52131932402397e-7,7.516911805127688e-7,7.525290934207973e-7,1.3911803239364046e-9,1.157900898313609e-9,1.6437586343972032e-9 +TailList/6000,7.513647720655706e-7,7.510701514434801e-7,7.51697445316239e-7,1.0664837394203438e-9,9.023012135640227e-10,1.2996746769172748e-9 +TailList/7500,7.524003259160749e-7,7.520405116820872e-7,7.526977096628926e-7,1.167647725010363e-9,9.876678649929705e-10,1.4494349945226258e-9 +TailList/9000,7.505063534133405e-7,7.50155775991793e-7,7.508351910319605e-7,1.1884075228848744e-9,1.035480347498875e-9,1.360735902992066e-9 +TailList/4,7.523845795731286e-7,7.51857085545387e-7,7.529249772467674e-7,1.8649891250845378e-9,1.5336575582998135e-9,2.242182129053873e-9 +TailList/2000,7.51068656362258e-7,7.506548502983689e-7,7.514731347427894e-7,1.3579255535629162e-9,1.1438445620586037e-9,1.6340091918510287e-9 +TailList/4000,7.531566454900193e-7,7.528184817960319e-7,7.534972480056313e-7,1.1376044080015512e-9,9.119968790864455e-10,1.4326138510541119e-9 +TailList/6000,7.508441974504892e-7,7.505481141873473e-7,7.511726795720024e-7,1.048788549873841e-9,8.861541607768145e-10,1.2972472102641347e-9 +TailList/8000,7.502436459623837e-7,7.49788162400846e-7,7.506690146707083e-7,1.5474377812547687e-9,1.2979836146219799e-9,1.826039307615729e-9 +TailList/10000,7.482092397200041e-7,7.478038627522955e-7,7.485823633132224e-7,1.3138982355167696e-9,1.0955362349319706e-9,1.6753565855576972e-9 +TailList/12000,7.504946359402195e-7,7.501736323447745e-7,7.509089817005148e-7,1.1941245429243186e-9,9.146282646923391e-10,1.5647218341708972e-9 +TailList/5,7.495893344503166e-7,7.490413625718254e-7,7.50084800096452e-7,1.6975307897890127e-9,1.437520421455904e-9,2.0251854769477034e-9 +TailList/2500,7.522428371535345e-7,7.517148584159525e-7,7.52729732770947e-7,1.6419091027527306e-9,1.301124340327391e-9,2.430744011457656e-9 +TailList/5000,7.496162928016851e-7,7.489108600288692e-7,7.502663635613482e-7,2.1715980567192204e-9,1.8461220641483357e-9,2.6006652553734778e-9 +TailList/7500,7.504113685847944e-7,7.499921682279142e-7,7.508167175509532e-7,1.4792849474722204e-9,1.2326512238320808e-9,1.8045054255287301e-9 +TailList/10000,7.528434247505676e-7,7.524233125778144e-7,7.534501095023473e-7,1.6024623680661134e-9,1.2330660568717305e-9,2.249184671523439e-9 +TailList/12500,7.488830025418725e-7,7.485708710151181e-7,7.492351421848033e-7,1.1549394222967692e-9,8.648944214803194e-10,1.5765030693809185e-9 +TailList/15000,7.521609133613419e-7,7.518245852270637e-7,7.524893068425859e-7,1.0823865054475772e-9,8.979029665877719e-10,1.4113092518897728e-9 +TailList/6,7.545350928960734e-7,7.54285504945593e-7,7.547738482020664e-7,8.062333859278604e-10,6.740116477103665e-10,9.840416397817247e-10 +TailList/3000,7.504063793270127e-7,7.499671652545511e-7,7.507589757197404e-7,1.2874110921976643e-9,1.0653100126793662e-9,1.6417956983400703e-9 +TailList/6000,7.512542587136204e-7,7.509748978116086e-7,7.515777819180022e-7,9.732569195684327e-10,8.339819287618205e-10,1.206375808688e-9 +TailList/9000,7.552820057236838e-7,7.547626760425798e-7,7.558117319997825e-7,1.7392894758953483e-9,1.440849864145168e-9,2.0566421384267145e-9 +TailList/12000,7.528067562637704e-7,7.524897958379527e-7,7.532714290102304e-7,1.2430926706658676e-9,1.0037828437147267e-9,1.5992770950034846e-9 +TailList/15000,7.544987729231786e-7,7.541508838342606e-7,7.548315539404163e-7,1.13140374798707e-9,9.430025162302712e-10,1.4073737538004057e-9 +TailList/18000,7.542876506009803e-7,7.534843925291114e-7,7.550206423076798e-7,2.597467868646671e-9,2.238722395421122e-9,3.080951262275535e-9 +TailList/7,7.498734780543526e-7,7.494911372592276e-7,7.502187624540623e-7,1.2494457222985484e-9,1.0610723535681888e-9,1.5123237410253676e-9 +TailList/3500,7.502281331671766e-7,7.496689515534674e-7,7.508304960499563e-7,1.964981579901126e-9,1.7112683313972185e-9,2.319468580283426e-9 +TailList/7000,7.513575571410523e-7,7.509651447966098e-7,7.517500215881481e-7,1.2668612218177513e-9,1.0502264095075187e-9,1.4964171196963102e-9 +TailList/10500,7.557082521691721e-7,7.553116588193389e-7,7.56149233093854e-7,1.4326792385364993e-9,1.1590134755432395e-9,1.7869561314341727e-9 +TailList/14000,7.488355476239235e-7,7.48371637216381e-7,7.492935747495288e-7,1.5651745584277734e-9,1.3296710490263736e-9,1.9129016389713663e-9 +TailList/17500,7.514168471205527e-7,7.507861751665381e-7,7.519880542749865e-7,2.0067413487724467e-9,1.7418862902263421e-9,2.3869611642006506e-9 +TailList/21000,7.484014192679054e-7,7.479147030938642e-7,7.488445388657108e-7,1.5661375893923642e-9,1.2618401875719193e-9,2.0031582001164887e-9 +NullList/0,7.473052176674726e-7,7.46831257661936e-7,7.477954478219869e-7,1.6070339369212294e-9,1.3989465137701126e-9,1.9273251446557245e-9 +NullList/0,7.450200017716596e-7,7.442828337001214e-7,7.459676673449249e-7,2.701094380592768e-9,2.334633251190838e-9,3.1246092766899236e-9 +NullList/0,7.433214860091646e-7,7.429297821096834e-7,7.437664785534608e-7,1.3674747935093376e-9,1.0699614537813943e-9,1.7358895727991118e-9 +NullList/0,7.471587993678589e-7,7.46630638215476e-7,7.477522010121415e-7,1.8682001934866296e-9,1.6362416028473637e-9,2.1767374304739422e-9 +NullList/0,7.46498320112071e-7,7.460752033407568e-7,7.469049784334313e-7,1.3313449490093172e-9,1.0719781659723707e-9,1.7793743315407977e-9 +NullList/0,7.436307046315571e-7,7.431943980683976e-7,7.440054449106663e-7,1.3737425539656218e-9,1.1313440756273733e-9,1.714076827577992e-9 +NullList/0,7.446901034715253e-7,7.442976044670357e-7,7.452381830208121e-7,1.4896057856551669e-9,1.231302232469068e-9,1.920900017126936e-9 +NullList/1,7.41167613617055e-7,7.408086114869285e-7,7.416222801192512e-7,1.3248642107189914e-9,1.0939846015823593e-9,1.6124137067900998e-9 +NullList/2,7.448961581578094e-7,7.446129405619304e-7,7.452283898290342e-7,1.0779879068762537e-9,8.447533389333265e-10,1.458952070645556e-9 +NullList/3,7.421583588147632e-7,7.418297688869707e-7,7.424570377393852e-7,1.06850202967728e-9,8.633383797918904e-10,1.3285090675538007e-9 +NullList/4,7.414393702998536e-7,7.408698269623012e-7,7.422429992322934e-7,2.372949785219509e-9,2.0426414329684008e-9,2.7923612424569256e-9 +NullList/5,7.40407703120993e-7,7.398358584626447e-7,7.410142165304841e-7,1.968044748271028e-9,1.643385597462548e-9,2.3326457146025664e-9 +NullList/6,7.415177310607509e-7,7.411566162840607e-7,7.418394354060831e-7,1.2001496486785295e-9,1.0099849262247803e-9,1.5150339756573e-9 +NullList/7,7.415314204330619e-7,7.411857535036672e-7,7.418252906915222e-7,1.044149036255293e-9,8.900636981371503e-10,1.2553225192800824e-9 +NullList/2,7.434854458955389e-7,7.430909341812629e-7,7.438708036509279e-7,1.3316624871812192e-9,1.1298789605575377e-9,1.6598829641839348e-9 +NullList/4,7.422682486320458e-7,7.417579156896847e-7,7.427260072950345e-7,1.5653910884983427e-9,1.311139724804754e-9,1.8692871965932056e-9 +NullList/6,7.451021558195496e-7,7.444946971666351e-7,7.457433893063433e-7,2.2000050980198953e-9,1.96571770180519e-9,2.5525166817824885e-9 +NullList/8,7.435983498020693e-7,7.430003483347253e-7,7.443126501560505e-7,2.1704353382377456e-9,1.7779804874953788e-9,2.785242709952672e-9 +NullList/10,7.402014988672812e-7,7.394383195706285e-7,7.408180043925894e-7,2.333921451442031e-9,1.9660229058260526e-9,2.7291530019474813e-9 +NullList/12,7.403993144652974e-7,7.396340817242867e-7,7.411204752018592e-7,2.530539185101609e-9,2.169593411057633e-9,2.982049594539661e-9 +NullList/14,7.419635733781539e-7,7.414293654277445e-7,7.4241926007184e-7,1.7209346454495366e-9,1.3426591061138866e-9,2.261038587165544e-9 +NullList/3,7.449647878254516e-7,7.445624534356306e-7,7.454454359133274e-7,1.4348742143672793e-9,1.1984211417396382e-9,1.8058713120042755e-9 +NullList/6,7.455174990851577e-7,7.44743711194647e-7,7.463300918338721e-7,2.8093699862911876e-9,2.428249945449579e-9,3.326914231037362e-9 +NullList/9,7.444122926842472e-7,7.436507494538616e-7,7.467685094598204e-7,4.005591654073835e-9,1.368982801128913e-9,8.514661546268321e-9 +NullList/12,7.468829505061547e-7,7.465680670822273e-7,7.472252947803153e-7,1.121451291967925e-9,9.522945221065702e-10,1.3326762061707802e-9 +NullList/15,7.44867570186084e-7,7.446073611719017e-7,7.451547440417393e-7,8.794225144553456e-10,7.35613197442618e-10,1.1345511205175169e-9 +NullList/18,7.441705746128662e-7,7.437905857161627e-7,7.444920129928398e-7,1.2130259161651013e-9,9.653338364405491e-10,1.6538891547600914e-9 +NullList/21,7.485916469845316e-7,7.477956134999355e-7,7.494422259462898e-7,2.87334736097995e-9,2.492576758102325e-9,3.3130666469231013e-9 +NullList/4,7.434970586178106e-7,7.430587165777821e-7,7.440319876170631e-7,1.664576336750444e-9,1.3697042964172625e-9,2.2806519837675233e-9 +NullList/8,7.456140636186235e-7,7.451191242331875e-7,7.460379649680659e-7,1.6061111196249675e-9,1.2554015856994564e-9,2.3137867894982696e-9 +NullList/12,7.43482762976612e-7,7.432096437430425e-7,7.43738764635723e-7,9.174926277712703e-10,7.240511148199457e-10,1.1871305941604105e-9 +NullList/16,7.474367057607575e-7,7.471630210707371e-7,7.477618388417153e-7,9.68136459011e-10,8.049066448883505e-10,1.24041731987402e-9 +NullList/20,7.435434696257973e-7,7.430805921091937e-7,7.440468594786262e-7,1.6218928424268016e-9,1.3354567883518662e-9,2.049168587902513e-9 +NullList/24,7.454281794431187e-7,7.451727880898813e-7,7.457221934711286e-7,9.375294149305341e-10,7.893434804581386e-10,1.1879647084255982e-9 +NullList/28,7.4565327828981e-7,7.452959861748559e-7,7.459688031104286e-7,1.1748705965819343e-9,9.306508187538151e-10,1.4664692535016623e-9 +NullList/5,7.468729278693304e-7,7.463938355259696e-7,7.472755972964551e-7,1.4490828843385027e-9,1.1380352940218634e-9,1.9045694838991643e-9 +NullList/10,7.421013462801859e-7,7.417016049679406e-7,7.425251644605028e-7,1.4380532843939906e-9,1.2147215259848838e-9,1.699507471890308e-9 +NullList/15,7.459971232464114e-7,7.454195434553012e-7,7.468585453290906e-7,2.2543926317499304e-9,1.893916376885304e-9,2.7185661475007396e-9 +NullList/20,7.433267480750609e-7,7.430368487399784e-7,7.435945030251499e-7,9.153515502724039e-10,7.593059023995336e-10,1.167029804486113e-9 +NullList/25,7.48954220690069e-7,7.48635321830262e-7,7.494100583652704e-7,1.3295239514079381e-9,1.0647752075079284e-9,1.7101940491032925e-9 +NullList/30,7.457851970035635e-7,7.45484705842593e-7,7.461092825365495e-7,1.0295098003900076e-9,8.430608071866757e-10,1.3706630760946352e-9 +NullList/35,7.426381458533428e-7,7.421726335699956e-7,7.431600842049829e-7,1.6267243641691035e-9,1.4017308370693693e-9,1.9129244691447406e-9 +NullList/6,7.449929216984083e-7,7.445737427626309e-7,7.453977926061397e-7,1.363380885528066e-9,1.1480653086166485e-9,1.6446004486630359e-9 +NullList/12,7.458371235506496e-7,7.454693678704786e-7,7.46206802441237e-7,1.289424887348111e-9,9.99218248523643e-10,1.6825745922489975e-9 +NullList/18,7.465885240543704e-7,7.463461718648618e-7,7.468708455025036e-7,8.42844043021092e-10,7.063154067948676e-10,1.047935181675393e-9 +NullList/24,7.44284572653593e-7,7.4385782212169e-7,7.447068770296536e-7,1.4030775870413037e-9,1.1726925984387713e-9,1.706339645877964e-9 +NullList/30,7.46716634102795e-7,7.464106055351756e-7,7.470284747364657e-7,1.098956692695501e-9,8.912582026994973e-10,1.3536165249319082e-9 +NullList/36,7.443223009087074e-7,7.440533460677539e-7,7.446657382303188e-7,1.017353427814212e-9,8.474211615197891e-10,1.2652217602613093e-9 +NullList/42,7.441104375321333e-7,7.434328892180282e-7,7.448550768901703e-7,2.3777759535195865e-9,2.0741342513130308e-9,2.69796568999404e-9 +NullList/7,7.430015886902102e-7,7.424726131919402e-7,7.434025196105986e-7,1.4643319456311604e-9,1.1666010702638337e-9,1.8866355026345953e-9 +NullList/14,7.451079747094478e-7,7.444634296815291e-7,7.457819344890173e-7,2.1805088242690333e-9,1.8047281771908311e-9,2.7048280980178948e-9 +NullList/21,7.443587063869877e-7,7.440368230167833e-7,7.447645366619045e-7,1.2253020887675355e-9,1.0289643769627992e-9,1.5249935234836034e-9 +NullList/28,7.460804799496067e-7,7.457357039354181e-7,7.464432935206067e-7,1.1800155108926527e-9,1.0246876563731923e-9,1.4228339489256605e-9 +NullList/35,7.462092987186004e-7,7.457874201386372e-7,7.466800769060026e-7,1.5257448532092871e-9,1.2631155183583856e-9,1.8586832378023891e-9 +NullList/42,7.483864366654209e-7,7.480087155461453e-7,7.488149539769647e-7,1.383923069194885e-9,1.133680805068078e-9,1.7887033496493888e-9 +NullList/49,7.410973005340249e-7,7.406840029366706e-7,7.415727049393352e-7,1.4053760319490742e-9,1.1369015427047051e-9,1.7765955632535196e-9 +NullList/0,7.466707541448064e-7,7.460396824065648e-7,7.472051589957162e-7,1.9973689996189876e-9,1.6620836191655939e-9,2.4447017048285843e-9 +NullList/0,7.457073459254455e-7,7.453764815790202e-7,7.460523088866179e-7,1.2017985032911414e-9,1.0348801565608985e-9,1.4538288339541217e-9 +NullList/0,7.435596530906836e-7,7.432711891181778e-7,7.439589582402784e-7,1.1149261258377303e-9,8.821003073257467e-10,1.5065995385199555e-9 +NullList/0,7.463321233185481e-7,7.45927218394362e-7,7.466969110980035e-7,1.30663596637014e-9,1.1098200358577094e-9,1.6057385733904275e-9 +NullList/0,7.461295819295119e-7,7.455185610273908e-7,7.467458395024948e-7,2.0263443374014842e-9,1.6358777357251883e-9,2.541760148274399e-9 +NullList/0,7.431465390645814e-7,7.427700378585623e-7,7.435086146566806e-7,1.2096462392374636e-9,1.023428858028883e-9,1.4143036879650164e-9 +NullList/0,7.45169649830375e-7,7.447345672289496e-7,7.456118666493826e-7,1.5206099278035372e-9,1.3253449683891275e-9,1.8501770497561515e-9 +NullList/1,7.463321350636332e-7,7.458036771289358e-7,7.467588472353398e-7,1.5546604822641722e-9,1.2743293415882158e-9,1.9607762738926144e-9 +NullList/500,7.430887945597211e-7,7.425246265684987e-7,7.439226467354252e-7,2.2847444262343763e-9,1.5788819554109985e-9,3.2012971971050875e-9 +NullList/1000,7.458841404206234e-7,7.453462033046096e-7,7.463660858109668e-7,1.739120424366955e-9,1.4218196470698209e-9,2.381687216775689e-9 +NullList/1500,7.437645115013604e-7,7.432168559798224e-7,7.442985762110996e-7,1.7168492689680343e-9,1.4415312411894876e-9,2.066277161114171e-9 +NullList/2000,7.458729272351108e-7,7.45405048703802e-7,7.463382078511494e-7,1.6295235182502513e-9,1.3961955072531996e-9,1.977212782492221e-9 +NullList/2500,7.442020951636542e-7,7.438178122263969e-7,7.446434086825322e-7,1.394322348216235e-9,1.0993876677155691e-9,2.0393420362570335e-9 +NullList/3000,7.45299571737646e-7,7.449043755792964e-7,7.457522972553241e-7,1.3941920530852054e-9,1.1758917965992152e-9,1.6670146440440786e-9 +NullList/2,7.428928850518836e-7,7.425779121391244e-7,7.431517868482227e-7,8.975213517554018e-10,7.395753888065818e-10,1.125704775291986e-9 +NullList/1000,7.489445033217147e-7,7.483770774179465e-7,7.495762131700598e-7,2.0997181701942482e-9,1.821690999563906e-9,2.4587337646432705e-9 +NullList/2000,7.4095414539185e-7,7.40480596422686e-7,7.415934264834937e-7,1.8627511964601475e-9,1.5578475618105704e-9,2.285868855178639e-9 +NullList/3000,7.405454135399017e-7,7.400779204466995e-7,7.40929464469895e-7,1.4873134592204857e-9,1.2101040467190911e-9,1.815683767638711e-9 +NullList/4000,7.412171407506479e-7,7.406300080477809e-7,7.41815060071882e-7,2.0010178285625096e-9,1.7073258811915247e-9,2.422810724780657e-9 +NullList/5000,7.425597929831997e-7,7.420876379541527e-7,7.430316561988429e-7,1.675972075682658e-9,1.4397787286834427e-9,2.0577085520685825e-9 +NullList/6000,7.419856002070393e-7,7.416117048435102e-7,7.424656342233315e-7,1.3688149110051952e-9,1.0692430521703648e-9,1.6900736955538987e-9 +NullList/3,7.417405090133591e-7,7.413154935576597e-7,7.422217869568322e-7,1.5025619333194365e-9,1.2809380656569738e-9,1.7628956358833338e-9 +NullList/1500,7.417292687405644e-7,7.413023236722768e-7,7.421676564810175e-7,1.444665935206747e-9,1.2135509175187474e-9,1.901962724795949e-9 +NullList/3000,7.423871152094957e-7,7.41831645525268e-7,7.428343780098748e-7,1.690724069782669e-9,1.3875182306161724e-9,2.1414147912077164e-9 +NullList/4500,7.434231569458677e-7,7.428773865148329e-7,7.442592692629685e-7,2.276637230365959e-9,1.4917216476827244e-9,3.323346411688207e-9 +NullList/6000,7.475680086805653e-7,7.469625160040171e-7,7.481892606731252e-7,2.1114963720005985e-9,1.8396814474956915e-9,2.4808930710285134e-9 +NullList/7500,7.456103954215213e-7,7.452632575667371e-7,7.459908066517687e-7,1.1872049909188222e-9,1.0308534600161368e-9,1.4015895735966213e-9 +NullList/9000,7.445941612958694e-7,7.439559432005201e-7,7.452124596485731e-7,2.1652820720427723e-9,1.819976195868258e-9,2.6866148238294575e-9 +NullList/4,7.443157338009592e-7,7.43728507029829e-7,7.448555910910265e-7,1.828612949372531e-9,1.54209255038466e-9,2.194061526915114e-9 +NullList/2000,7.462976060648669e-7,7.457334165793242e-7,7.467334999018806e-7,1.6520166379679996e-9,1.375901915232309e-9,2.031468449425075e-9 +NullList/4000,7.470310776602853e-7,7.465084257429485e-7,7.474813280553116e-7,1.6048133881377246e-9,1.261677600928154e-9,2.1432991694242315e-9 +NullList/6000,7.433412349405339e-7,7.429511394006099e-7,7.436714480558533e-7,1.1286492543588638e-9,9.551764977217365e-10,1.4666334478332672e-9 +NullList/8000,7.442074865209428e-7,7.437506745975997e-7,7.447611814471588e-7,1.704437291434588e-9,1.380321627446088e-9,2.1767732525963408e-9 +NullList/10000,7.448711841142278e-7,7.443507056631709e-7,7.454272443739629e-7,1.8564207428846913e-9,1.603726863638879e-9,2.1503328576291485e-9 +NullList/12000,7.446222726962079e-7,7.442157845065709e-7,7.45049061578046e-7,1.4416182262187018e-9,1.215709667973943e-9,1.7885429473472467e-9 +NullList/5,7.439269211380446e-7,7.43552338186661e-7,7.443061777600227e-7,1.2519729911351783e-9,1.0480556904132218e-9,1.519971179431424e-9 +NullList/2500,7.428372938205269e-7,7.42112233913713e-7,7.445767458009491e-7,3.629325523371876e-9,1.5608061231723772e-9,7.489364830521594e-9 +NullList/5000,7.440057506879077e-7,7.436074128526688e-7,7.444806967840467e-7,1.3987743279831668e-9,1.1812585826083596e-9,1.869976476964297e-9 +NullList/7500,7.441583692967773e-7,7.435148127407042e-7,7.446772202945283e-7,1.903803142241908e-9,1.6301260569559266e-9,2.3639999535034136e-9 +NullList/10000,7.397130875812408e-7,7.391256699008002e-7,7.403136956102005e-7,2.0579498301443515e-9,1.7419723653327082e-9,2.4526881888322325e-9 +NullList/12500,7.432134396706056e-7,7.426849049185932e-7,7.438208263366121e-7,1.8431520007336718e-9,1.5091765579769573e-9,2.2444865086684455e-9 +NullList/15000,7.429875858025766e-7,7.422860810832333e-7,7.436437229841161e-7,2.296102132639578e-9,1.8361372000893878e-9,3.300331217278277e-9 +NullList/6,7.390553714300062e-7,7.385165579795993e-7,7.396201070882222e-7,1.826292051820397e-9,1.4539425672806087e-9,2.3552536338281848e-9 +NullList/3000,7.437939795101765e-7,7.433569985684356e-7,7.441349870802708e-7,1.252384053035724e-9,9.237859955857135e-10,1.6278417828160581e-9 +NullList/6000,7.407770192325968e-7,7.403119588883419e-7,7.412885831400983e-7,1.6946829428139781e-9,1.5298938228449393e-9,1.9763567112216167e-9 +NullList/9000,7.430532571755231e-7,7.426559673067329e-7,7.434753860547041e-7,1.3908400614939645e-9,1.151840734174391e-9,1.674295866878691e-9 +NullList/12000,7.414776042128876e-7,7.408080297127499e-7,7.419273932850818e-7,1.6668546742569115e-9,1.2097822076933989e-9,2.5316054536677522e-9 +NullList/15000,7.404579852667475e-7,7.401423340211497e-7,7.407266605581886e-7,9.538270942116015e-10,7.802044053190634e-10,1.1755019177563437e-9 +NullList/18000,7.432134018630772e-7,7.427516574489086e-7,7.436222304019603e-7,1.4807157796115354e-9,1.2763264095330049e-9,1.7162626422381735e-9 +NullList/7,7.450093057608733e-7,7.446563685712223e-7,7.454382010156883e-7,1.2367701715726455e-9,1.0454134735946742e-9,1.519001579811645e-9 +NullList/3500,7.457327355432072e-7,7.452885368227553e-7,7.461562149242658e-7,1.4230341424202525e-9,1.2169520281408476e-9,1.7010312360411856e-9 +NullList/7000,7.451107176058831e-7,7.448048180315319e-7,7.454080491077357e-7,1.0269382136861142e-9,8.245099697355408e-10,1.3364367846353189e-9 +NullList/10500,7.464786075376305e-7,7.460811282168455e-7,7.467739491608588e-7,1.2147216075741556e-9,1.012832460262309e-9,1.5958316942194753e-9 +NullList/14000,7.44754265671189e-7,7.444627249518945e-7,7.450648166558295e-7,9.998052529560695e-10,8.572291267013016e-10,1.187505685860613e-9 +NullList/17500,7.441666545418981e-7,7.437483055207336e-7,7.445576846155933e-7,1.3104685832228878e-9,1.1075580801446625e-9,1.6086658702948688e-9 +NullList/21000,7.443198921530609e-7,7.44030409366253e-7,7.446237824564443e-7,1.0026469741737596e-9,8.259602631899484e-10,1.2658012225211077e-9 +MkPairData/9/473,8.505111512761696e-7,8.500078493722126e-7,8.511164828960851e-7,1.890033327980305e-9,1.6022693275907707e-9,2.317229384112256e-9 +MkPairData/9/212,8.481608331567391e-7,8.477161825462631e-7,8.486015499371517e-7,1.5225092037229967e-9,1.3032379491392293e-9,1.8084393189012435e-9 +MkPairData/9/107,8.490844244204143e-7,8.486628910898389e-7,8.495442231425276e-7,1.5133195760221994e-9,1.2789246875982292e-9,1.9068955206837438e-9 +MkPairData/9/254,8.489764216720397e-7,8.484486218370576e-7,8.494272052789557e-7,1.6712523699331202e-9,1.3990578721913648e-9,2.045641542333145e-9 +MkPairData/9/463,8.502011488253709e-7,8.495081585838201e-7,8.5098259288253e-7,2.526145649115539e-9,2.1214142631494277e-9,2.8959632164719517e-9 +MkPairData/9/165,8.466913901765351e-7,8.462931134013495e-7,8.471122134042119e-7,1.4363787077291473e-9,1.1717601429972192e-9,1.859899300586802e-9 +MkPairData/9/4,8.509478471692787e-7,8.502790724766972e-7,8.516846060039077e-7,2.4725275735260886e-9,2.11176073149079e-9,2.88224005700065e-9 +MkPairData/9/191,8.478366656131817e-7,8.472654820559096e-7,8.483715213280771e-7,1.886643015548531e-9,1.6253058692809586e-9,2.243672475965113e-9 +MkPairData/9/730,8.511889358903968e-7,8.507028623342084e-7,8.517695116240239e-7,1.745775330933029e-9,1.521391729747458e-9,2.0561059963288507e-9 +MkPairData/9/705,8.493117262010437e-7,8.486074975974676e-7,8.499781776140095e-7,2.2448479568698817e-9,1.993486270037007e-9,2.606762722799517e-9 +MkPairData/9/44,8.498431109984182e-7,8.493083213314824e-7,8.504970787271181e-7,2.028608291190051e-9,1.7313126874339636e-9,2.432050609477381e-9 +MkPairData/9/9,8.493362623215196e-7,8.489287530187382e-7,8.497913661813188e-7,1.487522296509215e-9,1.267870048335834e-9,1.796998073679505e-9 +MkPairData/9/44,8.494495111124969e-7,8.486982764970708e-7,8.502274157149611e-7,2.6432024450984558e-9,2.3090267687615337e-9,3.0095220308629888e-9 +MkPairData/9/29,8.502397170795106e-7,8.496520230367533e-7,8.507794749353625e-7,1.877816700557563e-9,1.6311438623362917e-9,2.1948347915611524e-9 +MkPairData/9/74,8.505272328735717e-7,8.49802660076699e-7,8.512418447518616e-7,2.3969880583496887e-9,2.062485980531455e-9,2.980233196381412e-9 +MkPairData/9/74,8.469476619767886e-7,8.465373158462868e-7,8.473432218301756e-7,1.3590203193700607e-9,1.1132538791715097e-9,1.7340580374627364e-9 +MkPairData/9/29,8.467095258887014e-7,8.463814838537757e-7,8.470236775738971e-7,1.1455111952212995e-9,9.287669022880213e-10,1.4890996281609043e-9 +MkPairData/9/14,8.482009773632524e-7,8.477562177392241e-7,8.486508590380758e-7,1.5362683452391086e-9,1.26816774158341e-9,1.8793319311866664e-9 +MkPairData/9/49,8.504601410711412e-7,8.501320563710646e-7,8.507897742953173e-7,1.090962124680116e-9,9.039843927297607e-10,1.3501245561660017e-9 +MkPairData/9/14,8.499372054212577e-7,8.494950008969497e-7,8.504377294585072e-7,1.6762782731586312e-9,1.381885515841401e-9,2.0631599309755946e-9 +MkPairData/6/473,8.503377431268797e-7,8.500704088117015e-7,8.507657196565525e-7,1.1426889964014442e-9,8.332326210504408e-10,1.736086804572557e-9 +MkPairData/6/212,8.507785897737998e-7,8.503755600422688e-7,8.511418406973886e-7,1.4132998330583497e-9,1.1572029437513083e-9,1.8745834768145255e-9 +MkPairData/6/107,8.507450987589933e-7,8.503312439935456e-7,8.512270141803192e-7,1.4606960122534556e-9,1.171677343600314e-9,1.8655942980861478e-9 +MkPairData/6/254,8.511757933639496e-7,8.505779282317418e-7,8.516855161294558e-7,1.8462082880409383e-9,1.5682556987345917e-9,2.243325479292654e-9 +MkPairData/6/463,8.505459005007271e-7,8.501321998058308e-7,8.50942776614871e-7,1.4679775704739456e-9,1.2552442121380646e-9,1.7498164730564258e-9 +MkPairData/6/165,8.51202840773006e-7,8.506320227521981e-7,8.518455987482152e-7,2.0912253159595518e-9,1.7102657804016846e-9,2.59211323942071e-9 +MkPairData/6/4,8.536187061831378e-7,8.529832224037866e-7,8.543155556681764e-7,2.1988822050557122e-9,1.907710226058387e-9,2.561334883263909e-9 +MkPairData/6/191,8.513268625476708e-7,8.509895737035571e-7,8.516683934104903e-7,1.1814890430319903e-9,9.483613502752996e-10,1.5305388497096377e-9 +MkPairData/6/730,8.509839858979905e-7,8.501039515823367e-7,8.517726118301992e-7,2.769748621368651e-9,2.359837628557411e-9,3.264391216815598e-9 +MkPairData/6/705,8.470666071080136e-7,8.46641388038516e-7,8.475285905588455e-7,1.46790914739128e-9,1.243890905756658e-9,1.7697941989994225e-9 +MkPairData/6/44,8.517676417895062e-7,8.510107786165754e-7,8.52549963321789e-7,2.5965116471336706e-9,2.2396870339615743e-9,3.1778433305016846e-9 +MkPairData/6/9,8.473357607429024e-7,8.469948954200275e-7,8.47758243163498e-7,1.3178001257203703e-9,1.0816482076357333e-9,1.6491647531663417e-9 +MkPairData/6/44,8.502738047178425e-7,8.499280948944275e-7,8.506201333851124e-7,1.2320547342126436e-9,1.0514785286796589e-9,1.4835321022453936e-9 +MkPairData/6/29,8.489866540665608e-7,8.486312332529467e-7,8.493271664432793e-7,1.1785038653086707e-9,9.754408464272133e-10,1.448276497299077e-9 +MkPairData/6/74,8.4883152922497e-7,8.483924107760247e-7,8.493746173054414e-7,1.5782700474904908e-9,1.2879023483562656e-9,2.277008214434668e-9 +MkPairData/6/74,8.49938205980087e-7,8.492880434904009e-7,8.505900324947968e-7,2.1149229873141188e-9,1.7816110746128273e-9,2.606553057877134e-9 +MkPairData/6/29,8.480936649860047e-7,8.477134947433874e-7,8.486066410250169e-7,1.5181138386608926e-9,1.2344546850917663e-9,2.0896053697607083e-9 +MkPairData/6/14,8.489205287333312e-7,8.484248045335785e-7,8.493236433512011e-7,1.5654106613122035e-9,1.1949708691458916e-9,1.9887949993716116e-9 +MkPairData/6/49,8.50080188966426e-7,8.496076011318302e-7,8.505083970483046e-7,1.4929121867727563e-9,1.1926350869011837e-9,2.037754189986197e-9 +MkPairData/6/14,8.46553268897726e-7,8.461526285783246e-7,8.46975721450154e-7,1.4222758369707275e-9,1.1876496206328321e-9,1.743438099467435e-9 +MkPairData/9/473,8.495331640061125e-7,8.489102075837008e-7,8.501188612185568e-7,2.0475031972508185e-9,1.7466618130411796e-9,2.4574379933743188e-9 +MkPairData/9/212,8.519509400676473e-7,8.512570928329186e-7,8.525691615318466e-7,2.150339557227955e-9,1.7946877079836737e-9,2.572611883873162e-9 +MkPairData/9/107,8.50576584468807e-7,8.500753993110349e-7,8.511174701056113e-7,1.6337047544700128e-9,1.4031631223785704e-9,1.9153413112466745e-9 +MkPairData/9/254,8.513953678654173e-7,8.509568022535894e-7,8.51844779854471e-7,1.4368287018041883e-9,1.2385775308443486e-9,1.7423061285042747e-9 +MkPairData/9/463,8.497389352546544e-7,8.491513965349905e-7,8.503704817991677e-7,2.0932347723617336e-9,1.7755055817922549e-9,2.555071801399663e-9 +MkPairData/9/165,8.476684038028667e-7,8.473198656744831e-7,8.480096341940371e-7,1.1666435576133382e-9,9.62548302873546e-10,1.4469562470420751e-9 +MkPairData/9/4,8.519318286930927e-7,8.514723165982921e-7,8.523461792676753e-7,1.5686624938769903e-9,1.321336601229423e-9,1.9637379097605966e-9 +MkPairData/9/191,8.540165278225241e-7,8.535378469850945e-7,8.544925499614356e-7,1.5867223615184274e-9,1.2532330828431944e-9,2.0669546047471387e-9 +MkPairData/9/730,8.524073275710421e-7,8.519076321771959e-7,8.528819213281125e-7,1.6719361873001324e-9,1.4533898231658608e-9,2.0141886405150765e-9 +MkPairData/9/705,8.520582436633838e-7,8.516149684787719e-7,8.525291526642785e-7,1.5530097866744309e-9,1.337483252064369e-9,1.900153464140458e-9 +MkPairData/9/44,8.551500374127099e-7,8.546018235344357e-7,8.558981748581637e-7,2.066765172206632e-9,1.5765804379306467e-9,2.953325568053389e-9 +MkPairData/9/9,8.502563915726947e-7,8.49907173104062e-7,8.506828701852373e-7,1.2911162971978622e-9,1.0712276979727459e-9,1.570792338250167e-9 +MkPairData/9/44,8.516335591288361e-7,8.512004622497073e-7,8.521250435655227e-7,1.5167726302987765e-9,1.3185271029113402e-9,1.7570156946157959e-9 +MkPairData/9/29,8.5066215627361e-7,8.501509195610764e-7,8.511621636961514e-7,1.713327947143043e-9,1.4297608714552758e-9,2.0483938270549306e-9 +MkPairData/9/74,8.484568223374816e-7,8.47869603912475e-7,8.492441815940379e-7,2.305298246739499e-9,1.8359558160559281e-9,2.8873796525399337e-9 +MkPairData/9/74,8.497574691573461e-7,8.490765709403639e-7,8.503111866715139e-7,2.0767634760298788e-9,1.704998064013345e-9,2.4834424629088105e-9 +MkPairData/9/29,8.491673586638892e-7,8.483593441565473e-7,8.500653265908197e-7,2.8764570656107503e-9,2.3191463645573517e-9,3.5818373022648318e-9 +MkPairData/9/14,8.511474877118602e-7,8.50411390390828e-7,8.518195281409748e-7,2.4991352451724237e-9,2.1570837023348853e-9,2.998246645798511e-9 +MkPairData/9/49,8.482765194712709e-7,8.47920185247119e-7,8.487320227904663e-7,1.3293926396006114e-9,1.1072944914000422e-9,1.672780452019862e-9 +MkPairData/9/14,8.529810522908366e-7,8.525740255086186e-7,8.534007221479931e-7,1.4949173312871476e-9,1.1577328993381906e-9,1.9979781257852248e-9 +MkPairData/14/473,8.508024494226179e-7,8.502716633689838e-7,8.514404379459927e-7,1.937862489472015e-9,1.642878843125789e-9,2.440845358075426e-9 +MkPairData/14/212,8.477979408811773e-7,8.471128974469003e-7,8.484639027197293e-7,2.242371404309381e-9,1.8547537462073392e-9,2.671862414049263e-9 +MkPairData/14/107,8.514494297599551e-7,8.508727185325487e-7,8.520561355425001e-7,2.0364669747032394e-9,1.6798902433295073e-9,2.470022887499081e-9 +MkPairData/14/254,8.516531369120414e-7,8.512758103870642e-7,8.520781360487265e-7,1.4509235032315912e-9,1.1654599677088889e-9,1.8570814320670771e-9 +MkPairData/14/463,8.503832031366321e-7,8.494090826589791e-7,8.512188514720598e-7,2.9524344621621057e-9,2.6198983444083744e-9,3.4337158629489264e-9 +MkPairData/14/165,8.450862138246964e-7,8.446382237758779e-7,8.454781196939677e-7,1.467233083835237e-9,1.171568280891508e-9,1.9143768553106075e-9 +MkPairData/14/4,8.483377224109858e-7,8.478719071168918e-7,8.487836215476553e-7,1.5304904474502496e-9,1.307610510929056e-9,1.8070886229104169e-9 +MkPairData/14/191,8.513962990043216e-7,8.510214246430326e-7,8.517878402252232e-7,1.278933766102761e-9,1.0446535580914975e-9,1.53015868114503e-9 +MkPairData/14/730,8.530729691998179e-7,8.527168325650042e-7,8.535410188773035e-7,1.4473817712285816e-9,1.1815561274733004e-9,1.899613279389898e-9 +MkPairData/14/705,8.514602794021797e-7,8.510036262924268e-7,8.518484891850631e-7,1.4697785363633815e-9,1.1438075776769085e-9,2.0340954638792896e-9 +MkPairData/14/44,8.50408827683594e-7,8.50035274080134e-7,8.507669140808897e-7,1.3246968527060724e-9,1.1191704162229012e-9,1.652903063376245e-9 +MkPairData/14/9,8.471323079562013e-7,8.464362375650951e-7,8.479394416872641e-7,2.381991170361276e-9,1.9306201962885334e-9,2.850029642193898e-9 +MkPairData/14/44,8.5462660094051e-7,8.541321445885761e-7,8.550727386876224e-7,1.5723033696377654e-9,1.353167463931064e-9,1.882416144168226e-9 +MkPairData/14/29,8.556131423926296e-7,8.552218321638622e-7,8.559932305535802e-7,1.277876019368253e-9,1.086137229723267e-9,1.636246918981885e-9 +MkPairData/14/74,8.542443204781387e-7,8.537030395112305e-7,8.547142318279828e-7,1.7761283303277665e-9,1.4549312972091355e-9,2.268642175664683e-9 +MkPairData/14/74,8.502203898614771e-7,8.498400882362557e-7,8.506607602950497e-7,1.4129116535205257e-9,1.2204277467276158e-9,1.7289422573558956e-9 +MkPairData/14/29,8.506330362126693e-7,8.502425860768267e-7,8.510952823416827e-7,1.5152767775856036e-9,1.2481829875490361e-9,1.947813922334977e-9 +MkPairData/14/14,8.500091874736172e-7,8.493741359137425e-7,8.505551063192614e-7,2.021956529080914e-9,1.7514782308383916e-9,2.3093683678523714e-9 +MkPairData/14/49,8.495711557398849e-7,8.487864602133608e-7,8.504621236109625e-7,2.9932362495818105e-9,2.4879453295594378e-9,3.743717264414564e-9 +MkPairData/14/14,8.495846693793023e-7,8.492087634119633e-7,8.500288255688525e-7,1.3716397541747292e-9,1.1167118945845078e-9,1.6539705420986471e-9 +MkPairData/6/473,8.50868580986567e-7,8.504794755343358e-7,8.513423518045753e-7,1.4137183861625007e-9,1.1403144832447891e-9,1.923594997059875e-9 +MkPairData/6/212,8.494420078159431e-7,8.488611225390624e-7,8.499734039511604e-7,1.8913331153148632e-9,1.5917221066747108e-9,2.2895054466452273e-9 +MkPairData/6/107,8.518820651181637e-7,8.515910841762985e-7,8.521850856927447e-7,9.988716149234318e-10,8.449442798664944e-10,1.196609964617309e-9 +MkPairData/6/254,8.521273786454366e-7,8.514261650007867e-7,8.527247891978714e-7,2.1537325742164997e-9,1.8713767795665515e-9,2.8646626930673694e-9 +MkPairData/6/463,8.456498728990648e-7,8.452175905843693e-7,8.460234719249752e-7,1.304248258746402e-9,1.0722753167741825e-9,1.7556505397754138e-9 +MkPairData/6/165,8.50887793225136e-7,8.505642014696214e-7,8.512384504952648e-7,1.2036076261404075e-9,1.0795140349644848e-9,1.4112177092777304e-9 +MkPairData/6/4,8.517425947963435e-7,8.509629444705977e-7,8.52558328326373e-7,2.590516377268217e-9,2.204384456055244e-9,3.0769264395849434e-9 +MkPairData/6/191,8.501390897272351e-7,8.494560823696366e-7,8.510452612522117e-7,2.6074513667627416e-9,1.966664144413559e-9,3.3060894855821017e-9 +MkPairData/6/730,8.505671634087741e-7,8.500240667104078e-7,8.511749545037241e-7,1.927338880391069e-9,1.5992062038090783e-9,2.4424537305145066e-9 +MkPairData/6/705,8.503896233015648e-7,8.49906260059586e-7,8.508188243960894e-7,1.5995619399227736e-9,1.400121542133383e-9,1.9286300097728744e-9 +MkPairData/6/44,8.485435285903259e-7,8.479787598509153e-7,8.49077352703404e-7,1.9048602230655497e-9,1.6448095946181347e-9,2.3072164398984467e-9 +MkPairData/6/9,8.482287573513219e-7,8.477565843244937e-7,8.487658952454428e-7,1.7668906996127206e-9,1.4939350595224412e-9,2.2441798965921168e-9 +MkPairData/6/44,8.478200074430505e-7,8.471400117647511e-7,8.485347141747333e-7,2.3769947915942286e-9,2.0186475285490634e-9,2.922057543058047e-9 +MkPairData/6/29,8.5030012868499e-7,8.498928095830978e-7,8.507062313744687e-7,1.421877134072609e-9,1.1938002104956541e-9,1.7801540874019505e-9 +MkPairData/6/74,8.487279100077211e-7,8.483438573318667e-7,8.490917966924956e-7,1.320028253369947e-9,1.0762962840928558e-9,1.6334353739270101e-9 +MkPairData/6/74,8.489921575497104e-7,8.48647020758033e-7,8.49308991800478e-7,1.1110252550930935e-9,8.945605035019606e-10,1.459878145761429e-9 +MkPairData/6/29,8.518375076830569e-7,8.513860967015312e-7,8.523419655201007e-7,1.6522006965748008e-9,1.3931263167036154e-9,2.025282115126555e-9 +MkPairData/6/14,8.469668723214874e-7,8.464950741052436e-7,8.474618961925707e-7,1.643376411698473e-9,1.3688189659355296e-9,2.003096885616023e-9 +MkPairData/6/49,8.483503831221928e-7,8.478934580880212e-7,8.488616031151166e-7,1.658375364193921e-9,1.3985326307963215e-9,2.0774324633942477e-9 +MkPairData/6/14,8.487719049220074e-7,8.481122299720893e-7,8.49396052252492e-7,2.0203293873398407e-9,1.72507988015358e-9,2.3899853083076674e-9 +MkPairData/14/473,8.505373833634847e-7,8.498197618637196e-7,8.512207863061984e-7,2.424208996383194e-9,2.0342238905966816e-9,2.867884434058781e-9 +MkPairData/14/212,8.524765290197551e-7,8.518544774740862e-7,8.530094476434301e-7,1.9055478093241904e-9,1.6287653425384513e-9,2.2279665757679738e-9 +MkPairData/14/107,8.520699585670228e-7,8.515762007344776e-7,8.524917706362161e-7,1.5492268296919372e-9,1.25457490920271e-9,2.0054309478316867e-9 +MkPairData/14/254,8.511492303382441e-7,8.503385098954149e-7,8.520065418458597e-7,2.9097449753876614e-9,2.532701735500009e-9,3.3788494986012976e-9 +MkPairData/14/463,8.477502577276285e-7,8.472881130811603e-7,8.48234995444452e-7,1.5541804137159539e-9,1.3250154037812657e-9,1.8803483848074735e-9 +MkPairData/14/165,8.497888125400807e-7,8.492286864152062e-7,8.503650242919824e-7,1.8338653674715364e-9,1.6077496134316488e-9,2.2526902109397056e-9 +MkPairData/14/4,8.497720846592653e-7,8.494215598028531e-7,8.501697179968307e-7,1.2449796518487634e-9,9.933395581702923e-10,1.681056003874574e-9 +MkPairData/14/191,8.518154111820796e-7,8.509733944610555e-7,8.526500193041367e-7,3.001964622982142e-9,2.6604221867321707e-9,3.5290663034800375e-9 +MkPairData/14/730,8.456189171986769e-7,8.45007614567454e-7,8.462313407182526e-7,2.125063439579503e-9,1.8089987592568735e-9,2.614257812844127e-9 +MkPairData/14/705,8.487974706483451e-7,8.483610398392302e-7,8.493008573987562e-7,1.6577890963662878e-9,1.4215215939046723e-9,2.0327742210684762e-9 +MkPairData/14/44,8.466705895232848e-7,8.462795790260001e-7,8.470198730956242e-7,1.2653894902483392e-9,1.0656361154014963e-9,1.5929995019930663e-9 +MkPairData/14/9,8.524617313486952e-7,8.519614139039531e-7,8.529084201535238e-7,1.6182687385521678e-9,1.3548773089817388e-9,1.9782911498411397e-9 +MkPairData/14/44,8.456823351347667e-7,8.450778228097199e-7,8.462595220801862e-7,1.9545203965410273e-9,1.6431827386239413e-9,2.367825790278908e-9 +MkPairData/14/29,8.487457677744254e-7,8.48261063918145e-7,8.49248799102528e-7,1.5775034911862376e-9,1.2799337601336835e-9,1.992382517963068e-9 +MkPairData/14/74,8.534131231521883e-7,8.526036343016463e-7,8.540697088973523e-7,2.4108424472734426e-9,2.023876528465454e-9,3.074725827208601e-9 +MkPairData/14/74,8.490481398770224e-7,8.486023104984063e-7,8.49418307378041e-7,1.3732749137206074e-9,1.1375067052662922e-9,1.6892523472416335e-9 +MkPairData/14/29,8.498504555197296e-7,8.494458318568679e-7,8.503031008239418e-7,1.4319684566146272e-9,1.2282573645564943e-9,1.6520717104598812e-9 +MkPairData/14/14,8.476065675155265e-7,8.468794131618346e-7,8.482370847452009e-7,2.1995969264063352e-9,1.7783502873574533e-9,2.7179796475399537e-9 +MkPairData/14/49,8.515085146256507e-7,8.511626338905739e-7,8.518473596939818e-7,1.1550595853725312e-9,9.861581300652782e-10,1.395920230965514e-9 +MkPairData/14/14,8.482571405169506e-7,8.477727621152941e-7,8.487585405989231e-7,1.6480236998364277e-9,1.3880058785568096e-9,1.9726193544953175e-9 +MkPairData/14/473,8.469276974988344e-7,8.464371587246391e-7,8.475289681080598e-7,1.8996934162643287e-9,1.6943106826731182e-9,2.2072706809456334e-9 +MkPairData/14/212,8.466462984370073e-7,8.460990863879019e-7,8.471238484829429e-7,1.667723092456769e-9,1.3921600411806629e-9,2.022844951034428e-9 +MkPairData/14/107,8.510407766634118e-7,8.504745354046244e-7,8.515230881504896e-7,1.8188939334218932e-9,1.534181506558111e-9,2.2268670885320748e-9 +MkPairData/14/254,8.509671189676352e-7,8.504480940821535e-7,8.514936082459897e-7,1.8298366504224452e-9,1.5552879500711802e-9,2.183792445911888e-9 +MkPairData/14/463,8.50137785149911e-7,8.495676358491104e-7,8.508338600827154e-7,2.1394965697344884e-9,1.7975945435619573e-9,2.639627256083958e-9 +MkPairData/14/165,8.530098556482888e-7,8.524854893984126e-7,8.534120459567563e-7,1.5927338334343778e-9,1.4023295909764115e-9,1.8736179477745638e-9 +MkPairData/14/4,8.514224209322827e-7,8.509783313360397e-7,8.517696217011491e-7,1.2420360584273402e-9,1.0257677589345509e-9,1.5818432640870566e-9 +MkPairData/14/191,8.478508977546554e-7,8.471386540708222e-7,8.483631093484257e-7,2.001466196138165e-9,1.623087285726224e-9,2.4637146799493548e-9 +MkPairData/14/730,8.49951625121259e-7,8.49534604441017e-7,8.504962261702182e-7,1.533779333228844e-9,1.2160856944577314e-9,1.98422822016756e-9 +MkPairData/14/705,8.500008955363699e-7,8.496564802646289e-7,8.503572881981382e-7,1.2270835752437622e-9,1.039910580558341e-9,1.5237704622439859e-9 +MkPairData/14/44,8.476224955077687e-7,8.468601680622667e-7,8.48351475879277e-7,2.465464127150011e-9,2.0594305619910856e-9,2.818447597561558e-9 +MkPairData/14/9,8.511830819162035e-7,8.505241139622716e-7,8.518420143406908e-7,2.3899012985158847e-9,2.050572377249315e-9,2.823403514948857e-9 +MkPairData/14/44,8.493760634185394e-7,8.485034493967901e-7,8.503430067087966e-7,3.2419884051002784e-9,2.8271780951974187e-9,3.866952099191683e-9 +MkPairData/14/29,8.536066686946048e-7,8.530684616011543e-7,8.541459580319686e-7,1.7376470404521102e-9,1.4747595337571897e-9,2.208178985317468e-9 +MkPairData/14/74,8.5149669224552e-7,8.509818322548445e-7,8.520121689094588e-7,1.8074518955338908e-9,1.5401446522442362e-9,2.189392615374768e-9 +MkPairData/14/74,8.470999490932533e-7,8.465438781228234e-7,8.476071573847163e-7,1.8537366091489966e-9,1.4991823231040992e-9,2.217788320721334e-9 +MkPairData/14/29,8.520419988937617e-7,8.512838056002268e-7,8.527626675852928e-7,2.4977774913617434e-9,2.187740356435262e-9,2.934625812264834e-9 +MkPairData/14/14,8.476291494333162e-7,8.472286774317833e-7,8.479707136665704e-7,1.211187494076549e-9,9.949956842048012e-10,1.6030643990069577e-9 +MkPairData/14/49,8.471515705210903e-7,8.468526607897024e-7,8.474524228093183e-7,9.832340017383155e-10,8.276438018022426e-10,1.1705408847870445e-9 +MkPairData/14/14,8.48241124739479e-7,8.478147233466184e-7,8.487206340614129e-7,1.4783360939498137e-9,1.1600301703882992e-9,1.7959706462517154e-9 +MkPairData/6/473,8.471600496471048e-7,8.46818289447537e-7,8.474361546128213e-7,1.072778408059517e-9,8.959730066448077e-10,1.324132242213645e-9 +MkPairData/6/212,8.454090784440446e-7,8.450722772946317e-7,8.457718281653531e-7,1.1877052434012845e-9,1.0099701598377294e-9,1.4140046052957996e-9 +MkPairData/6/107,8.488312738757482e-7,8.483576742866404e-7,8.494980451972141e-7,1.9292616929787852e-9,1.4933753471267948e-9,2.5289146454435554e-9 +MkPairData/6/254,8.473643884176386e-7,8.469988692916751e-7,8.477645588496159e-7,1.4088507678879848e-9,1.1141402386379523e-9,1.7848544042392823e-9 +MkPairData/6/463,8.518169962248654e-7,8.511173708701212e-7,8.525434705557012e-7,2.393899870670669e-9,2.0610291915227355e-9,2.81036773357516e-9 +MkPairData/6/165,8.461108188248716e-7,8.456066692872958e-7,8.465990669879404e-7,1.684565533060738e-9,1.4442676810207514e-9,2.021072164816741e-9 +MkPairData/6/4,8.517603241743508e-7,8.514157235050977e-7,8.521245903282711e-7,1.245403928496117e-9,1.0517178476353525e-9,1.523206262804788e-9 +MkPairData/6/191,8.530560073117789e-7,8.524937575793336e-7,8.536296380955226e-7,1.9327568867510664e-9,1.670003564693963e-9,2.373291681323944e-9 +MkPairData/6/730,8.512436891408681e-7,8.50871553952288e-7,8.517428237647572e-7,1.361229025614555e-9,1.1011242723794285e-9,1.7622214382324175e-9 +MkPairData/6/705,8.501051687085284e-7,8.494370257591017e-7,8.505964771501129e-7,1.8767552855290366e-9,1.4584998259582677e-9,2.616175009693399e-9 +MkPairData/6/44,8.488678148073665e-7,8.483306481721695e-7,8.493784946034379e-7,1.8463789502473124e-9,1.561943802908506e-9,2.2139411597636816e-9 +MkPairData/6/9,8.450235605007858e-7,8.445206559543035e-7,8.454834755791502e-7,1.5815289033759636e-9,1.3355631168020138e-9,2.01465197097661e-9 +MkPairData/6/44,8.457967872474603e-7,8.450507298422174e-7,8.467129465846773e-7,2.7709644117124427e-9,2.3400649291412067e-9,3.3239774408257836e-9 +MkPairData/6/29,8.471211007167644e-7,8.466733777536387e-7,8.47526406057893e-7,1.451911658912526e-9,1.2527390709860396e-9,1.7269784987629927e-9 +MkPairData/6/74,8.484126440916959e-7,8.479476689855074e-7,8.489869817854328e-7,1.7527019911282952e-9,1.3669250470894923e-9,2.31595443943549e-9 +MkPairData/6/74,8.506331232828806e-7,8.50052763904303e-7,8.510269734351557e-7,1.7402644743909075e-9,1.3366170799960824e-9,2.2746234253721444e-9 +MkPairData/6/29,8.490142526057227e-7,8.484464197040421e-7,8.494941216206142e-7,1.874920612933672e-9,1.6043357331221052e-9,2.331901136545985e-9 +MkPairData/6/14,8.520484713802997e-7,8.515924508420511e-7,8.524794509190197e-7,1.528103932824535e-9,1.2917567763363133e-9,1.841108217304789e-9 +MkPairData/6/49,8.539686062101208e-7,8.53521078203942e-7,8.544605778595632e-7,1.5869395841499627e-9,1.3535894522539544e-9,2.007425049234568e-9 +MkPairData/6/14,8.514331455143503e-7,8.50937762680903e-7,8.519926725376483e-7,1.904023855580973e-9,1.6508401361529512e-9,2.2746677771345947e-9 +MkPairData/14/473,8.492503660903341e-7,8.489193332114245e-7,8.496439587479971e-7,1.2248951436030245e-9,1.0183031760806042e-9,1.574252610883166e-9 +MkPairData/14/212,8.500157633950425e-7,8.493222493704183e-7,8.505657263035348e-7,2.1399864700200587e-9,1.8443517887909676e-9,2.5515884267064415e-9 +MkPairData/14/107,8.473462756936268e-7,8.467495046672412e-7,8.480047877529966e-7,2.1396154828421093e-9,1.7385997634232855e-9,2.6623124721218123e-9 +MkPairData/14/254,8.489000333945319e-7,8.483402768134573e-7,8.494638364601451e-7,2.014686427455096e-9,1.7741767645121604e-9,2.473938758457433e-9 +MkPairData/14/463,8.493793763760534e-7,8.488017834500114e-7,8.499754047692669e-7,1.9418610962096422e-9,1.6581226906184059e-9,2.4914799104679485e-9 +MkPairData/14/165,8.475168327532051e-7,8.468553396449005e-7,8.481132835761995e-7,2.116562860561014e-9,1.7870132278068499e-9,2.535040740892368e-9 +MkPairData/14/4,8.477880214685694e-7,8.47270729859146e-7,8.482801914726971e-7,1.6773912562598892e-9,1.4290691237288943e-9,2.0518460442092006e-9 +MkPairData/14/191,8.511973630270824e-7,8.50769935232693e-7,8.516246832600126e-7,1.5395542174899119e-9,1.334957779821242e-9,1.8468718241198288e-9 +MkPairData/14/730,8.507264818325694e-7,8.503206392324696e-7,8.511071122508145e-7,1.3133312859855533e-9,1.0976891203888706e-9,1.5952899357177845e-9 +MkPairData/14/705,8.518201623779512e-7,8.513772308329846e-7,8.522276924955122e-7,1.3710299479252504e-9,1.1341698843705828e-9,1.6923797750525177e-9 +MkPairData/14/44,8.465050184331867e-7,8.457210479861702e-7,8.471588868261793e-7,2.5570660147323747e-9,2.1761951780955883e-9,3.094586567858337e-9 +MkPairData/14/9,8.510644659798091e-7,8.505942644011146e-7,8.515497208753511e-7,1.622072027989692e-9,1.3606363534874713e-9,2.0089764685720737e-9 +MkPairData/14/44,8.486111752075301e-7,8.480664141628298e-7,8.490932678078315e-7,1.7712431779022692e-9,1.5238585578398831e-9,2.0709361050675465e-9 +MkPairData/14/29,8.485974844405993e-7,8.482074068362956e-7,8.489741773061746e-7,1.3276229992882367e-9,1.0743019478385422e-9,1.6156829379085824e-9 +MkPairData/14/74,8.494432178135403e-7,8.489541691907289e-7,8.499629586556317e-7,1.7203970436283763e-9,1.4055950400925262e-9,2.233288787162851e-9 +MkPairData/14/74,8.49907890874023e-7,8.494601092103471e-7,8.504636445547246e-7,1.6478735041924379e-9,1.3972211927180032e-9,2.036183019931709e-9 +MkPairData/14/29,8.511384492731418e-7,8.504545570323245e-7,8.518343837195291e-7,2.2659208770999872e-9,1.9279096355610306e-9,2.648404522020948e-9 +MkPairData/14/14,8.514796654269799e-7,8.510403781279355e-7,8.518770652635242e-7,1.421050841576869e-9,1.15409152580257e-9,1.7650678070202307e-9 +MkPairData/14/49,8.511713416500536e-7,8.508248780624563e-7,8.515665462233982e-7,1.2692601750100776e-9,1.0648501365801271e-9,1.5648720096360162e-9 +MkPairData/14/14,8.520464657058659e-7,8.514584692406477e-7,8.525882589383003e-7,2.0199899861781397e-9,1.671415388995417e-9,2.512097099598519e-9 +MkPairData/14/473,8.504095540823151e-7,8.498310776324378e-7,8.510413496894612e-7,2.0639932946981e-9,1.7630526405470108e-9,2.5350403918517983e-9 +MkPairData/14/212,8.496063171208506e-7,8.490556042670014e-7,8.501328225580341e-7,1.8041960445102356e-9,1.4767513300718272e-9,2.2534403141363245e-9 +MkPairData/14/107,8.464633181427136e-7,8.461153974052454e-7,8.467564538461924e-7,1.0510694203437443e-9,9.074261486216887e-10,1.3523177530677782e-9 +MkPairData/14/254,8.504751271916942e-7,8.500520359349895e-7,8.509631539243025e-7,1.5769201690511071e-9,1.3262944145332763e-9,1.906121817330978e-9 +MkPairData/14/463,8.505629557725414e-7,8.499000054196235e-7,8.511462551435997e-7,2.066523522226791e-9,1.7647405762729214e-9,2.448419146645564e-9 +MkPairData/14/165,8.49423048909591e-7,8.489852837552531e-7,8.498272351482936e-7,1.4618393952652953e-9,1.1441318517256253e-9,1.858931464387776e-9 +MkPairData/14/4,8.515501487196274e-7,8.510057993863761e-7,8.521786103212848e-7,2.046412673133753e-9,1.6565386547318405e-9,2.587221548736798e-9 +MkPairData/14/191,8.478506429872687e-7,8.470050170739022e-7,8.485250019931334e-7,2.5531319562576102e-9,2.168363463943546e-9,2.990131731809575e-9 +MkPairData/14/730,8.492642006635608e-7,8.488459236174002e-7,8.496905205127665e-7,1.4241634508582886e-9,1.179244020344777e-9,1.7890371397720496e-9 +MkPairData/14/705,8.529858111506914e-7,8.52580443819928e-7,8.533873388487927e-7,1.337569084804321e-9,1.088853635365855e-9,1.789326266542529e-9 +MkPairData/14/44,8.535614901484953e-7,8.529407646473089e-7,8.542828985780769e-7,2.3157009798336192e-9,1.9608686936554454e-9,2.749169461693983e-9 +MkPairData/14/9,8.488428242345355e-7,8.483555963698968e-7,8.492787187971195e-7,1.5328100169827844e-9,1.2535777313852473e-9,1.94684489554695e-9 +MkPairData/14/44,8.502589783135045e-7,8.498337768842191e-7,8.506853083412235e-7,1.4311472912608417e-9,1.1926069557335143e-9,1.8124150060738087e-9 +MkPairData/14/29,8.510995777167618e-7,8.505851756414215e-7,8.515171028074493e-7,1.6590922168620331e-9,1.3412407050275879e-9,2.1406378071384176e-9 +MkPairData/14/74,8.492933659738072e-7,8.486447815414673e-7,8.498533398373525e-7,1.9719792171638953e-9,1.6504977699630737e-9,2.4986376073183006e-9 +MkPairData/14/74,8.487523666531904e-7,8.48355266568071e-7,8.492275404290204e-7,1.4589388289468912e-9,1.1993827630035533e-9,1.7487953654795651e-9 +MkPairData/14/29,8.474503425871137e-7,8.467239414404418e-7,8.481066727500832e-7,2.29327837961447e-9,1.921361967220215e-9,2.731499536610081e-9 +MkPairData/14/14,8.511074165828251e-7,8.505059184737759e-7,8.518219493176642e-7,2.3266630193749618e-9,1.963131370907617e-9,2.7633679489546814e-9 +MkPairData/14/49,8.488105980211547e-7,8.483514182237882e-7,8.493035366143599e-7,1.620415694750396e-9,1.3038895169578155e-9,2.1167909851244653e-9 +MkPairData/14/14,8.463901431014465e-7,8.45876808183831e-7,8.469778620204349e-7,1.913657402881103e-9,1.6107142351045757e-9,2.2964353646017013e-9 +MkPairData/143/473,8.490324753709116e-7,8.485357892245608e-7,8.493943253442192e-7,1.3567220659204405e-9,1.1019047898609864e-9,1.747836116171667e-9 +MkPairData/143/212,8.499312008243452e-7,8.494350248757579e-7,8.505952167415772e-7,2.07728571622637e-9,1.6152809559317553e-9,2.832991417367035e-9 +MkPairData/143/107,8.50250192765365e-7,8.498198246108207e-7,8.507302163730832e-7,1.6174750642548918e-9,1.3096564333518856e-9,2.182761505596207e-9 +MkPairData/143/254,8.478525817071919e-7,8.47380652966158e-7,8.482935314986378e-7,1.522903692246171e-9,1.2284797656983211e-9,1.9295228709797544e-9 +MkPairData/143/463,8.469187420256742e-7,8.460048129978419e-7,8.477633960043159e-7,3.0588778953026823e-9,2.603753330669235e-9,3.5270947846311686e-9 +MkPairData/143/165,8.47771016705311e-7,8.474177397987816e-7,8.481898594229224e-7,1.2918711415570915e-9,1.0597231979186127e-9,1.686539399153064e-9 +MkPairData/143/4,8.522116105764116e-7,8.518274470047676e-7,8.525682225984684e-7,1.2416357078958583e-9,1.009673040636737e-9,1.6105736643936109e-9 +MkPairData/143/191,8.485276564182863e-7,8.479330034570351e-7,8.491520633800947e-7,1.976705807042318e-9,1.7054352929246008e-9,2.4312003000817512e-9 +MkPairData/143/730,8.497557341010556e-7,8.49270686730461e-7,8.502675532062931e-7,1.6923612638980876e-9,1.3446037508042053e-9,2.2349956344465433e-9 +MkPairData/143/705,8.508024458955374e-7,8.502843091195569e-7,8.512937148398607e-7,1.6482578422586309e-9,1.4387289526498083e-9,1.907589618124155e-9 +MkPairData/143/44,8.480808149193871e-7,8.476419145512756e-7,8.485445226137342e-7,1.644963123199123e-9,1.3921585365481281e-9,1.940204793750037e-9 +MkPairData/143/9,8.486998204155077e-7,8.480018062957069e-7,8.493472423299471e-7,2.264933044518798e-9,1.8050160715589295e-9,3.0702272261857274e-9 +MkPairData/143/44,8.458348859347525e-7,8.454087825775281e-7,8.462546657589882e-7,1.4188184913902457e-9,1.1789870520299773e-9,1.7516386899277083e-9 +MkPairData/143/29,8.489620120500859e-7,8.484543845924799e-7,8.494669403678194e-7,1.618911404958037e-9,1.3966109670302907e-9,1.8932423622743676e-9 +MkPairData/143/74,8.528130228582984e-7,8.522724748800911e-7,8.534631364691447e-7,1.9316190432617496e-9,1.6821386398397967e-9,2.266284744549903e-9 +MkPairData/143/74,8.518004748733911e-7,8.512015543008779e-7,8.523339819510624e-7,1.916440325844563e-9,1.6118307510868651e-9,2.3407231451872766e-9 +MkPairData/143/29,8.533181249589706e-7,8.527636797808567e-7,8.539463358631538e-7,2.062954845103405e-9,1.6540040340321498e-9,2.4748718339380963e-9 +MkPairData/143/14,8.504598130232492e-7,8.499346354648961e-7,8.509765273868241e-7,1.7542410160992405e-9,1.5048280288408569e-9,2.1469270897250326e-9 +MkPairData/143/49,8.489731341217317e-7,8.486156200455463e-7,8.49348241043409e-7,1.2627290631911737e-9,1.0637258938625824e-9,1.5926824782871335e-9 +MkPairData/143/14,8.49857352670624e-7,8.49474435642786e-7,8.50176231709139e-7,1.1937335899424483e-9,9.941077805836851e-10,1.4866939312461611e-9 +MkPairData/12/473,8.512583747573956e-7,8.506615394271849e-7,8.518033952279761e-7,1.953252147754759e-9,1.6406665424837874e-9,2.3610216288348675e-9 +MkPairData/12/212,8.509249404423e-7,8.502374928814371e-7,8.517334334258201e-7,2.4017760478894713e-9,2.0230197530724216e-9,2.897023394765305e-9 +MkPairData/12/107,8.47192709155087e-7,8.463974129157756e-7,8.479651846855268e-7,2.6172258158541013e-9,2.2852757218626467e-9,3.1903206442384306e-9 +MkPairData/12/254,8.534437076042362e-7,8.52955059575791e-7,8.540159166833368e-7,1.7664723011556012e-9,1.5154526224453842e-9,2.1402801114629126e-9 +MkPairData/12/463,8.524050785609118e-7,8.519201800941137e-7,8.528047250336281e-7,1.478853202963864e-9,1.2181662533690934e-9,1.817386138712072e-9 +MkPairData/12/165,8.478119851528295e-7,8.474179378653071e-7,8.482513117055619e-7,1.3664241771968195e-9,1.157578868418719e-9,1.6345310790888612e-9 +MkPairData/12/4,8.505770582529578e-7,8.502198573743478e-7,8.511024185108553e-7,1.4955038828104476e-9,1.23208332619772e-9,1.9263837979869717e-9 +MkPairData/12/191,8.49929943054992e-7,8.496491494962068e-7,8.502472836793427e-7,1.052413867957526e-9,8.747422769362591e-10,1.2613360734453607e-9 +MkPairData/12/730,8.519803634005832e-7,8.514203657654187e-7,8.52679600171923e-7,2.0639849556894174e-9,1.6602890170744527e-9,2.5707444743049755e-9 +MkPairData/12/705,8.498354957140088e-7,8.491645585464709e-7,8.504690278325472e-7,2.213487151214984e-9,1.8922157469993847e-9,2.6891030365047186e-9 +MkPairData/12/44,8.509200476336497e-7,8.503981300330733e-7,8.513989340042204e-7,1.7694076847325273e-9,1.5380508654379203e-9,2.2395025084837016e-9 +MkPairData/12/9,8.513454713566566e-7,8.508689371442809e-7,8.518235492609301e-7,1.637994223697245e-9,1.340948433308115e-9,2.0263926649577805e-9 +MkPairData/12/44,8.504474031591193e-7,8.50122918195726e-7,8.507936573362973e-7,1.1562069973935133e-9,9.879609010893694e-10,1.3977770781041638e-9 +MkPairData/12/29,8.531415678800666e-7,8.526070874844882e-7,8.538097855923594e-7,2.0668382151012278e-9,1.738826502713158e-9,2.6072475408701103e-9 +MkPairData/12/74,8.497814104324067e-7,8.492707168930124e-7,8.502970162319586e-7,1.7243026205669174e-9,1.4455610669256798e-9,2.139345665607024e-9 +MkPairData/12/74,8.511273070610624e-7,8.502988701132424e-7,8.517993753244378e-7,2.50799962515738e-9,2.1824139732345457e-9,2.994510855217861e-9 +MkPairData/12/29,8.504908247229836e-7,8.498200591291997e-7,8.511458227951296e-7,2.2536663705805177e-9,1.925357247513453e-9,2.672897798099019e-9 +MkPairData/12/14,8.524920634899835e-7,8.519110386772545e-7,8.53044669420308e-7,1.8923249617169756e-9,1.6121219393065726e-9,2.280607013275636e-9 +MkPairData/12/49,8.482624198079894e-7,8.475525527031253e-7,8.489880295571201e-7,2.5130825716178568e-9,2.1580316963232653e-9,2.9280693152915875e-9 +MkPairData/12/14,8.463284861918884e-7,8.459115001670583e-7,8.466683868842899e-7,1.3724528235738226e-9,1.1118835290888636e-9,1.7445497119895798e-9 +MkPairData/36/473,8.470250547261363e-7,8.466078469601331e-7,8.474960591655596e-7,1.5259230410012082e-9,1.2439133599809213e-9,1.881947405754495e-9 +MkPairData/36/212,8.493235739542845e-7,8.482714394041029e-7,8.506856355725794e-7,3.816388605008548e-9,3.1132015980530874e-9,4.5889294350042805e-9 +MkPairData/36/107,8.510800901208379e-7,8.506753712429663e-7,8.514593353250807e-7,1.396187595251382e-9,1.1607764402327637e-9,1.8091432221526617e-9 +MkPairData/36/254,8.49022733559846e-7,8.484129285913253e-7,8.496258380861898e-7,2.0897117819586974e-9,1.744734478203816e-9,2.623575357542929e-9 +MkPairData/36/463,8.480408482726476e-7,8.47463992952659e-7,8.485580007265622e-7,1.9237193489148133e-9,1.630303981164843e-9,2.34268147604021e-9 +MkPairData/36/165,8.476701975309015e-7,8.467556387511821e-7,8.484720588616695e-7,2.941922230645139e-9,2.6697148092625366e-9,3.3332262579320542e-9 +MkPairData/36/4,8.47927957615309e-7,8.475720228605543e-7,8.483898094237771e-7,1.4284086367417498e-9,1.1605512304081443e-9,2.0625657077032726e-9 +MkPairData/36/191,8.505172958335552e-7,8.498051611753134e-7,8.512636852417674e-7,2.5008667230225297e-9,2.1976287787365738e-9,2.950401694861987e-9 +MkPairData/36/730,8.490494665412096e-7,8.486110689873945e-7,8.495620842964022e-7,1.6487695791934109e-9,1.3358598333208452e-9,2.115214483534379e-9 +MkPairData/36/705,8.469848069097251e-7,8.466111053331309e-7,8.473333481360543e-7,1.252673504957336e-9,1.0487095513619434e-9,1.5739894236344682e-9 +MkPairData/36/44,8.449894522567759e-7,8.446118982450778e-7,8.454068690863257e-7,1.3357839818328404e-9,1.1001225123417114e-9,1.7536975931092665e-9 +MkPairData/36/9,8.47288418016926e-7,8.466760097510639e-7,8.477739503196458e-7,1.7976286235194934e-9,1.4689379150315075e-9,2.4308015339834002e-9 +MkPairData/36/44,8.460811044729582e-7,8.456322335177117e-7,8.465018157661693e-7,1.47303862132235e-9,1.2811321475909868e-9,1.7723324815451553e-9 +MkPairData/36/29,8.504305742692941e-7,8.500512097200773e-7,8.508084929653744e-7,1.2618298470757645e-9,1.0888751481554257e-9,1.477091022809242e-9 +MkPairData/36/74,8.497199366600839e-7,8.492467517984202e-7,8.503042708289e-7,1.763626688125239e-9,1.4625636569757701e-9,2.1901013350316864e-9 +MkPairData/36/74,8.473557350775148e-7,8.469955518709942e-7,8.477205809058491e-7,1.2548603584299584e-9,1.0282735284661836e-9,1.5624710242866204e-9 +MkPairData/36/29,8.431458720668137e-7,8.425164123968367e-7,8.439468417557287e-7,2.34242904315965e-9,1.874075772050091e-9,2.919321322594776e-9 +MkPairData/36/14,8.505085096096609e-7,8.499429830047043e-7,8.511555256914331e-7,2.003601489874673e-9,1.6810226194224138e-9,2.5939241513285564e-9 +MkPairData/36/49,8.487663268739396e-7,8.481925811105187e-7,8.492741099324896e-7,1.8461928328535146e-9,1.5887958075640572e-9,2.1065492764926504e-9 +MkPairData/36/14,8.482277945244444e-7,8.478808495397081e-7,8.485181715684476e-7,1.1146203221345985e-9,9.45827332293918e-10,1.3122823607272532e-9 +MkPairData/149/473,8.447875319778189e-7,8.443687314913886e-7,8.453240896473731e-7,1.5124720880145033e-9,1.2484087769729524e-9,1.8273489014698193e-9 +MkPairData/149/212,8.490815555180618e-7,8.48675163111248e-7,8.496044759104951e-7,1.6628632038090143e-9,1.2078803262289975e-9,2.2185267742294105e-9 +MkPairData/149/107,8.486514870252141e-7,8.481418911277563e-7,8.491717684873516e-7,1.7544475405613606e-9,1.436666688338294e-9,2.2083905742108786e-9 +MkPairData/149/254,8.486623350578468e-7,8.482391435411338e-7,8.490721994976226e-7,1.3465536467105136e-9,1.0902166871458566e-9,1.704703596059629e-9 +MkPairData/149/463,8.526824328876142e-7,8.52355904940511e-7,8.531110760824968e-7,1.279584372490895e-9,1.0377249437264457e-9,1.7649600979470478e-9 +MkPairData/149/165,8.505300838695275e-7,8.501965933742115e-7,8.509715250956168e-7,1.2493046199948135e-9,9.344627235780841e-10,1.6055149895853479e-9 +MkPairData/149/4,8.513695615435118e-7,8.508414177399484e-7,8.51818086846878e-7,1.6498399324378513e-9,1.4193780140573372e-9,1.9646720209663193e-9 +MkPairData/149/191,8.481717192609108e-7,8.47655227444345e-7,8.487441047487322e-7,1.8621728157963804e-9,1.648334830920122e-9,2.147149411293584e-9 +MkPairData/149/730,8.461069314481456e-7,8.456972586459209e-7,8.464291435001801e-7,1.166691357108167e-9,9.968474749232297e-10,1.3947722334863429e-9 +MkPairData/149/705,8.483462906849608e-7,8.478402814368621e-7,8.489801944696487e-7,1.7972680571008033e-9,1.4866648969597895e-9,2.290090693431217e-9 +MkPairData/149/44,8.491390375361489e-7,8.487778557923882e-7,8.495322738142545e-7,1.254036070047807e-9,1.0040260626214174e-9,1.5525713726148234e-9 +MkPairData/149/9,8.502797713282937e-7,8.497395206716396e-7,8.508937573187109e-7,1.9530050914541053e-9,1.6218557245985933e-9,2.418061684506946e-9 +MkPairData/149/44,8.492952751767069e-7,8.488903133531759e-7,8.498894920709356e-7,1.617907287763751e-9,1.2958608342536883e-9,2.1024017574302514e-9 +MkPairData/149/29,8.476417170995375e-7,8.471028736775242e-7,8.48143573497421e-7,1.6984151470770007e-9,1.4229348488132403e-9,2.147845869167903e-9 +MkPairData/149/74,8.508269894023325e-7,8.502036033353195e-7,8.514773930865207e-7,2.1420969336754696e-9,1.8310862420126294e-9,2.5300291045862023e-9 +MkPairData/149/74,8.539349572062766e-7,8.534797162059954e-7,8.544492067583124e-7,1.657101824232844e-9,1.415261903126968e-9,1.950993522554211e-9 +MkPairData/149/29,8.546488351510361e-7,8.541152245721737e-7,8.551483965524404e-7,1.7864488844656224e-9,1.5276228147541201e-9,2.171201252786783e-9 +MkPairData/149/14,8.518467546703995e-7,8.512162035092942e-7,8.523795429072443e-7,1.9072034785749647e-9,1.5835754267578918e-9,2.4523369431912804e-9 +MkPairData/149/49,8.495940866521184e-7,8.490265597282657e-7,8.50154574682804e-7,2.0112277588175013e-9,1.7451213006507615e-9,2.3499282983392755e-9 +MkPairData/149/14,8.478788173428821e-7,8.470292628915448e-7,8.486121109844948e-7,2.745384720972174e-9,2.44970708694794e-9,3.1115056015034496e-9 +MkPairData/11/473,8.48351965112928e-7,8.475950107357766e-7,8.490743445692447e-7,2.4718538836067215e-9,2.0272913802224333e-9,3.171831074153842e-9 +MkPairData/11/212,8.498415187826923e-7,8.488223373278548e-7,8.510575701346716e-7,3.7752847969758745e-9,3.1634853584247725e-9,4.4977473995088405e-9 +MkPairData/11/107,8.45957277637046e-7,8.45068639576462e-7,8.468838928451861e-7,3.098826314556514e-9,2.598625327302685e-9,3.750200106532445e-9 +MkPairData/11/254,8.466652322699298e-7,8.462734401851455e-7,8.470604973257717e-7,1.3121910986812976e-9,1.0681227162548208e-9,1.5696406786290099e-9 +MkPairData/11/463,8.493465922400644e-7,8.490173195591565e-7,8.496984979919914e-7,1.1254579392797543e-9,9.223725151745779e-10,1.3432490964670947e-9 +MkPairData/11/165,8.506426163320215e-7,8.500957353436897e-7,8.512267015520563e-7,1.935448909765789e-9,1.514947168865438e-9,2.5350123289282574e-9 +MkPairData/11/4,8.482830815137558e-7,8.478813829322662e-7,8.486752369477632e-7,1.3301127363340407e-9,1.1487695095247292e-9,1.6659251229145273e-9 +MkPairData/11/191,8.510753888082053e-7,8.506419357916183e-7,8.516356580369654e-7,1.6199915806088565e-9,1.2508681425006642e-9,2.22406577978234e-9 +MkPairData/11/730,8.463261614388054e-7,8.459805915426638e-7,8.466698672563372e-7,1.1749289359556419e-9,9.808292572314867e-10,1.557184973760134e-9 +MkPairData/11/705,8.498878332175887e-7,8.492137690908923e-7,8.506322988558059e-7,2.360756607442911e-9,1.9492048757204186e-9,2.9288868000355283e-9 +MkPairData/11/44,8.477939850896032e-7,8.472125626951042e-7,8.484326175793907e-7,2.0538045178322334e-9,1.600703313709185e-9,2.690929950657214e-9 +MkPairData/11/9,8.477932719029406e-7,8.47203396414167e-7,8.484306520287197e-7,2.0968920386873985e-9,1.7294766434465808e-9,2.666720109632981e-9 +MkPairData/11/44,8.507098674054815e-7,8.501063688050048e-7,8.514233904740241e-7,2.354374006087274e-9,1.989339408193136e-9,3.0583941542356618e-9 +MkPairData/11/29,8.511026114815054e-7,8.50450848229701e-7,8.519824266278513e-7,2.5492207109158172e-9,2.2236930279656298e-9,3.0689156571431534e-9 +MkPairData/11/74,8.482142680560282e-7,8.474557684442588e-7,8.489642952134413e-7,2.478394916337645e-9,2.1164713413293128e-9,2.910846804653456e-9 +MkPairData/11/74,8.501508078729939e-7,8.497641040311743e-7,8.505808003040266e-7,1.3523305561563103e-9,1.14122126259426e-9,1.6308853832866512e-9 +MkPairData/11/29,8.470673254421556e-7,8.466247882123017e-7,8.475414241278421e-7,1.5484220954746117e-9,1.3492697140690133e-9,1.8309934487529164e-9 +MkPairData/11/14,8.46126800941619e-7,8.455569570961647e-7,8.467301477701455e-7,2.00118542926632e-9,1.7552631954881988e-9,2.4364549001722617e-9 +MkPairData/11/49,8.51693251245366e-7,8.511651975800546e-7,8.52377084144202e-7,2.0024017007702447e-9,1.6475605452138486e-9,2.7842416242398582e-9 +MkPairData/11/14,8.512208524406585e-7,8.506973797818835e-7,8.517463239500898e-7,1.6611727364089444e-9,1.3940846098977099e-9,2.0578619677109026e-9 +MkPairData/12/473,8.556176652447383e-7,8.551617139385752e-7,8.560664799296296e-7,1.5301658383989532e-9,1.2509763809932602e-9,1.92449678549735e-9 +MkPairData/12/212,8.515766033350811e-7,8.508956292690756e-7,8.525155891570078e-7,2.710999468063362e-9,2.324406979784484e-9,3.4393561032083544e-9 +MkPairData/12/107,8.476612701062284e-7,8.469595194542752e-7,8.48350627267973e-7,2.33189343434457e-9,1.9828230982488944e-9,2.747438956142245e-9 +MkPairData/12/254,8.480608012941412e-7,8.475864515971938e-7,8.485067058029202e-7,1.560832922879927e-9,1.2679706815025211e-9,1.931202128169444e-9 +MkPairData/12/463,8.491475351149071e-7,8.48453070733033e-7,8.497771933614296e-7,2.2419732079683517e-9,1.893345547832093e-9,2.6259333017543306e-9 +MkPairData/12/165,8.473844800364152e-7,8.467335653715349e-7,8.480267504745715e-7,2.2353435350135724e-9,1.916095533473307e-9,2.5796653340117273e-9 +MkPairData/12/4,8.482751010086694e-7,8.478597490312597e-7,8.486305731827577e-7,1.278238471269362e-9,1.0665905391545185e-9,1.5894860995564236e-9 +MkPairData/12/191,8.472457653491356e-7,8.467640949270014e-7,8.477174962078696e-7,1.603489398678653e-9,1.2643405985300363e-9,2.161604250910626e-9 +MkPairData/12/730,8.492083283475117e-7,8.487451580813211e-7,8.496243786159059e-7,1.5308511242698533e-9,1.2408924537880308e-9,2.10521702195661e-9 +MkPairData/12/705,8.474794900948193e-7,8.470301915275661e-7,8.47875045401553e-7,1.3928448956095278e-9,1.2255780642215879e-9,1.6016749969389475e-9 +MkPairData/12/44,8.496551645751542e-7,8.492129606705062e-7,8.500548627339048e-7,1.4580612340388393e-9,1.2510712759338204e-9,1.778243287186444e-9 +MkPairData/12/9,8.477466051423726e-7,8.470518195854845e-7,8.483282713412199e-7,2.1756342046516394e-9,1.7228783795555153e-9,2.785107389382189e-9 +MkPairData/12/44,8.465422631917846e-7,8.46000555652463e-7,8.470003968499878e-7,1.6447383433570642e-9,1.309331867308949e-9,2.163109813805472e-9 +MkPairData/12/29,8.464992344448379e-7,8.460693469238131e-7,8.469994454497001e-7,1.535717588145395e-9,1.2592104495547483e-9,1.930220281907849e-9 +MkPairData/12/74,8.455292096538918e-7,8.452007906075319e-7,8.458565773901932e-7,1.1420211777633911e-9,9.564203160284367e-10,1.4162367694688096e-9 +MkPairData/12/74,8.463669554611197e-7,8.45911674143162e-7,8.469727652579555e-7,1.7167184190623772e-9,1.4237275866709393e-9,2.0747750795618873e-9 +MkPairData/12/29,8.444788750413827e-7,8.440423247838249e-7,8.450363868063984e-7,1.6042665763469613e-9,1.338557887019377e-9,2.023670441206434e-9 +MkPairData/12/14,8.490018210063304e-7,8.484582495775958e-7,8.495440240566817e-7,1.95200891770211e-9,1.6444205113634755e-9,2.648270358866492e-9 +MkPairData/12/49,8.482692109633711e-7,8.477702737869076e-7,8.486629850000844e-7,1.4316041037136693e-9,1.173400914100119e-9,1.7746645919995626e-9 +MkPairData/12/14,8.474347058148145e-7,8.469269656968809e-7,8.479814849773345e-7,1.7698079194522294e-9,1.52444650727137e-9,2.1336404483836963e-9 +MkPairData/133/473,8.501587357271635e-7,8.496316048243517e-7,8.506690972499454e-7,1.7444915739007003e-9,1.4918219608503946e-9,2.072415039709227e-9 +MkPairData/133/212,8.530505495857895e-7,8.52580749166959e-7,8.535001191116601e-7,1.5822849863840287e-9,1.3378035810997986e-9,1.878217162896891e-9 +MkPairData/133/107,8.517040461993401e-7,8.513098008578808e-7,8.521458603111465e-7,1.4072798222846145e-9,1.1509036925148101e-9,1.7996296595914766e-9 +MkPairData/133/254,8.519799072329926e-7,8.516135908492689e-7,8.523878747421262e-7,1.2729739813439596e-9,1.038739981771994e-9,1.5474864015021227e-9 +MkPairData/133/463,8.483201054592445e-7,8.478686699494552e-7,8.488095227765362e-7,1.4947735230411727e-9,1.278898218725649e-9,1.7647780664493682e-9 +MkPairData/133/165,8.499481337031601e-7,8.495982348757502e-7,8.503265203970051e-7,1.2394926467223639e-9,9.88864685075625e-10,1.6794390031970897e-9 +MkPairData/133/4,8.488633660406673e-7,8.484493348441413e-7,8.49209863483971e-7,1.2957250793252616e-9,1.0174516950505979e-9,1.6835605513878681e-9 +MkPairData/133/191,8.520191503447371e-7,8.515504234897129e-7,8.524207045693173e-7,1.5349871672729771e-9,1.2848111031192848e-9,2.055278178282812e-9 +MkPairData/133/730,8.485595741508689e-7,8.481065225143562e-7,8.488750594244634e-7,1.2884067280040949e-9,1.0022967570882936e-9,1.8816437036126415e-9 +MkPairData/133/705,8.507098805776686e-7,8.502881267391554e-7,8.51161165316601e-7,1.5616341407739833e-9,1.3689098049879062e-9,1.8163785332487564e-9 +MkPairData/133/44,8.523968277389162e-7,8.51853054235132e-7,8.52993550451432e-7,1.7041651319778698e-9,1.4618149984955287e-9,1.9507140905245843e-9 +MkPairData/133/9,8.493541863858413e-7,8.489688291746611e-7,8.497798308844527e-7,1.3131709128180522e-9,1.1031301221893147e-9,1.6027008123113248e-9 +MkPairData/133/44,8.464486752360907e-7,8.460073931138975e-7,8.469495516287408e-7,1.6098961564100256e-9,1.3624137918395558e-9,2.0375883935642107e-9 +MkPairData/133/29,8.497504539673358e-7,8.494301766537099e-7,8.500853971417961e-7,1.1313300625862808e-9,8.532257924425241e-10,1.532719839109775e-9 +MkPairData/133/74,8.470420601891869e-7,8.457071261891411e-7,8.481337685631368e-7,3.9588335351806846e-9,3.306063772293084e-9,4.682054347432257e-9 +MkPairData/133/74,8.51892352937725e-7,8.514802374895889e-7,8.522539107474679e-7,1.3476335192911457e-9,1.125566618328521e-9,1.6633971809313703e-9 +MkPairData/133/29,8.498106183490489e-7,8.49335436874143e-7,8.502042935728135e-7,1.415104465071691e-9,1.185346722995258e-9,1.7875082562334094e-9 +MkPairData/133/14,8.495332338770321e-7,8.490408114149801e-7,8.501186923563085e-7,1.8742766068439026e-9,1.5635683234866442e-9,2.3087819221354497e-9 +MkPairData/133/49,8.530158698072902e-7,8.524803738552042e-7,8.53545233573587e-7,1.8273239568399479e-9,1.581822945323654e-9,2.139464760954516e-9 +MkPairData/133/14,8.483671953859648e-7,8.475868573001022e-7,8.49246827210255e-7,2.784845592807341e-9,2.388756734237502e-9,3.2473359073759224e-9 +MkPairData/4/473,8.51615712929734e-7,8.510871144621951e-7,8.521489461533509e-7,1.7112757566758393e-9,1.4110665508967987e-9,2.3326464128993662e-9 +MkPairData/4/212,8.516746034509681e-7,8.512583292913401e-7,8.520930973445158e-7,1.4505158322665207e-9,1.2308915534036693e-9,1.7899645919679835e-9 +MkPairData/4/107,8.53820434392978e-7,8.531220543500348e-7,8.546560692937132e-7,2.5076292396181733e-9,2.051685171071713e-9,3.0432434043214618e-9 +MkPairData/4/254,8.499671436257554e-7,8.495445968823676e-7,8.503979442692123e-7,1.5260283354580009e-9,1.2779494449039414e-9,1.8859133793034042e-9 +MkPairData/4/463,8.493556938438294e-7,8.488771163014341e-7,8.498851395468727e-7,1.816751039079425e-9,1.4145790088029774e-9,2.3540302321793744e-9 +MkPairData/4/165,8.447856081700425e-7,8.44439843308283e-7,8.451902416471806e-7,1.2686399772403683e-9,1.0624299374127908e-9,1.5156494875264328e-9 +MkPairData/4/4,8.479988903964441e-7,8.475425442864474e-7,8.4838480842046e-7,1.3983263730044735e-9,1.1840105692812357e-9,1.8265017413487324e-9 +MkPairData/4/191,8.488009086976741e-7,8.483403197899751e-7,8.494690530676249e-7,1.8086365282540938e-9,1.4916530069720209e-9,2.3042046294196068e-9 +MkPairData/4/730,8.47515866345899e-7,8.47017917777442e-7,8.479710188926456e-7,1.6764914842176056e-9,1.3827743216783863e-9,2.1753360561596774e-9 +MkPairData/4/705,8.459081544210006e-7,8.454271035671304e-7,8.463790998680423e-7,1.6508776195243111e-9,1.3510366337562772e-9,2.1308652038164288e-9 +MkPairData/4/44,8.463118399581311e-7,8.460496886683786e-7,8.466310811663262e-7,9.523530712940206e-10,7.910714701406493e-10,1.1631212798666127e-9 +MkPairData/4/9,8.463388130162491e-7,8.456314424038734e-7,8.470904306739815e-7,2.454291135668051e-9,2.0621879339282096e-9,2.9790823600529745e-9 +MkPairData/4/44,8.484908874496858e-7,8.480178251744578e-7,8.489905689521031e-7,1.6010515700983052e-9,1.2813213781286855e-9,2.2784406959495328e-9 +MkPairData/4/29,8.485405381723427e-7,8.481865056560787e-7,8.48956492736614e-7,1.259900181413577e-9,1.0491300902674691e-9,1.5438892405807605e-9 +MkPairData/4/74,8.493713448688283e-7,8.487904796458239e-7,8.500133042177063e-7,2.0660054084287833e-9,1.7874181513979109e-9,2.4308928929646467e-9 +MkPairData/4/74,8.499810106213728e-7,8.494618495529756e-7,8.504596637350824e-7,1.70825729762019e-9,1.4155797584640093e-9,2.1810791050294726e-9 +MkPairData/4/29,8.527218962892511e-7,8.522680371937674e-7,8.531857277953794e-7,1.6617079483406494e-9,1.3673979086657734e-9,2.2101069175274346e-9 +MkPairData/4/14,8.467070519835487e-7,8.461988964728926e-7,8.473079937154745e-7,1.862882020440557e-9,1.6215483299520288e-9,2.2032021055297204e-9 +MkPairData/4/49,8.493277086064603e-7,8.489354037030216e-7,8.497211739592175e-7,1.344927818144466e-9,1.1077413026523978e-9,1.5891575407260457e-9 +MkPairData/4/14,8.534238228025457e-7,8.52473419977704e-7,8.5425572097749e-7,3.101970485895518e-9,2.7490870913445715e-9,3.6436901452032734e-9 +MkPairData/45/473,8.496409160771444e-7,8.492793675117192e-7,8.500442694601568e-7,1.291636043085834e-9,1.0776266097010688e-9,1.5476328405049115e-9 +MkPairData/45/212,8.475018518780895e-7,8.469760569065093e-7,8.481414387192332e-7,2.0357393682092674e-9,1.6500311644336597e-9,2.5599753651025216e-9 +MkPairData/45/107,8.474644383610309e-7,8.469017153453336e-7,8.481692398945218e-7,2.238703731820119e-9,1.7864410545578946e-9,2.797379350254957e-9 +MkPairData/45/254,8.487807333698207e-7,8.48352535930708e-7,8.493032873649505e-7,1.65043020692509e-9,1.3139768105240085e-9,2.1330547697301e-9 +MkPairData/45/463,8.496481869057339e-7,8.490820325132757e-7,8.502852092166007e-7,2.0419801524951366e-9,1.762689499108787e-9,2.3783676114965387e-9 +MkPairData/45/165,8.509811346666642e-7,8.504099089991359e-7,8.516904409301924e-7,2.0864977139838397e-9,1.8465410719572439e-9,2.4612966176967292e-9 +MkPairData/45/4,8.534007827647699e-7,8.526675820175574e-7,8.543185351739644e-7,2.757482741069014e-9,2.4911367611707073e-9,3.0819144932538197e-9 +MkPairData/45/191,8.525313820386565e-7,8.521205849101761e-7,8.530777300450679e-7,1.5893599010448815e-9,1.2733727378919986e-9,2.3237588133540856e-9 +MkPairData/45/730,8.533577520826065e-7,8.530352074400358e-7,8.536609413957384e-7,1.1001420245375119e-9,8.679682522341293e-10,1.4840005194948529e-9 +MkPairData/45/705,8.485006854306714e-7,8.476746596275565e-7,8.492716390209904e-7,2.6908768856199845e-9,2.290170070560621e-9,3.1594362832463476e-9 +MkPairData/45/44,8.518153971176984e-7,8.51110262534816e-7,8.525187094600657e-7,2.4092411206510138e-9,2.1275889416425354e-9,2.8546216516282797e-9 +MkPairData/45/9,8.511026528061599e-7,8.506992744143871e-7,8.516073977733216e-7,1.5053445139236946e-9,1.2601178176988152e-9,2.0784540957803077e-9 +MkPairData/45/44,8.469819779479915e-7,8.463320791495578e-7,8.477342105782988e-7,2.3597952382275608e-9,2.0182733173082317e-9,2.775467969544285e-9 +MkPairData/45/29,8.484403837323932e-7,8.480159176669527e-7,8.488860320910749e-7,1.4157522597254744e-9,1.0963266367958324e-9,1.9616943619964133e-9 +MkPairData/45/74,8.511428847176242e-7,8.504941919849106e-7,8.516818014319778e-7,1.943737608798842e-9,1.630513169773975e-9,2.5023394510261325e-9 +MkPairData/45/74,8.506503051383942e-7,8.502021625074795e-7,8.511027048740576e-7,1.578898778798252e-9,1.3594168470249282e-9,1.9845634264946164e-9 +MkPairData/45/29,8.512175989408073e-7,8.503675666532131e-7,8.520471128865511e-7,2.848153335336188e-9,2.456532094528452e-9,3.4726565508703437e-9 +MkPairData/45/14,8.481482975963479e-7,8.475222727261543e-7,8.488526453515497e-7,2.2431814899389974e-9,1.901617218912852e-9,2.6433112957860103e-9 +MkPairData/45/49,8.529773730898727e-7,8.522794324033371e-7,8.535226763842952e-7,2.2078087250334752e-9,1.7113621594035383e-9,2.8252946982396187e-9 +MkPairData/45/14,8.503445053876425e-7,8.499304986631489e-7,8.508005615103685e-7,1.5133509492955397e-9,1.2262075031285357e-9,2.012466448261481e-9 +MkPairData/173/473,8.502746627138849e-7,8.49733971547868e-7,8.507723795143004e-7,1.840806414849322e-9,1.5843781862816365e-9,2.1825844440924306e-9 +MkPairData/173/212,8.491856422947582e-7,8.486837241878162e-7,8.497640070920844e-7,1.8729836842954895e-9,1.5771730700996925e-9,2.3122632205274702e-9 +MkPairData/173/107,8.458428351500041e-7,8.452417774185845e-7,8.463085108166552e-7,1.7339127607472081e-9,1.3720905805216487e-9,2.319800328613127e-9 +MkPairData/173/254,8.491870214617596e-7,8.485626197426748e-7,8.49680992513607e-7,1.9870630705004002e-9,1.551044320488459e-9,2.5865987432471537e-9 +MkPairData/173/463,8.473944262118563e-7,8.470438571509484e-7,8.477341586034636e-7,1.2007406309113723e-9,9.8908577017084e-10,1.5417972437883421e-9 +MkPairData/173/165,8.499011632261663e-7,8.494745633077918e-7,8.503027671598921e-7,1.405132725076023e-9,1.2058919137345158e-9,1.6971763680170842e-9 +MkPairData/173/4,8.50671010184787e-7,8.502399838689441e-7,8.511363242883986e-7,1.4751044465033338e-9,1.2228173051762933e-9,1.937107667257906e-9 +MkPairData/173/191,8.477361432940991e-7,8.468393217098123e-7,8.486272255158976e-7,3.050953699742823e-9,2.662280594526103e-9,3.4846433030859456e-9 +MkPairData/173/730,8.528039332481616e-7,8.523704453829808e-7,8.531892436204807e-7,1.4294802069241194e-9,1.2055944765674555e-9,1.7516314433987738e-9 +MkPairData/173/705,8.496190585091717e-7,8.488070786683222e-7,8.505016030426166e-7,2.9460925875277324e-9,2.4068350843830397e-9,3.5590524272755073e-9 +MkPairData/173/44,8.475187085624794e-7,8.469711262513933e-7,8.480334547267161e-7,1.9525202449583584e-9,1.6838636414097742e-9,2.3140455030463702e-9 +MkPairData/173/9,8.480519564114847e-7,8.47465837306418e-7,8.487823591550236e-7,2.128701980455348e-9,1.5464670507348712e-9,3.1818666479647193e-9 +MkPairData/173/44,8.508752349858707e-7,8.50556418774204e-7,8.511520623202157e-7,1.0174813038464148e-9,8.339986509956577e-10,1.3047604150251869e-9 +MkPairData/173/29,8.473217446331926e-7,8.468865039040765e-7,8.478230757249138e-7,1.5498483766604152e-9,1.2832816306372773e-9,1.8988721659903417e-9 +MkPairData/173/74,8.500265875453455e-7,8.49685700263071e-7,8.504151471960102e-7,1.2225809438601039e-9,1.0124759103433132e-9,1.5221435573264789e-9 +MkPairData/173/74,8.495339849333101e-7,8.490001107671413e-7,8.500253577829503e-7,1.7192252271278746e-9,1.442288701565741e-9,2.119390548547369e-9 +MkPairData/173/29,8.529707766641999e-7,8.523785021741483e-7,8.535926125491703e-7,2.096235801778953e-9,1.7781123965661567e-9,2.5769826435385795e-9 +MkPairData/173/14,8.510834601126276e-7,8.50574778033638e-7,8.515596539746266e-7,1.7379827990685606e-9,1.479293719896527e-9,2.18479036581944e-9 +MkPairData/173/49,8.509109680991149e-7,8.503080778277628e-7,8.515453320594095e-7,2.149005222950064e-9,1.7760704112275274e-9,2.6672442766602984e-9 +MkPairData/173/14,8.514881403906943e-7,8.509928588345699e-7,8.51978686134111e-7,1.665020036028387e-9,1.423119142177404e-9,2.0201843387868774e-9 +MkNilData/1,6.783734755812559e-7,6.776732429987698e-7,6.789592405394099e-7,2.132946699536984e-9,1.794123072483617e-9,2.5407145168117083e-9 +MkNilData/1,6.786185669858474e-7,6.781227626147751e-7,6.792029251972788e-7,1.731421667092448e-9,1.4957411389657024e-9,2.0444920252004003e-9 +MkNilData/1,6.748427553317429e-7,6.745273616864585e-7,6.751306426719634e-7,9.94642458681683e-10,8.275707756143565e-10,1.249522087470396e-9 +MkNilData/1,6.740469099462665e-7,6.735601515586219e-7,6.744571688533636e-7,1.4881874934004136e-9,1.256495158322082e-9,1.8183513861415619e-9 +MkNilData/1,6.769748835911504e-7,6.766330844221957e-7,6.77439660336545e-7,1.3134505376820873e-9,1.1483059471603914e-9,1.5477519303861755e-9 +MkNilData/1,6.786531738401958e-7,6.783311863010629e-7,6.790039100220565e-7,1.2015770375624188e-9,1.005502075156199e-9,1.4258223319959061e-9 +MkNilData/1,6.786322334345499e-7,6.781296078484877e-7,6.790835474681783e-7,1.598315358347226e-9,1.324911914090368e-9,1.918702230578848e-9 +MkNilData/1,6.798403532282247e-7,6.79395421843826e-7,6.802614078500349e-7,1.5076442983893285e-9,1.2626893813521514e-9,1.8996783538435854e-9 +MkNilData/1,6.75317940791507e-7,6.748930695084611e-7,6.757185460421115e-7,1.3503973279744184e-9,1.107570692116351e-9,1.6377590785986046e-9 +MkNilData/1,6.774377937547273e-7,6.769768195087858e-7,6.778311852692245e-7,1.383745400356486e-9,1.1830641252242327e-9,1.6350904690427047e-9 +MkNilData/1,6.78532201534442e-7,6.780482372932908e-7,6.789423066866909e-7,1.4390845634275546e-9,1.2051619776026636e-9,1.786115973010664e-9 +MkNilData/1,6.75573929769988e-7,6.752202965441997e-7,6.759560664451612e-7,1.2133282190792586e-9,9.430054179575472e-10,1.5544094703279468e-9 +MkNilData/1,6.775024099601574e-7,6.772161716474645e-7,6.778078547581294e-7,9.998853379506957e-10,8.370337276295043e-10,1.2080541643734988e-9 +MkNilData/1,6.79002999875363e-7,6.785784015992866e-7,6.793296589620403e-7,1.2069147726756775e-9,9.455330605739404e-10,1.9154344756610394e-9 +MkNilData/1,6.762105255644612e-7,6.75645291137285e-7,6.767061589526193e-7,1.672901606214812e-9,1.46582239686486e-9,1.9249838620822493e-9 +MkNilData/1,6.795329280538028e-7,6.789491858819202e-7,6.801010813381971e-7,1.9538097756168065e-9,1.6951923652452782e-9,2.357134466414337e-9 +MkNilData/1,6.772252445597762e-7,6.765313290995213e-7,6.779245650849983e-7,2.3369668257824714e-9,1.9561910841884037e-9,2.7733360068648065e-9 +MkNilData/1,6.787343684760973e-7,6.78290496336118e-7,6.793543457808519e-7,1.7789396013175405e-9,1.4309131997161194e-9,2.276610174388209e-9 +MkNilData/1,6.77536164775634e-7,6.77176849819014e-7,6.779312182843831e-7,1.312443963061621e-9,1.1372533155244136e-9,1.5672893619902012e-9 +MkNilData/1,6.749411331853938e-7,6.744912496198018e-7,6.753234710889758e-7,1.3808342202691524e-9,1.1991444141989293e-9,1.6147739245465967e-9 +MkNilData/1,6.74969474255265e-7,6.746274645924944e-7,6.753824033103593e-7,1.2530202497869354e-9,1.0604829069267301e-9,1.5416161412817383e-9 +MkNilData/1,6.756240595247623e-7,6.751669130692541e-7,6.760392224797398e-7,1.4079500863309151e-9,1.2036650054573079e-9,1.7542243280434964e-9 +MkNilData/1,6.771078190165346e-7,6.766860304309746e-7,6.77602012448129e-7,1.5293682146802712e-9,1.3366249507394157e-9,1.7930963038549991e-9 +MkNilData/1,6.747217701287205e-7,6.740568198190963e-7,6.754441783705228e-7,2.3191795323299556e-9,1.9970930552764812e-9,2.7337366312844045e-9 +MkNilData/1,6.776318606035087e-7,6.770802479667172e-7,6.781704541914072e-7,1.7926724715868873e-9,1.4801587180337655e-9,2.162963958649179e-9 +MkNilData/1,6.754051159390272e-7,6.749422945282116e-7,6.759108060324586e-7,1.7092661766316029e-9,1.4409553001845604e-9,2.053186668539104e-9 +MkNilData/1,6.777292853428109e-7,6.774091610723556e-7,6.780126156325518e-7,1.0227217252649266e-9,8.642142803110001e-10,1.2387695910504285e-9 +MkNilData/1,6.785376737350652e-7,6.780095490731684e-7,6.789937271248076e-7,1.6583747213097841e-9,1.442616094814528e-9,1.975378671539672e-9 +MkNilData/1,6.769691788710396e-7,6.766543608952069e-7,6.773135192415442e-7,1.0736812813681196e-9,9.2474355671176e-10,1.2658959133385346e-9 +MkNilData/1,6.791510081456401e-7,6.786400237430346e-7,6.797597665353384e-7,1.8558072519845502e-9,1.519294882466499e-9,2.1967635880898222e-9 +MkNilData/1,6.760177507305112e-7,6.756954421107332e-7,6.763562099898045e-7,1.1259557617755641e-9,9.534005025312012e-10,1.4200967915948973e-9 +MkNilData/1,6.794626509154493e-7,6.789725758269585e-7,6.799771501730517e-7,1.69421374952034e-9,1.4015445722381313e-9,2.100548658358494e-9 +MkNilData/1,6.769108502223795e-7,6.764941177470047e-7,6.773455824147883e-7,1.3934787694982748e-9,1.1380063006428578e-9,1.7868503399329375e-9 +MkNilData/1,6.752164241119884e-7,6.747142001340465e-7,6.756219936931427e-7,1.5128408951263693e-9,1.2720319074493415e-9,1.867548701539977e-9 +MkNilData/1,6.752073745995873e-7,6.748504592012151e-7,6.7557943439653e-7,1.208978062086413e-9,9.947467128803582e-10,1.5144446239250978e-9 +MkNilData/1,6.783840538662257e-7,6.779676572515986e-7,6.787785733271274e-7,1.3612274094146606e-9,1.0996973944529562e-9,1.8507946707705267e-9 +MkNilData/1,6.756224934847488e-7,6.751229045132492e-7,6.761468762305426e-7,1.7853581915115172e-9,1.56650414967798e-9,2.082190731534368e-9 +MkNilData/1,6.787762573786269e-7,6.781642524528441e-7,6.79307713138297e-7,1.990899566799339e-9,1.6935794723789054e-9,2.3231042413394782e-9 +MkNilData/1,6.790633958083354e-7,6.78715698473719e-7,6.794822365550426e-7,1.2671485980502715e-9,1.0644509159837287e-9,1.554736997695162e-9 +MkNilData/1,6.77228424384007e-7,6.769390231901259e-7,6.775033298478002e-7,9.411099708613317e-10,7.982326825511872e-10,1.1511780989973965e-9 +MkNilData/1,6.763271061867159e-7,6.759619695822443e-7,6.767097971700332e-7,1.2501109714788016e-9,1.0643815752648894e-9,1.4838951682163368e-9 +MkNilData/1,6.776727427879068e-7,6.772281358215128e-7,6.780353701809957e-7,1.3948851149516585e-9,1.1398604041638443e-9,1.7840878549682289e-9 +MkNilData/1,6.758317746708477e-7,6.755222051502108e-7,6.76115185269149e-7,9.391828506980442e-10,7.553086395903845e-10,1.2010205841941361e-9 +MkNilData/1,6.759878324174897e-7,6.754954710768117e-7,6.765127686928385e-7,1.7257200280815455e-9,1.437849964382369e-9,2.0948199970810016e-9 +MkNilData/1,6.750112877262724e-7,6.7441350362346e-7,6.755786356512373e-7,1.9018092240864814e-9,1.5869289329651114e-9,2.3200125633307155e-9 +MkNilData/1,6.753747776052945e-7,6.74945414691882e-7,6.759490832258061e-7,1.6052069637631846e-9,1.3305358471612141e-9,1.9861530901732974e-9 +MkNilData/1,6.772375221572973e-7,6.767031206735306e-7,6.778372789116737e-7,1.9057627817551344e-9,1.6686054418997088e-9,2.2667508968268414e-9 +MkNilData/1,6.808345257607897e-7,6.804271589252659e-7,6.811540033347473e-7,1.2925738461800828e-9,1.0530437054783192e-9,1.62059770313808e-9 +MkNilData/1,6.762215290591198e-7,6.759162712183795e-7,6.766070294805485e-7,1.1351735013908142e-9,9.681581511888491e-10,1.386304185955302e-9 +MkNilData/1,6.75834881192293e-7,6.753724351942503e-7,6.761914789333375e-7,1.2757526977476096e-9,1.064932405216635e-9,1.54111992479246e-9 +MkNilData/1,6.744296955018347e-7,6.740665515088789e-7,6.748078569873602e-7,1.1904320131725067e-9,9.905367564360268e-10,1.513987898748456e-9 +MkNilData/1,6.75424268249629e-7,6.750930516943052e-7,6.757896640401713e-7,1.1580499585114235e-9,9.58586921461315e-10,1.4667967088056453e-9 +MkNilData/1,6.757530116248267e-7,6.753713911262876e-7,6.761747613778953e-7,1.3661357274284646e-9,1.1273511684018998e-9,1.7147226733393283e-9 +MkNilData/1,6.720983961285814e-7,6.717758179308679e-7,6.725147784565486e-7,1.1970383035721724e-9,9.871443671602147e-10,1.4978372596374977e-9 +MkNilData/1,6.769508434520215e-7,6.765361064123796e-7,6.772968425252026e-7,1.275546011341255e-9,1.0627031043781423e-9,1.566554342375063e-9 +MkNilData/1,6.765369873922518e-7,6.760782172025312e-7,6.76921891967974e-7,1.424527583161394e-9,1.186983318112755e-9,1.7832745233515256e-9 +MkNilData/1,6.748155849826123e-7,6.744969475255332e-7,6.752140109605851e-7,1.127394026607378e-9,8.963007142050647e-10,1.447897140829122e-9 +MkNilData/1,6.776840119390242e-7,6.768843043761368e-7,6.783518231959354e-7,2.3464746647645936e-9,1.8918802412102927e-9,2.915952553537076e-9 +MkNilData/1,6.761999861604664e-7,6.75399724642841e-7,6.76931873441486e-7,2.583868919802301e-9,2.139455613902912e-9,3.248902374657865e-9 +MkNilData/1,6.795359649857859e-7,6.789073944900878e-7,6.801463437875993e-7,2.1048367232803843e-9,1.8269952657976863e-9,2.55383008832692e-9 +MkNilData/1,6.804281160815889e-7,6.797266846583723e-7,6.811598082828464e-7,2.3343151460682513e-9,2.025390830263718e-9,2.685359008758528e-9 +MkNilData/1,6.746961136731187e-7,6.741721088568289e-7,6.750920303668135e-7,1.5030359318400309e-9,1.1975348700435034e-9,1.97994292332959e-9 +MkNilData/1,6.805523238314074e-7,6.802570692869965e-7,6.808550283459017e-7,1.033888670826688e-9,8.726160083852521e-10,1.2515163356271836e-9 +MkNilData/1,6.748667891684431e-7,6.746280371432899e-7,6.751269783448933e-7,8.894227148645205e-10,7.31211872119135e-10,1.1375261846788928e-9 +MkNilData/1,6.7677701396586e-7,6.763261111484714e-7,6.771809043748745e-7,1.5325801706232465e-9,1.2608599573793766e-9,1.8875906735794793e-9 +MkNilData/1,6.769772548521135e-7,6.764817274346493e-7,6.774040025232569e-7,1.5259123829479485e-9,1.2579358327396587e-9,1.855681383756638e-9 +MkNilData/1,6.731213123753422e-7,6.727421260538691e-7,6.735029276365096e-7,1.290730080711003e-9,1.0911969158896656e-9,1.601469224438652e-9 +MkNilData/1,6.753626927151863e-7,6.748633333006247e-7,6.75849234107357e-7,1.6163168261956446e-9,1.3714251964935992e-9,1.9599478418983736e-9 +MkNilData/1,6.77585831590751e-7,6.77023249919984e-7,6.781656062642076e-7,1.9340978638035445e-9,1.613649322013657e-9,2.3181097693530964e-9 +MkNilData/1,6.761649356223597e-7,6.757105868937061e-7,6.766920892137158e-7,1.6204788522893684e-9,1.423931091292169e-9,1.8388670036425814e-9 +MkNilData/1,6.735950381494405e-7,6.731969594552255e-7,6.739719926727614e-7,1.3138239418746027e-9,1.0712752798248045e-9,1.7111030274362237e-9 +MkNilData/1,6.815574421531687e-7,6.810646867544382e-7,6.820766684063192e-7,1.7161407578491006e-9,1.4319335692387395e-9,2.055643362446861e-9 +MkNilData/1,6.755593475450773e-7,6.752754410997697e-7,6.758840208525456e-7,1.030341797376246e-9,8.709905596358612e-10,1.2755087155698805e-9 +MkNilData/1,6.7559353102422e-7,6.749632110131311e-7,6.761082816471443e-7,1.96628189487264e-9,1.6040950044346411e-9,2.3540722147573507e-9 +MkNilData/1,6.754159242496384e-7,6.749469992101397e-7,6.758520568808305e-7,1.5526411286895728e-9,1.319302316090225e-9,1.956414493227133e-9 +MkNilData/1,6.783795233712855e-7,6.779146345804781e-7,6.788130236684256e-7,1.5542410628349888e-9,1.3061606957002186e-9,1.893358546475009e-9 +MkNilData/1,6.795884297062739e-7,6.792389008232406e-7,6.800048432224098e-7,1.3058475523744116e-9,1.0967282228266392e-9,1.7037349429025161e-9 +MkNilData/1,6.759577565447197e-7,6.756367526892193e-7,6.764517706050073e-7,1.3268275093371261e-9,9.313235341100448e-10,1.8600981120739913e-9 +MkNilData/1,6.742445111645286e-7,6.738352695867445e-7,6.746807094666681e-7,1.4451167044630876e-9,1.233270718219915e-9,1.714080528705962e-9 +MkNilData/1,6.769869165121611e-7,6.764858646241744e-7,6.775246470937981e-7,1.7442670123876777e-9,1.438604031670467e-9,2.1363161050946107e-9 +MkNilData/1,6.751830627341924e-7,6.74494765964778e-7,6.75945941563814e-7,2.2611600977385967e-9,1.927795137127354e-9,2.635477828485817e-9 +MkNilData/1,6.768765332949853e-7,6.765170247656118e-7,6.772762991274806e-7,1.3197204704613442e-9,1.0598114100302508e-9,1.7414378462854614e-9 +MkNilData/1,6.778009233503803e-7,6.773711974641191e-7,6.781751435658065e-7,1.3220848627129754e-9,1.0848837197641817e-9,1.5952925413663247e-9 +MkNilData/1,6.744386496216584e-7,6.739745869518337e-7,6.749752489944827e-7,1.703885714843109e-9,1.423274150006918e-9,2.1436985005809553e-9 +MkNilData/1,6.762686349153067e-7,6.758742913755338e-7,6.766876843429293e-7,1.3558588294620647e-9,1.1757935436549494e-9,1.610479453656357e-9 +MkNilData/1,6.77093515423316e-7,6.76639634076703e-7,6.776194231100233e-7,1.7055032928046631e-9,1.3640740412474453e-9,2.1453768002212755e-9 +MkNilData/1,6.783336696977298e-7,6.777408266378225e-7,6.789253217472784e-7,1.9767282604860048e-9,1.6317850413565279e-9,2.367814500863121e-9 +MkNilData/1,6.775181505149735e-7,6.771830513020625e-7,6.778506755842339e-7,1.0715706171810598e-9,8.579670413577953e-10,1.43625887895905e-9 +MkNilData/1,6.791075757948818e-7,6.787053842015523e-7,6.79515039933749e-7,1.3945196811547728e-9,1.1777879622749443e-9,1.7663859510403133e-9 +MkNilData/1,6.768767412518377e-7,6.763039294086031e-7,6.773594357977152e-7,1.7781290785245116e-9,1.5481448977472275e-9,2.2462310508672794e-9 +MkNilData/1,6.768400854481784e-7,6.763712099541954e-7,6.772800442293845e-7,1.529585991130445e-9,1.2758372485428535e-9,1.893252008429443e-9 +MkNilData/1,6.782912885741117e-7,6.779464389707664e-7,6.786579490411396e-7,1.1791534443935026e-9,1.0003574231356197e-9,1.430903672530995e-9 +MkNilData/1,6.778208073532704e-7,6.772915364325703e-7,6.783220419073078e-7,1.7133800710229925e-9,1.473800649999435e-9,2.025005148305309e-9 +MkNilData/1,6.776417908425033e-7,6.772882019715904e-7,6.780012596331106e-7,1.228104549970723e-9,1.016299245261336e-9,1.4777617199154364e-9 +MkNilData/1,6.761503984906074e-7,6.754906057901781e-7,6.767688982237114e-7,2.3255018159730173e-9,1.9627461369972225e-9,2.778421617943967e-9 +MkNilData/1,6.804821048843781e-7,6.800711060672624e-7,6.809646416635423e-7,1.551708701219397e-9,1.2999635779597004e-9,1.9022787979676406e-9 +MkNilData/1,6.789999632800631e-7,6.784511641765114e-7,6.796023034117879e-7,1.8606210767933715e-9,1.5914232206141156e-9,2.28741397784052e-9 +MkNilData/1,6.784809302080368e-7,6.777376016660296e-7,6.792104093554094e-7,2.5542440384969746e-9,2.2511820424796266e-9,2.9794417046739807e-9 +MkNilData/1,6.810051441970833e-7,6.802497616735065e-7,6.818939892170171e-7,2.662822296937825e-9,2.394706938902573e-9,3.068148926706287e-9 +MkNilData/1,6.779670985024918e-7,6.774553165794594e-7,6.784824549219945e-7,1.7576970974855266e-9,1.4912750552274027e-9,2.1755966349750988e-9 +MkNilPairData/1,6.768448111886934e-7,6.764999805319178e-7,6.771828440368477e-7,1.1212053726598428e-9,9.326481988104617e-10,1.3807535649347175e-9 +MkNilPairData/1,6.787878100530212e-7,6.783786425688037e-7,6.792729339127812e-7,1.4384593497318312e-9,1.2271856247494483e-9,1.6896669224491835e-9 +MkNilPairData/1,6.774483395128542e-7,6.76898298584161e-7,6.778844495924881e-7,1.6154159567039239e-9,1.326152147976606e-9,2.0909163876658145e-9 +MkNilPairData/1,6.764712702759885e-7,6.760373475566932e-7,6.768598395577699e-7,1.308663958098488e-9,1.0965550903981835e-9,1.6339974286837086e-9 +MkNilPairData/1,6.797838775098869e-7,6.791593417498841e-7,6.803545070815642e-7,2.002887628273613e-9,1.6452222480464514e-9,2.546751098137309e-9 +MkNilPairData/1,6.72940900283091e-7,6.721317512988925e-7,6.736946215430549e-7,2.5342813133917064e-9,2.2288788164495394e-9,2.916552827297662e-9 +MkNilPairData/1,6.754534794962628e-7,6.750729549825279e-7,6.757816353762724e-7,1.2200651136316697e-9,9.400331860018927e-10,1.6727321703687561e-9 +MkNilPairData/1,6.75383500799918e-7,6.749629317872154e-7,6.758610522977163e-7,1.4671829206648115e-9,1.228819332118385e-9,1.7688881877798922e-9 +MkNilPairData/1,6.75649447984755e-7,6.753185682659477e-7,6.759576424301059e-7,1.1172995976380138e-9,9.322648244904581e-10,1.423897908931478e-9 +MkNilPairData/1,6.762693481398668e-7,6.75859101136291e-7,6.767159037253316e-7,1.3950302692485005e-9,1.2170113068709947e-9,1.6187181537654604e-9 +MkNilPairData/1,6.75150107945937e-7,6.74872394182854e-7,6.754981486111794e-7,1.0834230467138882e-9,8.885989487103589e-10,1.2683525641070178e-9 +MkNilPairData/1,6.770711482258927e-7,6.768333290700132e-7,6.7731319660759e-7,7.882603343348539e-10,6.174542601059044e-10,1.1911475225675513e-9 +MkNilPairData/1,6.77598900065565e-7,6.770950490364674e-7,6.780043923754018e-7,1.543908992202523e-9,1.336002883351336e-9,1.7789815311142526e-9 +MkNilPairData/1,6.739065909847176e-7,6.732943166509549e-7,6.744464403189489e-7,2.0392398092457576e-9,1.7886892890947727e-9,2.3912573247832285e-9 +MkNilPairData/1,6.767797444046432e-7,6.763851018600192e-7,6.771976852865409e-7,1.3561176177158102e-9,1.1321091042162265e-9,1.604416092237969e-9 +MkNilPairData/1,6.775044670461561e-7,6.770404777846166e-7,6.781115292404852e-7,1.7159437547691019e-9,1.3251912703961744e-9,2.669355374160988e-9 +MkNilPairData/1,6.751841995193332e-7,6.747555419326146e-7,6.755770975352373e-7,1.3496713614710725e-9,1.0982768150745069e-9,1.6831343919410617e-9 +MkNilPairData/1,6.752277314996661e-7,6.748609661437816e-7,6.755150735307813e-7,1.0822469484480925e-9,8.745950629574866e-10,1.395669265699835e-9 +MkNilPairData/1,6.755524310753122e-7,6.752254258015491e-7,6.759410990507006e-7,1.1177525059562203e-9,9.270152200743235e-10,1.4486855875004844e-9 +MkNilPairData/1,6.767928665840497e-7,6.763181344365723e-7,6.773544998436195e-7,1.7653829368836347e-9,1.3994351732103327e-9,2.349601749389821e-9 +MkNilPairData/1,6.80564252384027e-7,6.801639976050102e-7,6.809629903195795e-7,1.3518401753816252e-9,1.138953498782683e-9,1.7584585956264812e-9 +MkNilPairData/1,6.79297985093193e-7,6.788181418494115e-7,6.797881328376886e-7,1.6192571472474103e-9,1.3583666952659005e-9,1.995693632386691e-9 +MkNilPairData/1,6.755311528092968e-7,6.749538469910445e-7,6.760630105987518e-7,1.8341671103111781e-9,1.6057883699822585e-9,2.1139166010662613e-9 +MkNilPairData/1,6.775471467168613e-7,6.772233409894336e-7,6.77836446455817e-7,1.0160964540482345e-9,8.752403293318208e-10,1.2607160942689924e-9 +MkNilPairData/1,6.787916532405691e-7,6.782495360526883e-7,6.793473966496811e-7,1.8216361075272879e-9,1.5782148121307246e-9,2.1728619550808184e-9 +MkNilPairData/1,6.765165970191036e-7,6.761160552149331e-7,6.7690109989598e-7,1.2812177978585286e-9,1.1190845918293304e-9,1.487611287986336e-9 +MkNilPairData/1,6.768495290775937e-7,6.760139647760177e-7,6.77580249383662e-7,2.629584002326964e-9,2.2451891790385935e-9,3.0812558495014716e-9 +MkNilPairData/1,6.759692461343724e-7,6.755668763860249e-7,6.765185862594521e-7,1.5877026048776043e-9,1.2112979515687548e-9,2.1125646890748605e-9 +MkNilPairData/1,6.752263498883732e-7,6.746893620839972e-7,6.757213577436085e-7,1.7947026874071238e-9,1.489260619996707e-9,2.1459518926058344e-9 +MkNilPairData/1,6.728516938923136e-7,6.724839868325138e-7,6.731893250963005e-7,1.1724490039394248e-9,9.478920083118098e-10,1.4227691967189844e-9 +MkNilPairData/1,6.76268165519071e-7,6.756354922016932e-7,6.77010251295464e-7,2.354089354679894e-9,1.87921510991917e-9,2.8456228823147578e-9 +MkNilPairData/1,6.76070735185257e-7,6.757059170109525e-7,6.7646157116463e-7,1.2532987081942701e-9,1.0341243036939161e-9,1.555124819074502e-9 +MkNilPairData/1,6.763241970772045e-7,6.759977286067761e-7,6.767132679269907e-7,1.2172149004063854e-9,1.0087904598301285e-9,1.4494214517805137e-9 +MkNilPairData/1,6.80599746774033e-7,6.801430713039438e-7,6.810624036068729e-7,1.5396780443924709e-9,1.2873033137577932e-9,1.8703938313173928e-9 +MkNilPairData/1,6.768436372788841e-7,6.763035910957914e-7,6.773835369234733e-7,1.7584262682575745e-9,1.4615364807361419e-9,2.127377604320011e-9 +MkNilPairData/1,6.76052961606146e-7,6.757115051608696e-7,6.76440336082438e-7,1.2450846979302715e-9,1.0160982454427236e-9,1.7014559172614544e-9 +MkNilPairData/1,6.737813421785812e-7,6.733923583784663e-7,6.741584767109767e-7,1.2664487903177988e-9,1.0540756389234291e-9,1.5908965506891119e-9 +MkNilPairData/1,6.766454513233894e-7,6.761153318746343e-7,6.771067185998126e-7,1.6550300880171641e-9,1.422743303178046e-9,1.9942073990938103e-9 +MkNilPairData/1,6.746565693988927e-7,6.735964070143117e-7,6.75405708926508e-7,2.9026169609667956e-9,2.0774139574399567e-9,3.877505436079342e-9 +MkNilPairData/1,6.741450744586938e-7,6.736895216643984e-7,6.746234446546752e-7,1.6026717894519628e-9,1.3714442654138439e-9,1.8922355271297406e-9 +MkNilPairData/1,6.746323101673407e-7,6.740845546387134e-7,6.75242964700927e-7,1.8905393398550994e-9,1.6633052676921135e-9,2.2209630758733016e-9 +MkNilPairData/1,6.745602507490449e-7,6.741999653133396e-7,6.748907212912186e-7,1.1903241143939296e-9,9.8980805802081e-10,1.44070933001431e-9 +MkNilPairData/1,6.743493243329286e-7,6.737381792863273e-7,6.748310722572192e-7,1.8215921885423427e-9,1.5358850004955474e-9,2.202389123464799e-9 +MkNilPairData/1,6.761739433409523e-7,6.754907090459864e-7,6.7806231881438e-7,3.814665748808545e-9,1.5521635428022966e-9,7.550798716610666e-9 +MkNilPairData/1,6.789103891734201e-7,6.780931195797827e-7,6.797208653375443e-7,2.6049463637995376e-9,2.2616286893218264e-9,3.0609208191176764e-9 +MkNilPairData/1,6.802547245720682e-7,6.798493987715208e-7,6.80599155946661e-7,1.3207835920076942e-9,1.0950161101103046e-9,1.6808316951054288e-9 +MkNilPairData/1,6.766863878449296e-7,6.762206035160616e-7,6.77011559930541e-7,1.2618808166259695e-9,1.0045144432811891e-9,1.8401748432788632e-9 +MkNilPairData/1,6.740247028140029e-7,6.734679432444154e-7,6.745499515366014e-7,1.8213804398213119e-9,1.6031534274873117e-9,2.124565618589898e-9 +MkNilPairData/1,6.753808728201586e-7,6.748753364060356e-7,6.758842668313892e-7,1.6634871179200833e-9,1.3212931809116395e-9,2.1697973410612573e-9 +MkNilPairData/1,6.743502435196209e-7,6.736538924648442e-7,6.751599277816404e-7,2.5439736944195557e-9,2.137387658755804e-9,2.9390810170002276e-9 +MkNilPairData/1,6.761396326613712e-7,6.755442293322272e-7,6.767012024686331e-7,1.953682111932184e-9,1.6394892798307007e-9,2.3306430420173935e-9 +MkNilPairData/1,6.756662153596992e-7,6.752824268415769e-7,6.760471384948374e-7,1.3000521121107502e-9,1.1052398233013242e-9,1.5940800430053042e-9 +MkNilPairData/1,6.76963351271961e-7,6.767036283478999e-7,6.772179104018264e-7,8.488858682235667e-10,6.91862595200275e-10,1.083472467023091e-9 +MkNilPairData/1,6.806783242705606e-7,6.80255508336397e-7,6.810061981765015e-7,1.2416825800943862e-9,9.393240711513535e-10,1.8352037816902107e-9 +MkNilPairData/1,6.801738280081566e-7,6.795598600798649e-7,6.806066763419474e-7,1.6094575485525096e-9,1.2578838585515875e-9,2.2670556897759845e-9 +MkNilPairData/1,6.758277333558171e-7,6.753211020641773e-7,6.772621366113402e-7,2.6010543826344564e-9,1.3075770911885527e-9,4.9968246054817585e-9 +MkNilPairData/1,6.735355981087951e-7,6.730045778729373e-7,6.740647492644939e-7,1.6724056714202933e-9,1.4408603816492362e-9,2.1099543326520525e-9 +MkNilPairData/1,6.754661412143191e-7,6.750202125863705e-7,6.759255601426105e-7,1.5356668340120118e-9,1.2875024964601078e-9,1.878722655361312e-9 +MkNilPairData/1,6.799380205212466e-7,6.794801839806153e-7,6.803633517732216e-7,1.58150756216343e-9,1.3347157736111923e-9,2.001512867480965e-9 +MkNilPairData/1,6.772024408315458e-7,6.76785819025138e-7,6.775835447775261e-7,1.3167015992579887e-9,1.1308775091791215e-9,1.5425797573935035e-9 +MkNilPairData/1,6.794085964333972e-7,6.790867589640201e-7,6.797250686684851e-7,1.0711752646973337e-9,9.345578465602843e-10,1.2588165184013482e-9 +MkNilPairData/1,6.778436404170846e-7,6.775224864598028e-7,6.782223925596222e-7,1.0767975230697036e-9,8.929367536697101e-10,1.3410014852912111e-9 +MkNilPairData/1,6.760504974247657e-7,6.756004187964882e-7,6.765806037791008e-7,1.6054072648408553e-9,1.325232586794023e-9,1.8893911930851413e-9 +MkNilPairData/1,6.788129418261548e-7,6.78246291460615e-7,6.793159750342907e-7,1.8225632727851538e-9,1.5938688226911088e-9,2.1275576603190075e-9 +MkNilPairData/1,6.732910575541833e-7,6.729555562861685e-7,6.736648212621444e-7,1.19837991208344e-9,9.74203117722883e-10,1.4682505875923582e-9 +MkNilPairData/1,6.783751039614102e-7,6.779571653535984e-7,6.788018940361649e-7,1.4815428869922403e-9,1.2865874788129831e-9,1.7801203387598206e-9 +MkNilPairData/1,6.776989488437044e-7,6.773371344899397e-7,6.780676016905155e-7,1.2048298070760247e-9,9.44389585243437e-10,1.5577814937955393e-9 +MkNilPairData/1,6.736341685766462e-7,6.725841183052329e-7,6.74885064877559e-7,3.903039797311699e-9,3.0495999743288996e-9,5.111386475635523e-9 +MkNilPairData/1,6.78614391729316e-7,6.782471499166667e-7,6.789468746521645e-7,1.1315722471566071e-9,9.573560116889726e-10,1.328233401428008e-9 +MkNilPairData/1,6.747773830987158e-7,6.742896421167862e-7,6.752540434590177e-7,1.634120629823075e-9,1.4067435581113882e-9,1.957309974825108e-9 +MkNilPairData/1,6.76672460882764e-7,6.762644307109138e-7,6.771099284558294e-7,1.392100082736526e-9,1.172634589246171e-9,1.7192855810658924e-9 +MkNilPairData/1,6.781707405604598e-7,6.776967982332259e-7,6.786980473275396e-7,1.6585588937961313e-9,1.4411624954273387e-9,2.0068083754885245e-9 +MkNilPairData/1,6.808420458946416e-7,6.801261461227253e-7,6.813938378694516e-7,2.1487107318191342e-9,1.825269751730172e-9,2.557824259750211e-9 +MkNilPairData/1,6.794048604378809e-7,6.787621155465931e-7,6.801103256871874e-7,2.2621003340574784e-9,1.962729055566991e-9,2.9237061545488044e-9 +MkNilPairData/1,6.781717490040991e-7,6.778635413861861e-7,6.785076440025411e-7,1.0805566284952721e-9,9.302537227404639e-10,1.4311324880375807e-9 +MkNilPairData/1,6.794146433140796e-7,6.790071289187248e-7,6.798014431175255e-7,1.3246592978413002e-9,1.0730773738139388e-9,1.6172962816374342e-9 +MkNilPairData/1,6.792039243883397e-7,6.786863255390994e-7,6.796549113643218e-7,1.6048675598508272e-9,1.3565262762000374e-9,1.9218410285693827e-9 +MkNilPairData/1,6.793226834872756e-7,6.790119018109065e-7,6.796235186585474e-7,1.0533124444022648e-9,8.897588075512444e-10,1.2390013170028643e-9 +MkNilPairData/1,6.8063179208663e-7,6.803172267917126e-7,6.809410328543624e-7,1.139788930509494e-9,9.253322546970793e-10,1.439438204485015e-9 +MkNilPairData/1,6.801271295690993e-7,6.795247887582212e-7,6.805722822903964e-7,1.677777426556519e-9,1.3861783268571067e-9,2.0822340621833503e-9 +MkNilPairData/1,6.797554740974996e-7,6.795094056651456e-7,6.801032333085087e-7,9.715044708095981e-10,7.301902704505514e-10,1.3964815844258842e-9 +MkNilPairData/1,6.805500707999061e-7,6.799617283107992e-7,6.812834472359376e-7,2.151908573870804e-9,1.877019317494451e-9,2.5593969856564797e-9 +MkNilPairData/1,6.791527510292878e-7,6.787747582007024e-7,6.797208791180158e-7,1.4546721808925836e-9,1.1174707030396465e-9,2.1383124427458702e-9 +MkNilPairData/1,6.78550595535963e-7,6.780826982819207e-7,6.790341532855043e-7,1.5948350058973717e-9,1.3106542890928959e-9,2.0145961598182592e-9 +MkNilPairData/1,6.822538988120213e-7,6.815409619070437e-7,6.828922370097694e-7,2.167797716032267e-9,1.7737870394102363e-9,2.6228496721909135e-9 +MkNilPairData/1,6.800230245751597e-7,6.794664936514014e-7,6.805680816843173e-7,1.8435071441897544e-9,1.6251425894707825e-9,2.124183695942983e-9 +MkNilPairData/1,6.764464139373656e-7,6.758758972489718e-7,6.771583962718721e-7,2.1608611945446023e-9,1.7945597088497142e-9,2.5492794777732127e-9 +MkNilPairData/1,6.744942906872931e-7,6.741865896823498e-7,6.748418077073624e-7,1.0702933933318534e-9,9.098594431566779e-10,1.3358790147676907e-9 +MkNilPairData/1,6.782357209600616e-7,6.779663742192483e-7,6.784964531263866e-7,9.12325939839351e-10,7.960026095715279e-10,1.061748676564948e-9 +MkNilPairData/1,6.757069051080718e-7,6.752332402983145e-7,6.762146439062058e-7,1.6968740860018529e-9,1.383004819674304e-9,2.014865271437493e-9 +MkNilPairData/1,6.781929869898792e-7,6.778760818115156e-7,6.784748443815491e-7,9.658372715285076e-10,8.165914433400352e-10,1.144318952699847e-9 +MkNilPairData/1,6.760500872187857e-7,6.756167380378074e-7,6.764872947291625e-7,1.4057770020465788e-9,1.2372212904172913e-9,1.6766785312942536e-9 +MkNilPairData/1,6.783518455770259e-7,6.779443424668155e-7,6.787969071815455e-7,1.3888194771916136e-9,1.208642344905793e-9,1.6134676854035224e-9 +MkNilPairData/1,6.780519702663188e-7,6.777096946842406e-7,6.784327185508648e-7,1.2238357181313059e-9,1.0561128982571295e-9,1.4553685579492558e-9 +MkNilPairData/1,6.746663389978213e-7,6.742949059923619e-7,6.750072195282335e-7,1.176997234509794e-9,9.86409873207088e-10,1.499431202023305e-9 +MkNilPairData/1,6.761500969466267e-7,6.756996493568647e-7,6.765626302184072e-7,1.3725050458741004e-9,1.201343584938546e-9,1.6216937895870035e-9 +MkNilPairData/1,6.771786479802022e-7,6.765341735603218e-7,6.777998877169533e-7,2.182633012479524e-9,1.8614661480416578e-9,2.7633024189694734e-9 +MkNilPairData/1,6.80271174046661e-7,6.796853181907625e-7,6.808576866877621e-7,1.8618728603841654e-9,1.6668705463794603e-9,2.1602579518218743e-9 +MkNilPairData/1,6.811700774192721e-7,6.806634436200925e-7,6.817532232214524e-7,1.8475691164509517e-9,1.6031490225738942e-9,2.2419372399266348e-9 +MkNilPairData/1,6.814415159335459e-7,6.809711978083376e-7,6.819926940386485e-7,1.7125125718961953e-9,1.4418349323405053e-9,2.0395271298206347e-9 +FstPair/3,8.09018310234842e-7,8.08359088989807e-7,8.096329959788554e-7,2.1738901587835864e-9,1.8022777367924769e-9,2.617453377133436e-9 +FstPair/5,8.097428304734202e-7,8.092488766152036e-7,8.102884499900724e-7,1.7443221043119235e-9,1.5203506575525629e-9,2.0544343266077554e-9 +FstPair/7,8.127324977194892e-7,8.123981533908447e-7,8.129843716817587e-7,1.0323293654730303e-9,8.157994391413055e-10,1.3585696536298088e-9 +FstPair/9,8.118382876380813e-7,8.112839823459873e-7,8.123966139269929e-7,1.9387642002725375e-9,1.5952877267182372e-9,2.3153473254294927e-9 +FstPair/11,8.103911207771449e-7,8.100264410191076e-7,8.107559610182232e-7,1.2206724740780338e-9,1.007158213660612e-9,1.5019525372438366e-9 +FstPair/13,8.098114678927816e-7,8.08922377041159e-7,8.107449264552975e-7,3.1435181002310093e-9,2.7815026710905777e-9,3.713251410351747e-9 +FstPair/15,8.100350719894309e-7,8.095943755888142e-7,8.105065917784016e-7,1.509969905769865e-9,1.2839014358017146e-9,1.8151106719303267e-9 +FstPair/17,8.140507046848604e-7,8.135865441763076e-7,8.144977389758343e-7,1.5583980506426632e-9,1.2993418182971238e-9,1.850497852974129e-9 +FstPair/19,8.119326202048837e-7,8.110435841043705e-7,8.127060963192908e-7,2.810092740807999e-9,2.3800500617681297e-9,3.35950431216524e-9 +FstPair/21,8.125659088770258e-7,8.121367212311592e-7,8.130014866515809e-7,1.5216196352834497e-9,1.2415966803766298e-9,1.913628910871314e-9 +FstPair/23,8.125282642309956e-7,8.121369655319484e-7,8.129634827632662e-7,1.4639263056503562e-9,1.188822029972678e-9,1.8262835704003455e-9 +FstPair/25,8.12515519038752e-7,8.119799566193292e-7,8.131100845020903e-7,1.8637300922904345e-9,1.5268859275597923e-9,2.7202256000614964e-9 +FstPair/27,8.139827324184641e-7,8.133079463743552e-7,8.149849573651059e-7,2.7881605618250396e-9,1.993091041296969e-9,3.582856888250531e-9 +FstPair/29,8.11347044735867e-7,8.109756024117277e-7,8.11773690283171e-7,1.3913284705916825e-9,1.1036046933550317e-9,1.9447595159344314e-9 +FstPair/31,8.115904723538248e-7,8.112637596102035e-7,8.119267587126677e-7,1.1916144384047244e-9,1.0078032441392541e-9,1.4268714774475744e-9 +FstPair/33,8.119958670030751e-7,8.115214646024232e-7,8.124579016308338e-7,1.5758867655624669e-9,1.3326488149387913e-9,1.8521144879858724e-9 +FstPair/35,8.085471047468406e-7,8.079932894405029e-7,8.090644753259917e-7,1.8090996848055065e-9,1.4682061670353249e-9,2.2625673795074386e-9 +FstPair/37,8.12389500625206e-7,8.118711687562176e-7,8.130041597348201e-7,1.9241222928249076e-9,1.6176354159424118e-9,2.2377273424931708e-9 +FstPair/39,8.118004061051087e-7,8.114353570689174e-7,8.121771152798966e-7,1.3100068684021048e-9,1.0978080585261989e-9,1.5529980986413336e-9 +FstPair/41,8.092188775117995e-7,8.088158268570681e-7,8.096196536888221e-7,1.3980353975225854e-9,1.1649203414006697e-9,1.7485195823040227e-9 +FstPair/43,8.13227118396509e-7,8.125757935029679e-7,8.139573302408219e-7,2.2616226485468913e-9,1.9716857885393387e-9,2.6457860683118277e-9 +FstPair/45,8.157884002307901e-7,8.151757913378152e-7,8.164404942738224e-7,1.9415113897743592e-9,1.6467545099637988e-9,2.312762571499089e-9 +FstPair/47,8.121338979789206e-7,8.1174900466958e-7,8.125565937379955e-7,1.430972758497426e-9,1.1832319004109121e-9,1.746072193465984e-9 +FstPair/49,8.126132908628983e-7,8.12181224628699e-7,8.130797764043673e-7,1.571779561744938e-9,1.26851466266935e-9,2.311246363930066e-9 +FstPair/51,8.126153584563202e-7,8.122439012382718e-7,8.130090743762894e-7,1.2925880998150602e-9,1.1077560269535453e-9,1.5439797156310492e-9 +FstPair/53,8.123505360748894e-7,8.117193617769955e-7,8.129185347345533e-7,2.004067000064414e-9,1.7120938543857472e-9,2.3278789891018596e-9 +FstPair/55,8.134107463925175e-7,8.130079058421061e-7,8.137703552398501e-7,1.3566625595446095e-9,1.1637484321729585e-9,1.7082523402924402e-9 +FstPair/57,8.12338327052585e-7,8.120195219644074e-7,8.126192348257382e-7,1.0076521248499724e-9,8.198520899521099e-10,1.3475502084478445e-9 +FstPair/59,8.10223500592738e-7,8.098039571612388e-7,8.106125768703428e-7,1.4065924761048186e-9,1.199457887312926e-9,1.7221374148838204e-9 +FstPair/61,8.118179957176194e-7,8.115496402167959e-7,8.120490318212911e-7,8.489210274492644e-10,6.927524149919122e-10,1.1188996991603437e-9 +FstPair/63,8.115432217666831e-7,8.112282183402721e-7,8.118955455301395e-7,1.136808931349689e-9,9.312871425663037e-10,1.5221621041526833e-9 +FstPair/65,8.133944739570283e-7,8.128261504344568e-7,8.139239682012979e-7,1.86739404134675e-9,1.5259160411089994e-9,2.2815957254245024e-9 +FstPair/67,8.065194187969051e-7,8.061138584091117e-7,8.06990600246242e-7,1.5991720660251627e-9,1.302798945410115e-9,2.1552018624371034e-9 +FstPair/69,8.087135495100897e-7,8.083669918612983e-7,8.091751666159693e-7,1.3161002737047304e-9,9.919097261994006e-10,1.9897933168459735e-9 +FstPair/71,8.080564605425225e-7,8.075920856829226e-7,8.08531327590214e-7,1.6063913058494529e-9,1.4186682219679658e-9,1.9380967225621097e-9 +FstPair/73,8.130943140686046e-7,8.12586187778915e-7,8.13767073501196e-7,1.986808841162818e-9,1.6179509141374202e-9,2.5437146360858327e-9 +FstPair/75,8.093512844405113e-7,8.090095547311702e-7,8.096849171554411e-7,1.1611263534189879e-9,9.80451383378055e-10,1.4230238391277333e-9 +FstPair/77,8.090061959312798e-7,8.084882403374762e-7,8.094934245414568e-7,1.7165481453900429e-9,1.4716159435983637e-9,1.9959710147326103e-9 +FstPair/79,8.093196974409954e-7,8.088589990825244e-7,8.097967149263877e-7,1.5937806769460744e-9,1.2895421421853006e-9,2.018312844585235e-9 +FstPair/81,8.094963427784517e-7,8.091620577639137e-7,8.098226177344981e-7,1.082769816606653e-9,9.120688814398913e-10,1.3183775908187981e-9 +FstPair/83,8.095935179525687e-7,8.090976351338081e-7,8.100230380951272e-7,1.5205856922454521e-9,1.2798195259747692e-9,1.805180578944271e-9 +FstPair/85,8.109201890788046e-7,8.10372124202323e-7,8.11466396543597e-7,1.906971037476038e-9,1.6006807685412796e-9,2.312482231178766e-9 +FstPair/87,8.141497436020878e-7,8.137071111663436e-7,8.146490342230964e-7,1.5607084617122625e-9,1.2427889198703648e-9,2.2418133553958335e-9 +FstPair/89,8.102774904109497e-7,8.098176553714091e-7,8.106704838687226e-7,1.4401063643497791e-9,1.1073913156353144e-9,1.8324365171799772e-9 +FstPair/91,8.090123210089848e-7,8.084009028830496e-7,8.096377263509764e-7,2.0952001651848254e-9,1.8046130308101764e-9,2.525605350395955e-9 +FstPair/93,8.119000807628965e-7,8.11523992534921e-7,8.122779313964587e-7,1.3003063170183652e-9,1.140461123987887e-9,1.5216518301758066e-9 +FstPair/95,8.132070722338674e-7,8.125813106083537e-7,8.138789862783904e-7,2.039682850657058e-9,1.657747107545409e-9,2.4984478117850543e-9 +FstPair/97,8.099326397872509e-7,8.095254982824156e-7,8.103511327007251e-7,1.4459665252694709e-9,1.1760374954002623e-9,1.8431653419916752e-9 +FstPair/99,8.116424458513021e-7,8.112866073546667e-7,8.12019669437297e-7,1.3108779062385636e-9,1.1466137169376188e-9,1.6201187925893774e-9 +FstPair/101,8.137592243280805e-7,8.132166490342147e-7,8.143421768689966e-7,1.84683785454298e-9,1.536019878657241e-9,2.3009001304320176e-9 +FstPair/103,8.108459377571029e-7,8.104488764804761e-7,8.111999503023528e-7,1.3241185857757901e-9,1.1270370475363515e-9,1.5908592994338025e-9 +FstPair/105,8.112683679147949e-7,8.108171707318721e-7,8.117417011343155e-7,1.507602805763441e-9,1.2911587391076802e-9,1.7864891910931217e-9 +FstPair/107,8.109945446916588e-7,8.1062828084882e-7,8.113912406946425e-7,1.2904979182057699e-9,1.1165049785934686e-9,1.4884031032236718e-9 +FstPair/109,8.127231425175841e-7,8.123623400248605e-7,8.131061917253746e-7,1.2586809035012594e-9,1.064299114469141e-9,1.5252391941814376e-9 +FstPair/111,8.110321326065753e-7,8.107757859689521e-7,8.112893407575038e-7,8.502274288038764e-10,7.136475018118728e-10,1.0257156852580272e-9 +FstPair/113,8.136369156856323e-7,8.129308711088121e-7,8.145588692355551e-7,2.663615317338034e-9,2.1914327022710266e-9,3.2364104599304874e-9 +FstPair/115,8.147975179030112e-7,8.142894992540742e-7,8.152459451667528e-7,1.5454113223128539e-9,1.266017120590317e-9,1.992322399674281e-9 +FstPair/117,8.104719801239287e-7,8.101344687031728e-7,8.108119627799597e-7,1.1364196755550624e-9,9.69963153890267e-10,1.4400449105462344e-9 +FstPair/119,8.115836555503548e-7,8.113249795518652e-7,8.118393848461945e-7,8.682793079010801e-10,7.454090550698043e-10,1.1218449632068017e-9 +FstPair/121,8.131146158710841e-7,8.12621015480001e-7,8.137753092216294e-7,1.9462156361253395e-9,1.4997920630546398e-9,2.744309650223202e-9 +FstPair/123,8.12519654572517e-7,8.122184293471189e-7,8.128448088186734e-7,1.0087027859418201e-9,8.492699363178798e-10,1.2641634539082344e-9 +FstPair/125,8.13435447735524e-7,8.128183060632773e-7,8.143611605232395e-7,2.6935661903551355e-9,2.0989392091957887e-9,3.5924873455052294e-9 +FstPair/127,8.101894273197206e-7,8.097442907371674e-7,8.106028722655823e-7,1.4579165503695568e-9,1.2572791622262522e-9,1.7197375643059486e-9 +FstPair/129,8.133367152660125e-7,8.12635978470864e-7,8.141176183415078e-7,2.4290100472947162e-9,2.0182645788229192e-9,3.146701730667686e-9 +FstPair/131,8.128042715659937e-7,8.122537151527035e-7,8.133382107196117e-7,1.7649622352477474e-9,1.480523014776233e-9,2.149880193854512e-9 +FstPair/133,8.106830443010426e-7,8.104680686830653e-7,8.109145641851629e-7,7.887773059150238e-10,6.105520238649424e-10,1.1000434484181378e-9 +FstPair/135,8.139754848630074e-7,8.136084978857506e-7,8.143607345893264e-7,1.2365032765415624e-9,1.0659259177259797e-9,1.467989188430614e-9 +FstPair/137,8.113512047269652e-7,8.109780856039588e-7,8.118238541328221e-7,1.4480077578976274e-9,1.1314118900860273e-9,1.9543762040583558e-9 +FstPair/139,8.117426485772292e-7,8.11272371069816e-7,8.121972480096158e-7,1.590951807112697e-9,1.3382260618126067e-9,1.8890221783216774e-9 +FstPair/141,8.105415044258626e-7,8.102039189380671e-7,8.108864787919677e-7,1.1403261188734325e-9,9.491042595269874e-10,1.4060457133803712e-9 +FstPair/143,8.123697521391581e-7,8.118975634147837e-7,8.128536230135835e-7,1.6303985723705445e-9,1.375549979295416e-9,2.2458274080016166e-9 +FstPair/145,8.079714226071325e-7,8.075619590800269e-7,8.084068423441195e-7,1.4227594414867312e-9,1.2201035032535934e-9,1.6611766946442258e-9 +FstPair/147,8.128059640623441e-7,8.123362726539026e-7,8.13194122601143e-7,1.4461725946600466e-9,1.1984447022605526e-9,1.8624457927556717e-9 +FstPair/149,8.133554596829667e-7,8.126615175952968e-7,8.145648904572559e-7,2.9350223651116853e-9,1.908111647539116e-9,4.290273599426303e-9 +FstPair/151,8.129765126539164e-7,8.12609596994027e-7,8.134139906146697e-7,1.2575645656511838e-9,9.893871953234432e-10,1.6439875847082215e-9 +FstPair/153,8.113715647434652e-7,8.107643081711781e-7,8.119234342809e-7,1.985611494726721e-9,1.6358010404896648e-9,2.4421135940075466e-9 +FstPair/155,8.120324567086673e-7,8.117661164187254e-7,8.123376330948357e-7,1.0141414487410628e-9,8.471531897032806e-10,1.2288235122950302e-9 +FstPair/157,8.12710759409244e-7,8.122720839643373e-7,8.13095512251068e-7,1.3434568115342295e-9,1.0637779019543267e-9,1.7385165348814647e-9 +FstPair/159,8.12456196127704e-7,8.120800285547123e-7,8.128488767320514e-7,1.2995131415376906e-9,1.0976564353504525e-9,1.5907710445000515e-9 +FstPair/161,8.124691600212832e-7,8.121716991801757e-7,8.128285322003484e-7,1.1621923764719479e-9,9.248982710643699e-10,1.539362821120199e-9 +FstPair/163,8.102727770859067e-7,8.098241757676609e-7,8.107364867436081e-7,1.5756040589754645e-9,1.30971583279478e-9,1.9265273600549837e-9 +FstPair/165,8.130425216255292e-7,8.127859205219658e-7,8.132825694813411e-7,8.137974130509509e-10,6.796608366631407e-10,1.0077981601827356e-9 +FstPair/167,8.127973931963703e-7,8.124944024005397e-7,8.131989219360551e-7,1.1954640200913425e-9,9.171526932225978e-10,1.7407164160825797e-9 +FstPair/169,8.139718360272083e-7,8.134351783943881e-7,8.147355372637564e-7,2.174826479885661e-9,1.5478893258238956e-9,2.9686035561918193e-9 +FstPair/171,8.113801501314893e-7,8.106010686447532e-7,8.120714564329892e-7,2.5209645552035667e-9,2.1673625331302547e-9,3.2110549604925502e-9 +FstPair/173,8.118500340399847e-7,8.111999727414126e-7,8.123861209672921e-7,1.969622363269213e-9,1.7167849626632797e-9,2.3347004405764776e-9 +FstPair/175,8.110670775453586e-7,8.105417995290084e-7,8.115773442237943e-7,1.7954157441859428e-9,1.5208454305330642e-9,2.1542072279455646e-9 +FstPair/177,8.081734156628997e-7,8.077661114838357e-7,8.0846602201885e-7,1.2442909082768703e-9,9.128475892449086e-10,1.96134185263796e-9 +FstPair/179,8.093741144085525e-7,8.089035839871134e-7,8.099131045883775e-7,1.7576047534299616e-9,1.4690711875270876e-9,2.0486591077472524e-9 +FstPair/181,8.129338453991351e-7,8.125786887278098e-7,8.132949769368521e-7,1.2415491005626965e-9,1.047899688328833e-9,1.4882715465497295e-9 +FstPair/183,8.111723599331204e-7,8.108628569532978e-7,8.115006125903564e-7,1.0522273339958917e-9,8.184844850920143e-10,1.4095652812037142e-9 +FstPair/185,8.124178433596629e-7,8.117698602929387e-7,8.132928580096361e-7,2.6510003356893566e-9,2.0775065428989435e-9,3.454924959941591e-9 +FstPair/187,8.105097319710502e-7,8.101538316761148e-7,8.108760908626313e-7,1.2440135941356464e-9,9.591920068414525e-10,1.6020138796161736e-9 +FstPair/189,8.131746623005294e-7,8.128501067544499e-7,8.135409692568839e-7,1.141251534589125e-9,9.271932914432637e-10,1.4257166900358002e-9 +FstPair/191,8.134673655600319e-7,8.129882059385379e-7,8.139160152889854e-7,1.5812354009330357e-9,1.3116052384529e-9,1.853698611211699e-9 +FstPair/193,8.112580999453067e-7,8.109130006654805e-7,8.116342615044624e-7,1.2588596563442288e-9,1.0891514315471029e-9,1.4987730837271611e-9 +FstPair/195,8.120066041233419e-7,8.11711205832296e-7,8.122604443894385e-7,9.39585758924349e-10,7.818858456727322e-10,1.1903679185349568e-9 +FstPair/197,8.120158204293908e-7,8.116024644874093e-7,8.124160717206815e-7,1.3183659466382365e-9,1.0469676196591686e-9,1.6613513981401447e-9 +FstPair/199,8.130351588866813e-7,8.126662018159149e-7,8.134200206323198e-7,1.2872320151478663e-9,1.0949323964648445e-9,1.5645469312895197e-9 +FstPair/201,8.118779611890874e-7,8.114963666573038e-7,8.122940546112603e-7,1.3457436615338142e-9,1.1306450907263596e-9,1.606692816275349e-9 +SndPair/3,8.108158750982623e-7,8.10249544979016e-7,8.114282953207179e-7,2.0896510729499677e-9,1.7503798901069855e-9,2.4689020760246074e-9 +SndPair/5,8.118048409757684e-7,8.113166399823399e-7,8.123289123744005e-7,1.6166681787543797e-9,1.3477831028317844e-9,2.0308592982891166e-9 +SndPair/7,8.12071965666899e-7,8.116146994582244e-7,8.125945343456151e-7,1.6227936215570074e-9,1.395486072839408e-9,1.9711714253260378e-9 +SndPair/9,8.103648337278676e-7,8.100219215383155e-7,8.10700043492281e-7,1.1824777537930466e-9,1.0199308540965072e-9,1.4303391512628665e-9 +SndPair/11,8.10815780566942e-7,8.102148060163294e-7,8.113995255138869e-7,2.0069000595776966e-9,1.7329541213446977e-9,2.316891084893399e-9 +SndPair/13,8.119443001145827e-7,8.112343100252897e-7,8.125762215612696e-7,2.2326656138238057e-9,1.8241170577041931e-9,2.7319949879515256e-9 +SndPair/15,8.132684460831405e-7,8.129102791194608e-7,8.136120598171136e-7,1.1830955727076937e-9,1.0131588844458448e-9,1.4041657196517482e-9 +SndPair/17,8.127772068021112e-7,8.123828080240311e-7,8.131328739388452e-7,1.2211303633337143e-9,1.0014657888766177e-9,1.5628905871468077e-9 +SndPair/19,8.126868496261722e-7,8.120852633017861e-7,8.132224895940032e-7,1.9369508662588548e-9,1.7324790280838099e-9,2.2002936840649896e-9 +SndPair/21,8.127708804508184e-7,8.123010684590832e-7,8.13245907549877e-7,1.460783425623658e-9,1.2357272312804246e-9,1.7607203218598667e-9 +SndPair/23,8.126128610347959e-7,8.122289824685361e-7,8.130042997339936e-7,1.364139017205326e-9,1.143765207030588e-9,1.7604440579079488e-9 +SndPair/25,8.127626152844204e-7,8.124849921249494e-7,8.130590027978711e-7,9.968664145222885e-10,8.434317286515897e-10,1.204738421943377e-9 +SndPair/27,8.128177178665391e-7,8.123539700748226e-7,8.133257882515543e-7,1.6468889798049195e-9,1.4055504838538738e-9,1.991697339899113e-9 +SndPair/29,8.115036632678629e-7,8.110422975466633e-7,8.120635533299486e-7,1.648309651155519e-9,1.3268593058990887e-9,1.9671483245640597e-9 +SndPair/31,8.111309893519091e-7,8.10237605125263e-7,8.118246587998106e-7,2.5859536733469652e-9,2.1871928659555223e-9,3.037668386133368e-9 +SndPair/33,8.11756671028859e-7,8.113671221464796e-7,8.120856098482635e-7,1.2812516899036977e-9,1.035914558081174e-9,1.6051317480824973e-9 +SndPair/35,8.128269946655529e-7,8.125026976026884e-7,8.13151189012256e-7,1.1229852537056095e-9,9.317569421791911e-10,1.3568290070279158e-9 +SndPair/37,8.120846990741937e-7,8.117424488636763e-7,8.123920148073078e-7,1.0672835886931927e-9,8.96503425340641e-10,1.3218048462386394e-9 +SndPair/39,8.124377459321412e-7,8.120942086004382e-7,8.128002124965827e-7,1.2522333395817859e-9,1.0259938509938814e-9,1.5583448930480194e-9 +SndPair/41,8.145805521198617e-7,8.141247223978495e-7,8.150899649311864e-7,1.5576770902786319e-9,1.286039231683688e-9,1.9542132807697562e-9 +SndPair/43,8.154644427232803e-7,8.150881390624314e-7,8.157599265491012e-7,1.079706031738419e-9,8.911074620704374e-10,1.3599056068150556e-9 +SndPair/45,8.122068150653268e-7,8.117758322107984e-7,8.125466420387397e-7,1.333473776731599e-9,1.137872179938941e-9,1.5698526871873848e-9 +SndPair/47,8.127746719856938e-7,8.121916749840526e-7,8.134094010954277e-7,2.0174219720454234e-9,1.6151224384267978e-9,2.6067348941675024e-9 +SndPair/49,8.099289672589496e-7,8.09515962028398e-7,8.10408335354301e-7,1.5095417613018809e-9,1.2677067217076135e-9,1.8493044108423943e-9 +SndPair/51,8.128430768076548e-7,8.125905919535537e-7,8.131277808689874e-7,8.64649063278143e-10,7.171389335649006e-10,1.0804357027637003e-9 +SndPair/53,8.096495097677296e-7,8.087800864571188e-7,8.103820264811545e-7,2.6188768719032184e-9,2.218366787543138e-9,3.1719116755019623e-9 +SndPair/55,8.121862887051098e-7,8.116403555173468e-7,8.127211195364281e-7,1.7429556609331599e-9,1.5134970576252806e-9,2.1253184069313063e-9 +SndPair/57,8.12063149290508e-7,8.118184163936485e-7,8.123388244494208e-7,8.457473445170468e-10,7.296915195422899e-10,1.0047978313899175e-9 +SndPair/59,8.117042195204533e-7,8.113250809044279e-7,8.121181785444024e-7,1.3414074697860372e-9,1.1380227843134005e-9,1.6264654118344367e-9 +SndPair/61,8.123508986254655e-7,8.120378026543836e-7,8.126225139823648e-7,9.94809647736235e-10,8.464399928439949e-10,1.2181855984518582e-9 +SndPair/63,8.110172269253552e-7,8.106604211689411e-7,8.113896834663525e-7,1.3479468734363829e-9,1.147203844102516e-9,1.6056763084445407e-9 +SndPair/65,8.105538863158343e-7,8.102388158043245e-7,8.108516444732482e-7,9.96582890435228e-10,8.176810734932964e-10,1.2418132437636503e-9 +SndPair/67,8.10087499783316e-7,8.098091512344479e-7,8.103461031264943e-7,8.884969507369766e-10,7.250268736621028e-10,1.0976980551123842e-9 +SndPair/69,8.125575634784611e-7,8.12091239068482e-7,8.13079936221579e-7,1.6306299778139617e-9,1.3692776333688064e-9,2.063612555011669e-9 +SndPair/71,8.131691417172152e-7,8.128336476021385e-7,8.134511279686039e-7,1.0746960843576128e-9,9.111078025594176e-10,1.3680009173251159e-9 +SndPair/73,8.117837800654666e-7,8.113844824145707e-7,8.121552714186979e-7,1.2671905094097982e-9,1.0880549245825752e-9,1.527776744483126e-9 +SndPair/75,8.114154875048638e-7,8.111034299286137e-7,8.118065909548071e-7,1.1538233349995098e-9,8.513627113528114e-10,1.5799359988287087e-9 +SndPair/77,8.091881209801775e-7,8.088914205999737e-7,8.095276103603768e-7,1.0974267318000072e-9,9.114293365878576e-10,1.3661195145934406e-9 +SndPair/79,8.113113269989827e-7,8.109802402623781e-7,8.11685892483032e-7,1.1914405964656867e-9,9.981779479924251e-10,1.4943024266053002e-9 +SndPair/81,8.132259859045746e-7,8.128334021787249e-7,8.136171378266248e-7,1.3111398362786145e-9,1.1006078342175134e-9,1.5598836415283486e-9 +SndPair/83,8.107237727221092e-7,8.102184193705377e-7,8.112284990145952e-7,1.7774931618909027e-9,1.4958273959783018e-9,2.1320320339049574e-9 +SndPair/85,8.095349218231746e-7,8.091836909509548e-7,8.099198721413258e-7,1.2232988976983325e-9,9.739986026100186e-10,1.6108242145262316e-9 +SndPair/87,8.140908123564139e-7,8.136027999844582e-7,8.14486746541724e-7,1.4150517938381781e-9,1.2000438442726779e-9,1.6555255126983837e-9 +SndPair/89,8.120901459977531e-7,8.116911461934303e-7,8.126253414829134e-7,1.583636378919403e-9,1.2677110008207824e-9,2.0981479540879092e-9 +SndPair/91,8.094867081673079e-7,8.091739931146538e-7,8.098483920547902e-7,1.1740376762804643e-9,1.0089910745547895e-9,1.4150235395113968e-9 +SndPair/93,8.116695451572713e-7,8.112974031416148e-7,8.120749306997988e-7,1.3456744767089398e-9,1.1367858029261842e-9,1.6506984168657331e-9 +SndPair/95,8.12925387921036e-7,8.125025990710136e-7,8.134081843727921e-7,1.5060668147150902e-9,1.3020766384577594e-9,1.876121468465432e-9 +SndPair/97,8.112834340268932e-7,8.106814542344294e-7,8.119278424538541e-7,2.0645889240646732e-9,1.8078128886092249e-9,2.358813937149169e-9 +SndPair/99,8.100329514852053e-7,8.096782405500193e-7,8.104227412857665e-7,1.2894663986082047e-9,1.0508832088131716e-9,1.5472900410535379e-9 +SndPair/101,8.109197941505565e-7,8.103883354433481e-7,8.114377672572051e-7,1.7330401671456238e-9,1.4964611421747403e-9,2.0303550771105936e-9 +SndPair/103,8.120921065523329e-7,8.117995632267356e-7,8.124803853905797e-7,1.124760257355058e-9,8.701766111344575e-10,1.597007002894301e-9 +SndPair/105,8.127014366064884e-7,8.12342971640898e-7,8.1311877024129e-7,1.3304869092608067e-9,1.0463409989838967e-9,1.6657023281455287e-9 +SndPair/107,8.112803800056668e-7,8.10728507185115e-7,8.118249235756957e-7,1.8274304543643353e-9,1.5909605975379398e-9,2.145555492153607e-9 +SndPair/109,8.129453356717611e-7,8.126725467809234e-7,8.133339918891444e-7,1.0269637431961606e-9,8.120274286698468e-10,1.4695775839288833e-9 +SndPair/111,8.099247341320487e-7,8.093908776522196e-7,8.10326819845018e-7,1.646389803266075e-9,1.3764938003845596e-9,2.295241412590927e-9 +SndPair/113,8.134129645322159e-7,8.127893258736903e-7,8.139780415132321e-7,1.917037204271895e-9,1.5618405116407064e-9,2.397641722625368e-9 +SndPair/115,8.122924659882508e-7,8.117433871076372e-7,8.128045279187005e-7,1.7257550391394e-9,1.4818686147419183e-9,2.0553614049710687e-9 +SndPair/117,8.112971226174212e-7,8.103416400117391e-7,8.119238622138383e-7,2.5446361972022544e-9,1.9896333416601067e-9,3.55718682891489e-9 +SndPair/119,8.112049335020197e-7,8.106106186198849e-7,8.117928115688058e-7,1.8918089588992404e-9,1.6134592611415295e-9,2.333937745574e-9 +SndPair/121,8.146056752929482e-7,8.141807308634913e-7,8.149894822362582e-7,1.4271540656882678e-9,1.2148403922102444e-9,1.6755853983676856e-9 +SndPair/123,8.117648711603617e-7,8.115186904636204e-7,8.120959667296032e-7,9.212764227788338e-10,7.494665108958592e-10,1.1990176780625785e-9 +SndPair/125,8.115452258140348e-7,8.111909911716324e-7,8.119460030798859e-7,1.3176661590004905e-9,1.106321553832443e-9,1.617180683717148e-9 +SndPair/127,8.122983670453803e-7,8.119168115216376e-7,8.12676895779229e-7,1.3149854391511334e-9,1.11657654047911e-9,1.5519310221581103e-9 +SndPair/129,8.12619551980917e-7,8.123280594233276e-7,8.128950417716986e-7,9.64960931275819e-10,8.030576271100955e-10,1.1606740581464865e-9 +SndPair/131,8.140879446479386e-7,8.138049120033452e-7,8.143804044124941e-7,9.527557724822244e-10,8.125532076780223e-10,1.2004599698339725e-9 +SndPair/133,8.118191106288162e-7,8.11435146765776e-7,8.12244589157194e-7,1.2710657468682695e-9,1.0751297799092563e-9,1.5908532512043267e-9 +SndPair/135,8.111915376834792e-7,8.107511917304653e-7,8.115828936726729e-7,1.3753577785638568e-9,1.1149778589267129e-9,2.0419162796084883e-9 +SndPair/137,8.129924394059483e-7,8.124450053178282e-7,8.135037649553001e-7,1.8780311828701565e-9,1.602011193756713e-9,2.285979209033578e-9 +SndPair/139,8.104409557849392e-7,8.099666686214589e-7,8.109376260774302e-7,1.7087634459493545e-9,1.3912699475643213e-9,2.1518681037609518e-9 +SndPair/141,8.108488497207864e-7,8.103985476457773e-7,8.112850488466808e-7,1.5163861176925537e-9,1.2418461984316133e-9,1.9216318087385455e-9 +SndPair/143,8.153680271240367e-7,8.150674822337723e-7,8.157532669699881e-7,1.1077001281645821e-9,8.012423716332481e-10,1.7241366666852992e-9 +SndPair/145,8.148390343159694e-7,8.145869102589927e-7,8.151083718961578e-7,8.817095339843036e-10,7.579130617040136e-10,1.1021796230943712e-9 +SndPair/147,8.134219448558423e-7,8.12878400968654e-7,8.14022780495196e-7,1.891216356542486e-9,1.6235343871210738e-9,2.1909972189505936e-9 +SndPair/149,8.118882246122028e-7,8.114882664924914e-7,8.122855257457876e-7,1.3761384093532592e-9,1.2050009153302512e-9,1.6507964096293299e-9 +SndPair/151,8.097830050244656e-7,8.088278925472755e-7,8.109306994646057e-7,3.3617853165902524e-9,2.8582664532159256e-9,3.90588867518435e-9 +SndPair/153,8.090138800314146e-7,8.084524973849086e-7,8.095791182104632e-7,1.97057779562315e-9,1.6599476708508376e-9,2.4077056592020688e-9 +SndPair/155,8.084189400316795e-7,8.078098723751101e-7,8.089022833973759e-7,1.9183487659841306e-9,1.655983336336597e-9,2.2923689111491837e-9 +SndPair/157,8.127607124120965e-7,8.122171881822261e-7,8.133020301339129e-7,1.6988240048054888e-9,1.3489223366809889e-9,2.2484934103498565e-9 +SndPair/159,8.107506607861088e-7,8.100328510181057e-7,8.114439586778935e-7,2.479332358582892e-9,2.177353123448717e-9,2.8986152606052688e-9 +SndPair/161,8.09183377004316e-7,8.08803200936243e-7,8.096844741657821e-7,1.402952714735853e-9,1.0976775613923844e-9,1.794513074626768e-9 +SndPair/163,8.088278809078182e-7,8.081320704704385e-7,8.096568321413955e-7,2.728450718362564e-9,2.406941639816193e-9,3.1414161131327583e-9 +SndPair/165,8.06260484645486e-7,8.05617100632552e-7,8.069530511708451e-7,2.2907889796782037e-9,1.9849892531142754e-9,2.766998278996854e-9 +SndPair/167,8.118769317845775e-7,8.112621197454591e-7,8.126200310532168e-7,2.251924618559012e-9,1.936796853201759e-9,2.66358751617593e-9 +SndPair/169,8.140225157027569e-7,8.136264135912438e-7,8.144954097113317e-7,1.4179399822545086e-9,1.1752423768874009e-9,1.7832540268057796e-9 +SndPair/171,8.130312486468426e-7,8.123692043838203e-7,8.136394705226211e-7,2.0974696208347875e-9,1.7506275865652876e-9,2.474195102949279e-9 +SndPair/173,8.121142069753e-7,8.11483639867916e-7,8.129283752036739e-7,2.458336892538314e-9,2.0560601988608847e-9,2.9215739785843828e-9 +SndPair/175,8.117962572603528e-7,8.113383741887786e-7,8.122993620162832e-7,1.5698859925922277e-9,1.318744094861748e-9,1.8602429749373188e-9 +SndPair/177,8.096196997845224e-7,8.09362366356505e-7,8.099621800053507e-7,1.0338599483258892e-9,8.80964053403526e-10,1.281739993660826e-9 +SndPair/179,8.125101749792885e-7,8.120974058458657e-7,8.12965013974683e-7,1.4998132997554005e-9,1.2963790004671332e-9,1.7637819463435214e-9 +SndPair/181,8.118043103372177e-7,8.112261815156468e-7,8.123356528443234e-7,1.7741174557015327e-9,1.5083930306615748e-9,2.075445564644964e-9 +SndPair/183,8.111831594870823e-7,8.106785627410009e-7,8.118509499624243e-7,1.9970676866044532e-9,1.5971538284206367e-9,2.457038557723357e-9 +SndPair/185,8.126414536021095e-7,8.122710785674407e-7,8.132514248113855e-7,1.5320133559076487e-9,1.0770973965938546e-9,2.640111127326327e-9 +SndPair/187,8.105266185283876e-7,8.100099546844997e-7,8.110908079760736e-7,1.780898393350627e-9,1.5538502691655178e-9,2.1363030735819336e-9 +SndPair/189,8.132823372808764e-7,8.129477013763611e-7,8.136420801909568e-7,1.1713121450459901e-9,9.646119298955363e-10,1.4880306110191218e-9 +SndPair/191,8.114209353990248e-7,8.110783479366825e-7,8.119005468002936e-7,1.353603064848505e-9,1.0441552718369035e-9,1.9395323626915477e-9 +SndPair/193,8.114605397750156e-7,8.111312078511974e-7,8.119125823733263e-7,1.2941154281507157e-9,1.0635335363969212e-9,1.67433485057833e-9 +SndPair/195,8.115030822583827e-7,8.11084792963711e-7,8.119898640529856e-7,1.5749973236231157e-9,1.3240513762740805e-9,1.989287982804987e-9 +SndPair/197,8.10413133199505e-7,8.096933909408074e-7,8.111533164817011e-7,2.4834916452495524e-9,2.156208307533587e-9,2.8826725609265115e-9 +SndPair/199,8.132185756404376e-7,8.128183010930543e-7,8.136650395265759e-7,1.3762333006063895e-9,1.1286811697808392e-9,1.9692344857949936e-9 +SndPair/201,8.081300921167022e-7,8.075143120373192e-7,8.086769840094923e-7,1.982893930476821e-9,1.7389112736508878e-9,2.3466371303832724e-9 +EncodeUtf8/0,7.119268063878643e-7,7.114521933210637e-7,7.123833561907563e-7,1.5195813078105626e-9,1.2900224830462785e-9,1.7829094330510558e-9 +EncodeUtf8/200,9.509197613338348e-6,9.50332936345687e-6,9.516884548916544e-6,2.1333173127067924e-8,1.6246630445707484e-8,3.083282415420668e-8 +EncodeUtf8/400,1.7999369806710443e-5,1.7981071747088095e-5,1.8012747691528242e-5,5.3146188588744853e-8,3.914070801891408e-8,8.868200882294004e-8 +EncodeUtf8/600,2.674752706449839e-5,2.671592960491108e-5,2.6866485290273204e-5,1.953860399904628e-7,1.970552288894818e-8,4.1629222168211525e-7 +EncodeUtf8/800,3.532229687227128e-5,3.531027117711961e-5,3.536078282936737e-5,6.242771772372896e-8,2.2006817481342775e-8,1.3187871477164718e-7 +EncodeUtf8/1000,4.4112996439568546e-5,4.410115421359535e-5,4.414254672831637e-5,5.952773954249813e-8,3.0430859744542623e-8,1.1472918135628559e-7 +EncodeUtf8/1200,5.258085914285908e-5,5.2563723282942183e-5,5.260274977436049e-5,6.437024315240008e-8,4.834532765212146e-8,8.968891208644399e-8 +EncodeUtf8/1400,5.967147644356109e-5,5.965537516621818e-5,5.969088667108516e-5,5.824663126775471e-8,4.737196782455343e-8,8.186561365014728e-8 +EncodeUtf8/1600,6.949019688885075e-5,6.933602526274874e-5,6.96170592911802e-5,4.55343191071177e-7,3.744082056499098e-7,5.488031151869482e-7 +EncodeUtf8/1800,7.791528945213826e-5,7.77564538010665e-5,7.809294002025784e-5,5.670995043265956e-7,5.200621054997377e-7,5.935974387721122e-7 +EncodeUtf8/2000,8.677502898616577e-5,8.675048133401528e-5,8.681204695675711e-5,1.0386426100543229e-7,6.930031564578909e-8,1.4165643273201234e-7 +EncodeUtf8/2200,9.476489872703995e-5,9.454490850244075e-5,9.493940420759668e-5,7.007176943793747e-7,5.606240033670528e-7,8.499625301620194e-7 +EncodeUtf8/2400,1.0342798392289787e-4,1.0339330449483872e-4,1.0346473564006961e-4,1.1419934341898375e-7,9.30933200952965e-8,1.4248831801874753e-7 +EncodeUtf8/2600,1.1195811476649762e-4,1.1193334831840434e-4,1.1198249439899101e-4,8.194566011986605e-8,6.733212506053672e-8,1.0418292622196984e-7 +EncodeUtf8/2800,1.2016028446121866e-4,1.2014029467443714e-4,1.2017817533415659e-4,6.437395058486747e-8,5.2189205073278945e-8,8.153036685909654e-8 +EncodeUtf8/3000,1.2869328677199635e-4,1.2867342620385389e-4,1.2871735442346723e-4,7.828940055564079e-8,6.221826803208264e-8,1.0981707353046057e-7 +EncodeUtf8/3200,1.3701378071343505e-4,1.3699450380462823e-4,1.3703402634082843e-4,6.721679552707947e-8,5.1234494066065644e-8,1.0422720286168466e-7 +EncodeUtf8/3400,1.4552896066030165e-4,1.4549139265056742e-4,1.4555831388219666e-4,1.1120826861911845e-7,9.545112622756381e-8,1.3549956266893934e-7 +EncodeUtf8/3600,1.5417587085780906e-4,1.5414577159467317e-4,1.54204155503339e-4,1.004659749068927e-7,8.632047539452335e-8,1.206360251860029e-7 +EncodeUtf8/3800,1.6227555952737552e-4,1.6225495486111376e-4,1.623025461354716e-4,7.873088557322126e-8,5.947745094094831e-8,1.1192695341703795e-7 +EncodeUtf8/4000,1.7079827177673477e-4,1.7076908248044544e-4,1.7082985904870416e-4,9.846021145555436e-8,7.75167784188164e-8,1.3284882445620575e-7 +EncodeUtf8/4200,1.793930432816837e-4,1.793688515341273e-4,1.7941984455739388e-4,8.690898162041047e-8,6.944412321704218e-8,1.0873276845218402e-7 +EncodeUtf8/4400,1.8777190005262053e-4,1.8772626635853634e-4,1.8782432577519904e-4,1.6940419157802352e-7,1.462946040602823e-7,2.0324188571766322e-7 +EncodeUtf8/4600,1.9610815172226313e-4,1.9607471374635414e-4,1.9613934163557385e-4,1.0933601957474088e-7,8.805013665627525e-8,1.39925568555556e-7 +EncodeUtf8/4800,2.0505198628600714e-4,2.0499477533479835e-4,2.0512542663422487e-4,2.168409239879972e-7,1.8242970103265857e-7,2.7846422595090486e-7 +EncodeUtf8/5000,2.1246303671871517e-4,2.1213572795325533e-4,2.1277064015459934e-4,1.0694245458966954e-6,8.551261945886372e-7,1.2772141471530544e-6 +EncodeUtf8/5200,2.2201373471239912e-4,2.2173635314013301e-4,2.2214669053751736e-4,6.410347650887751e-7,3.187850362750485e-7,1.0350042366325326e-6 +EncodeUtf8/5400,2.3016832412913957e-4,2.298485962651649e-4,2.3030104693412643e-4,6.63548581668072e-7,2.3199019403610421e-7,1.1153753225409703e-6 +EncodeUtf8/5600,2.3785492856021073e-4,2.3738892488886035e-4,2.3825385403793755e-4,1.533600939921661e-6,1.2168798684039845e-6,1.8291738589452623e-6 +EncodeUtf8/5800,2.4658794074999314e-4,2.4611327770200663e-4,2.4686696198038006e-4,1.1607026389503422e-6,5.932393009101624e-7,1.5346694514064275e-6 +EncodeUtf8/6000,2.5503567998444654e-4,2.545565098391076e-4,2.5539201241898875e-4,1.466336718633166e-6,1.1477619801862244e-6,1.7454688140725348e-6 +EncodeUtf8/6200,2.6358307874701424e-4,2.6310391339900145e-4,2.6395428418869965e-4,1.4764677079130503e-6,1.123726773033634e-6,1.7701227826429218e-6 +EncodeUtf8/6400,2.708375045502981e-4,2.702899432828904e-4,2.714058199621017e-4,1.8577980448271007e-6,1.7010995868206378e-6,2.0955047757714663e-6 +EncodeUtf8/6600,2.8017818068887913e-4,2.7956370354076973e-4,2.8057281428777993e-4,1.5795582717022367e-6,1.163177714338421e-6,1.9136237374735713e-6 +EncodeUtf8/6800,2.891839705317625e-4,2.8864997171260945e-4,2.8955825795147434e-4,1.4322294015766482e-6,9.98280232319949e-7,1.8585351364114802e-6 +EncodeUtf8/7000,2.9781018305468824e-4,2.973826530827485e-4,2.9808317978079126e-4,1.1485968711756002e-6,7.343647398412044e-7,1.5434858470871397e-6 +EncodeUtf8/7200,3.061707465646346e-4,3.0550086279285956e-4,3.068181298583461e-4,2.2808672882253853e-6,1.995733760341854e-6,2.6685837228164167e-6 +EncodeUtf8/7400,3.1480281807438947e-4,3.1471492622980586e-4,3.1492625244243397e-4,3.571359114151666e-7,2.8501492043827564e-7,4.68726405224983e-7 +EncodeUtf8/7600,3.2296823691034906e-4,3.224859513340188e-4,3.231750613099426e-4,1.0132497562076226e-6,2.802660797433423e-7,1.7417202194686267e-6 +EncodeUtf8/7800,3.315101897100453e-4,3.31416639967793e-4,3.3163101709640744e-4,3.392949734301756e-7,2.3480446346007968e-7,5.239196175268821e-7 +EncodeUtf8/8000,3.4036059455173396e-4,3.402184414427785e-4,3.4051508987978206e-4,5.083385457262267e-7,4.296761548293178e-7,6.686955294191757e-7 +EncodeUtf8/8200,3.481188531230103e-4,3.479187657597474e-4,3.4849035535528287e-4,9.135251863128726e-7,6.041054512628689e-7,1.3686210470527798e-6 +EncodeUtf8/8400,3.571848824339265e-4,3.5679509794992874e-4,3.5733465358184035e-4,8.264693519347237e-7,3.449599346226356e-7,1.607624210205745e-6 +EncodeUtf8/8600,3.6552070451885e-4,3.6544345316312293e-4,3.655883037423666e-4,2.2870636593800668e-7,1.9627020905968288e-7,2.7048963496272264e-7 +EncodeUtf8/8800,3.722676614960631e-4,3.7153402161447553e-4,3.7298835799887034e-4,2.378139596662597e-6,1.915320775438588e-6,2.688314738379115e-6 +EncodeUtf8/9000,3.8162606787838193e-4,3.8080099624299645e-4,3.8217320565085185e-4,2.1595957707837784e-6,1.5571877819122485e-6,2.7161843090243565e-6 +EncodeUtf8/9200,3.9080380320907e-4,3.903092170880388e-4,3.9112722010735667e-4,1.3144465539070417e-6,8.03704730191891e-7,2.3749761952097163e-6 +EncodeUtf8/9400,3.9911578275992547e-4,3.990412758963935e-4,3.991966124399645e-4,2.63147405632677e-7,2.284341618262057e-7,3.1768848173624853e-7 +EncodeUtf8/9600,4.065870501759174e-4,4.064887630380975e-4,4.066908749983777e-4,3.456974067826577e-7,2.72937348152093e-7,4.569765952911803e-7 +EncodeUtf8/9800,4.1526615004350596e-4,4.147465294755835e-4,4.157264821136703e-4,1.7516205817024416e-6,1.3041953215325413e-6,2.624302695739022e-6 +EncodeUtf8/10000,4.237365517631673e-4,4.22889414631174e-4,4.2425357767247234e-4,2.265118018330824e-6,1.4978008270535198e-6,3.0492022686060556e-6 +EncodeUtf8/10200,4.3294800689676696e-4,4.3228463903318174e-4,4.3405184348227174e-4,2.9046982294050483e-6,1.766617128561781e-6,4.720173824670187e-6 +EncodeUtf8/10400,4.434748282314723e-4,4.4261313062818623e-4,4.444512250095863e-4,3.194439708644793e-6,2.743592260225321e-6,4.229406760378063e-6 +EncodeUtf8/10600,4.547908993893514e-4,4.543945699837842e-4,4.5558869281465004e-4,1.9103787220552647e-6,1.0746437847142746e-6,3.2657284395073544e-6 +EncodeUtf8/10800,4.6268666282880017e-4,4.6247037023940465e-4,4.6296033689388025e-4,8.620225881511037e-7,6.206312058120139e-7,1.1866864044216022e-6 +EncodeUtf8/11000,4.7086013000157664e-4,4.706035052740493e-4,4.711756013937824e-4,1.0201972651315139e-6,7.838173159923153e-7,1.4208275944267512e-6 +EncodeUtf8/11200,4.79601142505642e-4,4.7934311559366807e-4,4.799550333438401e-4,1.0750102408646743e-6,7.691094057926337e-7,1.5256484353253666e-6 +EncodeUtf8/11400,4.8627819824949964e-4,4.8523503284932665e-4,4.873823788916409e-4,3.535600091832967e-6,2.8488925063427274e-6,4.119430989884285e-6 +EncodeUtf8/11600,4.967442385064477e-4,4.96252355200827e-4,4.971265843786305e-4,1.4468766445449e-6,9.914150239516948e-7,2.493289785609966e-6 +EncodeUtf8/11800,5.055898515515265e-4,5.052552269439558e-4,5.060825408248117e-4,1.2871281455546423e-6,9.988488121609065e-7,1.8601188782245307e-6 +EncodeUtf8/12000,5.120580885952087e-4,5.117287581905162e-4,5.124316774390985e-4,1.1431219399408262e-6,9.664011123233959e-7,1.3804528692800663e-6 +EncodeUtf8/12200,5.220001583892388e-4,5.210158056223521e-4,5.22631193707649e-4,2.622624053573647e-6,1.816678456171824e-6,3.466033915328537e-6 +EncodeUtf8/12400,5.308567216153694e-4,5.305357988460094e-4,5.31281738445897e-4,1.3097795434723898e-6,1.010754865661375e-6,1.7926122475297245e-6 +EncodeUtf8/12600,5.376433488467559e-4,5.363220747267985e-4,5.386497593705646e-4,3.7823650951851674e-6,3.0051961806424857e-6,4.498788090929712e-6 +EncodeUtf8/12800,5.484298286781615e-4,5.479841178254615e-4,5.488662623703581e-4,1.427709349816121e-6,1.183152842643345e-6,1.775606534900036e-6 +EncodeUtf8/13000,5.579221389562799e-4,5.574294502546457e-4,5.585698915600634e-4,1.8811540106050627e-6,1.2307602067301496e-6,2.8524121385255477e-6 +EncodeUtf8/13200,5.654777303317351e-4,5.647340325571442e-4,5.659815919529076e-4,1.9874702607958846e-6,1.3638610213637036e-6,3.352268190922328e-6 +EncodeUtf8/13400,5.721853852677417e-4,5.708022833650929e-4,5.730963392377868e-4,3.7505932869383767e-6,2.8654502876030562e-6,4.6636744169313825e-6 +EncodeUtf8/13600,5.83275790617392e-4,5.829250849695787e-4,5.836827084256767e-4,1.3277033742499831e-6,1.0383707048652451e-6,1.7200635470926595e-6 +EncodeUtf8/13800,5.917818480119028e-4,5.913931681430956e-4,5.921542293278464e-4,1.3415785189761186e-6,1.081575727148223e-6,1.716663777090653e-6 +EncodeUtf8/14000,6.00648038344997e-4,6.002566862788869e-4,6.010405851055241e-4,1.318707996247008e-6,1.0782474334630817e-6,1.6464834499277885e-6 +EncodeUtf8/14200,6.090682614841318e-4,6.086485682512904e-4,6.095376678879142e-4,1.4565276289046812e-6,1.1199806967975947e-6,1.8835771978766243e-6 +EncodeUtf8/14400,6.159328695560045e-4,6.152695184045656e-4,6.164422678765492e-4,1.994671610051443e-6,1.5205013888384392e-6,3.0976013805188887e-6 +EncodeUtf8/14600,6.255008167368369e-4,6.242779254438415e-4,6.261934581366748e-4,2.988993089430621e-6,2.153532458903085e-6,4.294448176628734e-6 +EncodeUtf8/14800,6.358338282876173e-4,6.35285024976149e-4,6.365047491990376e-4,2.0092960401878956e-6,1.4512157868638712e-6,2.7583722476456144e-6 +EncodeUtf8/15000,6.420604472995793e-4,6.415989152378298e-4,6.426336365932653e-4,1.75002273020777e-6,1.3326142375839075e-6,2.2670260885367756e-6 +EncodeUtf8/15200,6.507353328823483e-4,6.492997191960337e-4,6.525358301660836e-4,5.44685929325127e-6,3.961297857806271e-6,8.674789022425321e-6 +EncodeUtf8/15400,6.583343384967686e-4,6.573637677769891e-4,6.589742902229992e-4,2.6469883381733322e-6,1.8074272638463834e-6,4.020156958271712e-6 +EncodeUtf8/15600,6.692574248495199e-4,6.685117997011357e-4,6.69985359638416e-4,2.4265006193054437e-6,1.6719456003891605e-6,3.894445619025129e-6 +EncodeUtf8/15800,6.777175551261156e-4,6.766748687086978e-4,6.789832688907916e-4,3.7026175848058737e-6,2.72402606834957e-6,6.058088132036749e-6 +EncodeUtf8/16000,6.828323919550189e-4,6.812111574547481e-4,6.843431447182491e-4,5.1536357372094116e-6,4.3440085992228575e-6,5.88306340570646e-6 +EncodeUtf8/16200,6.944013287031122e-4,6.932788883745765e-4,6.952076458511551e-4,3.3107374447766778e-6,2.5069970556551456e-6,4.510682171171108e-6 +EncodeUtf8/16400,7.000657573481068e-4,6.984676710502532e-4,7.013557768754313e-4,4.847041489257731e-6,4.068092966522924e-6,5.749476237847594e-6 +EncodeUtf8/16600,7.118700290055961e-4,7.111918810974663e-4,7.125046317375426e-4,2.133539395698621e-6,1.7629859105771854e-6,2.7679039116677585e-6 +EncodeUtf8/16800,7.21940500589796e-4,7.210801307158469e-4,7.225324527051018e-4,2.3720039114170157e-6,1.785649709998461e-6,3.3713736923480068e-6 +EncodeUtf8/17000,7.306763305711356e-4,7.301451182348955e-4,7.311964373962052e-4,1.695443396319623e-6,1.35556862903297e-6,2.1450572901661776e-6 +EncodeUtf8/17200,7.386268964853834e-4,7.380134959874058e-4,7.394081574239671e-4,2.2033319115561703e-6,1.6797043934421998e-6,3.341230097486046e-6 +EncodeUtf8/17400,7.474989096390029e-4,7.468121101076602e-4,7.482184950750216e-4,2.462777703927002e-6,2.0040038533579655e-6,3.0918916029987253e-6 +EncodeUtf8/17600,7.563619890879391e-4,7.556812950447698e-4,7.57812895265401e-4,3.3204178605497434e-6,1.781299512257127e-6,6.79904530787692e-6 +EncodeUtf8/17800,7.633125225605509e-4,7.622136513547839e-4,7.640973556303215e-4,3.2084017644091094e-6,2.2706807832595135e-6,5.218700724258465e-6 +EncodeUtf8/18000,7.711891586473569e-4,7.705959627614659e-4,7.717133535877112e-4,1.8798419661693108e-6,1.5021994046585168e-6,2.3117848705165135e-6 +EncodeUtf8/18200,7.819112047192829e-4,7.813231212532015e-4,7.824255051904357e-4,1.9771670673984515e-6,1.5663127689265542e-6,2.5391804248531023e-6 +EncodeUtf8/18400,7.905750487765648e-4,7.896131300579801e-4,7.913258497503844e-4,2.8414219849261506e-6,2.2310721314546834e-6,3.978222595676178e-6 +EncodeUtf8/18600,7.990859848290848e-4,7.984605133597944e-4,7.997231882421026e-4,2.056000516466341e-6,1.6193647079065727e-6,2.61793738951543e-6 +EncodeUtf8/18800,8.039759806466447e-4,8.02268240032946e-4,8.052921569010814e-4,5.221299026364524e-6,4.161744044953242e-6,6.504809569417949e-6 +EncodeUtf8/19000,8.134288671712907e-4,8.117655385466956e-4,8.14662380132006e-4,4.957246932040055e-6,4.0832248841533115e-6,6.060136262339958e-6 +EncodeUtf8/19200,8.233098856409135e-4,8.216539362719781e-4,8.244763437997066e-4,4.532943638745977e-6,3.2389641158130044e-6,5.783859132292772e-6 +EncodeUtf8/19400,8.336098860928853e-4,8.32299416007894e-4,8.351396482307101e-4,4.898066617493628e-6,3.8008229292984493e-6,6.641158336303023e-6 +EncodeUtf8/19600,8.430120946042248e-4,8.422538144833057e-4,8.436947508530808e-4,2.355902712557124e-6,1.8219113153180094e-6,2.9335461305296715e-6 +EncodeUtf8/19800,8.505223776707221e-4,8.489133855010059e-4,8.518018532560096e-4,4.690115756700163e-6,3.7888478335294555e-6,5.768958283973557e-6 +EncodeUtf8/20000,8.599013493678345e-4,8.591721212808048e-4,8.605314616538396e-4,2.255230128436601e-6,1.9021194507458451e-6,2.701021848677333e-6 +DecodeUtf8/1,7.346651987158951e-7,7.341898280012017e-7,7.351801542907239e-7,1.6937959787620508e-9,1.494805749972235e-9,1.994493057635601e-9 +DecodeUtf8/99,8.378935666693277e-7,8.372348194011691e-7,8.3848447233494e-7,2.1958514679791193e-9,1.917439583474788e-9,2.5528640612187006e-9 +DecodeUtf8/198,9.133812153269336e-7,9.129067412431612e-7,9.139153976178879e-7,1.5948156678888236e-9,1.3106859930087653e-9,2.1672078578355024e-9 +DecodeUtf8/295,9.85616659183839e-7,9.850676420399332e-7,9.862593102757933e-7,2.049688402870254e-9,1.6571690726251437e-9,2.6520052992814005e-9 +DecodeUtf8/394,1.0550803148970943e-6,1.0544542030944592e-6,1.055640848610927e-6,1.921403164338843e-9,1.5686750712774282e-9,2.399168353795119e-9 +DecodeUtf8/492,1.16104964771652e-6,1.1596279660873074e-6,1.1638755708078643e-6,6.4565177392734465e-9,3.2137863118835095e-9,9.889517122375233e-9 +DecodeUtf8/591,1.2739707162549682e-6,1.2733081924445873e-6,1.2751807742019602e-6,2.8494048963328805e-9,1.8409961366693743e-9,5.317374167868757e-9 +DecodeUtf8/689,1.3403134167489504e-6,1.3399122325796621e-6,1.340773883395108e-6,1.4621698641318256e-9,1.2015789323336083e-9,2.037908788483522e-9 +DecodeUtf8/788,1.4055460150230898e-6,1.4048560390935598e-6,1.4062333401115574e-6,2.2748687180686848e-9,1.8731098629121424e-9,2.7895868787336248e-9 +DecodeUtf8/886,1.458127711442785e-6,1.4564675013665456e-6,1.460266839612459e-6,6.3843731710466116e-9,4.868227199166071e-9,9.039124874424165e-9 +DecodeUtf8/985,1.536439502891392e-6,1.535147561376096e-6,1.5408406641074083e-6,7.2553021738763325e-9,1.4826055413002106e-9,1.5244720629897555e-8 +DecodeUtf8/1084,1.6183140088446615e-6,1.6177431998493387e-6,1.6193087672770364e-6,2.3288324799772145e-9,1.4950596786192453e-9,4.0450976721074306e-9 +DecodeUtf8/1182,1.6884120472270978e-6,1.68772532926181e-6,1.6890633231494567e-6,2.2117225767397526e-9,1.783525390630096e-9,2.8533576986601004e-9 +DecodeUtf8/1280,1.7480281873339634e-6,1.7474295970630674e-6,1.7485950208576298e-6,1.925604139272367e-9,1.5807271520907405e-9,2.641643822778635e-9 +DecodeUtf8/1379,1.8229158790295045e-6,1.8225189321198096e-6,1.8234343851021747e-6,1.5285971115647189e-9,1.2562995825238865e-9,1.8951863511068214e-9 +DecodeUtf8/1478,1.896947574518329e-6,1.896440547707469e-6,1.8975048958038858e-6,1.7322480519531104e-9,1.4788726410729813e-9,2.112091944534616e-9 +DecodeUtf8/1577,1.981449316728892e-6,1.9805749231498943e-6,1.9822876192972024e-6,2.873738612713564e-9,2.2709306084249614e-9,3.9200039510869676e-9 +DecodeUtf8/1675,2.054309831151909e-6,2.0487073213345303e-6,2.0765085239143963e-6,3.5496482409117645e-8,2.5737576963257937e-9,7.537470762462342e-8 +DecodeUtf8/1773,2.1139729341044238e-6,2.1136041966456512e-6,2.1143891493032212e-6,1.3662110553311198e-9,1.1003197827937351e-9,1.653442196782303e-9 +DecodeUtf8/1872,2.187186222797583e-6,2.1840551494075535e-6,2.1966331023376107e-6,1.6622768421241136e-8,5.292311823081483e-9,3.290229735526415e-8 +DecodeUtf8/1971,2.2639884806992113e-6,2.261315820526491e-6,2.2716043545257744e-6,1.587606569278597e-8,2.4784235597397714e-9,3.055607452711782e-8 +DecodeUtf8/2070,2.335393326795968e-6,2.334912000208096e-6,2.335802026854036e-6,1.4530010726421338e-9,1.137542344177921e-9,1.8538347348206334e-9 +DecodeUtf8/2168,2.4127176112536256e-6,2.412028869521775e-6,2.4133965498986208e-6,2.3437500542171987e-9,1.9869599965004903e-9,2.818173075089004e-9 +DecodeUtf8/2266,2.490569547224641e-6,2.4899718221090825e-6,2.491202345967633e-6,2.0985201063938356e-9,1.8016426431112961e-9,2.6563673369325965e-9 +DecodeUtf8/2364,2.5652778662309048e-6,2.564383276148792e-6,2.566988465228463e-6,3.866267849684845e-9,2.1763457879395e-9,7.638934565237292e-9 +DecodeUtf8/2463,2.632847846375265e-6,2.632257022030774e-6,2.6334833752155197e-6,2.097049167381547e-9,1.7677104954832324e-9,2.7621998595431478e-9 +DecodeUtf8/2561,2.7232374438969728e-6,2.7209526295159895e-6,2.731050826541709e-6,1.3427037746420597e-8,3.3486789341428618e-9,2.7820884837462197e-8 +DecodeUtf8/2660,2.7869708511113035e-6,2.7861331196048174e-6,2.7888847204347347e-6,3.933458780413133e-9,1.9342710861564646e-9,7.432003038266687e-9 +DecodeUtf8/2759,2.8696649096239163e-6,2.868391393786642e-6,2.8741565446952326e-6,7.2248209892468e-9,1.6757527099827326e-9,1.5229391186624436e-8 +DecodeUtf8/2857,2.94591475538099e-6,2.942853663854153e-6,2.9519887709663214e-6,1.429832808533736e-8,5.5620263168586975e-9,2.6244781642684105e-8 +DecodeUtf8/2955,3.0245412545780987e-6,3.0203107082482217e-6,3.0403452502160065e-6,2.5810714160777925e-8,3.3765813320556657e-9,5.465321130448476e-8 +DecodeUtf8/3054,3.091401251460573e-6,3.09061221540601e-6,3.0920474199984256e-6,2.4200678878280076e-9,1.7807775797048164e-9,3.472191418686517e-9 +DecodeUtf8/3153,3.1782644320950115e-6,3.1764189066787376e-6,3.183967563512466e-6,8.992537487288057e-9,2.280519152379881e-9,1.7225744809621037e-8 +DecodeUtf8/3252,3.25063233526188e-6,3.249933684536041e-6,3.251253332277214e-6,2.208632286441629e-9,1.8301820614557463e-9,2.6943355733353224e-9 +DecodeUtf8/3350,3.3256479887623622e-6,3.324586261455035e-6,3.3296680000874096e-6,5.90048919017162e-9,2.0143450142162054e-9,1.286524611554544e-8 +DecodeUtf8/3447,3.402501976131817e-6,3.4004069713450267e-6,3.4088018853619374e-6,1.0803576823518038e-8,3.98557566792094e-9,2.2876854877840485e-8 +DecodeUtf8/3545,3.4753217293292904e-6,3.473845346956858e-6,3.47981368962017e-6,7.866468173145806e-9,2.938538811720136e-9,1.634209971339287e-8 +DecodeUtf8/3645,3.5522268613402718e-6,3.5504701956344058e-6,3.5558919167919695e-6,8.329918899321434e-9,3.816743139851099e-9,1.5842237600194414e-8 +DecodeUtf8/3744,3.6268247000848646e-6,3.6259329428170706e-6,3.628672211334421e-6,4.2354814809207566e-9,2.2168914981059097e-9,7.97839262225935e-9 +DecodeUtf8/3842,3.707800165835846e-6,3.707373540017549e-6,3.7084473332810527e-6,1.859285952932781e-9,1.3794085949558432e-9,2.8616094314455632e-9 +DecodeUtf8/3941,3.778288512679194e-6,3.7774152325157997e-6,3.779772382675466e-6,3.671124701640725e-9,2.4083702967619938e-9,6.132863505016504e-9 +DecodeUtf8/4040,3.847667447344405e-6,3.846995699418025e-6,3.848583523777514e-6,2.667189637034603e-9,2.1447577662076785e-9,3.883909951291976e-9 +DecodeUtf8/4138,3.932240269966149e-6,3.931385120827735e-6,3.933223771238997e-6,3.1834603219743638e-9,2.563186116253423e-9,4.08780132732581e-9 +DecodeUtf8/4237,4.005308408356026e-6,4.0043477178387525e-6,4.006685221452393e-6,3.870457397791012e-9,2.8371352261828266e-9,6.162227657817066e-9 +DecodeUtf8/4336,4.081498183574843e-6,4.0806280683875406e-6,4.08253872759683e-6,3.003815239516378e-9,2.3650457911064412e-9,4.046810056678592e-9 +DecodeUtf8/4434,4.162148620910366e-6,4.160532822310548e-6,4.165479764066026e-6,7.398418886232329e-9,3.1130879979692892e-9,1.3838707014289939e-8 +DecodeUtf8/4533,4.235261049347623e-6,4.234192740338316e-6,4.236456263659269e-6,3.99409110884805e-9,3.248825447871395e-9,4.980835621953409e-9 +DecodeUtf8/4631,4.308682695939205e-6,4.307849990640971e-6,4.309444028132422e-6,2.6456607365974543e-9,2.2610853477841153e-9,3.1012814390467422e-9 +DecodeUtf8/4731,4.388193368203741e-6,4.387293470097925e-6,4.389429262645562e-6,3.4205775937449097e-9,2.678438382154668e-9,4.38154476634085e-9 +DecodeUtf8/4830,4.458872399985365e-6,4.458029967502179e-6,4.459721243824165e-6,2.7831141428751327e-9,2.294839109512021e-9,3.434165791284698e-9 +DecodeUtf8/4929,4.537128119710963e-6,4.536192666509503e-6,4.538253893350692e-6,3.726338168921793e-9,2.8379904051430932e-9,6.248157824979428e-9 +DecodeUtf8/5027,4.617989197910516e-6,4.615058894292616e-6,4.626296519197337e-6,1.510164831598636e-8,2.871946981573879e-9,3.051780880376961e-8 +DecodeUtf8/5125,4.693140647078311e-6,4.692230187869073e-6,4.693954225322016e-6,3.127428716456322e-9,2.6250508267439432e-9,4.0725746489078374e-9 +DecodeUtf8/5224,4.76709171434585e-6,4.7645276941372276e-6,4.775463441663662e-6,1.4225627283186715e-8,2.6290504620656355e-9,2.982449003960188e-8 +DecodeUtf8/5322,4.866294184241634e-6,4.846167422041169e-6,4.946509446271915e-6,1.321266767332195e-7,2.5310819904876522e-9,2.8123014438343554e-7 +DecodeUtf8/5420,4.917052633165758e-6,4.915682442352079e-6,4.9217983960499814e-6,7.651819143292635e-9,2.3248203162503022e-9,1.5557682447516554e-8 +DecodeUtf8/5519,4.994126395507229e-6,4.993435636051871e-6,4.994846307962568e-6,2.3217323357514772e-9,1.929218962198545e-9,2.925466262530972e-9 +DecodeUtf8/5618,5.07254106340005e-6,5.071882628198411e-6,5.073184998064318e-6,2.2213604238288855e-9,1.7839143055702984e-9,3.037847773366298e-9 +DecodeUtf8/5716,5.1536375802621334e-6,5.15301789384308e-6,5.154320618955494e-6,2.279602215133442e-9,1.9333738445523493e-9,2.7159179289115254e-9 +DecodeUtf8/5815,5.2213062215501325e-6,5.220507625033002e-6,5.2221026727538355e-6,2.6399488001690974e-9,2.232027389327527e-9,3.3792226950479487e-9 +DecodeUtf8/5915,5.3053596161218644e-6,5.30339618998197e-6,5.312823378394773e-6,1.13107901617171e-8,2.5251887264923567e-9,2.334956385793705e-8 +DecodeUtf8/6014,5.377495672884069e-6,5.3766788729882004e-6,5.378315059860369e-6,2.7413164925166255e-9,2.4542999878448246e-9,3.059239615918151e-9 +DecodeUtf8/6111,5.4490701518251895e-6,5.447782687267879e-6,5.4527920496945644e-6,6.8485479304447535e-9,2.546570343643811e-9,1.37845571330344e-8 +DecodeUtf8/6209,5.546515104940496e-6,5.535582963675215e-6,5.571642830818002e-6,5.2531449922893387e-8,1.0762448973338276e-8,8.789614023653345e-8 +DecodeUtf8/6307,5.601941710645008e-6,5.601264920189926e-6,5.602528135000238e-6,2.211212654935682e-9,1.8476832391655906e-9,2.7989444198056337e-9 +DecodeUtf8/6406,5.677376987976258e-6,5.676629653243675e-6,5.6783353320991505e-6,2.8884006717135894e-9,2.209032547407898e-9,4.582385351581984e-9 +DecodeUtf8/6504,5.757012076274235e-6,5.756177743776084e-6,5.757804710239395e-6,2.687191949427878e-9,2.1452708167923072e-9,3.3417878864406147e-9 +DecodeUtf8/6602,5.822959233640442e-6,5.822273929974392e-6,5.823958705617271e-6,2.7784082815390828e-9,2.012274068387156e-9,4.343961616965755e-9 +DecodeUtf8/6700,5.905513462828175e-6,5.904422447425606e-6,5.9076316517715375e-6,4.971644707390124e-9,2.64129629585127e-9,9.26692134377808e-9 +DecodeUtf8/6798,5.977628555795703e-6,5.976606076889644e-6,5.978903755342363e-6,3.731444972222965e-9,2.822905699599067e-9,6.05312168687095e-9 +DecodeUtf8/6897,6.054970423939165e-6,6.0541004412597185e-6,6.055871978718275e-6,3.117469009038649e-9,2.6202575386353985e-9,3.851609386163265e-9 +DecodeUtf8/6996,6.126294646462522e-6,6.124796521504929e-6,6.127863648966201e-6,5.009765140720551e-9,3.7752365801425906e-9,7.170300439564734e-9 +DecodeUtf8/7094,6.196166248014807e-6,6.195050127519127e-6,6.197349292090356e-6,4.102074399285793e-9,3.398448034555445e-9,5.076502749683083e-9 +DecodeUtf8/7192,6.278420780999914e-6,6.277279498010022e-6,6.281280714972755e-6,5.646918648681418e-9,3.0429962089830263e-9,1.0347353914302479e-8 +DecodeUtf8/7291,6.361011916239526e-6,6.36016560537019e-6,6.362531286442507e-6,3.630891022868412e-9,2.32785338095647e-9,5.948663272713072e-9 +DecodeUtf8/7390,6.429831027340462e-6,6.428453297334584e-6,6.431079852721749e-6,4.298229435261286e-9,3.6136736831260374e-9,5.165721406619102e-9 +DecodeUtf8/7487,6.507085993205285e-6,6.506210415455239e-6,6.507993665627648e-6,3.114602229965866e-9,2.5979469767007363e-9,3.909780984884658e-9 +DecodeUtf8/7587,6.595667539530185e-6,6.594950744142833e-6,6.596643989289487e-6,2.8725483649984627e-9,2.2547726963575496e-9,4.2883559096841105e-9 +DecodeUtf8/7685,6.66281828443874e-6,6.6617996032150725e-6,6.665631573977818e-6,5.213713935677365e-9,2.5313720701110792e-9,1.006122323997362e-8 +DecodeUtf8/7783,6.7401536580283965e-6,6.739323735405526e-6,6.741217237046208e-6,3.1730992641236866e-9,2.6162350349207606e-9,3.9403599475097726e-9 +DecodeUtf8/7883,6.819413832145067e-6,6.816133090380933e-6,6.8342864737323e-6,1.9972204543888737e-8,2.448648429175416e-9,4.560601234456242e-8 +DecodeUtf8/7981,6.899134352003476e-6,6.896068664637905e-6,6.9106073179554995e-6,1.8595491248340223e-8,2.5281808691824244e-9,3.938265501573175e-8 +DecodeUtf8/8079,6.97948036335193e-6,6.96478878641234e-6,7.036135001588583e-6,9.066265343232275e-8,2.839876246093476e-9,1.9191606515029722e-7 +DecodeUtf8/8177,7.045437147254459e-6,7.0446119972633845e-6,7.046325562707556e-6,2.9731038953093292e-9,2.4799673067201498e-9,3.595036823971431e-9 +DecodeUtf8/8276,7.120103512246211e-6,7.117359074285601e-6,7.1295203849522975e-6,1.5954353169784586e-8,2.9413511952489615e-9,3.357718185781974e-8 +DecodeUtf8/8374,7.195749439844265e-6,7.194793782964964e-6,7.196795513249149e-6,3.3048110774717007e-9,2.7795794875377836e-9,4.0937427226789804e-9 +DecodeUtf8/8473,7.279803236997588e-6,7.278834462768795e-6,7.280742451352861e-6,3.220428437946369e-9,2.7244947166273277e-9,4.049254141762159e-9 +DecodeUtf8/8571,7.345141825244786e-6,7.344346092745713e-6,7.346331006930389e-6,3.2024753819785937e-9,2.2407090268373475e-9,5.147514689268917e-9 +DecodeUtf8/8669,7.427884847621779e-6,7.426789568486934e-6,7.428664205395045e-6,2.9870882755776973e-9,2.3955098417436105e-9,4.006831204320414e-9 +DecodeUtf8/8768,7.4970948455326215e-6,7.496376374796348e-6,7.497854016083403e-6,2.5145816817173893e-9,2.108575267377641e-9,3.0956477849192102e-9 +DecodeUtf8/8867,7.5743453955392534e-6,7.573454053168782e-6,7.57519498891144e-6,2.8308432880698742e-9,2.2924175116072617e-9,3.741187056142428e-9 +DecodeUtf8/8966,7.663713609865394e-6,7.649945081393579e-6,7.698853171834552e-6,6.665299925147155e-8,1.5747441924167354e-8,1.1532010146546569e-7 +DecodeUtf8/9064,7.730632085660246e-6,7.729674958698943e-6,7.731652879648267e-6,3.4057863715940236e-9,2.6842809070449898e-9,4.375696752191598e-9 +DecodeUtf8/9163,7.805054336601745e-6,7.80354779401737e-6,7.808846727027394e-6,7.0936379918544995e-9,3.343438026062855e-9,1.4623829063860812e-8 +DecodeUtf8/9261,7.877541442660564e-6,7.875849443729903e-6,7.881114087344943e-6,7.548131100048259e-9,4.075877779239413e-9,1.3782003454567075e-8 +DecodeUtf8/9359,7.947349081370737e-6,7.946172731367947e-6,7.949044356599543e-6,4.498310182402428e-9,3.30188808977601e-9,7.126800503648159e-9 +DecodeUtf8/9457,8.04798954329915e-6,8.046695472369887e-6,8.049746824526929e-6,5.110315458389454e-9,3.7966785750844466e-9,7.366052093338871e-9 +DecodeUtf8/9555,8.098541474836642e-6,8.09704914613989e-6,8.101598410658187e-6,6.584578743021185e-9,3.7485341930373476e-9,1.1859693789475869e-8 +DecodeUtf8/9654,8.183781855431073e-6,8.182354600547582e-6,8.185350075259924e-6,4.905276701419781e-9,3.6070386532765637e-9,7.478907368950453e-9 +DecodeUtf8/9752,8.243301672654438e-6,8.242521926912315e-6,8.244496481591602e-6,3.1189462614303203e-9,2.2579533838425346e-9,4.975013909783159e-9 +DecodeUtf8/9850,8.330207540252573e-6,8.329074163338054e-6,8.3329539959457e-6,5.242623266499073e-9,3.270674280838179e-9,9.013123755704851e-9 +AppendString/0/0,8.877281484351435e-7,8.873132171748542e-7,8.881343798078143e-7,1.3948832545892103e-9,1.1458159161986097e-9,1.741490395136769e-9 +AppendString/0/500,2.281374960026079e-5,2.277369122905294e-5,2.283873469984233e-5,1.0833285843339392e-7,7.811915954613998e-8,1.3578957719241955e-7 +AppendString/0/1000,4.401929494562515e-5,4.398444683955182e-5,4.405800584180992e-5,1.259704315537302e-7,1.0666576033485313e-7,1.4995484860854534e-7 +AppendString/0/1500,6.536685882997873e-5,6.533340571009274e-5,6.540262757015258e-5,1.1488195884332435e-7,9.144233864466659e-8,1.6659462486674317e-7 +AppendString/0/2000,8.684577810102019e-5,8.678446412986723e-5,8.692884534889198e-5,2.3485895055604873e-7,1.927423347386461e-7,3.1504210175967065e-7 +AppendString/0/2500,1.0817693708011935e-4,1.0812612918949912e-4,1.0822320254125938e-4,1.597538783564464e-7,1.3337835199015327e-7,1.9910379419965422e-7 +AppendString/0/3000,1.30090157674166e-4,1.2999183151476127e-4,1.302134401055849e-4,3.5976246291710404e-7,2.9399020955056265e-7,4.6537581873900737e-7 +AppendString/0/3500,1.521027696332049e-4,1.5188685866673115e-4,1.5229129824007625e-4,6.796330898562347e-7,5.126780923113343e-7,9.233803179799918e-7 +AppendString/0/4000,1.7288097278445928e-4,1.7277021649686472e-4,1.7307468295710664e-4,4.871842954834844e-7,3.167961137156887e-7,8.193296856370229e-7 +AppendString/0/4500,1.9401724434255945e-4,1.939371676323186e-4,1.9408083551385787e-4,2.425150767494523e-7,1.9988206455710308e-7,2.9711370066396887e-7 +AppendString/0/5000,2.1549790758041811e-4,2.153901243605537e-4,2.1560806958175407e-4,3.5632549940789967e-7,2.895759133906513e-7,4.636205294502586e-7 +AppendString/0/5500,2.374015357748444e-4,2.372098680121581e-4,2.377046297973862e-4,7.915637013304429e-7,5.467962829419114e-7,1.303036326514873e-6 +AppendString/0/6000,2.5579299416558944e-4,2.553941194827416e-4,2.5607599945320615e-4,1.1355563522972125e-6,7.912765676650679e-7,1.4711563123089533e-6 +AppendString/0/6500,2.784897250254498e-4,2.783531338409058e-4,2.7864125670119203e-4,4.723540082550991e-7,4.054323127893913e-7,5.638876098337201e-7 +AppendString/0/7000,2.998423644947275e-4,2.997086688230808e-4,2.999970493672743e-4,4.999030359729752e-7,4.017047497842118e-7,6.562322340716886e-7 +AppendString/0/7500,3.2291294366009946e-4,3.227643770324365e-4,3.23050314221185e-4,4.7153361524140484e-7,3.902647981970698e-7,6.206079418661134e-7 +AppendString/0/8000,3.4338386185837325e-4,3.4323147005876643e-4,3.435672512557637e-4,5.828902856570346e-7,4.770133774503981e-7,8.10782476204551e-7 +AppendString/0/8500,3.6398518184342426e-4,3.6381757136871173e-4,3.641661829627352e-4,5.994481919387403e-7,4.954069161147083e-7,7.560954327199254e-7 +AppendString/0/9000,3.843513481086317e-4,3.8365164784948e-4,3.849381542996365e-4,2.1450889353328062e-6,1.8239688174466872e-6,2.6450478571785176e-6 +AppendString/0/9500,4.036017221539158e-4,4.0338637449304404e-4,4.038658400522689e-4,7.849882785749976e-7,6.370365585290349e-7,1.0306302968578685e-6 +AppendString/0/10000,4.2297148714629635e-4,4.226562547687511e-4,4.232966512291352e-4,1.045747098895658e-6,8.165342433736727e-7,1.4324195468256284e-6 +AppendString/500/0,2.2482905503526066e-5,2.247013806621704e-5,2.2494831536593144e-5,3.993719193427397e-8,3.334631795105812e-8,5.1082794184143066e-8 +AppendString/500/500,6.078829361809108e-5,6.0761460079889886e-5,6.082477168690809e-5,9.770278970125651e-8,7.12780790294575e-8,1.5978280629159946e-7 +AppendString/500/1000,8.282571955995556e-5,8.26438128664224e-5,8.29000324235375e-5,3.453470429188726e-7,6.530278349318125e-8,6.023101434402297e-7 +AppendString/500/1500,1.0365890091913952e-4,1.0363309182847202e-4,1.0369306999868483e-4,1.0598013642322172e-7,8.440586268588544e-8,1.3801041528128482e-7 +AppendString/500/2000,1.255647695875981e-4,1.2553771885641897e-4,1.255968009073538e-4,1.03936899319822e-7,7.85561479216815e-8,1.5097023446419217e-7 +AppendString/500/2500,1.4557635553195795e-4,1.455342543249164e-4,1.4562928368509905e-4,1.4624624868493847e-7,1.0970481343929772e-7,2.1161799336017383e-7 +AppendString/500/3000,1.6738689136441896e-4,1.673307955407797e-4,1.6748278797050823e-4,2.560228148804795e-7,1.0889443914789256e-7,4.117514806735346e-7 +AppendString/500/3500,1.8920272759046145e-4,1.889785958996143e-4,1.8934348243172762e-4,6.059038780373343e-7,3.9052728624937867e-7,8.769410088180822e-7 +AppendString/500/4000,2.0804676048736303e-4,2.077478472599277e-4,2.0826645819020762e-4,8.545499591792592e-7,6.577864614648071e-7,1.0181834912911961e-6 +AppendString/500/4500,2.296883533812926e-4,2.2960574586421012e-4,2.2977154845989353e-4,2.7926280162851647e-7,2.2841256540009255e-7,3.6983733028749874e-7 +AppendString/500/5000,2.5077926562768724e-4,2.507011449952738e-4,2.5088597680938225e-4,3.027713181451007e-7,1.9715874040210256e-7,5.059423400061613e-7 +AppendString/500/5500,2.723925305027379e-4,2.7227491067428227e-4,2.726291539403346e-4,5.37785955643081e-7,2.654709900046509e-7,8.893546839249648e-7 +AppendString/500/6000,2.9243243558613375e-4,2.923669998549545e-4,2.925380734023878e-4,2.959599044237012e-7,1.8773372357913197e-7,4.370572777023382e-7 +AppendString/500/6500,3.1289421281232324e-4,3.1282037991076686e-4,3.129885881223964e-4,2.7851222503543514e-7,2.1754477022807068e-7,4.273384532891481e-7 +AppendString/500/7000,3.345508096861854e-4,3.344276069852513e-4,3.3502548091103113e-4,6.790333964516774e-7,2.5484790999365924e-7,1.4254351403610323e-6 +AppendString/500/7500,3.540579046102081e-4,3.535392657533052e-4,3.543343604967329e-4,1.235998396911292e-6,6.331401985556084e-7,2.0043846008824087e-6 +AppendString/500/8000,3.75644069777379e-4,3.7557743575927034e-4,3.757011598890237e-4,2.1225911631829697e-7,1.5578666130599232e-7,3.0832097297522014e-7 +AppendString/500/8500,3.976425867944987e-4,3.9747943203318473e-4,3.9794295233688126e-4,7.300352551994214e-7,3.180447071165284e-7,1.3342157897359902e-6 +AppendString/500/9000,4.171228592197275e-4,4.17008297221335e-4,4.1738467956520183e-4,5.293344872654025e-7,3.2211392496414463e-7,9.490327766586089e-7 +AppendString/500/9500,4.4017236863423383e-4,4.398766454570404e-4,4.414810467532516e-4,1.5801762619227663e-6,6.926508002850835e-7,3.1854608236981035e-6 +AppendString/500/10000,4.6033191625569845e-4,4.6018151570042647e-4,4.6057694649026467e-4,6.617297587893076e-7,4.5480780578577527e-7,1.0684794589111057e-6 +AppendString/1000/0,4.406364411088913e-5,4.4045353909047395e-5,4.4084341463582805e-5,6.560438978087207e-8,5.379756775335366e-8,8.630690626487669e-8 +AppendString/1000/500,8.233696458504085e-5,8.231467231577926e-5,8.238042968434248e-5,1.001896694117455e-7,5.769250295764588e-8,1.7523358662704872e-7 +AppendString/1000/1000,1.1977051189074056e-4,1.1974389396312653e-4,1.1980988599914152e-4,1.0931634480143722e-7,8.358517115155889e-8,1.827716101896881e-7 +AppendString/1000/1500,1.423027460370253e-4,1.4197483124660817e-4,1.4248195367436574e-4,8.482936919008807e-7,5.179686655324772e-7,1.272807387413794e-6 +AppendString/1000/2000,1.6444826920443544e-4,1.6431216509605687e-4,1.6472542474639006e-4,6.637717784134484e-7,3.752023571451009e-7,1.2332550983928993e-6 +AppendString/1000/2500,1.8556684400976861e-4,1.8551461768433037e-4,1.8563576135318806e-4,1.892441980443673e-7,1.290536360559288e-7,3.1198729124712276e-7 +AppendString/1000/3000,2.0593280733759874e-4,2.058682251008688e-4,2.0610510875128496e-4,3.4438096186501637e-7,1.5884747715147123e-7,6.667414927036033e-7 +AppendString/1000/3500,2.2569518445439088e-4,2.2562615907437649e-4,2.2592015341028966e-4,3.807127231432414e-7,1.313751752487277e-7,7.59496133981876e-7 +AppendString/1000/4000,2.47405778420759e-4,2.473453765271802e-4,2.474905582770593e-4,2.266917433342879e-7,1.6897860774867368e-7,3.6656126958875303e-7 +AppendString/1000/4500,2.687697764969527e-4,2.6869098216277887e-4,2.688838536612208e-4,3.1864085401837826e-7,2.103920134439415e-7,4.5677673091080626e-7 +AppendString/1000/5000,2.89885797784908e-4,2.898355211211048e-4,2.899399565101613e-4,1.7612866547517802e-7,1.4544632095740114e-7,2.1610210236894337e-7 +AppendString/1000/5500,3.0991603052904466e-4,3.098555994469997e-4,3.099795574080295e-4,2.0914402448996297e-7,1.7146378856547478e-7,2.621433995893073e-7 +AppendString/1000/6000,3.3092546564020427e-4,3.308099322328382e-4,3.3125188138165604e-4,6.343713477896104e-7,3.1935671739830557e-7,1.1887722021714572e-6 +AppendString/1000/6500,3.5166034737207756e-4,3.5158331414606846e-4,3.5189319356075275e-4,3.9575552620922557e-7,1.568318375589966e-7,8.294438752130243e-7 +AppendString/1000/7000,3.725008883149967e-4,3.7229111120397503e-4,3.728772007962721e-4,9.206985683700615e-7,5.003067592061274e-7,1.4360722083065189e-6 +AppendString/1000/7500,3.931054378866272e-4,3.929769048455667e-4,3.9350165032143265e-4,6.7212705719219e-7,2.9960227443039496e-7,1.2871314526721432e-6 +AppendString/1000/8000,4.1403669085204837e-4,4.1397896400231587e-4,4.1408465904102537e-4,1.7855179981599814e-7,1.4150923791417295e-7,2.4527446560057163e-7 +AppendString/1000/8500,4.3394337519471265e-4,4.331653663739919e-4,4.3450640516546425e-4,2.1983517020319407e-6,1.7327058125596544e-6,2.5275149170523044e-6 +AppendString/1000/9000,4.558313893032174e-4,4.557375985942367e-4,4.5605852045008295e-4,4.64727382075244e-7,2.369655733689205e-7,8.624116867356834e-7 +AppendString/1000/9500,4.783732730031988e-4,4.7815711409770204e-4,4.787493363602698e-4,8.92634764959844e-7,5.575468730614791e-7,1.5058649015252994e-6 +AppendString/1000/10000,4.984928439025902e-4,4.982449498396372e-4,4.990177406887933e-4,1.1136627230385464e-6,6.402498538180588e-7,2.114569763640933e-6 +AppendString/1500/0,6.52920052825362e-5,6.52356924982838e-5,6.536479149295849e-5,2.3150074510932364e-7,1.757958098989124e-7,3.4442064595682183e-7 +AppendString/1500/500,1.0245315480261539e-4,1.0241131331987752e-4,1.0257628049167587e-4,2.2555560661840826e-7,9.79340373188199e-8,4.417657587821467e-7 +AppendString/1500/1000,1.431332263859226e-4,1.4303883092556792e-4,1.4322357813729457e-4,3.219299761176633e-7,2.5282588434493714e-7,3.945134694790218e-7 +AppendString/1500/1500,1.78756904499623e-4,1.7870087782319064e-4,1.7882566067151527e-4,2.0719565705904926e-7,1.6810729960927785e-7,3.000780004056979e-7 +AppendString/1500/2000,2.0228461943790822e-4,2.022271978222087e-4,2.024148016487049e-4,3.014167185762955e-7,1.5505961225246932e-7,6.020840738914551e-7 +AppendString/1500/2500,2.224006158952513e-4,2.2185856726963303e-4,2.228159394503789e-4,1.5203790714534342e-6,1.068539314408367e-6,1.7902087543710398e-6 +AppendString/1500/3000,2.441925265836102e-4,2.441473937693065e-4,2.442471007078353e-4,1.6360333511925576e-7,1.3794828281935543e-7,2.2029758873480475e-7 +AppendString/1500/3500,2.645940267305868e-4,2.6452215793738154e-4,2.648402314124608e-4,3.931902486169508e-7,1.5429452712207126e-7,8.193847483454735e-7 +AppendString/1500/4000,2.8596796750660265e-4,2.8589677205396666e-4,2.8606096309556135e-4,2.7218024542865583e-7,2.0218415242618121e-7,4.64094572381945e-7 +AppendString/1500/4500,3.069393047661586e-4,3.0687492104019583e-4,3.070332390670523e-4,2.6274002467672185e-7,1.8092942840834252e-7,4.3999450337303563e-7 +AppendString/1500/5000,3.274664466299527e-4,3.273912977458039e-4,3.276219246147834e-4,3.60416573222708e-7,1.9755527751928098e-7,6.220395314221072e-7 +AppendString/1500/5500,3.4865584114928755e-4,3.484852032878291e-4,3.4897885355734016e-4,7.223094996098176e-7,3.8989828335798496e-7,1.2897030006435354e-6 +AppendString/1500/6000,3.6891783602329776e-4,3.688443621440904e-4,3.6901862134751395e-4,2.8172129846845396e-7,2.2848585713125052e-7,3.56836664832146e-7 +AppendString/1500/6500,3.9036312244050626e-4,3.903022352484276e-4,3.9050159406464754e-4,2.9754951342647685e-7,1.8748560411259027e-7,4.956302574801042e-7 +AppendString/1500/7000,4.1071508751739673e-4,4.1048850479087916e-4,4.114625150840989e-4,1.1998781669581935e-6,4.0358473907716973e-7,2.4200992523157122e-6 +AppendString/1500/7500,4.331790359740612e-4,4.328973586371535e-4,4.338920392237432e-4,1.4072492754182648e-6,3.958253063707427e-7,2.410064705278629e-6 +AppendString/1500/8000,4.519396906076609e-4,4.518035713137384e-4,4.521229799266541e-4,5.375702237449517e-7,4.2295502635764837e-7,7.507029580763133e-7 +AppendString/1500/8500,4.7621484634805195e-4,4.760799617076911e-4,4.7652632737266794e-4,6.737878731576675e-7,4.090039562486995e-7,1.2347062536483043e-6 +AppendString/1500/9000,4.956504630149219e-4,4.952457686340516e-4,4.966331820740379e-4,1.985915907800156e-6,9.773886281970074e-7,3.7252680120301067e-6 +AppendString/1500/9500,5.159647526936036e-4,5.156897490991374e-4,5.165156917664398e-4,1.2705080705135114e-6,8.165463046778438e-7,2.0603577832422837e-6 +AppendString/1500/10000,5.364310425793137e-4,5.359725530526132e-4,5.370380628000507e-4,1.8304521488000761e-6,1.2952214192292888e-6,2.5682538492926057e-6 +AppendString/2000/0,8.650981936654814e-5,8.642616804603537e-5,8.658304169064668e-5,2.6600143130244844e-7,2.3094423179904485e-7,3.1399619976804406e-7 +AppendString/2000/500,1.2455223996838777e-4,1.2453023971035132e-4,1.2457310490436113e-4,7.350853154487256e-8,5.685149983460475e-8,1.01833493509203e-7 +AppendString/2000/1000,1.634958264672484e-4,1.6337910833171337e-4,1.6363895660245002e-4,4.31985069632693e-7,3.793269734395312e-7,5.254655354360373e-7 +AppendString/2000/1500,2.013439642787302e-4,2.0123097757570918e-4,2.0143525323072298e-4,3.5321041292088e-7,2.2876500486537747e-7,5.179113230556507e-7 +AppendString/2000/2000,2.3802099842151113e-4,2.3789158611184927e-4,2.3814064263390404e-4,4.359392494650155e-7,3.7186190507495503e-7,5.223101845798146e-7 +AppendString/2000/2500,2.6067145660127315e-4,2.6005697825296024e-4,2.6115025600677354e-4,1.761338752148719e-6,1.4898754670246855e-6,1.952323875392859e-6 +AppendString/2000/3000,2.809197033606165e-4,2.8021703701603025e-4,2.8163503935884157e-4,2.4182977992254196e-6,2.1979186127691224e-6,2.5680580151727666e-6 +AppendString/2000/3500,3.0391277417973674e-4,3.038324134700947e-4,3.040261913755286e-4,3.15318554418699e-7,2.3491968553513219e-7,4.69824238863731e-7 +AppendString/2000/4000,3.2415938022543867e-4,3.241082703810152e-4,3.2421268318897056e-4,1.801472409621772e-7,1.5072600094693847e-7,2.2031963626568955e-7 +AppendString/2000/4500,3.4556947094514985e-4,3.455046686077746e-4,3.4576615236411385e-4,3.5191864197730464e-7,1.418623551527237e-7,7.019006147055071e-7 +AppendString/2000/5000,3.664929164709504e-4,3.6640870198870553e-4,3.66604271327154e-4,3.140004299183544e-7,2.433279514510098e-7,4.043941751307219e-7 +AppendString/2000/5500,3.8690936172987354e-4,3.865951253111654e-4,3.870901693106045e-4,7.775756925027834e-7,3.74213109331641e-7,1.2040239465731695e-6 +AppendString/2000/6000,4.073385410952058e-4,4.069879768304948e-4,4.0757510380809615e-4,9.854115992364454e-7,6.109790303157876e-7,1.4374830412881166e-6 +AppendString/2000/6500,4.259529436360692e-4,4.256314188015547e-4,4.265974859159171e-4,1.4187039315112723e-6,8.974924076701038e-7,2.033318620331558e-6 +AppendString/2000/7000,4.498744565564822e-4,4.497939475444096e-4,4.4994328958618827e-4,2.5744511562027384e-7,2.1629943340049357e-7,3.160107026638407e-7 +AppendString/2000/7500,4.7240780970147746e-4,4.7213090489963246e-4,4.7286945383463567e-4,1.190117756838448e-6,7.396307752660379e-7,1.9391724575060123e-6 +AppendString/2000/8000,4.911616779702209e-4,4.909926538892914e-4,4.915721624225069e-4,8.13202790596969e-7,4.437558439384366e-7,1.550614943867971e-6 +AppendString/2000/8500,5.127821225168385e-4,5.124588601453721e-4,5.134292979124503e-4,1.51927140402363e-6,1.0418944270209524e-6,2.3396365108712997e-6 +AppendString/2000/9000,5.328086447399442e-4,5.319905555759737e-4,5.336850646827401e-4,2.7891535558646763e-6,2.2573303122294217e-6,3.5738753744305956e-6 +AppendString/2000/9500,5.55229240833667e-4,5.548305687075114e-4,5.561827980217291e-4,1.9021825039372684e-6,1.1012980499772225e-6,3.397350018455178e-6 +AppendString/2000/10000,5.760099317602292e-4,5.75690154343844e-4,5.765569226142098e-4,1.4512717276374234e-6,1.0468423831479504e-6,2.086972887247235e-6 +AppendString/2500/0,1.0855452031848776e-4,1.0849844838897541e-4,1.0860965092957403e-4,1.955578944431412e-7,1.5967500659329526e-7,2.525480395363412e-7 +AppendString/2500/500,1.4594068102239636e-4,1.458779882000644e-4,1.460568362725591e-4,2.754616840750825e-7,1.8378734944682698e-7,4.857747840161199e-7 +AppendString/2500/1000,1.8489229713654552e-4,1.8484915184259487e-4,1.8492844231913987e-4,1.3758274918031204e-7,1.0526680993515477e-7,1.9323552354266012e-7 +AppendString/2500/1500,2.221276060493469e-4,2.2160892430217252e-4,2.2252204960848288e-4,1.4490043442752062e-6,1.067892347140413e-6,1.7100519786818302e-6 +AppendString/2500/2000,2.6130940990518384e-4,2.612323223644991e-4,2.6137614128269064e-4,2.3009673243873742e-7,1.760416291761916e-7,2.965847964973241e-7 +AppendString/2500/2500,2.952126558340243e-4,2.949431410811635e-4,2.955127648607359e-4,9.4790949110977e-7,8.698881774775163e-7,1.0638468304505312e-6 +AppendString/2500/3000,3.20980920903977e-4,3.209136486294468e-4,3.210510026345588e-4,2.3541814136377792e-7,1.923994565620988e-7,3.090441119922155e-7 +AppendString/2500/3500,3.419367824105707e-4,3.4186266349175396e-4,3.4205275077159054e-4,3.290610132242861e-7,2.3677848844172305e-7,5.087618005191323e-7 +AppendString/2500/4000,3.64423810415333e-4,3.6432471424237804e-4,3.6470720961474687e-4,5.613483869681685e-7,2.2402121673611412e-7,1.1103332438485809e-6 +AppendString/2500/4500,3.83725830207777e-4,3.8366966197746823e-4,3.837908370281724e-4,1.952663862163442e-7,1.4974395800262628e-7,2.8566280840521643e-7 +AppendString/2500/5000,4.047845968329156e-4,4.0472252349699466e-4,4.0484970118930496e-4,2.208181861693352e-7,1.749637416110376e-7,3.089256230603817e-7 +AppendString/2500/5500,4.2541356821886e-4,4.252842557492777e-4,4.258468567804523e-4,7.034755719694163e-7,2.4665819684004226e-7,1.4144226626161021e-6 +AppendString/2500/6000,4.462889528607757e-4,4.4619173422681994e-4,4.4644548290383266e-4,3.957317609526237e-7,2.744756834096198e-7,5.568007455078409e-7 +AppendString/2500/6500,4.678248132779491e-4,4.6765932819904286e-4,4.682974300167203e-4,8.514329232784333e-7,3.7655990916526716e-7,1.6460291401521483e-6 +AppendString/2500/7000,4.885944489267178e-4,4.884551308769073e-4,4.888571319587704e-4,6.56733159731495e-7,3.8238655866760467e-7,1.0694200966719126e-6 +AppendString/2500/7500,5.11007779186098e-4,5.107900422522213e-4,5.113903574599888e-4,9.423159885221098e-7,5.811670538845592e-7,1.6580775169013204e-6 +AppendString/2500/8000,5.296047976786437e-4,5.292632748404625e-4,5.306118813793948e-4,1.8103687583576408e-6,7.873293088475703e-7,3.7606038324461216e-6 +AppendString/2500/8500,5.513859236429151e-4,5.511038124841499e-4,5.518102054732206e-4,1.130122531256386e-6,8.400671708738805e-7,1.6476521931685873e-6 +AppendString/2500/9000,5.726551546777973e-4,5.72318760479023e-4,5.731095056418054e-4,1.2493754598815223e-6,9.353642398375032e-7,1.807512091831525e-6 +AppendString/2500/9500,5.934299932530561e-4,5.92731297723076e-4,5.939584771359086e-4,2.1440190323657494e-6,1.4867648781577054e-6,2.9865335973279037e-6 +AppendString/2500/10000,6.14071426602135e-4,6.137200030697805e-4,6.146037508988248e-4,1.4168776548064977e-6,1.0801570885244062e-6,1.980003129463775e-6 +AppendString/3000/0,1.286787485312139e-4,1.2860184085240414e-4,1.2875349747282862e-4,2.68617899524012e-7,2.115353132827063e-7,3.6118822928780634e-7 +AppendString/3000/500,1.664808723588813e-4,1.6640429922347495e-4,1.6660081726872173e-4,3.2209557809656425e-7,1.8554189121767578e-7,5.017128677378133e-7 +AppendString/3000/1000,2.017244482662349e-4,2.0168192533700935e-4,2.0176496391317113e-4,1.335227816009394e-7,1.0910593292478513e-7,1.6824893405147934e-7 +AppendString/3000/1500,2.4307245599062085e-4,2.4297592994651317e-4,2.4316007104605505e-4,3.0705527590391445e-7,2.02091942236473e-7,4.5612225118958603e-7 +AppendString/3000/2000,2.8221534851569395e-4,2.821221905876186e-4,2.8245028343382134e-4,4.782999020208101e-7,2.069357377317828e-7,8.490585318493289e-7 +AppendString/3000/2500,3.161010245561471e-4,3.1598376813647705e-4,3.162079642150456e-4,3.9061724848233075e-7,3.2872681872838603e-7,4.7375688878469817e-7 +AppendString/3000/3000,3.532688759400788e-4,3.5300533282717087e-4,3.534692993189135e-4,7.871290839118498e-7,6.360748474112456e-7,9.213276562004072e-7 +AppendString/3000/3500,3.7898508063722143e-4,3.7844509088264715e-4,3.793641785898783e-4,1.5625122801211627e-6,8.325089358621494e-7,2.160569273892517e-6 +AppendString/3000/4000,3.9866686288180203e-4,3.9772822989256394e-4,3.993671276371922e-4,2.5628939192514283e-6,2.009559814500793e-6,2.949616554948352e-6 +AppendString/3000/4500,4.221115349791564e-4,4.220137540264012e-4,4.2222731070623554e-4,3.481578352018864e-7,3.052998177113328e-7,4.131009104888483e-7 +AppendString/3000/5000,4.4314091384305105e-4,4.430780620733746e-4,4.432063930613881e-4,2.2543476198845573e-7,1.733080967156882e-7,3.1478882039171106e-7 +AppendString/3000/5500,4.650489319024698e-4,4.6496298140366783e-4,4.651483823455144e-4,3.040032748295161e-7,2.4345080189494756e-7,4.282755235865053e-7 +AppendString/3000/6000,4.855629022018875e-4,4.8545820550520386e-4,4.8571241247750334e-4,4.560039917093481e-7,3.137152712510007e-7,7.535016209747087e-7 +AppendString/3000/6500,5.076044358433166e-4,5.074156081155798e-4,5.080139620164617e-4,8.843117163605857e-7,5.019377985863617e-7,1.5848136736377552e-6 +AppendString/3000/7000,5.284067901273309e-4,5.281674933520359e-4,5.288178487420735e-4,1.0596701396050403e-6,6.471220948979089e-7,1.7394842747596231e-6 +AppendString/3000/7500,5.4795029534575e-4,5.477187544453718e-4,5.483624781511639e-4,9.839349711927126e-7,6.682465159955053e-7,1.454920935683395e-6 +AppendString/3000/8000,5.686996863049884e-4,5.682938224885396e-4,5.692204259356052e-4,1.4967452405955165e-6,1.0742446451415334e-6,2.2214577945942248e-6 +AppendString/3000/8500,5.904787242859163e-4,5.901466296847975e-4,5.910421683318757e-4,1.4297530428380804e-6,9.669478163415944e-7,2.2667146398517193e-6 +AppendString/3000/9000,6.112754206560475e-4,6.108796627399868e-4,6.119439482442009e-4,1.660739283116041e-6,1.1542157274232237e-6,2.3642303149731284e-6 +AppendString/3000/9500,6.321852310015411e-4,6.318220140344773e-4,6.327506921223287e-4,1.5685731130007101e-6,1.1802268337034308e-6,2.1813389400463827e-6 +AppendString/3000/10000,6.526030088144839e-4,6.522146201824233e-4,6.532308545937544e-4,1.60654987935611e-6,1.2781446217636903e-6,2.2327423736567407e-6 +AppendString/3500/0,1.498354096083861e-4,1.4954748014158793e-4,1.5002004940307986e-4,7.229346022790357e-7,4.997335081900046e-7,9.781624039001486e-7 +AppendString/3500/500,1.8795961572983379e-4,1.8786085376789894e-4,1.880722927443913e-4,3.3788870867996426e-7,2.7535599072160225e-7,4.05398962023649e-7 +AppendString/3500/1000,2.2492790022544956e-4,2.248900664335188e-4,2.2496638372694966e-4,1.258765475457711e-7,1.0946569522027169e-7,1.4486793483739508e-7 +AppendString/3500/1500,2.642593028480059e-4,2.6412246465770456e-4,2.6432545783283955e-4,3.1742769009658636e-7,1.5615635870037365e-7,6.485395238810996e-7 +AppendString/3500/2000,3.0267274669962756e-4,3.0258283841980073e-4,3.02726020019838e-4,2.3382968185966264e-7,1.5872061978047694e-7,3.4650760890931777e-7 +AppendString/3500/2500,3.409095362737682e-4,3.408350529154885e-4,3.4096406256408865e-4,2.211974524170379e-7,1.7290273793569463e-7,3.148770673287547e-7 +AppendString/3500/3000,3.81081463044425e-4,3.8067651849421315e-4,3.814127150018651e-4,1.2605584963045056e-6,1.0476614633950812e-6,1.4702051027612268e-6 +AppendString/3500/3500,4.1201959411037744e-4,4.1164027649899754e-4,4.1235153011374433e-4,1.1796910728972649e-6,9.521559140060343e-7,1.4060579583749454e-6 +AppendString/3500/4000,4.3975245791447333e-4,4.3941221416761016e-4,4.402389656305422e-4,1.3881353917178692e-6,8.905390990553123e-7,2.214858844160218e-6 +AppendString/3500/4500,4.587625193239935e-4,4.577890760407868e-4,4.595131208062557e-4,2.7441213109837425e-6,2.094424132616728e-6,3.177705812475778e-6 +AppendString/3500/5000,4.814795410793073e-4,4.813919404346924e-4,4.816099959369178e-4,3.554524492256256e-7,2.632879156903546e-7,5.589637683636719e-7 +AppendString/3500/5500,5.033959693844671e-4,5.02906478601623e-4,5.039880142867285e-4,1.7578816196094392e-6,1.1773919685332668e-6,2.5485973382122198e-6 +AppendString/3500/6000,5.22504241828778e-4,5.21455284064865e-4,5.232034730518644e-4,2.8969106914843026e-6,2.0167630824611794e-6,3.856106985844151e-6 +AppendString/3500/6500,5.449614330928457e-4,5.44682464790446e-4,5.455279368913992e-4,1.313136189408564e-6,7.15809474131382e-7,2.28215216217017e-6 +AppendString/3500/7000,5.658014634272225e-4,5.655398241262914e-4,5.662785675461956e-4,1.1716979734887104e-6,7.446834780947802e-7,1.8025020624191805e-6 +AppendString/3500/7500,5.870106443986217e-4,5.866780139258882e-4,5.876055637093447e-4,1.4273958433273754e-6,1.0426473266687197e-6,2.117168187571191e-6 +AppendString/3500/8000,6.079507582664396e-4,6.075669798001128e-4,6.085409876807567e-4,1.6116058758543303e-6,1.0798102475534459e-6,2.480602738304888e-6 +AppendString/3500/8500,6.290243169573021e-4,6.286042472743357e-4,6.298352054784728e-4,1.9765527263435524e-6,1.3230332215539153e-6,3.216384443561235e-6 +AppendString/3500/9000,6.513279902984438e-4,6.506663023972968e-4,6.519517287599355e-4,2.1356836884194116e-6,1.6631990955321635e-6,3.128580479982338e-6 +AppendString/3500/9500,6.722573297110719e-4,6.718113387329883e-4,6.729509972851543e-4,1.8407974058421166e-6,1.345231915323568e-6,2.849725088729076e-6 +AppendString/3500/10000,6.932278839425378e-4,6.927539448040409e-4,6.939531764465748e-4,1.9161962487485687e-6,1.432908247145668e-6,2.6503288552897132e-6 +AppendString/4000/0,1.7036596551904973e-4,1.7028700369703658e-4,1.7046387836695739e-4,3.048925743606888e-7,2.392962423039599e-7,4.30904117453028e-7 +AppendString/4000/500,2.0470058932434962e-4,2.04642873522536e-4,2.0476355439054303e-4,2.0288281189135165e-7,1.738046478972411e-7,2.4742697971217496e-7 +AppendString/4000/1000,2.46353994545356e-4,2.463072192966547e-4,2.463910643130342e-4,1.3774955207699692e-7,1.1555985244885581e-7,1.7675287932288423e-7 +AppendString/4000/1500,2.8474735128032386e-4,2.8469504890567737e-4,2.848001306543831e-4,1.832914073364459e-7,1.5493437558239395e-7,2.1534759737788006e-7 +AppendString/4000/2000,3.2352199138575225e-4,3.234557899263215e-4,3.235935465098679e-4,2.4044022426484456e-7,1.735441853614638e-7,3.473002519692171e-7 +AppendString/4000/2500,3.621528863337488e-4,3.620984589165836e-4,3.622114661147691e-4,1.9436086403778083e-7,1.559622404665915e-7,2.3801736266483285e-7 +AppendString/4000/3000,4.002641855628745e-4,4.0021616823704534e-4,4.0031440275653594e-4,1.7167245347941957e-7,1.426215837559396e-7,2.161476124214178e-7 +AppendString/4000/3500,4.378114113569841e-4,4.3773098335231933e-4,4.3788711618169304e-4,2.610657210449236e-7,2.1240362862987014e-7,3.514040793014459e-7 +AppendString/4000/4000,4.7081815957584447e-4,4.7071585811360103e-4,4.7090841432515787e-4,3.369226298000848e-7,2.817827682535753e-7,4.356259937251879e-7 +AppendString/4000/4500,5.005386150693133e-4,5.00364433802439e-4,5.007616102850743e-4,6.692386781244637e-7,5.396563969216531e-7,9.818495705728993e-7 +AppendString/4000/5000,5.181256025164913e-4,5.170402325751258e-4,5.188594463127268e-4,3.0628746328104553e-6,2.3059681734974884e-6,3.728899859988757e-6 +AppendString/4000/5500,5.406936162870147e-4,5.401791768965133e-4,5.411601680570284e-4,1.6171827122898264e-6,1.3176785578097221e-6,2.028231954834228e-6 +AppendString/4000/6000,5.625440973926961e-4,5.622489899055057e-4,5.632585228062904e-4,1.5086432758061331e-6,7.917317998311296e-7,2.8206857751503506e-6 +AppendString/4000/6500,5.837406405281968e-4,5.832105867011173e-4,5.844973309012414e-4,2.1380787729516796e-6,1.4224966028914813e-6,3.142482564746039e-6 +AppendString/4000/7000,6.044166103514617e-4,6.038846272235435e-4,6.055188531149286e-4,2.4711308897018037e-6,1.2979927769376925e-6,5.002608812361799e-6 +AppendString/4000/7500,6.253720194490734e-4,6.249411722368605e-4,6.259892471996085e-4,1.7547592783002147e-6,1.2183727227401395e-6,2.544263846142752e-6 +AppendString/4000/8000,6.481815208572817e-4,6.477183716621016e-4,6.48912185000376e-4,1.90597005130396e-6,1.3903313433979638e-6,2.7672162789898884e-6 +AppendString/4000/8500,6.680168912686215e-4,6.675346584881669e-4,6.686570839674969e-4,1.8428627692399226e-6,1.4205550925400093e-6,2.612490453153431e-6 +AppendString/4000/9000,6.88987733997553e-4,6.87906463673124e-4,6.897262174174264e-4,2.833777106871089e-6,1.771210030083916e-6,5.102348050844659e-6 +AppendString/4000/9500,7.084040027611837e-4,7.076013871732884e-4,7.091761510903231e-4,2.6256028020145564e-6,2.068262211201912e-6,3.464390729588165e-6 +AppendString/4000/10000,7.304649626393593e-4,7.299468537959345e-4,7.31187504480119e-4,2.27323544054267e-6,1.7061717618025697e-6,3.0794477321223667e-6 +AppendString/4500/0,1.9195267224255994e-4,1.9173261253104044e-4,1.921446400133028e-4,7.02871789210963e-7,4.5946966579932337e-7,1.1477331506966522e-6 +AppendString/4500/500,2.287615859417762e-4,2.286836764142035e-4,2.288375517589357e-4,2.547980509673749e-7,2.2081173464051538e-7,2.999651883963111e-7 +AppendString/4500/1000,2.6715377215353117e-4,2.671171714747544e-4,2.6719601589152636e-4,1.3284919513129052e-7,1.1084287296246965e-7,1.665170004701236e-7 +AppendString/4500/1500,3.0627250127636824e-4,3.0621144967490406e-4,3.063328078296519e-4,2.125972054997027e-7,1.8567809377888586e-7,2.543612028691628e-7 +AppendString/4500/2000,3.4460908087070006e-4,3.4455269092401015e-4,3.446621565999892e-4,1.8301670408093325e-7,1.4057906009626922e-7,2.4111866472417294e-7 +AppendString/4500/2500,3.845246323938859e-4,3.837868274429029e-4,3.8485393805455065e-4,1.62375727596836e-6,9.513728289483608e-7,2.4920186121424135e-6 +AppendString/4500/3000,4.2104884384355535e-4,4.200613202347698e-4,4.220526877420819e-4,3.248247007516173e-6,3.035978313006148e-6,3.450899208191958e-6 +AppendString/4500/3500,4.603693901799477e-4,4.5940467382575844e-4,4.612229769677763e-4,3.0790235723824125e-6,2.4999139716726402e-6,3.41601600821549e-6 +AppendString/4500/4000,4.980560220409737e-4,4.9705411952199e-4,4.991589825069702e-4,3.5793475043408894e-6,3.41977707807273e-6,3.821447040276349e-6 +AppendString/4500/4500,5.316416053054196e-4,5.311376623384417e-4,5.322091951558033e-4,1.8081366221771707e-6,1.625198166824501e-6,2.196071154987612e-6 +AppendString/4500/5000,5.587655785605519e-4,5.576566942872843e-4,5.598497415824802e-4,3.766559271736347e-6,3.31366455134852e-6,4.0907099711218155e-6 +AppendString/4500/5500,5.830453353028198e-4,5.827144319860612e-4,5.83514834992919e-4,1.30454970927137e-6,8.6426800838644e-7,1.8923779498999488e-6 +AppendString/4500/6000,6.047711798321977e-4,6.043695448195982e-4,6.053524218502578e-4,1.5727590186385646e-6,1.1471223711718123e-6,2.169286118872196e-6 +AppendString/4500/6500,6.257663108980064e-4,6.254020918842658e-4,6.263860991674948e-4,1.5688171838200906e-6,1.1078376637446872e-6,2.3942572993529445e-6 +AppendString/4500/7000,6.472388334861783e-4,6.46804411849156e-4,6.479606589572933e-4,1.8079278765570074e-6,1.3118812418603541e-6,2.712464253146298e-6 +AppendString/4500/7500,6.701594925347213e-4,6.697843149617566e-4,6.706826680593134e-4,1.5780532562902532e-6,1.268876054452407e-6,2.0610839621205075e-6 +AppendString/4500/8000,6.897127651660759e-4,6.892125830341961e-4,6.90370967279188e-4,1.9716123860845857e-6,1.5186800369013817e-6,2.5388521045295657e-6 +AppendString/4500/8500,7.110831186240311e-4,7.10564151210392e-4,7.117320447212792e-4,1.9805758597193973e-6,1.493028272361006e-6,2.899012078089723e-6 +AppendString/4500/9000,7.326217082661029e-4,7.321234521694728e-4,7.333394353277001e-4,2.0006330211351164e-6,1.5531956367889653e-6,2.9812450860082736e-6 +AppendString/4500/9500,7.525654268320622e-4,7.512501213858735e-4,7.535232775619297e-4,3.5823231577322524e-6,2.84102975846475e-6,4.3738592171721615e-6 +AppendString/4500/10000,7.741687823085721e-4,7.735830893115942e-4,7.750192979640525e-4,2.3786485976247185e-6,1.7642458199924027e-6,3.701089293333488e-6 +AppendString/5000/0,2.1404041650859127e-4,2.1356238418523648e-4,2.1439222588817502e-4,1.3899274444355334e-6,1.1245380065092265e-6,1.6428205878147193e-6 +AppendString/5000/500,2.527445217260261e-4,2.526967709922058e-4,2.5281145962161825e-4,1.872733409554916e-7,1.335490660327154e-7,2.858812529492453e-7 +AppendString/5000/1000,2.9063545548051607e-4,2.905630073581059e-4,2.907222988118691e-4,2.6583035108028585e-7,2.135739368684342e-7,3.754025985320944e-7 +AppendString/5000/1500,3.2936343108925354e-4,3.2931188834378e-4,3.294133640336509e-4,1.658274381059591e-7,1.3815927905434682e-7,2.031435372471565e-7 +AppendString/5000/2000,3.6799657494569955e-4,3.6782103136503226e-4,3.6808485199703095e-4,4.2835437459339463e-7,2.1725079371405143e-7,7.944187289559507e-7 +AppendString/5000/2500,4.069597410960321e-4,4.0690061346720664e-4,4.0703647111937436e-4,2.3020786072158667e-7,1.7577470055986603e-7,3.2376167093806443e-7 +AppendString/5000/3000,4.452079211203417e-4,4.4512567378672443e-4,4.4545634919273023e-4,4.3370982466666404e-7,1.8613566443241015e-7,8.359432152991491e-7 +AppendString/5000/3500,4.8551004660284016e-4,4.8537720811565665e-4,4.8568006069994377e-4,4.913489503344705e-7,3.801981577543271e-7,7.591889184506081e-7 +AppendString/5000/4000,5.236480322710181e-4,5.226799599654734e-4,5.243926676963821e-4,2.756906795620891e-6,2.071665161219542e-6,3.52845528432151e-6 +AppendString/5000/4500,5.616873982079978e-4,5.614201382775963e-4,5.621718740527604e-4,1.2836657199178146e-6,7.793994483414803e-7,2.2156338214981043e-6 +AppendString/5000/5000,5.926088101159224e-4,5.923296383130974e-4,5.93072088167211e-4,1.1961232634244172e-6,8.576175111986868e-7,1.885092970895314e-6 +AppendString/5000/5500,6.206582728797098e-4,6.195153581826537e-4,6.21377820837734e-4,3.0525799391577755e-6,2.157162347413406e-6,4.039230132413965e-6 +AppendString/5000/6000,6.424104030212369e-4,6.41628365975889e-4,6.430336233113989e-4,2.271200451740409e-6,1.8221899881686633e-6,2.731888668649236e-6 +AppendString/5000/6500,6.635319957951738e-4,6.620987959056691e-4,6.64505410591352e-4,3.845538530214988e-6,2.7924111765237442e-6,4.772297074096961e-6 +AppendString/5000/7000,6.862470899690316e-4,6.858259256670708e-4,6.868204444567542e-4,1.6029543166616585e-6,1.2549742774319902e-6,2.1694938435660746e-6 +AppendString/5000/7500,7.087332303551915e-4,7.082168654585712e-4,7.093276689240235e-4,1.8362016461018336e-6,1.4485883667761722e-6,2.4167000314890945e-6 +AppendString/5000/8000,7.286497535464935e-4,7.281176024852779e-4,7.293161368424012e-4,1.9706094652526087e-6,1.5322735602550577e-6,2.944540289023338e-6 +AppendString/5000/8500,7.508825452692089e-4,7.503152057850243e-4,7.516143240498834e-4,2.2254502448874195e-6,1.6730425664346649e-6,3.1671017189094616e-6 +AppendString/5000/9000,7.71437755968348e-4,7.708170144872941e-4,7.721906601265854e-4,2.323719155661641e-6,1.8362509301994832e-6,3.067454588582082e-6 +AppendString/5000/9500,7.922568299409358e-4,7.917133117151109e-4,7.92913662318179e-4,2.0243410911812366e-6,1.6402403524566476e-6,2.7763678083983155e-6 +AppendString/5000/10000,8.116899570745832e-4,8.10570888635505e-4,8.126918228631576e-4,3.5838251188771705e-6,2.933194364075582e-6,4.32060603806401e-6 +AppendString/5500/0,2.3606425436979294e-4,2.3595419047872307e-4,2.3618223738024573e-4,3.8817236790929233e-7,3.1706897360501467e-7,4.6832651539111436e-7 +AppendString/5500/500,2.732441756195544e-4,2.728514759535911e-4,2.7344700096180134e-4,8.600719587450716e-7,5.175759809835372e-7,1.3473243911172695e-6 +AppendString/5500/1000,3.118368337465663e-4,3.1177843100192054e-4,3.119902661302115e-4,2.8573231138217817e-7,1.583450610545208e-7,5.849864265901957e-7 +AppendString/5500/1500,3.503547857138066e-4,3.5019825364370345e-4,3.5073840568210294e-4,7.80778285708201e-7,3.9104432016408424e-7,1.4303491470104208e-6 +AppendString/5500/2000,3.892545995346831e-4,3.8921206006269554e-4,3.8930599483625586e-4,1.5228104425956672e-7,1.2206828591611633e-7,1.9730596863045226e-7 +AppendString/5500/2500,4.2795362872405444e-4,4.2787462521286587e-4,4.2812636588634523e-4,3.6082809569629084e-7,2.0551087490785207e-7,6.67284207284611e-7 +AppendString/5500/3000,4.661089838885126e-4,4.65642583897943e-4,4.663245456720052e-4,9.64918346096301e-7,5.819400802155232e-7,1.4350696397793378e-6 +AppendString/5500/3500,5.041890810879027e-4,5.036416604403312e-4,5.04664195483304e-4,1.751266998173952e-6,1.4117075041824766e-6,2.120858887356793e-6 +AppendString/5500/4000,5.440261168485858e-4,5.437934029125257e-4,5.443420023829779e-4,9.026105043831615e-7,6.108865556757882e-7,1.444862614887473e-6 +AppendString/5500/4500,5.801772053528006e-4,5.789029388212293e-4,5.813171814452507e-4,4.102138041581537e-6,3.5967267662286008e-6,4.493964971951471e-6 +AppendString/5500/5000,6.217057040937235e-4,6.213627637683639e-4,6.22319119200371e-4,1.4638124626682664e-6,1.0215514261134754e-6,2.0771413062100977e-6 +AppendString/5500/5500,6.518710366785331e-4,6.512198560275016e-4,6.524557328340808e-4,2.0363223261864554e-6,1.5263701407240573e-6,2.651171925260181e-6 +AppendString/5500/6000,6.816786726860217e-4,6.809790111626639e-4,6.822708698245812e-4,2.264251376416449e-6,1.792991945263192e-6,2.8427189481017854e-6 +AppendString/5500/6500,6.945575755019093e-4,6.941236846330442e-4,6.952232389120267e-4,1.8042729126102017e-6,1.3762805744442536e-6,2.7784443767866187e-6 +AppendString/5500/7000,7.250693489841871e-4,7.245011936513961e-4,7.256742333375541e-4,1.9882469156625923e-6,1.499788290907433e-6,2.7850733668838056e-6 +AppendString/5500/7500,7.454539165199351e-4,7.444648301297934e-4,7.464443489111611e-4,3.282393268093672e-6,2.7582880045689063e-6,3.654552415727054e-6 +AppendString/5500/8000,7.683014336469692e-4,7.677952932220491e-4,7.690170057519436e-4,2.1612322485710872e-6,1.6582700393379305e-6,3.1981384425395556e-6 +AppendString/5500/8500,7.895418626509733e-4,7.889142779500235e-4,7.903602254912336e-4,2.4035486608833413e-6,1.8215937694432644e-6,3.2643019265129117e-6 +AppendString/5500/9000,8.095210378233509e-4,8.084809153834502e-4,8.103384875303547e-4,3.2209359683004133e-6,2.4303279163397257e-6,3.989019908170855e-6 +AppendString/5500/9500,8.33815979456493e-4,8.326979031129894e-4,8.384829866113558e-4,5.853325844489912e-6,2.0010234831753127e-6,1.3293503346938499e-5 +AppendString/5500/10000,8.531926908374153e-4,8.525611104779039e-4,8.539921681506663e-4,2.4197608537209863e-6,1.8730263156016134e-6,3.515704399802916e-6 +AppendString/6000/0,2.5815872351920514e-4,2.575991515621308e-4,2.5855495082818103e-4,1.5789814109009518e-6,1.2960953392690182e-6,1.9033087684443398e-6 +AppendString/6000/500,2.887185492558733e-4,2.885765742153722e-4,2.89053588853731e-4,7.702271528301476e-7,3.1798575605879305e-7,1.4003659854776981e-6 +AppendString/6000/1000,3.323571723149913e-4,3.321802155221182e-4,3.325714823163824e-4,6.277210159081792e-7,3.278475234137448e-7,1.0152013980513912e-6 +AppendString/6000/1500,3.7106324769958473e-4,3.710025670638673e-4,3.711451394355948e-4,2.3648117495782928e-7,1.7484766172428595e-7,3.779190657110327e-7 +AppendString/6000/2000,4.102249558908717e-4,4.1013284895208984e-4,4.1048839660927453e-4,4.704474171977984e-7,1.857777104229198e-7,7.893637990154525e-7 +AppendString/6000/2500,4.482913079592978e-4,4.478893495279835e-4,4.4858872353903845e-4,1.1722532045649393e-6,7.622806956858571e-7,1.5537794008977358e-6 +AppendString/6000/3000,4.8734417412292833e-4,4.8724148273100883e-4,4.8755996957345276e-4,4.636893215384584e-7,2.410167142353268e-7,8.56993035319481e-7 +AppendString/6000/3500,5.262012965263881e-4,5.259878006208136e-4,5.266525114177047e-4,1.0146957513491315e-6,6.063945408784314e-7,1.726092891241467e-6 +AppendString/6000/4000,5.652453313562812e-4,5.649349475084251e-4,5.65873660593914e-4,1.4579676158057168e-6,8.662547175653767e-7,2.465441002247342e-6 +AppendString/6000/4500,6.046593840230614e-4,6.043283730247605e-4,6.051490112841657e-4,1.3641236956025465e-6,9.707748784198893e-7,2.067659263741399e-6 +AppendString/6000/5000,6.405574493432804e-4,6.391330606380193e-4,6.418117311153944e-4,4.426454644874917e-6,3.7158598181081636e-6,5.048543900597742e-6 +AppendString/6000/5500,6.817840552508864e-4,6.810115302425397e-4,6.824689621884833e-4,2.3538499090668473e-6,1.8528497566549264e-6,2.9912988928852653e-6 +AppendString/6000/6000,7.116285829367261e-4,7.111459448721268e-4,7.122629760000059e-4,1.739445884389039e-6,1.3655737845781714e-6,2.3440079170980095e-6 +AppendString/6000/6500,7.351753515182426e-4,7.340804078614509e-4,7.366952206389236e-4,4.39128835109341e-6,3.651939351662373e-6,5.126427589007308e-6 +AppendString/6000/7000,7.541093797471446e-4,7.535957783814441e-4,7.548970810276368e-4,2.128655351624585e-6,1.5553479524063122e-6,3.0051556805523453e-6 +AppendString/6000/7500,7.850249141251988e-4,7.84233850343703e-4,7.858071072132657e-4,2.5607668354745928e-6,1.9756727689175187e-6,3.4256687366588584e-6 +AppendString/6000/8000,8.064320394038421e-4,8.058999882227957e-4,8.07084193341736e-4,2.1080079013549103e-6,1.6548340976072633e-6,2.900570238343258e-6 +AppendString/6000/8500,8.27051440327857e-4,8.251436120445309e-4,8.281128346411953e-4,4.3480664234170974e-6,2.928338233577687e-6,6.282469267201949e-6 +AppendString/6000/9000,8.499135843723536e-4,8.492211938131479e-4,8.506107765348113e-4,2.3656519967668295e-6,1.8872126909842404e-6,3.005384104895334e-6 +AppendString/6000/9500,8.711494130373044e-4,8.701705746769582e-4,8.722603102045895e-4,3.3767627845199356e-6,2.765583930823879e-6,4.237604891026467e-6 +AppendString/6000/10000,8.918804780207765e-4,8.904112650736932e-4,8.929356893658834e-4,4.209285908040809e-6,2.582073462840496e-6,6.367572549130306e-6 +AppendString/6500/0,2.7867882564963544e-4,2.7857490884481345e-4,2.7879501251352703e-4,3.628888268738925e-7,2.783971928215341e-7,4.7013465509886954e-7 +AppendString/6500/500,3.1575650954934927e-4,3.15686324970647e-4,3.1589188302847543e-4,3.2942468089455973e-7,1.776806607610741e-7,5.920136922524204e-7 +AppendString/6500/1000,3.5352348490576177e-4,3.529695751067245e-4,3.545492002487658e-4,2.3201901969976327e-6,1.4811986994120783e-6,3.9537478146809086e-6 +AppendString/6500/1500,3.925883704722396e-4,3.9245245404256906e-4,3.928300789958151e-4,5.939213978322061e-7,3.644721519207674e-7,9.889242797875586e-7 +AppendString/6500/2000,4.3091756394244836e-4,4.308611072878256e-4,4.309823578348538e-4,2.108598256868768e-7,1.7572711587988042e-7,2.7941711281617146e-7 +AppendString/6500/2500,4.7051854454688237e-4,4.7041159860687105e-4,4.7064533648912764e-4,3.744707301496353e-7,2.770912493548291e-7,5.356194036955025e-7 +AppendString/6500/3000,5.087683187774392e-4,5.08108373556735e-4,5.091104317539639e-4,1.6109844741150948e-6,7.275421256472335e-7,3.526463521871387e-6 +AppendString/6500/3500,5.483180593183979e-4,5.480129780676469e-4,5.489313478522554e-4,1.4186778283414952e-6,8.569279896735974e-7,2.361568096058939e-6 +AppendString/6500/4000,5.857323577231994e-4,5.850029782759182e-4,5.863080814822565e-4,2.18618588524387e-6,1.7043298729103104e-6,2.6719113980219105e-6 +AppendString/6500/4500,6.25521153412425e-4,6.251638577316421e-4,6.261462832458198e-4,1.5416940763231957e-6,1.0563331237934767e-6,2.5479292975442653e-6 +AppendString/6500/5000,6.646776774486512e-4,6.642086464560888e-4,6.653061628647197e-4,1.8522539992681574e-6,1.33903650612519e-6,2.774298163551862e-6 +AppendString/6500/5500,6.947700538901171e-4,6.942655658196575e-4,6.957062565962871e-4,2.2128756283147754e-6,1.5415339776591925e-6,3.463247877862765e-6 +AppendString/6500/6000,7.347788526117776e-4,7.331532460639001e-4,7.363445826860408e-4,5.220960415350628e-6,4.567246986733732e-6,6.061935903449408e-6 +AppendString/6500/6500,7.706978336439552e-4,7.701476810241674e-4,7.714916753791906e-4,2.1927388603983644e-6,1.7026608218823175e-6,2.9232449964398426e-6 +AppendString/6500/7000,7.997436626031332e-4,7.974570689050798e-4,8.012636682011058e-4,6.032450049196391e-6,4.284735240155488e-6,7.712904239852371e-6 +AppendString/6500/7500,8.24600330163016e-4,8.238134817974286e-4,8.256710545419536e-4,3.2287472239119686e-6,2.537712176573198e-6,4.025138669794353e-6 +AppendString/6500/8000,8.455000758434507e-4,8.449063524762612e-4,8.461811557296759e-4,2.240156072024303e-6,1.8464010201667386e-6,2.9326439380923266e-6 +AppendString/6500/8500,8.647284525934509e-4,8.636206479591752e-4,8.658235464147759e-4,3.623341535238098e-6,3.2062156320798043e-6,4.095384204606326e-6 +AppendString/6500/9000,8.877586897691754e-4,8.859924774627962e-4,8.888977206028552e-4,5.043922849174103e-6,3.356242202241231e-6,7.72403933314088e-6 +AppendString/6500/9500,9.09382431568348e-4,9.075819366150015e-4,9.104388929835983e-4,4.624654451071855e-6,3.118033318135481e-6,6.6764768620018335e-6 +AppendString/6500/10000,9.30222403197182e-4,9.295148979011063e-4,9.310722925268127e-4,2.628899566223461e-6,2.0153299101556227e-6,3.424318027338067e-6 +AppendString/7000/0,3.0124919036562465e-4,3.010947762788553e-4,3.014069775431378e-4,5.223863619383608e-7,4.2806159834186515e-7,6.763619512620322e-7 +AppendString/7000/500,3.3628868751567115e-4,3.361932131916333e-4,3.3651055304783495e-4,4.5708908060433564e-7,2.2573650875295829e-7,8.535318983747154e-7 +AppendString/7000/1000,3.748922926969816e-4,3.748378242273756e-4,3.7497554632948425e-4,2.3620732021041412e-7,1.5800056764792094e-7,3.8882962483368607e-7 +AppendString/7000/1500,4.1377216194382464e-4,4.1369112067019334e-4,4.138717150815284e-4,2.8838303696529314e-7,2.170269596243113e-7,4.6109785647002935e-7 +AppendString/7000/2000,4.5244818805296257e-4,4.5236131478949203e-4,4.5262042681352613e-4,3.941839619663574e-7,2.53340836372863e-7,7.007483232745882e-7 +AppendString/7000/2500,4.913280998253415e-4,4.911751227976695e-4,4.916533167585265e-4,7.290039931896047e-7,4.268756439432927e-7,1.3418861488934306e-6 +AppendString/7000/3000,5.297802220852122e-4,5.295098906628698e-4,5.303271226712748e-4,1.238812304438187e-6,7.278844989959645e-7,2.1313833550830083e-6 +AppendString/7000/3500,5.688172585116526e-4,5.685437599437211e-4,5.692115481725785e-4,1.1495449677647671e-6,8.38343938107222e-7,1.610331247528486e-6 +AppendString/7000/4000,6.081939142961585e-4,6.07845880892052e-4,6.087190553986772e-4,1.4391769517969257e-6,1.0027786365684698e-6,2.1556659130399133e-6 +AppendString/7000/4500,6.46349638751748e-4,6.459184235721179e-4,6.47124419854899e-4,1.8589162633584552e-6,1.3471006920717593e-6,2.928317036436665e-6 +AppendString/7000/5000,6.860263508223093e-4,6.856003544154569e-4,6.866316707766775e-4,1.7526552260334144e-6,1.4393328641376578e-6,2.4077351308414586e-6 +AppendString/7000/5500,7.200831461763169e-4,7.177318198795433e-4,7.221216621415152e-4,6.88912278969748e-6,5.518211395278766e-6,7.910818442218658e-6 +AppendString/7000/6000,7.642945733458015e-4,7.637094684177909e-4,7.649786217928211e-4,2.2637429633656994e-6,1.7502983261711789e-6,3.3228791657536536e-6 +AppendString/7000/6500,7.948105813809887e-4,7.935633437321849e-4,7.964240163208197e-4,4.6655492016072715e-6,3.7409641972139917e-6,5.4317226917930095e-6 +AppendString/7000/7000,8.307370176592442e-4,8.302011344990992e-4,8.313829685704985e-4,1.9574092965337734e-6,1.6210128459753228e-6,2.5422371451102417e-6 +AppendString/7000/7500,8.526328752551684e-4,8.520022415442738e-4,8.535907000257818e-4,2.836706069613304e-6,2.2231536821992904e-6,3.844293153014171e-6 +AppendString/7000/8000,8.849773377431315e-4,8.843487380175464e-4,8.857879835154414e-4,2.3291879252690704e-6,1.923139934743983e-6,2.9528436390506915e-6 +AppendString/7000/8500,9.054435135080908e-4,9.038788386288065e-4,9.066586079310292e-4,4.848801675488686e-6,3.0479440743843425e-6,6.316702325744923e-6 +AppendString/7000/9000,9.262819856064092e-4,9.243916573572645e-4,9.274867443008443e-4,5.103277938307037e-6,3.4351513625100194e-6,6.848362126755655e-6 +AppendString/7000/9500,9.501680809342765e-4,9.494784405753615e-4,9.510703844276402e-4,2.7083242913212805e-6,2.172665019146953e-6,3.588189264353052e-6 +AppendString/7000/10000,9.708664073892388e-4,9.701128167051859e-4,9.71676390384735e-4,2.740900798192437e-6,2.1149343980178693e-6,3.685737410836808e-6 +AppendString/7500/0,3.229327514824394e-4,3.227877900676664e-4,3.230768919601762e-4,4.92508618646803e-7,4.1274313743350117e-7,5.959482773729916e-7 +AppendString/7500/500,3.5778691188725507e-4,3.5769417823060484e-4,3.579106888732337e-4,3.651892616350838e-7,2.1660073942297414e-7,6.907308201064688e-7 +AppendString/7500/1000,3.958503843492015e-4,3.9574410065434885e-4,3.95993366717217e-4,4.0449235943964104e-7,2.707398062195919e-7,7.057917749947472e-7 +AppendString/7500/1500,4.3486904317402317e-4,4.3479912735486763e-4,4.3497071304275854e-4,2.7737535509257943e-7,1.9935573268485336e-7,4.807586666420414e-7 +AppendString/7500/2000,4.7432297783173686e-4,4.7419202356192733e-4,4.74550318069934e-4,5.663231310721434e-7,3.644696815548144e-7,1.0198220146476047e-6 +AppendString/7500/2500,5.119166811654249e-4,5.117065103979219e-4,5.123553206832818e-4,1.0172433591433593e-6,5.93207522364888e-7,1.7588762143040083e-6 +AppendString/7500/3000,5.514351558762953e-4,5.511756185301708e-4,5.518200425849922e-4,1.0214324498906983e-6,7.468958269195965e-7,1.4764641059911462e-6 +AppendString/7500/3500,5.904134929119834e-4,5.900650418059272e-4,5.90938158189452e-4,1.41466781927092e-6,1.0556130113954869e-6,2.0445726804406827e-6 +AppendString/7500/4000,6.295371677202395e-4,6.291335446103239e-4,6.301693441794758e-4,1.7315887998055935e-6,1.2404864130339717e-6,2.4145438378922993e-6 +AppendString/7500/4500,6.674059143421681e-4,6.670352812970485e-4,6.6801465586632e-4,1.583721764016448e-6,1.1824940676393816e-6,2.2851349557553245e-6 +AppendString/7500/5000,7.066484189615014e-4,7.060699308252356e-4,7.074655239836814e-4,2.276918177236457e-6,1.7810606725415868e-6,3.0529194273378703e-6 +AppendString/7500/5500,7.467143518124935e-4,7.462203945100018e-4,7.473630862067283e-4,1.935391052128831e-6,1.5294361145238444e-6,2.6699457058506732e-6 +AppendString/7500/6000,7.838739780993033e-4,7.829246835501646e-4,7.846501502067341e-4,2.885771780484608e-6,2.2761366256742085e-6,3.5391988843378807e-6 +AppendString/7500/6500,8.208500440110057e-4,8.18446012788867e-4,8.224245609140941e-4,6.340632316721562e-6,4.950375338793031e-6,7.854963545090215e-6 +AppendString/7500/7000,8.523012980718498e-4,8.516689021582358e-4,8.53139651498197e-4,2.5665827731530226e-6,1.97279937809593e-6,3.6829767780101135e-6 +AppendString/7500/7500,8.904888807523572e-4,8.896733832563865e-4,8.913764688567289e-4,2.7466396734496935e-6,2.2066379115866874e-6,3.816566039304242e-6 +AppendString/7500/8000,9.170047947736249e-4,9.154892243377623e-4,9.191944447162315e-4,6.003444043108424e-6,5.132864190663256e-6,6.848674616873614e-6 +AppendString/7500/8500,9.461652194509377e-4,9.454490331303596e-4,9.470331866804533e-4,2.673882711120728e-6,2.059839824717219e-6,3.3778894117581124e-6 +AppendString/7500/9000,9.669586738582994e-4,9.662413972994304e-4,9.678962757827319e-4,2.8155692350754817e-6,2.265366166326179e-6,3.7042835609647522e-6 +AppendString/7500/9500,9.888476997494018e-4,9.879796226625606e-4,9.89783992334541e-4,2.9742969399941673e-6,2.476597872585853e-6,3.7685209428626407e-6 +AppendString/7500/10000,1.0061528742620264e-3,1.0041422252361736e-3,1.0075086997507869e-3,5.492931319195797e-6,3.651943225922217e-6,7.688633668191757e-6 +AppendString/8000/0,3.422400165634132e-4,3.420421874416411e-4,3.424386848325772e-4,6.542271463500619e-7,5.329926545597668e-7,9.220081752009761e-7 +AppendString/8000/500,3.792078980430493e-4,3.7903658329234056e-4,3.7932440775838966e-4,4.5012773835353167e-7,2.842753627379898e-7,6.945397950862303e-7 +AppendString/8000/1000,4.180172926625016e-4,4.179577142811933e-4,4.180885748547289e-4,2.1425873570737363e-7,1.6639049498850123e-7,3.178016963934356e-7 +AppendString/8000/1500,4.5639040477931796e-4,4.562825561753796e-4,4.565692990636237e-4,4.786208136947704e-7,2.5530595974228343e-7,7.491705560569553e-7 +AppendString/8000/2000,4.952271401286209e-4,4.949180600790698e-4,4.956037197272229e-4,1.0991453560847173e-6,6.499982590221709e-7,1.735065617395875e-6 +AppendString/8000/2500,5.340812128130954e-4,5.337199901214043e-4,5.350690217016579e-4,1.8370064446414022e-6,8.109390088577075e-7,3.7471448680121763e-6 +AppendString/8000/3000,5.721434772997271e-4,5.713913983821443e-4,5.726927530572197e-4,2.22761060677988e-6,1.6999830761083508e-6,2.711223989127244e-6 +AppendString/8000/3500,6.1197771830453e-4,6.115655765152372e-4,6.126041387548104e-4,1.6137525830709487e-6,1.19686042242097e-6,2.220531476470258e-6 +AppendString/8000/4000,6.511415758003872e-4,6.506936074056306e-4,6.518161911046833e-4,1.8478772861446562e-6,1.3563822967562698e-6,2.8447343166772096e-6 +AppendString/8000/4500,6.895150338992256e-4,6.880997342044391e-4,6.902634980065095e-4,3.3390059224250752e-6,1.8771900322309978e-6,5.467377938456782e-6 +AppendString/8000/5000,7.28879261809694e-4,7.283676090441577e-4,7.295046360151991e-4,2.0088408004631766e-6,1.5455548055097287e-6,2.7878209638893085e-6 +AppendString/8000/5500,7.675191161607109e-4,7.669704242269595e-4,7.683426915463878e-4,2.353101170229104e-6,1.7216391157345346e-6,3.6017949165549694e-6 +AppendString/8000/6000,8.060154237848522e-4,8.054689500874706e-4,8.066947079087743e-4,2.1087392862713256e-6,1.7458889006416085e-6,2.6691773461382637e-6 +AppendString/8000/6500,8.391554698310722e-4,8.368391601124468e-4,8.412600366092658e-4,7.370969368831584e-6,6.3820640004217455e-6,8.621621196581027e-6 +AppendString/8000/7000,8.850064275739456e-4,8.842791352465594e-4,8.857488338424277e-4,2.4983308415684487e-6,2.016237759406178e-6,3.365406854700145e-6 +AppendString/8000/7500,9.18567462396416e-4,9.165938963200805e-4,9.204261415166773e-4,6.835767124867374e-6,6.268665624411422e-6,7.498393357979389e-6 +AppendString/8000/8000,9.498959786220411e-4,9.490934805801727e-4,9.506697471230618e-4,2.564679303370214e-6,2.0308252496801485e-6,3.287148164256796e-6 +AppendString/8000/8500,9.781386630670853e-4,9.757136448509899e-4,9.801976242131134e-4,7.592101546642224e-6,6.7430381187184255e-6,8.868777925057737e-6 +AppendString/8000/9000,1.0060369833750193e-3,1.0052251697708291e-3,1.007004784477446e-3,3.008980877823234e-6,2.4118261690220016e-6,3.838065424262423e-6 +AppendString/8000/9500,1.0266568145067434e-3,1.0258888146291517e-3,1.0276532485733465e-3,2.953824671187189e-6,2.413382841216928e-6,3.7851124186760724e-6 +AppendString/8000/10000,1.0479444799763402e-3,1.047095589941436e-3,1.0487570616900196e-3,2.8846764402145244e-6,2.3506546739711076e-6,3.519334714166793e-6 +AppendString/8500/0,3.6383302808502924e-4,3.636712183666398e-4,3.6396509897516937e-4,4.812050841602481e-7,4.061499607744622e-7,5.95118601420056e-7 +AppendString/8500/500,3.999202780437584e-4,3.998064537863449e-4,4.000839114476862e-4,4.4844347323936157e-7,3.1970020736708703e-7,6.751064169268027e-7 +AppendString/8500/1000,4.383639350830102e-4,4.38237778541161e-4,4.385618099876619e-4,5.037182214924946e-7,3.6814294022090787e-7,7.763099050274871e-7 +AppendString/8500/1500,4.783449502368539e-4,4.779938629387185e-4,4.786849736467826e-4,1.1428671646116427e-6,7.295352073321578e-7,1.8992509331370914e-6 +AppendString/8500/2000,5.176435417683754e-4,5.173933772222636e-4,5.181270878171715e-4,1.1310510149778238e-6,6.480270992815365e-7,2.007464977884003e-6 +AppendString/8500/2500,5.549386086381601e-4,5.546718240956567e-4,5.554603940914029e-4,1.1749973629288798e-6,7.955072783586026e-7,1.8166457985351925e-6 +AppendString/8500/3000,5.935986460755779e-4,5.929566731438464e-4,5.942660723225998e-4,2.2358952430706365e-6,1.669122732401175e-6,2.9979544038884344e-6 +AppendString/8500/3500,6.327421327194965e-4,6.324163566873023e-4,6.332069990391925e-4,1.3792939917474356e-6,1.0853361712269172e-6,1.936803919423322e-6 +AppendString/8500/4000,6.725178594723157e-4,6.720471514257715e-4,6.731727518941258e-4,1.8649529605712278e-6,1.4273555157979004e-6,2.3788235234599726e-6 +AppendString/8500/4500,7.104594302728158e-4,7.09998078953707e-4,7.110748026318928e-4,1.8731743557492775e-6,1.4658464796043882e-6,2.5471011313601763e-6 +AppendString/8500/5000,7.492343529605166e-4,7.482848372992214e-4,7.500335444678985e-4,3.0300996667130254e-6,2.3289642044256982e-6,3.897944554933065e-6 +AppendString/8500/5500,7.89569655210505e-4,7.889829541388892e-4,7.905096329947923e-4,2.4638940016703995e-6,1.839874053954864e-6,3.4086334750504292e-6 +AppendString/8500/6000,8.256939821355074e-4,8.239672513293228e-4,8.270148509473089e-4,5.183142262587452e-6,3.8553181641605115e-6,6.523925118168517e-6 +AppendString/8500/6500,8.647907871860213e-4,8.626612059518386e-4,8.662239424290343e-4,5.6006332645192115e-6,4.293142533196391e-6,7.0693231368399825e-6 +AppendString/8500/7000,9.057085239822589e-4,9.050146091632229e-4,9.065909305861928e-4,2.526089883321543e-6,2.071261164462171e-6,3.2637376025065088e-6 +AppendString/8500/7500,9.441657891132996e-4,9.433157612404261e-4,9.450627396705084e-4,2.804497683617932e-6,2.1313000747868782e-6,3.830063822952943e-6 +AppendString/8500/8000,9.826460849898207e-4,9.815427597626993e-4,9.835370267388425e-4,3.30941635839602e-6,2.3945629161451976e-6,4.378182234621109e-6 +AppendString/8500/8500,1.0095952712758601e-3,1.0088714717972356e-3,1.0104914277749171e-3,2.7703493202842276e-6,2.258103304161538e-6,3.5778351961872333e-6 +AppendString/8500/9000,1.0323239297096779e-3,1.0307985428543143e-3,1.034475560378715e-3,5.730280044609356e-6,4.3818562721483546e-6,6.9772424925303556e-6 +AppendString/8500/9500,1.066028789591246e-3,1.0652184283170749e-3,1.0670363118014802e-3,3.066446712287529e-6,2.4675596780893645e-6,4.093614947729644e-6 +AppendString/8500/10000,1.0863009843543768e-3,1.0852012749928191e-3,1.0874680091480036e-3,4.01475614474378e-6,3.4010228188433036e-6,4.905076587085707e-6 +AppendString/9000/0,3.855313697377388e-4,3.8534954766329953e-4,3.857793532288392e-4,7.322313354128008e-7,5.920759106913482e-7,1.0621721354638886e-6 +AppendString/9000/500,4.2151025043489845e-4,4.214343209965312e-4,4.216199748588597e-4,3.135085352637704e-7,2.421502327026215e-7,5.097833833071931e-7 +AppendString/9000/1000,4.603287362194263e-4,4.6021022328871403e-4,4.605140793825458e-4,5.033745710128197e-7,3.1032284211718116e-7,8.633467142526628e-7 +AppendString/9000/1500,4.987286480681943e-4,4.984937418590192e-4,4.991641190799521e-4,1.081609902300551e-6,6.60192628377265e-7,1.9810479780053117e-6 +AppendString/9000/2000,5.371104374730674e-4,5.368701297055816e-4,5.374992147106904e-4,1.014202446949732e-6,6.85977040951492e-7,1.526462173042354e-6 +AppendString/9000/2500,5.772573305025386e-4,5.769099324328652e-4,5.77746577987474e-4,1.3778418243281391e-6,1.0486876775658437e-6,2.0033771145497912e-6 +AppendString/9000/3000,6.154197464642343e-4,6.149854807077561e-4,6.161117911513367e-4,1.7497994941681223e-6,1.256975240487506e-6,2.4639048809484844e-6 +AppendString/9000/3500,6.563440540477177e-4,6.559272606914251e-4,6.569009280539793e-4,1.6605933780739178e-6,1.240311200422939e-6,2.327707194812608e-6 +AppendString/9000/4000,6.946882371393382e-4,6.942104210709634e-4,6.95376851112079e-4,1.940439007650664e-6,1.4535417381959292e-6,2.6132071407567353e-6 +AppendString/9000/4500,7.319329507539103e-4,7.314147051434021e-4,7.326490455605579e-4,2.084452123085509e-6,1.623694865758841e-6,2.6987382615859815e-6 +AppendString/9000/5000,7.711699387572926e-4,7.705805749112101e-4,7.721027812497445e-4,2.4373119260866085e-6,1.7956065177843348e-6,3.3489947352069663e-6 +AppendString/9000/5500,8.113453559754298e-4,8.107954208715149e-4,8.12022391849154e-4,2.073384514108234e-6,1.6281321113076623e-6,2.9916495978949916e-6 +AppendString/9000/6000,8.497921013937985e-4,8.491826342548538e-4,8.505349969635092e-4,2.2556235678368932e-6,1.8569215569659992e-6,2.8386935784234523e-6 +AppendString/9000/6500,8.882285080482407e-4,8.874517941229096e-4,8.889885458821043e-4,2.4571213904508096e-6,2.02461075256399e-6,3.1793645180571796e-6 +AppendString/9000/7000,9.256478538835624e-4,9.237479295945483e-4,9.268877692275294e-4,5.074304929520004e-6,3.511787731887976e-6,6.946734241653208e-6 +AppendString/9000/7500,9.58637840005044e-4,9.565612307116742e-4,9.607516311754584e-4,6.998298973773668e-6,6.398439525580434e-6,7.625310857589202e-6 +AppendString/9000/8000,1.0045449090225888e-3,1.0038035124808927e-3,1.0054357555548542e-3,2.731038136676927e-6,2.177099514197894e-6,3.592533982947484e-6 +AppendString/9000/8500,1.0357146025150963e-3,1.0335819160711406e-3,1.037692367356282e-3,7.074597071496131e-6,6.427501300694377e-6,7.753052925757723e-6 +AppendString/9000/9000,1.0698006790518845e-3,1.068955249374462e-3,1.0707341011744365e-3,2.907052550532972e-6,2.3939525412456175e-6,3.6105298204570854e-6 +AppendString/9000/9500,1.1039619378485994e-3,1.1031225362512697e-3,1.105250037092973e-3,3.557689442740537e-6,2.675850493891899e-6,4.995917612360442e-6 +AppendString/9000/10000,1.1192973364129069e-3,1.116768635257779e-3,1.12151979060022e-3,7.98865595519285e-6,6.766787466383069e-6,9.178707517086721e-6 +AppendString/9500/0,4.046707353329255e-4,4.035455683206811e-4,4.055958970439085e-4,3.534842115830981e-6,2.582198462249972e-6,4.559343731605341e-6 +AppendString/9500/500,4.4137191352509197e-4,4.412230752807527e-4,4.417091067857868e-4,7.248027440997241e-7,3.7920891547023156e-7,1.3091912489480754e-6 +AppendString/9500/1000,4.8133750108552065e-4,4.811485790192364e-4,4.8171590041258923e-4,8.560181242371704e-7,5.20941882355812e-7,1.475384662301301e-6 +AppendString/9500/1500,5.193995601653397e-4,5.191246003268045e-4,5.200503941726077e-4,1.3165102219412204e-6,7.256187677382381e-7,2.453954817304665e-6 +AppendString/9500/2000,5.583346420848282e-4,5.580614315776682e-4,5.588334225293223e-4,1.2459466474899509e-6,8.799649442927372e-7,1.9606444505922603e-6 +AppendString/9500/2500,5.968363653204315e-4,5.96460289569132e-4,5.974032150390292e-4,1.564860728923073e-6,1.1116026660713346e-6,2.3300458298500728e-6 +AppendString/9500/3000,6.364319402481901e-4,6.360126220473222e-4,6.37085204519582e-4,1.6683884749404436e-6,1.1341366316791094e-6,2.383515281117229e-6 +AppendString/9500/3500,6.753263831714299e-4,6.744412415081032e-4,6.760089818974762e-4,2.59894323043359e-6,1.960848405598413e-6,3.521760329870765e-6 +AppendString/9500/4000,7.144504744933955e-4,7.139860909204393e-4,7.149999440876256e-4,1.700576844097798e-6,1.415308515321538e-6,2.3266089077939643e-6 +AppendString/9500/4500,7.535449313640473e-4,7.52929450378319e-4,7.543177925396899e-4,2.245055146429369e-6,1.6981926999995611e-6,3.315470689786038e-6 +AppendString/9500/5000,7.930068376576153e-4,7.923147346926384e-4,7.939375713234873e-4,2.5842649887956418e-6,2.0052000877701125e-6,3.422082977486745e-6 +AppendString/9500/5500,8.319260793507937e-4,8.310962486263912e-4,8.330465038321298e-4,3.1786097730681757e-6,2.3860361222857466e-6,4.883471728153662e-6 +AppendString/9500/6000,8.700252094190835e-4,8.693734612573207e-4,8.7084464818964e-4,2.448115104905814e-6,1.9002829283061714e-6,3.324689947750997e-6 +AppendString/9500/6500,9.091956934393837e-4,9.077690724181612e-4,9.101372209046864e-4,3.959619790447587e-6,2.2119057522268033e-6,5.808220736414212e-6 +AppendString/9500/7000,9.465005468360159e-4,9.45334220476787e-4,9.47339821068909e-4,3.4467806537766168e-6,2.5752612183490935e-6,4.4178126709911944e-6 +AppendString/9500/7500,9.821535934303252e-4,9.808802366249362e-4,9.840384577633127e-4,5.028527027790472e-6,3.8088643327535687e-6,6.86148824052096e-6 +AppendString/9500/8000,1.0111908954100511e-3,1.0087752320488712e-3,1.013313263519244e-3,7.210542054790127e-6,6.279520443567373e-6,8.796474704124984e-6 +AppendString/9500/8500,1.058875519187869e-3,1.0580009127936557e-3,1.0602584160985936e-3,3.6974940577563836e-6,2.529165372939917e-6,5.758764545957361e-6 +AppendString/9500/9000,1.0960307110401614e-3,1.0949125883225935e-3,1.097353440774606e-3,3.994210217428359e-6,3.12621799060414e-6,5.7182842458631895e-6 +AppendString/9500/9500,1.119212715235605e-3,1.1182768158648892e-3,1.1203928084240462e-3,3.60084486127898e-6,2.992828422149547e-6,4.3416582130949755e-6 +AppendString/9500/10000,1.1506883330728679e-3,1.1481770383454787e-3,1.152547616471257e-3,7.483772819984009e-6,5.919396654387233e-6,8.93696861715435e-6 +AppendString/10000/0,4.231412897119907e-4,4.2299249459402943e-4,4.2330002959076234e-4,5.17011877613285e-7,4.156289712646157e-7,6.537839790485208e-7 +AppendString/10000/500,4.6254557723782603e-4,4.617755120156109e-4,4.637675384550337e-4,3.180906128976521e-6,2.1877422983450653e-6,5.782702083452248e-6 +AppendString/10000/1000,5.010268558579766e-4,5.002603784717487e-4,5.017570621017992e-4,2.6163742505479855e-6,2.090334843449213e-6,3.3958720383784767e-6 +AppendString/10000/1500,5.406320399091862e-4,5.401169456517448e-4,5.411390679396284e-4,1.7008135423666012e-6,1.158404261678825e-6,2.6095885512041773e-6 +AppendString/10000/2000,5.801668206748106e-4,5.79552810203089e-4,5.807354958917351e-4,1.8969664560890235e-6,1.286922785274629e-6,2.791253876326022e-6 +AppendString/10000/2500,6.185084562982356e-4,6.180122387478504e-4,6.192531804552211e-4,2.0224351481431824e-6,1.5321658531095678e-6,3.024853471956865e-6 +AppendString/10000/3000,6.586466438921681e-4,6.581889857377669e-4,6.593041346603888e-4,1.859553473543576e-6,1.3248663316293808e-6,2.6298849514516246e-6 +AppendString/10000/3500,6.960798140441491e-4,6.949661412824137e-4,6.969421851666727e-4,3.2051359227517046e-6,2.5329490149712677e-6,3.97068266334828e-6 +AppendString/10000/4000,7.347276964748453e-4,7.336353267012472e-4,7.354605821277224e-4,3.0321395248006765e-6,2.382116994674339e-6,3.8166081520415545e-6 +AppendString/10000/4500,7.744577928736281e-4,7.738333097189555e-4,7.75182615716217e-4,2.19619194206698e-6,1.7705384416934128e-6,2.9304484175996537e-6 +AppendString/10000/5000,8.145232811049662e-4,8.139004396933604e-4,8.153150657416578e-4,2.402847000798571e-6,1.916111805834848e-6,3.2859478216734317e-6 +AppendString/10000/5500,8.526856196753706e-4,8.518864643350365e-4,8.540813448378231e-4,3.3877108514481277e-6,2.324488258861501e-6,5.397697687181472e-6 +AppendString/10000/6000,8.917854683708958e-4,8.910914564981697e-4,8.925990753458158e-4,2.6040224250622704e-6,2.079738413606252e-6,3.5646765566823846e-6 +AppendString/10000/6500,9.326689466517384e-4,9.318783604909473e-4,9.341109076483637e-4,3.3145999751553903e-6,2.1792503124437e-6,5.548724512998322e-6 +AppendString/10000/7000,9.696530168445646e-4,9.687598378868472e-4,9.705636664623972e-4,2.8110372240780844e-6,2.27645452196088e-6,3.6022683224491594e-6 +AppendString/10000/7500,1.0084321722129057e-3,1.0076236420637728e-3,1.0093403584934325e-3,2.8950075892053734e-6,2.2813382618263826e-6,3.753294499201365e-6 +AppendString/10000/8000,1.047301786960243e-3,1.0464562611862836e-3,1.0482473915603165e-3,3.238079455745535e-6,2.53289528225742e-6,4.2651244081216454e-6 +AppendString/10000/8500,1.0844449223910545e-3,1.082927672674097e-3,1.0857365711066402e-3,4.765327189871236e-6,3.1242485122206973e-6,7.040943200626274e-6 +AppendString/10000/9000,1.1251841989390202e-3,1.1242286425890756e-3,1.126300880144003e-3,3.463545594100206e-6,2.781252754724082e-6,4.547982668600564e-6 +AppendString/10000/9500,1.1553329725498731e-3,1.1529369368477582e-3,1.1576172873017697e-3,8.035381983023274e-6,7.198972798716628e-6,8.819203595488362e-6 +AppendString/10000/10000,1.1889111609751683e-3,1.1879995210748971e-3,1.1899344661368502e-3,3.2981670846768675e-6,2.613903871877712e-6,4.391112379402619e-6 +EqualsString/0/0,8.785148945422581e-7,8.78150848886548e-7,8.789830656955217e-7,1.2937295222684371e-9,1.0892227648447317e-9,1.613419699496203e-9 +EqualsString/200/200,8.917920394651025e-6,8.907839652407637e-6,8.93332091052093e-6,4.1962280981982076e-8,2.9097659321910147e-8,7.172710179837383e-8 +EqualsString/400/400,1.6926196568493996e-5,1.689952215205506e-5,1.6957383873773325e-5,9.44803284517924e-8,7.552955245413436e-8,1.313183025703628e-7 +EqualsString/600/600,2.5253392502467465e-5,2.5216645970319912e-5,2.5308956170344103e-5,1.5066496933786707e-7,1.1239147569987915e-7,1.9392485810830415e-7 +EqualsString/800/800,3.331106725539822e-5,3.3275034302533635e-5,3.339025359127681e-5,1.7471830571864113e-7,9.953760155874205e-8,3.2387292965381646e-7 +EqualsString/1000/1000,4.166829643915745e-5,4.158432040598586e-5,4.181291656027603e-5,3.5942139540435913e-7,2.2551843652015085e-7,5.300506386209048e-7 +EqualsString/1200/1200,4.9874195660824054e-5,4.979143615532154e-5,5.008190355626569e-5,3.8448660058559964e-7,2.312709981094837e-7,6.48786232503099e-7 +EqualsString/1400/1400,5.820086950262125e-5,5.8128998483367185e-5,5.835465116411805e-5,3.2675753938977927e-7,1.859792473169224e-7,6.114961878051604e-7 +EqualsString/1600/1600,6.700429527331552e-5,6.695751961390438e-5,6.708480367678667e-5,2.0132530383253314e-7,1.3860011983273097e-7,2.974243951772848e-7 +EqualsString/1800/1800,7.48608273982103e-5,7.483531449933155e-5,7.492046529305199e-5,1.3333450396687934e-7,5.037409924810118e-8,2.613187002662203e-7 +EqualsString/2000/2000,8.476906568182394e-5,8.459484197933942e-5,8.499818483933848e-5,6.423559341122007e-7,4.933945537159765e-7,8.981840448424505e-7 +EqualsString/2200/2200,9.191137950595605e-5,9.182077258379876e-5,9.2195294710635e-5,4.785866441335379e-7,1.6672441050033226e-7,9.600899771181142e-7 +EqualsString/2400/2400,1.0041607558048471e-4,1.0036239826586787e-4,1.0063814383484796e-4,2.8890583400714116e-7,1.0167699549355297e-7,6.059014618458331e-7 +EqualsString/2600/2600,1.1057285341493154e-4,1.1051334791210038e-4,1.1066416218934007e-4,2.436485207368581e-7,1.6009717006088871e-7,3.415310562938008e-7 +EqualsString/2800/2800,1.1856110845517413e-4,1.1829472061476799e-4,1.1896210020432736e-4,1.0843692129205733e-6,7.445464531788534e-7,1.4684708303683738e-6 +EqualsString/3000/3000,1.275599825379311e-4,1.274097329699935e-4,1.2780293716008062e-4,6.495980616145398e-7,3.8713455376705117e-7,9.876247942829175e-7 +EqualsString/3200/3200,1.3552362825040506e-4,1.353806999939383e-4,1.3580933440584796e-4,6.721512266378936e-7,3.450077298245148e-7,1.096108021656596e-6 +EqualsString/3400/3400,1.4641055388323995e-4,1.4634679822511944e-4,1.4648842086213048e-4,2.327164603164116e-7,1.898896108070975e-7,3.022860785528576e-7 +EqualsString/3600/3600,1.5341761768253653e-4,1.5339001081487408e-4,1.534507420147426e-4,1.0364068951714994e-7,8.483835497679918e-8,1.2953367528646976e-7 +EqualsString/3800/3800,1.6285528770224302e-4,1.625300744684994e-4,1.637316878371967e-4,1.7093046535407409e-6,6.646730576823746e-7,3.4240483079969368e-6 +EqualsString/4000/4000,1.7166682542084084e-4,1.712518042372693e-4,1.7199752979532365e-4,1.2390302380358468e-6,1.0608198035576122e-6,1.4834226792209806e-6 +EqualsString/4200/4200,1.8217783421662473e-4,1.8204109113791414e-4,1.8237427471830625e-4,5.332873418748414e-7,4.324552839619443e-7,6.183786054726794e-7 +EqualsString/4400/4400,1.9308387790799192e-4,1.9304171714425164e-4,1.931299105061413e-4,1.4838548226106648e-7,1.1538172676122113e-7,2.0766879899338977e-7 +EqualsString/4600/4600,2.0126672902686226e-4,2.0119587196607951e-4,2.0132850470269608e-4,2.233911796904813e-7,1.7700777669275603e-7,2.8683363704778546e-7 +EqualsString/4800/4800,2.1116273267886724e-4,2.1111063484731846e-4,2.1123449519208778e-4,2.0647731266595726e-7,1.542368385227088e-7,3.0340507298352517e-7 +EqualsString/5000/5000,2.1443508194002298e-4,2.1350517735924083e-4,2.1531779143584904e-4,2.990348333935213e-6,2.4304243856554166e-6,3.845656089922409e-6 +EqualsString/5200/5200,2.2904483162679206e-4,2.2887366652465612e-4,2.292016722208642e-4,5.117003731867281e-7,4.3135201087389744e-7,6.0136737158632e-7 +EqualsString/5400/5400,2.4132806168103107e-4,2.411507548389591e-4,2.415227151872712e-4,6.292089662491571e-7,5.353543003559118e-7,7.467779161595287e-7 +EqualsString/5600/5600,2.4723553797450696e-4,2.4718060927902117e-4,2.473150655093152e-4,2.3433309929383231e-7,1.812136322246535e-7,3.0684646987247647e-7 +EqualsString/5800/5800,2.5932597566369017e-4,2.5905691082400115e-4,2.5954618776654026e-4,7.895516281678011e-7,6.161311279878562e-7,9.231920673747296e-7 +EqualsString/6000/6000,2.676947448728738e-4,2.67387226476748e-4,2.6803422633360014e-4,1.1058588776261844e-6,9.29883639922942e-7,1.274362211829109e-6 +EqualsString/6200/6200,2.7882742154080003e-4,2.7872925126826723e-4,2.789034759946428e-4,2.9135135033327003e-7,2.398671423298437e-7,3.5999829361069746e-7 +EqualsString/6400/6400,2.8795869354399214e-4,2.877846726223187e-4,2.882056165176327e-4,6.904028113515383e-7,4.6028691944394013e-7,9.155841495270602e-7 +EqualsString/6600/6600,2.982280557459559e-4,2.981397594532974e-4,2.9833152599689365e-4,3.3893731342412743e-7,2.596003758148434e-7,4.505638915383345e-7 +EqualsString/6800/6800,3.108815051043338e-4,3.1061756162626113e-4,3.11017639810219e-4,6.023401263727741e-7,3.8330617521911223e-7,8.728285695191636e-7 +EqualsString/7000/7000,3.187794489483775e-4,3.1867486712946244e-4,3.188720818638342e-4,3.2433379209083484e-7,2.719795765063673e-7,4.2000018995194327e-7 +EqualsString/7200/7200,3.2934269487989835e-4,3.292458839482349e-4,3.2946096815503385e-4,3.5368204755095125e-7,2.7683526446069535e-7,4.928272168270301e-7 +EqualsString/7400/7400,3.396449579545206e-4,3.393476717778169e-4,3.398743556863213e-4,8.585384220747862e-7,6.55056703103381e-7,1.1624918651606353e-6 +EqualsString/7600/7600,3.506063795160531e-4,3.504810448806107e-4,3.5069914749709407e-4,3.558957714228008e-7,2.91782499968325e-7,4.7154995663462923e-7 +EqualsString/7800/7800,3.594958919120661e-4,3.590177691479683e-4,3.5987685259324413e-4,1.432111525746341e-6,1.1994162021411977e-6,1.723434964050781e-6 +EqualsString/8000/8000,3.711000779395264e-4,3.706530424380356e-4,3.715768757347682e-4,1.5154833302083454e-6,1.2308279602317244e-6,1.737389252327152e-6 +EqualsString/8200/8200,3.854847579124419e-4,3.8536270972614904e-4,3.855869528100854e-4,3.712998275100734e-7,3.064197580954536e-7,4.9656906751777e-7 +EqualsString/8400/8400,3.9341179094050475e-4,3.9327811091980605e-4,3.935278629791576e-4,4.380608103385726e-7,3.353815823041606e-7,5.813415054620337e-7 +EqualsString/8600/8600,3.9748450947800734e-4,3.9629394090839886e-4,3.988734687351913e-4,4.346465734939992e-6,3.714509108323667e-6,5.059081621372763e-6 +EqualsString/8800/8800,4.166526724126791e-4,4.16403027827051e-4,4.169761082584642e-4,9.67534440293926e-7,7.864367576427616e-7,1.159098529678659e-6 +EqualsString/9000/9000,4.2660434710562487e-4,4.2638743894509606e-4,4.2675589353338624e-4,6.239324193252952e-7,4.908328048444141e-7,8.275990542563397e-7 +EqualsString/9200/9200,4.440712034427701e-4,4.437553631134448e-4,4.444191733480675e-4,1.1566097606154672e-6,1.0077249257555672e-6,1.367204617847224e-6 +EqualsString/9400/9400,4.480235525325615e-4,4.4726547136978096e-4,4.486014456374952e-4,2.2128592727795127e-6,1.8014754374016382e-6,2.629746977153765e-6 +EqualsString/9600/9600,4.6100659539173117e-4,4.6001565708773023e-4,4.615995600761997e-4,2.6593399612882437e-6,1.8577609766714734e-6,4.0586717269669795e-6 +EqualsString/9800/9800,4.670444586119009e-4,4.66191019224503e-4,4.677238107170525e-4,2.6030107927690632e-6,1.9970255800570554e-6,3.694287574266637e-6 +EqualsString/10000/10000,4.5448936205597123e-4,4.4734329899641547e-4,4.607265517892815e-4,2.188074506805299e-5,1.8961165716465693e-5,2.4819880839869083e-5 +EqualsString/10200/10200,5.033442915799708e-4,5.019848385497622e-4,5.064476559234728e-4,6.495756629345587e-6,3.7532088974342555e-6,1.2426271500086521e-5 +EqualsString/10400/10400,5.121365218649883e-4,5.114451054115599e-4,5.133481007445234e-4,3.0797071832996585e-6,2.3415881280545047e-6,4.76675948890912e-6 +EqualsString/10600/10600,5.239465504232739e-4,5.233142135043938e-4,5.247164370572555e-4,2.3125200376069538e-6,1.9010736863230606e-6,2.912949312800307e-6 +EqualsString/10800/10800,5.382318035436782e-4,5.376371747018843e-4,5.38885303038937e-4,2.148560383982552e-6,1.6373531672403463e-6,2.972106909773655e-6 +EqualsString/11000/11000,5.4763110158154e-4,5.469766273060243e-4,5.484540564917212e-4,2.5897506731098325e-6,2.0380886993565973e-6,3.4976395629796795e-6 +EqualsString/11200/11200,5.58494177735448e-4,5.579475840597893e-4,5.590946671929983e-4,1.9582105059882812e-6,1.5973748299993297e-6,2.4685455363433793e-6 +EqualsString/11400/11400,5.692396027215815e-4,5.68285100944515e-4,5.700664693750824e-4,3.0361498594113905e-6,2.3535808457616225e-6,3.9960579972674055e-6 +EqualsString/11600/11600,5.868772572823205e-4,5.863264838790696e-4,5.875762810167763e-4,2.0719061997409884e-6,1.6285968910246764e-6,2.6584389639126588e-6 +EqualsString/11800/11800,5.995340467452802e-4,5.99012314299464e-4,6.00116498110581e-4,1.9053254096753027e-6,1.5999848788420517e-6,2.3544947841154906e-6 +EqualsString/12000/12000,6.13675471685796e-4,6.127614457640819e-4,6.145820752749385e-4,3.03964914177568e-6,2.3319745050854377e-6,4.6647007730774075e-6 +EqualsString/12200/12200,6.265126638103406e-4,6.258856919600683e-4,6.272283258982665e-4,2.2816626450348143e-6,1.8362643417059152e-6,2.811236243501852e-6 +EqualsString/12400/12400,6.431532751702613e-4,6.420459569191493e-4,6.441123923670769e-4,3.4996685379341865e-6,2.8416713307163207e-6,4.36414964489694e-6 +EqualsString/12600/12600,6.522985148068211e-4,6.514515725072712e-4,6.540508681826331e-4,4.015248584669147e-6,2.405221372103895e-6,7.054291538127645e-6 +EqualsString/12800/12800,6.666997269709567e-4,6.660035674169239e-4,6.672112134819268e-4,2.0909077669915895e-6,1.5005731102687053e-6,3.158867739189149e-6 +EqualsString/13000/13000,6.817695000403888e-4,6.809193999587897e-4,6.824339994122063e-4,2.392839380800895e-6,1.8800534266490312e-6,3.1049523658426138e-6 +EqualsString/13200/13200,6.935475994840836e-4,6.925927365324243e-4,6.947432994285584e-4,3.628009914698055e-6,2.629727369982878e-6,5.835054680656882e-6 +EqualsString/13400/13400,7.279400023040388e-4,7.250589408900965e-4,7.30649947172118e-4,1.0002523461642408e-5,8.87384293032125e-6,1.1217948078872751e-5 +EqualsString/13600/13600,7.19221903441537e-4,7.183732162447745e-4,7.198316477260427e-4,2.37001029814421e-6,1.7016413429302565e-6,3.7917009294951983e-6 +EqualsString/13800/13800,7.351013773951672e-4,7.340143977519863e-4,7.364387966171707e-4,4.083777942516196e-6,3.2457172463861367e-6,5.780204954272414e-6 +EqualsString/14000/14000,7.455551774304021e-4,7.442067410026764e-4,7.48290408247331e-4,6.070465658587499e-6,3.3020224357239396e-6,1.1276957738755151e-5 +EqualsString/14200/14200,7.631143753419682e-4,7.61792871962071e-4,7.649879125296405e-4,5.1177002741273735e-6,3.12530484640649e-6,9.114061380077513e-6 +EqualsString/14400/14400,7.791845856386277e-4,7.783184785009602e-4,7.801003663630436e-4,2.999776013369723e-6,2.3318710081687526e-6,3.891292318855539e-6 +EqualsString/14600/14600,7.83049020690856e-4,7.814925159080784e-4,7.844362724936331e-4,4.839505982767749e-6,3.912988992054892e-6,6.2728403160273046e-6 +EqualsString/14800/14800,7.946133935953256e-4,7.93828536990551e-4,7.953873805381383e-4,2.7444708037078203e-6,2.3035592857688707e-6,3.526398427478559e-6 +EqualsString/15000/15000,8.066470961489178e-4,8.031880676373344e-4,8.092207406091312e-4,1.0313264179572318e-5,8.103701432164349e-6,1.4044889478371357e-5 +EqualsString/15200/15200,8.371452894154953e-4,8.360623158860374e-4,8.384960854611115e-4,4.27567504099515e-6,3.3271158473368975e-6,5.468329592895305e-6 +EqualsString/15400/15400,8.511557220551151e-4,8.502097393494781e-4,8.522667670735017e-4,3.5374828883246755e-6,2.9464911818855502e-6,4.525539677620841e-6 +EqualsString/15600/15600,8.59629873694184e-4,8.589291218728156e-4,8.604565364791813e-4,2.616920010539232e-6,2.1573184636868025e-6,3.3290752599910156e-6 +EqualsString/15800/15800,8.795645859352285e-4,8.782883229749295e-4,8.813144975318393e-4,4.96732592105007e-6,3.7669191361816956e-6,6.600794286895913e-6 +EqualsString/16000/16000,8.892404264559395e-4,8.881782355588731e-4,8.904026152923791e-4,3.868535855850248e-6,2.8984153084507597e-6,5.600973427391673e-6 +EqualsString/16200/16200,9.034992417482782e-4,9.026213359358843e-4,9.045671598763239e-4,3.323605878816985e-6,2.666016459392943e-6,4.393971997917691e-6 +EqualsString/16400/16400,9.213198680240171e-4,9.202917239707085e-4,9.228457007619887e-4,3.990422620068389e-6,2.8755177504130692e-6,6.212810372360896e-6 +EqualsString/16600/16600,9.336706615812493e-4,9.323559604242742e-4,9.346785744706546e-4,4.007831163744333e-6,2.8298954025218043e-6,5.1111798830361e-6 +EqualsString/16800/16800,9.523464974215478e-4,9.50869463732627e-4,9.545723213340125e-4,6.3910937140330186e-6,4.840693073163212e-6,1.0064501618983857e-5 +EqualsString/17000/17000,9.668847287076826e-4,9.65595656025349e-4,9.681857896655662e-4,4.188890085882871e-6,3.4157497008592637e-6,4.9063930118645304e-6 +EqualsString/17200/17200,9.70272249949039e-4,9.682589161165553e-4,9.737373499768223e-4,8.933212053409165e-6,6.0875011703626745e-6,1.6647304058953364e-5 +EqualsString/17400/17400,9.89474260529391e-4,9.880968846726597e-4,9.905438933554803e-4,4.230892755539203e-6,3.0757799994681363e-6,5.5917305764751805e-6 +EqualsString/17600/17600,1.0179536376233984e-3,1.0152036987839627e-3,1.0225224266195948e-3,1.2452094070157172e-5,8.966179207594153e-6,1.9984625921086615e-5 +EqualsString/17800/17800,1.0180067294522281e-3,1.016718949749444e-3,1.018911398323929e-3,3.6835964415266265e-6,2.9123619293276536e-6,4.8961061407002975e-6 +EqualsString/18000/18000,1.041011837293965e-3,1.03966016867659e-3,1.042494420116159e-3,4.736122589821144e-6,3.953410233952877e-6,5.711467098803528e-6 +EqualsString/18200/18200,1.0498159520250323e-3,1.0482729573696194e-3,1.051027579995136e-3,4.7103099473459945e-6,3.6511077949193172e-6,7.049014515527594e-6 +EqualsString/18400/18400,1.0558199267971427e-3,1.0531092550861106e-3,1.0592065590752855e-3,1.068484268419854e-5,8.711637677113906e-6,1.448173603109312e-5 +EqualsString/18600/18600,1.0792860913221077e-3,1.077896096757206e-3,1.0808862873099556e-3,5.309257796381224e-6,4.2275508565603746e-6,7.635148352565501e-6 +EqualsString/18800/18800,1.097709579903621e-3,1.0956803403761209e-3,1.1000508115033185e-3,7.311432886625671e-6,5.503415973088653e-6,1.1100408701788689e-5 +EqualsString/19000/19000,1.1176566760171312e-3,1.1161446807193957e-3,1.1203101609791515e-3,6.507274382897628e-6,4.039408570339079e-6,1.1252268183388383e-5 +EqualsString/19200/19200,1.1158202222907876e-3,1.1135640079446367e-3,1.118693661622269e-3,8.648670650576522e-6,6.865364058478229e-6,1.240437556640021e-5 +EqualsString/19400/19400,1.1426478317413768e-3,1.1408300045951671e-3,1.1441978367738319e-3,5.806182982385141e-6,4.7170341587880595e-6,7.5340518484845116e-6 +EqualsString/19600/19600,1.1462873566528567e-3,1.143130905477887e-3,1.1486241705163938e-3,8.895099636234219e-6,7.304531469706055e-6,1.2754348772698048e-5 +EqualsString/19800/19800,1.16198061170269e-3,1.1577937354841565e-3,1.165983111684412e-3,1.4055875912468118e-5,1.1933085083854071e-5,1.704202396099939e-5 +EqualsString/20000/20000,1.1200127283323479e-3,1.104765481404556e-3,1.1342150197617789e-3,5.004731621045786e-5,4.492648075175224e-5,5.737356604333284e-5 +EqualsString/0/0,8.772616074543252e-7,8.76771104659712e-7,8.777776866000978e-7,1.7330089677909264e-9,1.4159413832124764e-9,2.0831356143502173e-9 +EqualsString/200/200,8.828391962829634e-6,8.817580769481435e-6,8.841425188443973e-6,3.977014533897233e-8,3.445467584390954e-8,5.182948986763967e-8 +EqualsString/400/400,1.6808805421111714e-5,1.6789300824622755e-5,1.683544637938973e-5,7.326204050346787e-8,4.8236892495142733e-8,1.1696030826370455e-7 +EqualsString/600/600,2.5312469586359676e-5,2.5282822845181443e-5,2.537556865215458e-5,1.427887935422568e-7,7.226307790516702e-8,2.445003458353754e-7 +EqualsString/800/800,3.3354397802195365e-5,3.33226949122195e-5,3.3411389910980926e-5,1.3470687263205765e-7,8.311922951541168e-8,1.8928172752114933e-7 +EqualsString/1000/1000,4.117441667156547e-5,4.111698134597349e-5,4.124305584317817e-5,2.115309284423045e-7,1.70775055416205e-7,2.5797683943541216e-7 +EqualsString/1200/1200,4.922637903347306e-5,4.913812730310954e-5,4.935258617044714e-5,3.5970528464180584e-7,2.4417549923511246e-7,4.826221060792729e-7 +EqualsString/1400/1400,5.738777523432154e-5,5.736079969471883e-5,5.743366863686269e-5,1.2063325867616295e-7,7.014072984659102e-8,1.8135989097014262e-7 +EqualsString/1600/1600,6.629071516826355e-5,6.618893473195773e-5,6.648230163626454e-5,4.381190527446493e-7,2.7867347064906455e-7,7.704858698790085e-7 +EqualsString/1800/1800,7.511775074009068e-5,7.487184647504905e-5,7.570334912883691e-5,1.1402595177075706e-6,6.581095270856543e-7,1.9847891346780285e-6 +EqualsString/2000/2000,8.44226406472915e-5,8.40766590651194e-5,8.540207850429019e-5,1.922003590995414e-6,6.992725022711778e-7,4.141666951830327e-6 +EqualsString/2200/2200,9.2054276153685e-5,9.195522628603526e-5,9.231708091990152e-5,5.011648811897876e-7,2.090348812518457e-7,9.269875349333275e-7 +EqualsString/2400/2400,1.0048251531944566e-4,1.0020241608020729e-4,1.0088805736000027e-4,1.1147299507971562e-6,7.643697167098213e-7,1.4888077607469876e-6 +EqualsString/2600/2600,1.0872527601804501e-4,1.085376063154401e-4,1.0906552335436813e-4,7.962715741304161e-7,4.874822754882616e-7,1.1895634747922878e-6 +EqualsString/2800/2800,1.1747081201633778e-4,1.1731807268113713e-4,1.1809890255371684e-4,8.713634788111294e-7,2.4837105824942406e-7,1.9107919222049774e-6 +EqualsString/3000/3000,1.2646162314430105e-4,1.2629678451236541e-4,1.265696977118073e-4,4.2009461178033794e-7,3.219881285016767e-7,5.454212250871897e-7 +EqualsString/3200/3200,1.3595060292913825e-4,1.3573535008473898e-4,1.3633938558032954e-4,9.471210483277247e-7,5.085746696496241e-7,1.7939492705793027e-6 +EqualsString/3400/3400,1.446281151879884e-4,1.4439325746066478e-4,1.4523351057741684e-4,1.1540345229020072e-6,3.803802038189994e-7,2.2028488815638487e-6 +EqualsString/3600/3600,1.5268373291022283e-4,1.524527410819314e-4,1.5312268889917122e-4,1.0541430949347956e-6,6.667943498800825e-7,1.6640647192700236e-6 +EqualsString/3800/3800,1.6174807771819502e-4,1.61404270619602e-4,1.625650850765135e-4,1.7168524512531998e-6,7.31359512471578e-7,3.2539058719909973e-6 +EqualsString/4000/4000,1.7078170905323554e-4,1.7047197200842167e-4,1.7128378755575143e-4,1.307323466249107e-6,8.921588568703107e-7,2.0876050089329226e-6 +EqualsString/4200/4200,1.81662762828818e-4,1.8151400664564066e-4,1.8198876938914664e-4,6.991456746672097e-7,2.014089686776468e-7,1.16041257542888e-6 +EqualsString/4400/4400,1.905196746737425e-4,1.901097555449569e-4,1.915544522480299e-4,1.8576397848159595e-6,3.547436599450995e-7,3.532262187468844e-6 +EqualsString/4600/4600,1.989008551573496e-4,1.9878547961753844e-4,1.991373885635861e-4,5.661898579003358e-7,3.3138598341628714e-7,9.911659833592359e-7 +EqualsString/4800/4800,2.0902711086038134e-4,2.08823037427986e-4,2.098832346337173e-4,1.1146541875951948e-6,3.2891674384558124e-7,2.426550954440083e-6 +EqualsString/5000/5000,2.139665590647814e-4,2.126250269657766e-4,2.1515123714010607e-4,4.1961789973288755e-6,3.3952002149579505e-6,5.009986930470443e-6 +EqualsString/5200/5200,2.2946148136072163e-4,2.2917550500953256e-4,2.304567307885216e-4,1.6963278480698567e-6,4.46675133662557e-7,3.5160286129099987e-6 +EqualsString/5400/5400,2.3620520562103945e-4,2.359638135558411e-4,2.365060533759049e-4,8.900946952674187e-7,7.110487485870529e-7,1.1478195476760055e-6 +EqualsString/5600/5600,2.4796392756159776e-4,2.4761477145751094e-4,2.4865455752718334e-4,1.5609201886511931e-6,6.167145514421477e-7,2.8153294136135215e-6 +EqualsString/5800/5800,2.5972388560007093e-4,2.5952342497031995e-4,2.6014026566394203e-4,9.593897706672432e-7,5.671087391010659e-7,1.6915647130020801e-6 +EqualsString/6000/6000,2.671541669646663e-4,2.6698298117703705e-4,2.672944199983826e-4,5.33409486398949e-7,4.3776358577907947e-7,6.698216668081554e-7 +EqualsString/6200/6200,2.7782758339136616e-4,2.7758490397841875e-4,2.7866265107802656e-4,1.3632142495551901e-6,2.876679720002885e-7,2.830089000651823e-6 +EqualsString/6400/6400,2.8763940255287115e-4,2.873461373205142e-4,2.8820340302527993e-4,1.3994598002009977e-6,7.847301944277433e-7,2.6011000256615903e-6 +EqualsString/6600/6600,2.962390947774786e-4,2.9604940180365496e-4,2.9642947489045266e-4,6.436738754643111e-7,5.02874630477528e-7,9.026355622509609e-7 +EqualsString/6800/6800,3.0985579134780905e-4,3.095536484639851e-4,3.101592714020779e-4,1.0314706991752756e-6,9.251203415232042e-7,1.2469551977240223e-6 +EqualsString/7000/7000,3.2002949929780037e-4,3.1966413213454733e-4,3.203448207727484e-4,1.1100706329546743e-6,9.251524078275855e-7,1.3755027812428768e-6 +EqualsString/7200/7200,3.310521032633055e-4,3.3078179008371014e-4,3.312460031615287e-4,7.719952667069188e-7,6.636170694261044e-7,9.339914979759444e-7 +EqualsString/7400/7400,3.3888068705469114e-4,3.3860771988978824e-4,3.393039654723691e-4,1.1316518713164463e-6,8.059682205990528e-7,1.8736263138875463e-6 +EqualsString/7600/7600,3.5251102528673913e-4,3.5218808890633804e-4,3.5286385988895206e-4,1.1258660304090624e-6,8.618060391376013e-7,1.5205347349468552e-6 +EqualsString/7800/7800,3.6198768143610793e-4,3.607192808393239e-4,3.6505427432495996e-4,6.398514490562567e-6,2.7451756750799306e-6,1.351454868476831e-5 +EqualsString/8000/8000,3.726490316866378e-4,3.719850398547486e-4,3.742917369711103e-4,3.3366014102585235e-6,1.4348763300402742e-6,6.227464258488287e-6 +EqualsString/8200/8200,3.8190717249066136e-4,3.8176725737915844e-4,3.8204107444700494e-4,4.905134311037601e-7,4.0255190555077236e-7,6.327093768162942e-7 +EqualsString/8400/8400,3.945296776560173e-4,3.9393292605320596e-4,3.964201524335657e-4,3.0314139575107063e-6,1.445831538787264e-6,6.098638496487958e-6 +EqualsString/8600/8600,3.9832325830038256e-4,3.975690261717551e-4,3.993117168249963e-4,2.857842174061936e-6,2.25867570967739e-6,3.868603494705193e-6 +EqualsString/8800/8800,4.1633688320933114e-4,4.158870805071686e-4,4.1790359656165474e-4,2.582718431349623e-6,5.752334081105663e-7,5.38791454299829e-6 +EqualsString/9000/9000,4.251816571269514e-4,4.246505397927092e-4,4.2564713414910206e-4,1.7277364554856853e-6,1.404252492496519e-6,2.0072791701769328e-6 +EqualsString/9200/9200,4.316888147097314e-4,4.31283814077376e-4,4.331698968955561e-4,2.2884704769735312e-6,7.271170623416368e-7,4.6419472570923895e-6 +EqualsString/9400/9400,4.518350579855919e-4,4.514086854617942e-4,4.5263778427734243e-4,2.0157220616382392e-6,9.883480370824028e-7,3.5056468980009364e-6 +EqualsString/9600/9600,4.621396559876811e-4,4.6112502627118597e-4,4.645697842879313e-4,4.997893353214576e-6,1.947243339260516e-6,9.51578230512867e-6 +EqualsString/9800/9800,4.6889017628374294e-4,4.6784873039621246e-4,4.702978178021334e-4,4.155801401555373e-6,2.8402664007486194e-6,6.612117268695104e-6 +EqualsString/10000/10000,4.5357119914796125e-4,4.4665288355189616e-4,4.601146703560595e-4,2.242813045411541e-5,1.98945482129286e-5,2.575839249907904e-5 +EqualsString/10200/10200,5.035631536659866e-4,5.024431830553005e-4,5.049485688042281e-4,4.111182344955419e-6,3.350167447750408e-6,5.560141585713428e-6 +EqualsString/10400/10400,5.12777200755765e-4,5.119657084590673e-4,5.13945133891983e-4,3.265825984060801e-6,2.2271076315637573e-6,4.98361469899045e-6 +EqualsString/10600/10600,5.265854438605718e-4,5.256775567725182e-4,5.282815266471532e-4,4.003579337614651e-6,2.2577725007403928e-6,7.371870503714154e-6 +EqualsString/10800/10800,5.353837557423386e-4,5.347415897477528e-4,5.360905225885702e-4,2.2454331710894597e-6,1.8723633123378056e-6,2.931527819485091e-6 +EqualsString/11000/11000,5.501756236137494e-4,5.494300860799858e-4,5.509448747587985e-4,2.4872840306297154e-6,2.1085610435458334e-6,3.1958308285424365e-6 +EqualsString/11200/11200,5.615120596611633e-4,5.6091487514443e-4,5.620911403719855e-4,2.117624708375707e-6,1.654776764024118e-6,2.755907627866476e-6 +EqualsString/11400/11400,5.742465836846312e-4,5.736046106439866e-4,5.748967253804653e-4,2.217661764548455e-6,1.8238458954506657e-6,2.812712064245649e-6 +EqualsString/11600/11600,5.868902574902697e-4,5.864506255719928e-4,5.874171204447314e-4,1.6302112861077743e-6,1.3245907887670608e-6,2.000821819758307e-6 +EqualsString/11800/11800,5.996838324685158e-4,5.992892002009038e-4,6.000961394780716e-4,1.3811672565593355e-6,1.0510950657707519e-6,1.853314018676687e-6 +EqualsString/12000/12000,6.112969761865836e-4,6.106546417869234e-4,6.124585507570509e-4,2.824233177053678e-6,1.5874013354220053e-6,5.7815375540178945e-6 +EqualsString/12200/12200,6.315425999857717e-4,6.303698763687483e-4,6.3600177799569e-4,6.938577534337054e-6,1.8246931357603957e-6,1.4376166569128088e-5 +EqualsString/12400/12400,6.359820776595776e-4,6.350359142194068e-4,6.367097572481579e-4,2.893347681873655e-6,2.3735506145329987e-6,3.5389581632359807e-6 +EqualsString/12600/12600,6.548794870983482e-4,6.541121159767863e-4,6.578521259610271e-4,4.4001161755115515e-6,1.4708443293326152e-6,8.948095109803572e-6 +EqualsString/12800/12800,6.69669394794844e-4,6.690623054458275e-4,6.702658877551655e-4,2.0465175007779894e-6,1.7677877772706461e-6,2.545990199449426e-6 +EqualsString/13000/13000,6.849488774733218e-4,6.843725071329651e-4,6.857813512895848e-4,2.293277058403871e-6,1.6447587181195257e-6,3.590149636349508e-6 +EqualsString/13200/13200,6.939250923799778e-4,6.93254696181423e-4,6.952480563413096e-4,3.0670660895911214e-6,1.9001530092379495e-6,5.520595424263091e-6 +EqualsString/13400/13400,7.309691080634357e-4,7.282124475263545e-4,7.338685681917668e-4,9.67189098402924e-6,8.179219373632103e-6,1.1473937761725569e-5 +EqualsString/13600/13600,7.228669318098402e-4,7.223880916001533e-4,7.234379159322479e-4,1.8327739974073558e-6,1.4157497548633857e-6,2.5282829627772284e-6 +EqualsString/13800/13800,7.324467105315814e-4,7.312649405886668e-4,7.334393829139534e-4,3.881531666283119e-6,3.1416835833479037e-6,4.900903851730392e-6 +EqualsString/14000/14000,7.522355803030487e-4,7.514293474373316e-4,7.528932924015859e-4,2.3064178052875844e-6,1.7439723586936792e-6,3.303909648140623e-6 +EqualsString/14200/14200,7.670127561700916e-4,7.66278170390321e-4,7.678966892455922e-4,2.783671031518363e-6,2.309093272796576e-6,3.822375774961096e-6 +EqualsString/14400/14400,7.782255546662017e-4,7.777546459516013e-4,7.788199348818845e-4,1.7481428075717212e-6,1.4013162160915295e-6,2.2205046125847792e-6 +EqualsString/14600/14600,7.908873216992476e-4,7.895244198019372e-4,7.923420368367506e-4,4.60838429344106e-6,3.9090907785354085e-6,5.537641074391022e-6 +EqualsString/14800/14800,8.0234144922298e-4,8.015440802937469e-4,8.029838248354383e-4,2.4587899905236184e-6,2.027851185375839e-6,3.0204961835066e-6 +EqualsString/15000/15000,8.140483036113451e-4,8.106092294029256e-4,8.165620423301554e-4,9.505759872302421e-6,7.307909534161694e-6,1.1988611007490054e-5 +EqualsString/15200/15200,8.455686918274484e-4,8.444950691148837e-4,8.468299518765934e-4,3.688123932420886e-6,2.857195999448166e-6,4.804095316295778e-6 +EqualsString/15400/15400,8.636534901981775e-4,8.625795227987669e-4,8.678318594723181e-4,6.216778174814949e-6,1.989583945171089e-6,1.3683357244795555e-5 +EqualsString/15600/15600,8.737619823770915e-4,8.726240207794195e-4,8.765963687410935e-4,5.921937400130624e-6,2.4217505989720334e-6,1.1947983351611693e-5 +EqualsString/15800/15800,8.91260353503184e-4,8.904578382099633e-4,8.922522315795619e-4,3.1415364238550772e-6,2.5026975933536746e-6,4.26114702831909e-6 +EqualsString/16000/16000,8.969284048229187e-4,8.963522156810914e-4,8.975154004379234e-4,2.0410816337132695e-6,1.701089757876413e-6,2.508333485518413e-6 +EqualsString/16200/16200,9.197116597084794e-4,9.189581031555146e-4,9.203563106054363e-4,2.4165245371548296e-6,1.8737694497529168e-6,3.1339719742923396e-6 +EqualsString/16400/16400,9.261194843603898e-4,9.253467092082508e-4,9.271149590493216e-4,2.9534061459728247e-6,2.0571054320637367e-6,4.260730693473217e-6 +EqualsString/16600/16600,9.424991834611131e-4,9.415359981964652e-4,9.43457929296908e-4,3.225316366329205e-6,2.5798318026986254e-6,4.058276469294905e-6 +EqualsString/16800/16800,9.673576057512451e-4,9.655928395680529e-4,9.695681220245945e-4,6.8458619629577425e-6,5.00357488746874e-6,1.0689383399523974e-5 +EqualsString/17000/17000,9.849785434283052e-4,9.841767071420131e-4,9.860786245686002e-4,3.1529407681497804e-6,2.4232921513955235e-6,4.586412291850821e-6 +EqualsString/17200/17200,9.89795833423954e-4,9.877206191052587e-4,9.914107605627927e-4,6.124692296196457e-6,5.0016596500154785e-6,7.777260453805179e-6 +EqualsString/17400/17400,1.007087209636083e-3,1.005546134826959e-3,1.0090398436813305e-3,5.7520903055391765e-6,4.388856000181625e-6,7.716990773094466e-6 +EqualsString/17600/17600,1.0478347187174845e-3,1.0450812341028515e-3,1.0509992440526157e-3,1.0266380022584932e-5,8.917334267101821e-6,1.21500130434043e-5 +EqualsString/17800/17800,1.0446111474098267e-3,1.0430238314035579e-3,1.0486369705359011e-3,8.104300276633001e-6,4.076789734410652e-6,1.5750397032129e-5 +EqualsString/18000/18000,1.06361035255713e-3,1.0622045868232208e-3,1.0664952705082744e-3,6.481740289179009e-6,3.776588076701043e-6,1.134814325165046e-5 +EqualsString/18200/18200,1.0872002201298054e-3,1.0850967800908233e-3,1.0895370672772279e-3,8.105627163221754e-6,6.894442633948517e-6,9.824022077351799e-6 +EqualsString/18400/18400,1.0922757086704827e-3,1.0892738214091226e-3,1.0955667692959057e-3,1.0893329347464107e-5,9.283930019428305e-6,1.2535084659410073e-5 +EqualsString/18600/18600,1.1231386930098267e-3,1.1208509433890132e-3,1.1293739925252715e-3,1.1885070288862123e-5,6.307471734956226e-6,2.1908704597872788e-5 +EqualsString/18800/18800,1.1514159738575192e-3,1.149347245368839e-3,1.1534605293791707e-3,7.1532185648167765e-6,5.710763404988821e-6,9.557795442096348e-6 +EqualsString/19000/19000,1.1761274230191899e-3,1.174202792815865e-3,1.1788876315140047e-3,7.64198212851072e-6,5.462604898659987e-6,1.0590063574351851e-5 +EqualsString/19200/19200,1.18363698677517e-3,1.1811826718285485e-3,1.1854601601393162e-3,7.464983684608376e-6,5.75307162293682e-6,1.0034786913661078e-5 +EqualsString/19400/19400,1.2426572610325349e-3,1.2396859781265612e-3,1.2456440969014408e-3,1.0468141578138636e-5,8.660015973344446e-6,1.2913155443033809e-5 +EqualsString/19600/19600,1.2560081572016452e-3,1.2515218323245255e-3,1.2609248457541302e-3,1.539094036127351e-5,1.2333328716192714e-5,2.245714392936491e-5 +EqualsString/19800/19800,1.2671839157489227e-3,1.2619749125917358e-3,1.2720291450953121e-3,1.749719244666341e-5,1.4396321193530136e-5,2.1043459333855228e-5 +EqualsString/20000/20000,1.227641792786738e-3,1.2098787047011047e-3,1.2442797013089524e-3,5.708389871523369e-5,5.106369102310801e-5,6.392208276145551e-5 +Trace/20/1,8.986457510639041e-7,8.977908726882138e-7,8.994198718395594e-7,2.705142308417814e-9,2.2253194360070957e-9,3.3322823840497177e-9 +Trace/20/2,9.024319455927742e-7,9.014780519902261e-7,9.032145097715e-7,2.782216333041279e-9,2.282616029176209e-9,3.3364650765239846e-9 +Trace/20/3,8.984438928118833e-7,8.977743203317624e-7,8.989394914127492e-7,1.8645234396820914e-9,1.4705655422362687e-9,2.5343093412948128e-9 +Trace/20/4,9.006279371150848e-7,9.00247384606458e-7,9.009845532520205e-7,1.1895714958488044e-9,9.736088088819291e-10,1.4877549669939783e-9 +Trace/20/5,8.994397519415844e-7,8.989078016442067e-7,8.998703853407063e-7,1.6534379259158107e-9,1.3299816218693018e-9,2.1074811768836638e-9 +Trace/20/10,9.008712200351757e-7,9.002720390927418e-7,9.014560489481917e-7,1.9051250829986207e-9,1.5736649291643664e-9,2.3984728797670816e-9 +Trace/20/20,9.001257068703079e-7,8.996499477630683e-7,9.006198095655736e-7,1.6171790118783577e-9,1.3778780315741594e-9,1.981649314912715e-9 +Trace/20/34,9.00707778818969e-7,8.997825437872792e-7,9.01514970309362e-7,2.763343632680403e-9,2.26127308464573e-9,3.3648616694522874e-9 +Trace/20/40,8.981129569333634e-7,8.973744538433461e-7,8.987689891260293e-7,2.3068884193698994e-9,2.018868559824517e-9,2.6317366365197134e-9 +Trace/20/50,8.993896825801617e-7,8.988674425956075e-7,8.998015466475909e-7,1.5561648197726e-9,1.2134283024353567e-9,2.0811558103355446e-9 +Trace/40/1,8.967762921245888e-7,8.962030995985115e-7,8.973096712507593e-7,1.7590948798641348e-9,1.4645707792393491e-9,2.159717168283801e-9 +Trace/40/2,8.972867305079989e-7,8.966375897384101e-7,8.980004546789361e-7,2.2194171740552478e-9,1.9512496001860484e-9,2.6099960324027465e-9 +Trace/40/3,8.969207717080964e-7,8.965041942877036e-7,8.97347125244266e-7,1.430372550366145e-9,1.2323451795110711e-9,1.7188042580600613e-9 +Trace/40/4,8.965017542018387e-7,8.961535387148089e-7,8.969430685551759e-7,1.2650321601940676e-9,1.0700225209755165e-9,1.5595068933717784e-9 +Trace/40/5,8.956550260998586e-7,8.949921589280928e-7,8.963978859182183e-7,2.420567545759538e-9,2.1213926468755203e-9,2.806995604456163e-9 +Trace/40/10,8.989288234005216e-7,8.984214510275605e-7,8.993717504529293e-7,1.582102276555416e-9,1.291479668354728e-9,1.9174709784542995e-9 +Trace/40/20,8.964496766535543e-7,8.960639256709662e-7,8.969326249745989e-7,1.4183905775382946e-9,1.1996906624567575e-9,1.685989549734403e-9 +Trace/40/34,9.004367130887254e-7,9.000617746702323e-7,9.008008600072317e-7,1.3658411578356016e-9,1.1503960281208946e-9,1.68844532572117e-9 +Trace/40/40,8.979286426536905e-7,8.97306334421968e-7,8.986023399220462e-7,2.1746752964320548e-9,1.871130529956503e-9,2.61106317744386e-9 +Trace/40/50,9.000211734768987e-7,8.994859971984699e-7,9.00550469990501e-7,1.663885267003591e-9,1.4124223271155935e-9,2.0329044798167435e-9 +Trace/60/1,8.964026553765501e-7,8.959372645694265e-7,8.968546161837301e-7,1.5620704025937515e-9,1.372578141113734e-9,1.8033597608075942e-9 +Trace/60/2,8.939341162834998e-7,8.935624003118015e-7,8.942532150694546e-7,1.149357708212749e-9,9.516564090070749e-10,1.4584154239571755e-9 +Trace/60/3,8.996142330389252e-7,8.990907660164775e-7,9.001715327907861e-7,1.7808931216938617e-9,1.5451121236967444e-9,2.0327425889906514e-9 +Trace/60/4,8.956897629255184e-7,8.951791941842347e-7,8.962463454005097e-7,1.767890566647615e-9,1.4599981479900741e-9,2.1662410128808913e-9 +Trace/60/5,8.955934879635034e-7,8.95134985606175e-7,8.960114531661284e-7,1.4178752770376062e-9,1.1760933440099456e-9,1.7518363773435798e-9 +Trace/60/10,8.996753571878373e-7,8.991975911713491e-7,9.002617728522474e-7,1.7261789338713338e-9,1.3934744567301627e-9,2.2024338691786778e-9 +Trace/60/20,8.946628075209894e-7,8.942170417328083e-7,8.952223411324995e-7,1.6888598529314589e-9,1.440796009211107e-9,1.997776062983607e-9 +Trace/60/34,8.955290617813549e-7,8.949881959001051e-7,8.960166010428464e-7,1.8162578672536484e-9,1.5541149536551892e-9,2.2283622208720472e-9 +Trace/60/40,8.978777490777671e-7,8.971700853130911e-7,8.986408475465315e-7,2.395592336704408e-9,2.1133940819793455e-9,2.719918351181055e-9 +Trace/60/50,8.990286689839071e-7,8.9851979113413e-7,8.995004190941326e-7,1.645165958894926e-9,1.4453201768660402e-9,1.9385763296219666e-9 +Trace/80/1,8.947283701265333e-7,8.937635767468796e-7,8.954799122159932e-7,2.853954186856422e-9,2.3456485037709865e-9,3.4317578934992813e-9 +Trace/80/2,8.949692366879771e-7,8.944636353995307e-7,8.954953704274901e-7,1.6762335590501246e-9,1.42908206284133e-9,1.9601335266587244e-9 +Trace/80/3,8.957926052156558e-7,8.949844075131392e-7,8.964459508499943e-7,2.4496182178631236e-9,2.1478036874187015e-9,2.834705045568412e-9 +Trace/80/4,8.926378675991694e-7,8.915564009107402e-7,8.936982359624335e-7,3.5207561205357945e-9,3.1497997380609833e-9,4.012915180221325e-9 +Trace/80/5,8.984278084728342e-7,8.979017114195128e-7,8.989842901254798e-7,1.8375133849476549e-9,1.6239167919572207e-9,2.0962860979899155e-9 +Trace/80/10,8.952712847982057e-7,8.947831266993124e-7,8.958327085013483e-7,1.7412678738367273e-9,1.421706237523307e-9,2.3017425329506875e-9 +Trace/80/20,8.967101787357175e-7,8.963276939830329e-7,8.970743613713922e-7,1.2074845018750659e-9,9.801106237709993e-10,1.5196316441635974e-9 +Trace/80/34,8.973537322466868e-7,8.967088799412013e-7,8.978820921593967e-7,2.0219271142796646e-9,1.6535357365316548e-9,2.5981953418188154e-9 +Trace/80/40,8.946086057942505e-7,8.942445764646367e-7,8.950936534414885e-7,1.3736595555072817e-9,1.0728598210296907e-9,1.8842648547251362e-9 +Trace/80/50,8.96052835806707e-7,8.955184304827004e-7,8.965385104133728e-7,1.6782158235890854e-9,1.4313810183719544e-9,2.0420604053037762e-9 +Trace/100/1,9.013154648772136e-7,9.008656870053082e-7,9.017378392278232e-7,1.5509000844318292e-9,1.2994814065416129e-9,1.8999956157346407e-9 +Trace/100/2,8.94515523334956e-7,8.938985423419524e-7,8.950743360657924e-7,1.8973068546436904e-9,1.6763031463938065e-9,2.2976911190280137e-9 +Trace/100/3,8.949315228579227e-7,8.943408108107263e-7,8.955196878785755e-7,2.0258111690632363e-9,1.7407326385885826e-9,2.4770142859309263e-9 +Trace/100/4,8.923661740641636e-7,8.916718421075377e-7,8.93080148555618e-7,2.302424243185181e-9,2.0378185774160753e-9,2.6182454621226176e-9 +Trace/100/5,8.978661403540189e-7,8.973765303588422e-7,8.984359224913399e-7,1.8193231033729733e-9,1.4990921737041427e-9,2.377781311757273e-9 +Trace/100/10,8.968330564558703e-7,8.963670272500172e-7,8.972341045948175e-7,1.418591262700757e-9,1.1313704529670771e-9,1.8272160421222714e-9 +Trace/100/20,8.980425890898865e-7,8.970957853692017e-7,8.989145025635442e-7,2.9231818765977275e-9,2.432794363602036e-9,3.741093830778293e-9 +Trace/100/34,8.954761066643481e-7,8.94911202345372e-7,8.960071721284852e-7,1.7532337590783472e-9,1.4205201864430683e-9,2.2738450343008e-9 +Trace/100/40,8.955854130636182e-7,8.950868390884236e-7,8.961365779929779e-7,1.858853982417393e-9,1.5875248716698753e-9,2.4313022975694315e-9 +Trace/100/50,8.966168961133577e-7,8.960651034756366e-7,8.972334934355248e-7,1.8558369535789795e-9,1.6032780997236808e-9,2.1363033784517143e-9 +Trace/200/1,8.986240228209229e-7,8.981401607814132e-7,8.992276755802616e-7,1.8266781065385848e-9,1.5157752682484011e-9,2.328580289154018e-9 +Trace/200/2,8.977051746823468e-7,8.972564114017897e-7,8.982368796173445e-7,1.7588905880442516e-9,1.475619608490088e-9,2.139922641331157e-9 +Trace/200/3,8.957318175628366e-7,8.953532348451624e-7,8.961457028224704e-7,1.3125115034107909e-9,1.0946164990587096e-9,1.5806638237840974e-9 +Trace/200/4,8.97315760199114e-7,8.966742079080569e-7,8.979981027177403e-7,2.215841520936035e-9,1.868708027505931e-9,2.6687263681487846e-9 +Trace/200/5,8.986823965379941e-7,8.97969363430186e-7,8.993223017948328e-7,2.2440427333516324e-9,1.932555712814162e-9,2.5796698666648252e-9 +Trace/200/10,8.980807825860109e-7,8.975421986013485e-7,8.985740993146052e-7,1.7401606751659706e-9,1.4764365159452468e-9,2.005421811458517e-9 +Trace/200/20,8.991634612764892e-7,8.985604990640457e-7,8.997944958172342e-7,2.1400856335440417e-9,1.8781984085443608e-9,2.4787932243345974e-9 +Trace/200/34,8.983571863449323e-7,8.978011150167341e-7,8.990007441436368e-7,2.0185322589916555e-9,1.6796007553174755e-9,2.427575106316736e-9 +Trace/200/40,8.971870321301452e-7,8.967096736244034e-7,8.977349462133027e-7,1.6820112768396863e-9,1.4026592000059749e-9,2.054260369839647e-9 +Trace/200/50,8.974505569638964e-7,8.969171435749877e-7,8.980236252499969e-7,1.8856683526865454e-9,1.6115757255893923e-9,2.211347767620331e-9 +Trace/400/1,8.983833373240898e-7,8.977510837411706e-7,8.989776623361627e-7,2.056417820380253e-9,1.736964145540089e-9,2.489588447397149e-9 +Trace/400/2,8.984163530596173e-7,8.980401974421694e-7,8.987475462447125e-7,1.1698340834385098e-9,1.0152800673148596e-9,1.359396601633059e-9 +Trace/400/3,8.993663678418025e-7,8.987665249140798e-7,8.998846270234532e-7,1.8404631032119186e-9,1.5978746480933981e-9,2.198951366589444e-9 +Trace/400/4,8.986490511960575e-7,8.978649757073401e-7,8.993859717044247e-7,2.63876485388523e-9,2.2796190935840908e-9,3.0718743106999024e-9 +Trace/400/5,8.984707453887253e-7,8.979081369114876e-7,8.98908175888706e-7,1.561784995618728e-9,1.2746362917349698e-9,1.9492355767494932e-9 +Trace/400/10,8.99397613409289e-7,8.98881201803097e-7,8.999222375115928e-7,1.7173687321621078e-9,1.4411215487860892e-9,2.1124478308991943e-9 +Trace/400/20,8.978456699036206e-7,8.972848416419277e-7,8.983833517017585e-7,1.7662138405758364e-9,1.4208980705324481e-9,2.3250179807060615e-9 +Trace/400/34,9.003427695373351e-7,8.997347873985159e-7,9.008027085495064e-7,1.6855587039996887e-9,1.3278509160293536e-9,2.331152144372028e-9 +Trace/400/40,8.964324628943831e-7,8.958262200017184e-7,8.97083096632502e-7,2.0987601637502295e-9,1.7301339154653254e-9,2.526676727523283e-9 +Trace/400/50,8.986088861213885e-7,8.980865898962159e-7,8.991419923264744e-7,1.8113004843591145e-9,1.4075292324232735e-9,2.3481407122255503e-9 +Trace/600/1,8.94274392061133e-7,8.934929071973483e-7,8.949517901449365e-7,2.4781457559529857e-9,2.089440072621253e-9,2.8876662089474227e-9 +Trace/600/2,8.966052604439359e-7,8.958438862655345e-7,8.974437873438161e-7,2.6475710800714697e-9,2.234327638251206e-9,3.0449497117140655e-9 +Trace/600/3,8.986061792476583e-7,8.980282306897594e-7,8.991059854326607e-7,1.8175079472618535e-9,1.5399529658380606e-9,2.1384728078642964e-9 +Trace/600/4,8.944086034751275e-7,8.937001112423438e-7,8.952414968986414e-7,2.732588812744524e-9,2.3463669211284273e-9,3.316176042005885e-9 +Trace/600/5,8.972812662701166e-7,8.967261770846083e-7,8.977132087387956e-7,1.6005510327414664e-9,1.1775585519392312e-9,2.5291125655674876e-9 +Trace/600/10,8.991845343179232e-7,8.988512736989743e-7,8.996511155319393e-7,1.3353784618225832e-9,1.0482534770442272e-9,1.7508804357316415e-9 +Trace/600/20,9.010222241232495e-7,9.004836604692291e-7,9.015897253110155e-7,1.8159967670024236e-9,1.5550022733062774e-9,2.133232477466181e-9 +Trace/600/34,8.998593332752267e-7,8.990702412317725e-7,9.006888845936582e-7,2.7035066441698897e-9,2.2861278725990686e-9,3.265390904742386e-9 +Trace/600/40,8.980627881776999e-7,8.975523420292002e-7,8.986243041858946e-7,1.792989224658747e-9,1.557945100552096e-9,2.1562254583287582e-9 +Trace/600/50,8.973523127020158e-7,8.966260264232933e-7,8.98126547282697e-7,2.5802027342059204e-9,2.1869554073518872e-9,3.0637820816468125e-9 +Trace/800/1,8.942810443198859e-7,8.93745029334436e-7,8.948578377040072e-7,1.93087657624931e-9,1.5825988820277893e-9,2.353577238879669e-9 +Trace/800/2,8.980073054585735e-7,8.9730216743233e-7,8.987198339631457e-7,2.366507899462701e-9,1.9946102892620575e-9,2.9545279755395467e-9 +Trace/800/3,8.988853475530557e-7,8.980881312114352e-7,8.995926503804505e-7,2.546016809905552e-9,2.2015884664773894e-9,3.0707467203571954e-9 +Trace/800/4,8.98320444732973e-7,8.97754196757564e-7,8.988000763314818e-7,1.779879413473178e-9,1.5470894933574865e-9,2.054066462445919e-9 +Trace/800/5,8.983090373946742e-7,8.96992411223515e-7,8.993290456026734e-7,3.995077746033954e-9,3.2644060754583146e-9,4.838788286884787e-9 +Trace/800/10,9.009750044837647e-7,9.003281754910177e-7,9.017089025310496e-7,2.3504143590623944e-9,1.9615184779516236e-9,3.0079788531217174e-9 +Trace/800/20,8.997798756805917e-7,8.989537500135319e-7,9.006747346594774e-7,2.845654905933721e-9,2.386655507884022e-9,3.27445025148629e-9 +Trace/800/34,8.989616878313025e-7,8.984230259548197e-7,8.994455229192354e-7,1.678788871900919e-9,1.3063917794600812e-9,2.1725342128583107e-9 +Trace/800/40,8.971069111346002e-7,8.96424453324172e-7,8.976896431224592e-7,2.1218219106343764e-9,1.8234022152595978e-9,2.6284843260367126e-9 +Trace/800/50,8.982159171977855e-7,8.974191023473848e-7,8.990844391571267e-7,2.6621618842168104e-9,2.1680351962731307e-9,3.370335134931445e-9 +Trace/1000/1,8.964801553046587e-7,8.957589912482736e-7,8.971197923637849e-7,2.233576508878302e-9,1.8224336338061377e-9,2.7280300043175384e-9 +Trace/1000/2,9.010394639693024e-7,9.004229279385004e-7,9.016447430132078e-7,2.0720889319042066e-9,1.7684813783641383e-9,2.4733067156045226e-9 +Trace/1000/3,8.968976471214376e-7,8.964325242727454e-7,8.976601735383368e-7,1.9753891593369714e-9,1.4905589744352862e-9,2.752997873335004e-9 +Trace/1000/4,8.981140410562555e-7,8.975714975445936e-7,8.986184771118232e-7,1.7625952906714837e-9,1.5045557283988286e-9,2.0646832802968446e-9 +Trace/1000/5,8.958735439805673e-7,8.951893480341273e-7,8.966003527757079e-7,2.361609493172068e-9,2.0337950350795554e-9,2.812691033901553e-9 +Trace/1000/10,8.96426492770206e-7,8.959574533647718e-7,8.968619425483511e-7,1.6014170106898467e-9,1.4065212115410123e-9,1.8451223071422658e-9 +Trace/1000/20,8.975111783949226e-7,8.966973239224347e-7,8.983020766569125e-7,2.7187011274278376e-9,2.370371267088757e-9,3.1944746385570554e-9 +Trace/1000/34,8.944156627146297e-7,8.939915206365052e-7,8.948382168496863e-7,1.4194634625303084e-9,1.2108348475487838e-9,1.6332373567912488e-9 +Trace/1000/40,8.967310961747631e-7,8.957964856420771e-7,8.976127162765914e-7,3.1379183582181694e-9,2.7496876891725606e-9,3.8039234925303946e-9 +Trace/1000/50,8.96504995528749e-7,8.959179770313997e-7,8.971377101356685e-7,2.0192220509401766e-9,1.7593611372201976e-9,2.324567660335118e-9 +ChooseUnit/1/100,8.96206549282347e-7,8.95911281202084e-7,8.965781822401388e-7,1.0652570511348436e-9,8.589046827230565e-10,1.4420019651631386e-9 +ChooseUnit/1/200,8.96887260165148e-7,8.959717080416589e-7,8.978394957874805e-7,3.1795652130113456e-9,2.8010019963373104e-9,3.7067773546839316e-9 +ChooseUnit/1/300,9.000004702203413e-7,8.995252036753957e-7,9.004574752458268e-7,1.5249414421254018e-9,1.2752804430733584e-9,1.8504610964758323e-9 +ChooseUnit/1/400,8.996946189936138e-7,8.991120802061605e-7,9.003766873455025e-7,2.0310207857818205e-9,1.7415790185111403e-9,2.453813184290235e-9 +ChooseUnit/1/500,9.002791529129035e-7,8.995222279606823e-7,9.01160033673356e-7,2.724320661303095e-9,2.2061521029021534e-9,3.3405675109213006e-9 +ChooseUnit/1/600,8.995710983120733e-7,8.987480334020096e-7,9.004189316591509e-7,2.7982249510654423e-9,2.4449488778070407e-9,3.3317924518063227e-9 +ChooseUnit/1/700,8.988270898002805e-7,8.97619738425588e-7,8.999192603542889e-7,3.981714803130061e-9,3.3748289902151657e-9,4.588030602131582e-9 +ChooseUnit/1/800,9.007459703676495e-7,9.001061300801266e-7,9.013420494766194e-7,2.1146269838370977e-9,1.762227444758801e-9,2.5012787953241865e-9 +ChooseUnit/1/900,9.034555779722629e-7,9.028713590768876e-7,9.040187518333192e-7,2.075717853547478e-9,1.7924709065568992e-9,2.464870654745953e-9 +ChooseUnit/1/1000,8.990099812121262e-7,8.986161362205112e-7,8.993452695802116e-7,1.2469558688684358e-9,9.851559803724348e-10,1.7879374296044204e-9 +ChooseUnit/1/1100,8.948941557827603e-7,8.941195509817574e-7,8.954375024071748e-7,2.086077609725063e-9,1.577184387388698e-9,3.1649181667036284e-9 +ChooseUnit/1/1200,8.980309128268788e-7,8.967843410900224e-7,8.990438276363985e-7,3.669637491759633e-9,3.2131999395973485e-9,4.351769104790071e-9 +ChooseUnit/1/1300,8.97190474826815e-7,8.963052595828113e-7,8.981203690929428e-7,3.0056787771834726e-9,2.5092932722634863e-9,3.5975240571432115e-9 +ChooseUnit/1/1400,8.975615142278482e-7,8.968008327957016e-7,8.984078314639608e-7,2.6829521210905074e-9,2.3729515865045275e-9,3.1373673807588507e-9 +ChooseUnit/1/1500,8.989779665159175e-7,8.982240737344719e-7,8.996734749999574e-7,2.5251440124416135e-9,2.0851036615685304e-9,3.054042342113107e-9 +ChooseUnit/1/1600,8.957628965708655e-7,8.95018370059874e-7,8.964446263337666e-7,2.3894368217610653e-9,1.9507412562073236e-9,2.8829030276006813e-9 +ChooseUnit/1/1700,8.975526086539445e-7,8.966896605208858e-7,8.984792402911028e-7,2.913310118699431e-9,2.4958961112269937e-9,3.4586628122780095e-9 +ChooseUnit/1/1800,8.945939215602353e-7,8.937557522760538e-7,8.953763134916636e-7,2.784541733311315e-9,2.423478717931294e-9,3.298129756743354e-9 +ChooseUnit/1/1900,8.954804018499064e-7,8.947394853114339e-7,8.960325154055701e-7,2.0822902845300276e-9,1.6054875941291818e-9,2.60322630040209e-9 +ChooseUnit/1/2000,8.964490108339735e-7,8.957543464266043e-7,8.971216124624946e-7,2.2228015385111213e-9,1.9373871903834443e-9,2.547772394302845e-9 +ChooseUnit/1/2100,8.98485500352636e-7,8.978243837533922e-7,8.991806650994777e-7,2.3541572229263637e-9,1.970710445095321e-9,2.8247018175471392e-9 +ChooseUnit/1/2200,8.976257646712014e-7,8.969279720011186e-7,8.982465846358629e-7,2.2942501517018013e-9,1.8153780300777714e-9,2.8955587303252145e-9 +ChooseUnit/1/2300,8.989331620067547e-7,8.983496389066807e-7,8.995020276360708e-7,1.9842320312445756e-9,1.7084327348463383e-9,2.344813109108394e-9 +ChooseUnit/1/2400,8.972775488335758e-7,8.966118017165544e-7,8.981001263184595e-7,2.5475788035311088e-9,2.1325013927781887e-9,3.3119466137398683e-9 +ChooseUnit/1/2500,8.989832890484331e-7,8.985422476740107e-7,8.993783483198818e-7,1.411295712207476e-9,1.1870061922621752e-9,1.7143256047355638e-9 +ChooseUnit/1/2600,8.963051231933203e-7,8.95714585784857e-7,8.969197324838015e-7,1.8919964913111338e-9,1.6606721626555442e-9,2.2897895766436758e-9 +ChooseUnit/1/2700,8.971149402407709e-7,8.967276823433763e-7,8.975669178714317e-7,1.4188045366820926e-9,1.2824040338625817e-9,1.6421969196592548e-9 +ChooseUnit/1/2800,8.979323938203019e-7,8.974397741389346e-7,8.983858774535011e-7,1.6239233603203323e-9,1.3177056483219883e-9,2.054173722843709e-9 +ChooseUnit/1/2900,8.971110781699508e-7,8.958916883145342e-7,8.982038999588968e-7,4.054290308312327e-9,3.4354233856862396e-9,4.876529995055078e-9 +ChooseUnit/1/3000,8.976654852352911e-7,8.97176395697379e-7,8.981974526646986e-7,1.6936300633371166e-9,1.452653451767375e-9,2.06369223724376e-9 +ChooseUnit/1/3100,8.999968296398803e-7,8.993654968907802e-7,9.004981409260831e-7,1.7838973520094153e-9,1.5320650217318424e-9,2.116193042448762e-9 +ChooseUnit/1/3200,8.992312594177403e-7,8.986892471076537e-7,8.996808848124421e-7,1.6490837959509387e-9,1.3698954226950498e-9,1.991788656562462e-9 +ChooseUnit/1/3300,9.012374682880625e-7,9.006936502186499e-7,9.017058000638517e-7,1.7332074416961217e-9,1.465713932603492e-9,2.126149927728054e-9 +ChooseUnit/1/3400,9.0227386468198e-7,9.016956098745706e-7,9.030776964773462e-7,2.1833437858837033e-9,1.6614241934574579e-9,3.008571316214174e-9 +ChooseUnit/1/3500,8.987504810387108e-7,8.983008938091475e-7,8.991412346168099e-7,1.5054149511787094e-9,1.2086473140906879e-9,1.7943112662658956e-9 +ChooseUnit/1/3600,9.002964901263081e-7,8.997055801951389e-7,9.010164678379008e-7,2.1444808379133546e-9,1.8094894284245767e-9,2.638324316496024e-9 +ChooseUnit/1/3700,9.021344903337314e-7,9.015600647861688e-7,9.025419521413926e-7,1.5880685361985982e-9,1.1734649270912763e-9,2.233433813556855e-9 +ChooseUnit/1/3800,9.008796764963618e-7,9.000139615135322e-7,9.018593965936797e-7,3.279636883018879e-9,2.400784017304859e-9,5.1183069403959196e-9 +ChooseUnit/1/3900,8.990223987213532e-7,8.98369376558908e-7,8.996227596205847e-7,2.2013763424211774e-9,1.8115616120833468e-9,2.726181840022495e-9 +ChooseUnit/1/4000,9.026261496811542e-7,9.016397884292745e-7,9.036710137840611e-7,3.4676185453179712e-9,3.0241326416594907e-9,4.028299205313702e-9 +ChooseUnit/1/4100,9.014479408883555e-7,9.007903801273742e-7,9.02171222821497e-7,2.2601173995226658e-9,1.950974192234403e-9,2.756911129252913e-9 +ChooseUnit/1/4200,9.013459714989657e-7,9.006968813752684e-7,9.019633565137168e-7,2.0735632141081516e-9,1.6902414374634812e-9,2.541672428859861e-9 +ChooseUnit/1/4300,9.006986188771183e-7,9.000267534431036e-7,9.013554972603864e-7,2.2187583784324238e-9,1.7534975473313452e-9,2.8910407399057882e-9 +ChooseUnit/1/4400,9.01570434347402e-7,9.009375961782728e-7,9.022886522848516e-7,2.2384233364282016e-9,1.8137887824197214e-9,2.6681465698333413e-9 +ChooseUnit/1/4500,9.022336395317208e-7,9.017776743267003e-7,9.026656697550766e-7,1.5041779125491542e-9,1.2368186486555208e-9,1.9106122635496165e-9 +ChooseUnit/1/4600,9.036432708191308e-7,9.030931517091688e-7,9.042388726337446e-7,1.921788671919668e-9,1.602244639660522e-9,2.4223680545473704e-9 +ChooseUnit/1/4700,9.003889097910942e-7,8.998275941846948e-7,9.010836772369649e-7,2.099394694735397e-9,1.5826842350839422e-9,3.110722753278064e-9 +ChooseUnit/1/4800,8.993864818904023e-7,8.98541906121103e-7,9.000648969899485e-7,2.6243478238536245e-9,2.0218239326304508e-9,3.916820981968711e-9 +ChooseUnit/1/4900,9.003932840157852e-7,8.999981322003645e-7,9.008551327267714e-7,1.341335074135041e-9,1.0542304486132138e-9,1.6728603221274704e-9 +ChooseUnit/1/5000,8.989027443682201e-7,8.984110197582691e-7,8.99368390982417e-7,1.6425193533505553e-9,1.3931682616167323e-9,1.990812447521329e-9 +ChooseUnit/1/5100,9.014159809363947e-7,9.008877610841568e-7,9.018339467897649e-7,1.6011657479643305e-9,1.2674046049438495e-9,2.1074844350191987e-9 +ChooseUnit/1/5200,9.001022489253414e-7,8.994217809145103e-7,9.007203899972006e-7,2.2206579918445164e-9,1.8816629156821764e-9,2.626840846366845e-9 +ChooseUnit/1/5300,9.000497738206526e-7,8.99417498247584e-7,9.00663062926736e-7,2.0277025083338814e-9,1.7443993014502127e-9,2.4086798562833284e-9 +ChooseUnit/1/5400,9.012193761439161e-7,9.005357707273593e-7,9.019057291162163e-7,2.3050470124898287e-9,2.00527530398863e-9,2.667821362529562e-9 +ChooseUnit/1/5500,9.001046903676264e-7,8.998247784337347e-7,9.004182943675735e-7,1.0161065783032782e-9,8.345407052408084e-10,1.2768462828693177e-9 +ChooseUnit/1/5600,9.002081245081822e-7,8.996188996641368e-7,9.008737972186205e-7,2.058539886743559e-9,1.7521350440358727e-9,2.4334491640000834e-9 +ChooseUnit/1/5700,9.001192191894103e-7,8.99581079930381e-7,9.005776817571117e-7,1.7537064947460385e-9,1.5440440460186174e-9,2.050742000005437e-9 +ChooseUnit/1/5800,9.003601687526987e-7,8.997329775468866e-7,9.009579932094879e-7,2.082672293373557e-9,1.8191349217672254e-9,2.473713052566879e-9 +ChooseUnit/1/5900,9.024477837385141e-7,9.01834638960027e-7,9.031289891136316e-7,2.1179817337485425e-9,1.8016430714262832e-9,2.455985410382889e-9 +ChooseUnit/1/6000,9.020216192470172e-7,9.015235302118574e-7,9.026711382832568e-7,1.8544878147519709e-9,1.4720237453751623e-9,2.402875796615383e-9 +ChooseUnit/1/6100,9.016945239903744e-7,9.012666108814167e-7,9.020980934939396e-7,1.4453262822450656e-9,1.1950276187098657e-9,1.841065588958688e-9 +ChooseUnit/1/6200,9.036221021692601e-7,9.031730102235231e-7,9.040804310528688e-7,1.5024788670798166e-9,1.257228165297196e-9,1.8104015193944436e-9 +ChooseUnit/1/6300,9.0211744766011e-7,9.013753306924844e-7,9.028196239241359e-7,2.5193389452483815e-9,2.0640927981162133e-9,3.1440656551944078e-9 +ChooseUnit/1/6400,9.006846640032058e-7,9.000567465750192e-7,9.012509352141753e-7,2.020712457535832e-9,1.7530507957909236e-9,2.354468791029463e-9 +ChooseUnit/1/6500,8.968009137469632e-7,8.957168040422778e-7,8.980515485087372e-7,3.855777369261542e-9,3.1693477187197446e-9,4.876843851569036e-9 +ChooseUnit/1/6600,8.959352678357406e-7,8.95279869582007e-7,8.965590865632674e-7,2.169630402364221e-9,1.86619328391641e-9,2.5627124222993455e-9 +ChooseUnit/1/6700,8.984359262751938e-7,8.977752854020832e-7,8.991197654027663e-7,2.3373382717281847e-9,2.0653216546949785e-9,2.697445655326776e-9 +ChooseUnit/1/6800,8.974956281066467e-7,8.968523823982444e-7,8.981739351155741e-7,2.2143744475032875e-9,1.9183636958589125e-9,2.6247466710384925e-9 +ChooseUnit/1/6900,8.96784233111998e-7,8.961803956287123e-7,8.97306651853253e-7,1.9147129508239985e-9,1.6063937053789566e-9,2.2926198905608475e-9 +ChooseUnit/1/7000,8.957690602664221e-7,8.952096500718506e-7,8.963297311633226e-7,1.8865691245643146e-9,1.6351310808041612e-9,2.2015890244111683e-9 +ChooseUnit/1/7100,9.026906529513037e-7,9.021825415742631e-7,9.031203681121787e-7,1.6224009192706563e-9,1.331850353492072e-9,2.1660617789396764e-9 +ChooseUnit/1/7200,8.994324765754851e-7,8.987163757617778e-7,9.00161738450167e-7,2.445018826936754e-9,2.0275753570319156e-9,3.0604437873908006e-9 +ChooseUnit/1/7300,8.982350412882224e-7,8.976189672908071e-7,8.989935142028473e-7,2.3189850024944787e-9,1.7535853375202817e-9,2.9115465162127967e-9 +ChooseUnit/1/7400,9.009387324653962e-7,9.005148427254702e-7,9.01380328392222e-7,1.4523944409151423e-9,1.221308450471844e-9,1.7944178058609907e-9 +ChooseUnit/1/7500,9.000573876487226e-7,8.996828328837154e-7,9.004705856252983e-7,1.3559551517576648e-9,1.144085649597722e-9,1.6237060469303672e-9 +ChooseUnit/1/7600,9.002862255337784e-7,8.997575983316791e-7,9.009279088324106e-7,1.8959591592925026e-9,1.570768657482743e-9,2.384969309099291e-9 +ChooseUnit/1/7700,9.008724347749484e-7,9.003833459588873e-7,9.014310231084639e-7,1.761843279327908e-9,1.493573140713975e-9,2.1089869198594774e-9 +ChooseUnit/1/7800,9.023092560471663e-7,9.018017287281524e-7,9.028912643984539e-7,1.888402011812112e-9,1.589068284637901e-9,2.2188630214689265e-9 +ChooseUnit/1/7900,9.006982635730305e-7,9.003080838304662e-7,9.010418970562778e-7,1.2155953658529801e-9,9.242770086249765e-10,1.7119310386121127e-9 +ChooseUnit/1/8000,9.009105197849058e-7,9.003453683559111e-7,9.014131896203578e-7,1.798507119408341e-9,1.5459928623633337e-9,2.1302011769003034e-9 +ChooseUnit/1/8100,9.004462248259617e-7,8.998699361117086e-7,9.011347138501081e-7,1.985940734645017e-9,1.683804877940678e-9,2.464276945644183e-9 +ChooseUnit/1/8200,9.007178058875717e-7,9.00278461461317e-7,9.012075481943229e-7,1.6030153015883115e-9,1.385680191463245e-9,1.925094279194492e-9 +ChooseUnit/1/8300,8.996493696538545e-7,8.991839244103127e-7,9.001137860834316e-7,1.5995900976909645e-9,1.3808362189361073e-9,1.903216957437043e-9 +ChooseUnit/1/8400,8.986493400982303e-7,8.979974269603229e-7,8.99271259329587e-7,2.1214036569521744e-9,1.784761634200974e-9,2.5037712235544584e-9 +ChooseUnit/1/8500,8.986911929237565e-7,8.983463561224488e-7,8.989661198670464e-7,9.97693008097232e-10,8.228213356297132e-10,1.1958668600472314e-9 +ChooseUnit/1/8600,8.984230785595157e-7,8.980763131193163e-7,8.988133208520827e-7,1.177301377928898e-9,9.85942079982107e-10,1.566799779839637e-9 +ChooseUnit/1/8700,9.001670089813483e-7,8.994659290693679e-7,9.009477153631165e-7,2.6142834372379383e-9,2.2831226958474705e-9,3.0271687138584773e-9 +ChooseUnit/1/8800,8.972519728695343e-7,8.965688758142237e-7,8.978995263360332e-7,2.289225577349193e-9,1.9897400707715836e-9,2.6579718710788593e-9 +ChooseUnit/1/8900,9.005749554940622e-7,9.001139441293806e-7,9.009867179953333e-7,1.5238109204614478e-9,1.209464276547539e-9,2.002656157681537e-9 +ChooseUnit/1/9000,9.009219686955646e-7,9.000032950698553e-7,9.017618207159011e-7,3.0734434324827113e-9,2.6572231404129997e-9,3.5084970700471195e-9 +ChooseUnit/1/9100,8.975384667286549e-7,8.965386613748347e-7,8.98453605005321e-7,3.1433628012948415e-9,2.8062216312238e-9,3.5358596789421994e-9 +ChooseUnit/1/9200,9.039218222438558e-7,9.029576217076134e-7,9.049660397832574e-7,3.3976867847447425e-9,2.9176024283684435e-9,3.894101074192971e-9 +ChooseUnit/1/9300,9.016919209551995e-7,9.009790700269222e-7,9.024300189182159e-7,2.3976766217405292e-9,2.0403096428893328e-9,2.949338180129852e-9 +ChooseUnit/1/9400,8.988688564609341e-7,8.982220192574949e-7,8.995101189321677e-7,2.1871114227491356e-9,1.875133867885959e-9,2.6538933689706454e-9 +ChooseUnit/1/9500,8.992207376494203e-7,8.98816461497481e-7,8.996746600528923e-7,1.4464099547642917e-9,1.2042549574695747e-9,1.7786103223840994e-9 +ChooseUnit/1/9600,8.969460469718678e-7,8.963391633370516e-7,8.97487774903803e-7,1.9127201631343775e-9,1.6377344937521076e-9,2.24432676490541e-9 +ChooseUnit/1/9700,8.970567487984442e-7,8.965705178924299e-7,8.976261649280638e-7,1.7306723478783586e-9,1.3954402877603753e-9,2.2714777150748784e-9 +ChooseUnit/1/9800,8.987903554200138e-7,8.983544774235198e-7,8.99354644792822e-7,1.6191291778467761e-9,1.3093588664946551e-9,2.0551438820157175e-9 +ChooseUnit/1/9900,9.050117489464682e-7,9.044130338469769e-7,9.054729169277353e-7,1.757113711903475e-9,1.3820079468137487e-9,2.2777103977746423e-9 +ChooseUnit/1/10000,9.00514270829949e-7,8.995649777018612e-7,9.014206190144375e-7,3.254985425325383e-9,3.010944701950331e-9,3.6030514089127974e-9 +UnitTerm/1,4.988777610870432e-7,4.986032459400623e-7,4.991712569031742e-7,1.383063974638739e-9,1.19100048018785e-9,1.6249961463875092e-9 +Nop1b/1,6.711903989112135e-7,6.707848618996158e-7,6.715534465115955e-7,1.7686023509137978e-9,1.5544048787428163e-9,2.03518101549674e-9 +Nop2b/1/1,8.358619232603011e-7,8.353748917890413e-7,8.362956140323043e-7,2.0879722557686915e-9,1.871611591395591e-9,2.405032968881687e-9 +Nop3b/1/1/1,9.590934922324218e-7,9.587066987994847e-7,9.596273492879966e-7,1.954530982963812e-9,1.5853798833180374e-9,2.4538727132538173e-9 +Nop4b/1/1/1/1,1.0745909653707207e-6,1.0740032740629917e-6,1.0751604970936321e-6,2.623634770911973e-9,2.2590574912854863e-9,3.1044688497169522e-9 +Nop5b/1/1/1/1/1,1.208823917843326e-6,1.2083590903907244e-6,1.2092960157946133e-6,2.1704875255069708e-9,1.9208691021067367e-9,2.506516363094493e-9 +Nop6b/1/1/1/1/1/1,1.3297617901279554e-6,1.3289127257442523e-6,1.330438234164486e-6,3.363515264255479e-9,3.0098316454473814e-9,3.811215736027417e-9 +Nop1i/1,6.697967646474679e-7,6.694545860278291e-7,6.701086657136721e-7,1.5481828362851875e-9,1.3665600828383909e-9,1.7901349248318555e-9 +Nop2i/1/1,8.374744998196817e-7,8.370048673827136e-7,8.379028695090943e-7,1.9871120320939034e-9,1.784012769438386e-9,2.333823524297268e-9 +Nop3i/1/1/1,9.575607824771315e-7,9.569685423590354e-7,9.581518064799332e-7,2.5358083084950117e-9,2.1840415339434006e-9,3.0173264975001246e-9 +Nop4i/1/1/1/1,1.0781387142405717e-6,1.0776163451976773e-6,1.0786525620625627e-6,2.2728112763897103e-9,1.920907249039005e-9,2.645293504632168e-9 +Nop5i/1/1/1/1/1,1.2111586340842878e-6,1.2103309580743758e-6,1.2118596714749927e-6,3.5331179057708066e-9,3.017190403707469e-9,4.102995232424192e-9 +Nop6i/1/1/1/1/1/1,1.3540697486303975e-6,1.3534650546120075e-6,1.3546051817153538e-6,2.5331587943551843e-9,2.1100720719967675e-9,3.1299990993106648e-9 +Nop1c/1,6.751548927140915e-7,6.747510538079358e-7,6.75596720700841e-7,1.9636788853430147e-9,1.7213208919508156e-9,2.25703654793505e-9 +Nop2c/1/1,8.446472049078293e-7,8.441255881247852e-7,8.450545989134601e-7,2.0974618139857056e-9,1.7905496498083756e-9,2.4936294074197175e-9 +Nop3c/1/1/1,9.6414240758607e-7,9.637307146629663e-7,9.645293802117065e-7,1.9805536492228325e-9,1.752447748362063e-9,2.2544942480366755e-9 +Nop4c/1/1/1/1,1.0848049821449215e-6,1.0841923258901206e-6,1.0854147867224836e-6,2.9578034914737764e-9,2.66668052283043e-9,3.3355068521629607e-9 +Nop5c/1/1/1/1/1,1.2238229643530136e-6,1.2230373429270233e-6,1.224552857836005e-6,3.3833614260204694e-9,2.967551897612812e-9,4.038393251271143e-9 +Nop6c/1/1/1/1/1/1,1.341104037159787e-6,1.340513223821211e-6,1.3417478818624178e-6,2.6999424329528213e-9,2.32436321152087e-9,3.231076327345339e-9 +Nop1o/1,6.697534085322777e-7,6.695160525589171e-7,6.699765670619345e-7,1.0910728802688151e-9,9.527332321139676e-10,1.2598948804605395e-9 +Nop2o/1/1,8.380777476910717e-7,8.37624744556615e-7,8.385545370160202e-7,2.1279340701182813e-9,1.8528297427438648e-9,2.4052559815246667e-9 +Nop3o/1/1/1,9.681605179728e-7,9.678482768634729e-7,9.68507964034034e-7,1.5097728167214616e-9,1.298347733434017e-9,1.8513942973723101e-9 +Nop4o/1/1/1/1,1.06931526883948e-6,1.069022694427051e-6,1.0696382508038666e-6,1.4394723113881347e-9,1.2607649026895387e-9,1.6935844242798764e-9 +Nop5o/1/1/1/1/1,1.204797533387616e-6,1.2045006785441098e-6,1.2051050348542126e-6,1.4396484354218353e-9,1.2271158795291387e-9,1.70998698648575e-9 +Nop6o/1/1/1/1/1/1,1.3311962475075014e-6,1.3307031569084609e-6,1.3316929325432997e-6,2.2438474798697615e-9,1.9046722710705117e-9,2.7396972459837584e-9 diff --git a/plutus-core/cost-model/data/benching.csv b/plutus-core/cost-model/data/benching-vasil.csv similarity index 100% rename from plutus-core/cost-model/data/benching.csv rename to plutus-core/cost-model/data/benching-vasil.csv diff --git a/plutus-core/cost-model/data/builtinCostModel.json b/plutus-core/cost-model/data/builtinCostModelA.json similarity index 95% rename from plutus-core/cost-model/data/builtinCostModel.json rename to plutus-core/cost-model/data/builtinCostModelA.json index 567a97f3a5f..b775ce272af 100644 --- a/plutus-core/cost-model/data/builtinCostModel.json +++ b/plutus-core/cost-model/data/builtinCostModelA.json @@ -60,8 +60,8 @@ "blake2b_224": { "cpu": { "arguments": { - "intercept": 117366, - "slope": 10475 + "intercept": 207616, + "slope": 8310 }, "type": "linear_in_x" }, @@ -85,7 +85,7 @@ }, "bls12_381_G1_add": { "cpu": { - "arguments": 832808, + "arguments": 962335, "type": "constant_cost" }, "memory": { @@ -95,7 +95,7 @@ }, "bls12_381_G1_compress": { "cpu": { - "arguments": 3209094, + "arguments": 2780678, "type": "constant_cost" }, "memory": { @@ -105,7 +105,7 @@ }, "bls12_381_G1_equal": { "cpu": { - "arguments": 331451, + "arguments": 442008, "type": "constant_cost" }, "memory": { @@ -116,8 +116,8 @@ "bls12_381_G1_hashToGroup": { "cpu": { "arguments": { - "intercept": 65990684, - "slope": 23097 + "intercept": 52538055, + "slope": 3756 }, "type": "linear_in_x" }, @@ -128,7 +128,7 @@ }, "bls12_381_G1_neg": { "cpu": { - "arguments": 114242, + "arguments": 267929, "type": "constant_cost" }, "memory": { @@ -139,8 +139,8 @@ "bls12_381_G1_scalarMul": { "cpu": { "arguments": { - "intercept": 94393407, - "slope": 87060 + "intercept": 76433006, + "slope": 8868 }, "type": "linear_in_x" }, @@ -151,7 +151,7 @@ }, "bls12_381_G1_uncompress": { "cpu": { - "arguments": 16420089, + "arguments": 52948122, "type": "constant_cost" }, "memory": { @@ -161,7 +161,7 @@ }, "bls12_381_G2_add": { "cpu": { - "arguments": 2145798, + "arguments": 1995836, "type": "constant_cost" }, "memory": { @@ -171,7 +171,7 @@ }, "bls12_381_G2_compress": { "cpu": { - "arguments": 3795345, + "arguments": 3227919, "type": "constant_cost" }, "memory": { @@ -181,7 +181,7 @@ }, "bls12_381_G2_equal": { "cpu": { - "arguments": 889023, + "arguments": 901022, "type": "constant_cost" }, "memory": { @@ -192,8 +192,8 @@ "bls12_381_G2_hashToGroup": { "cpu": { "arguments": { - "intercept": 204237282, - "slope": 23271 + "intercept": 166917843, + "slope": 4307 }, "type": "linear_in_x" }, @@ -204,7 +204,7 @@ }, "bls12_381_G2_neg": { "cpu": { - "arguments": 129165, + "arguments": 284546, "type": "constant_cost" }, "memory": { @@ -215,8 +215,8 @@ "bls12_381_G2_scalarMul": { "cpu": { "arguments": { - "intercept": 189977790, - "slope": 85902 + "intercept": 158221314, + "slope": 26549 }, "type": "linear_in_x" }, @@ -227,7 +227,7 @@ }, "bls12_381_G2_uncompress": { "cpu": { - "arguments": 33012864, + "arguments": 74698472, "type": "constant_cost" }, "memory": { @@ -237,7 +237,7 @@ }, "bls12_381_finalVerify": { "cpu": { - "arguments": 388443360, + "arguments": 333849714, "type": "constant_cost" }, "memory": { @@ -247,7 +247,7 @@ }, "bls12_381_millerLoop": { "cpu": { - "arguments": 401885761, + "arguments": 254006273, "type": "constant_cost" }, "memory": { @@ -257,7 +257,7 @@ }, "bls12_381_mulMlResult": { "cpu": { - "arguments": 2331379, + "arguments": 2174038, "type": "constant_cost" }, "memory": { @@ -268,9 +268,9 @@ "byteStringToInteger": { "cpu": { "arguments": { - "c0": 936157, - "c1": 49601, - "c2": 237 + "c0": 1006041, + "c1": 43623, + "c2": 251 }, "type": "quadratic_in_y" }, @@ -500,9 +500,9 @@ "integerToByteString": { "cpu": { "arguments": { - "c0": 1292075, - "c1": 24469, - "c2": 74 + "c0": 1293828, + "c1": 28716, + "c2": 63 }, "type": "quadratic_in_z" }, @@ -517,8 +517,8 @@ "keccak_256": { "cpu": { "arguments": { - "intercept": 1927926, - "slope": 82523 + "intercept": 2261318, + "slope": 64571 }, "type": "linear_in_x" }, diff --git a/plutus-core/cost-model/data/builtinCostModelB.json b/plutus-core/cost-model/data/builtinCostModelB.json new file mode 100644 index 00000000000..40bdbf94f5f --- /dev/null +++ b/plutus-core/cost-model/data/builtinCostModelB.json @@ -0,0 +1,937 @@ +{ + "addInteger": { + "cpu": { + "arguments": { + "intercept": 100788, + "slope": 420 + }, + "type": "max_size" + }, + "memory": { + "arguments": { + "intercept": 1, + "slope": 1 + }, + "type": "max_size" + } + }, + "appendByteString": { + "cpu": { + "arguments": { + "intercept": 1000, + "slope": 173 + }, + "type": "added_sizes" + }, + "memory": { + "arguments": { + "intercept": 0, + "slope": 1 + }, + "type": "added_sizes" + } + }, + "appendString": { + "cpu": { + "arguments": { + "intercept": 1000, + "slope": 59957 + }, + "type": "added_sizes" + }, + "memory": { + "arguments": { + "intercept": 4, + "slope": 1 + }, + "type": "added_sizes" + } + }, + "bData": { + "cpu": { + "arguments": 11183, + "type": "constant_cost" + }, + "memory": { + "arguments": 32, + "type": "constant_cost" + } + }, + "blake2b_224": { + "cpu": { + "arguments": { + "intercept": 207616, + "slope": 8310 + }, + "type": "linear_in_x" + }, + "memory": { + "arguments": 4, + "type": "constant_cost" + } + }, + "blake2b_256": { + "cpu": { + "arguments": { + "intercept": 201305, + "slope": 8356 + }, + "type": "linear_in_x" + }, + "memory": { + "arguments": 4, + "type": "constant_cost" + } + }, + "bls12_381_G1_add": { + "cpu": { + "arguments": 962335, + "type": "constant_cost" + }, + "memory": { + "arguments": 18, + "type": "constant_cost" + } + }, + "bls12_381_G1_compress": { + "cpu": { + "arguments": 2780678, + "type": "constant_cost" + }, + "memory": { + "arguments": 6, + "type": "constant_cost" + } + }, + "bls12_381_G1_equal": { + "cpu": { + "arguments": 442008, + "type": "constant_cost" + }, + "memory": { + "arguments": 1, + "type": "constant_cost" + } + }, + "bls12_381_G1_hashToGroup": { + "cpu": { + "arguments": { + "intercept": 52538055, + "slope": 3756 + }, + "type": "linear_in_x" + }, + "memory": { + "arguments": 18, + "type": "constant_cost" + } + }, + "bls12_381_G1_neg": { + "cpu": { + "arguments": 267929, + "type": "constant_cost" + }, + "memory": { + "arguments": 18, + "type": "constant_cost" + } + }, + "bls12_381_G1_scalarMul": { + "cpu": { + "arguments": { + "intercept": 76433006, + "slope": 8868 + }, + "type": "linear_in_x" + }, + "memory": { + "arguments": 18, + "type": "constant_cost" + } + }, + "bls12_381_G1_uncompress": { + "cpu": { + "arguments": 52948122, + "type": "constant_cost" + }, + "memory": { + "arguments": 18, + "type": "constant_cost" + } + }, + "bls12_381_G2_add": { + "cpu": { + "arguments": 1995836, + "type": "constant_cost" + }, + "memory": { + "arguments": 36, + "type": "constant_cost" + } + }, + "bls12_381_G2_compress": { + "cpu": { + "arguments": 3227919, + "type": "constant_cost" + }, + "memory": { + "arguments": 12, + "type": "constant_cost" + } + }, + "bls12_381_G2_equal": { + "cpu": { + "arguments": 901022, + "type": "constant_cost" + }, + "memory": { + "arguments": 1, + "type": "constant_cost" + } + }, + "bls12_381_G2_hashToGroup": { + "cpu": { + "arguments": { + "intercept": 166917843, + "slope": 4307 + }, + "type": "linear_in_x" + }, + "memory": { + "arguments": 36, + "type": "constant_cost" + } + }, + "bls12_381_G2_neg": { + "cpu": { + "arguments": 284546, + "type": "constant_cost" + }, + "memory": { + "arguments": 36, + "type": "constant_cost" + } + }, + "bls12_381_G2_scalarMul": { + "cpu": { + "arguments": { + "intercept": 158221314, + "slope": 26549 + }, + "type": "linear_in_x" + }, + "memory": { + "arguments": 36, + "type": "constant_cost" + } + }, + "bls12_381_G2_uncompress": { + "cpu": { + "arguments": 74698472, + "type": "constant_cost" + }, + "memory": { + "arguments": 36, + "type": "constant_cost" + } + }, + "bls12_381_finalVerify": { + "cpu": { + "arguments": 333849714, + "type": "constant_cost" + }, + "memory": { + "arguments": 1, + "type": "constant_cost" + } + }, + "bls12_381_millerLoop": { + "cpu": { + "arguments": 254006273, + "type": "constant_cost" + }, + "memory": { + "arguments": 72, + "type": "constant_cost" + } + }, + "bls12_381_mulMlResult": { + "cpu": { + "arguments": 2174038, + "type": "constant_cost" + }, + "memory": { + "arguments": 72, + "type": "constant_cost" + } + }, + "byteStringToInteger": { + "cpu": { + "arguments": { + "c0": 1006041, + "c1": 43623, + "c2": 251 + }, + "type": "quadratic_in_y" + }, + "memory": { + "arguments": { + "intercept": 0, + "slope": 1 + }, + "type": "linear_in_y" + } + }, + "chooseData": { + "cpu": { + "arguments": 94375, + "type": "constant_cost" + }, + "memory": { + "arguments": 32, + "type": "constant_cost" + } + }, + "chooseList": { + "cpu": { + "arguments": 132994, + "type": "constant_cost" + }, + "memory": { + "arguments": 32, + "type": "constant_cost" + } + }, + "chooseUnit": { + "cpu": { + "arguments": 61462, + "type": "constant_cost" + }, + "memory": { + "arguments": 4, + "type": "constant_cost" + } + }, + "consByteString": { + "cpu": { + "arguments": { + "intercept": 72010, + "slope": 178 + }, + "type": "linear_in_y" + }, + "memory": { + "arguments": { + "intercept": 0, + "slope": 1 + }, + "type": "added_sizes" + } + }, + "constrData": { + "cpu": { + "arguments": 22151, + "type": "constant_cost" + }, + "memory": { + "arguments": 32, + "type": "constant_cost" + } + }, + "decodeUtf8": { + "cpu": { + "arguments": { + "intercept": 91189, + "slope": 769 + }, + "type": "linear_in_x" + }, + "memory": { + "arguments": { + "intercept": 4, + "slope": 2 + }, + "type": "linear_in_x" + } + }, + "divideInteger": { + "cpu": { + "arguments": { + "constant": 85848, + "model": { + "arguments": { + "intercept": 228465, + "slope": 122 + }, + "type": "multiplied_sizes" + } + }, + "type": "const_above_diagonal" + }, + "memory": { + "arguments": { + "intercept": 0, + "minimum": 1, + "slope": 1 + }, + "type": "subtracted_sizes" + } + }, + "encodeUtf8": { + "cpu": { + "arguments": { + "intercept": 1000, + "slope": 42921 + }, + "type": "linear_in_x" + }, + "memory": { + "arguments": { + "intercept": 4, + "slope": 2 + }, + "type": "linear_in_x" + } + }, + "equalsByteString": { + "cpu": { + "arguments": { + "constant": 24548, + "intercept": 29498, + "slope": 38 + }, + "type": "linear_on_diagonal" + }, + "memory": { + "arguments": 1, + "type": "constant_cost" + } + }, + "equalsData": { + "cpu": { + "arguments": { + "intercept": 898148, + "slope": 27279 + }, + "type": "min_size" + }, + "memory": { + "arguments": 1, + "type": "constant_cost" + } + }, + "equalsInteger": { + "cpu": { + "arguments": { + "intercept": 51775, + "slope": 558 + }, + "type": "min_size" + }, + "memory": { + "arguments": 1, + "type": "constant_cost" + } + }, + "equalsString": { + "cpu": { + "arguments": { + "constant": 39184, + "intercept": 1000, + "slope": 60594 + }, + "type": "linear_on_diagonal" + }, + "memory": { + "arguments": 1, + "type": "constant_cost" + } + }, + "fstPair": { + "cpu": { + "arguments": 141895, + "type": "constant_cost" + }, + "memory": { + "arguments": 32, + "type": "constant_cost" + } + }, + "headList": { + "cpu": { + "arguments": 83150, + "type": "constant_cost" + }, + "memory": { + "arguments": 32, + "type": "constant_cost" + } + }, + "iData": { + "cpu": { + "arguments": 15299, + "type": "constant_cost" + }, + "memory": { + "arguments": 32, + "type": "constant_cost" + } + }, + "ifThenElse": { + "cpu": { + "arguments": 76049, + "type": "constant_cost" + }, + "memory": { + "arguments": 1, + "type": "constant_cost" + } + }, + "indexByteString": { + "cpu": { + "arguments": 13169, + "type": "constant_cost" + }, + "memory": { + "arguments": 4, + "type": "constant_cost" + } + }, + "integerToByteString": { + "cpu": { + "arguments": { + "c0": 1293828, + "c1": 28716, + "c2": 63 + }, + "type": "quadratic_in_z" + }, + "memory": { + "arguments": { + "intercept": 0, + "slope": 1 + }, + "type": "literal_in_y_or_linear_in_z" + } + }, + "keccak_256": { + "cpu": { + "arguments": { + "intercept": 2261318, + "slope": 64571 + }, + "type": "linear_in_x" + }, + "memory": { + "arguments": 4, + "type": "constant_cost" + } + }, + "lengthOfByteString": { + "cpu": { + "arguments": 22100, + "type": "constant_cost" + }, + "memory": { + "arguments": 10, + "type": "constant_cost" + } + }, + "lessThanByteString": { + "cpu": { + "arguments": { + "intercept": 28999, + "slope": 74 + }, + "type": "min_size" + }, + "memory": { + "arguments": 1, + "type": "constant_cost" + } + }, + "lessThanEqualsByteString": { + "cpu": { + "arguments": { + "intercept": 28999, + "slope": 74 + }, + "type": "min_size" + }, + "memory": { + "arguments": 1, + "type": "constant_cost" + } + }, + "lessThanEqualsInteger": { + "cpu": { + "arguments": { + "intercept": 43285, + "slope": 552 + }, + "type": "min_size" + }, + "memory": { + "arguments": 1, + "type": "constant_cost" + } + }, + "lessThanInteger": { + "cpu": { + "arguments": { + "intercept": 44749, + "slope": 541 + }, + "type": "min_size" + }, + "memory": { + "arguments": 1, + "type": "constant_cost" + } + }, + "listData": { + "cpu": { + "arguments": 33852, + "type": "constant_cost" + }, + "memory": { + "arguments": 32, + "type": "constant_cost" + } + }, + "mapData": { + "cpu": { + "arguments": 68246, + "type": "constant_cost" + }, + "memory": { + "arguments": 32, + "type": "constant_cost" + } + }, + "mkCons": { + "cpu": { + "arguments": 72362, + "type": "constant_cost" + }, + "memory": { + "arguments": 32, + "type": "constant_cost" + } + }, + "mkNilData": { + "cpu": { + "arguments": 7243, + "type": "constant_cost" + }, + "memory": { + "arguments": 32, + "type": "constant_cost" + } + }, + "mkNilPairData": { + "cpu": { + "arguments": 7391, + "type": "constant_cost" + }, + "memory": { + "arguments": 32, + "type": "constant_cost" + } + }, + "mkPairData": { + "cpu": { + "arguments": 11546, + "type": "constant_cost" + }, + "memory": { + "arguments": 32, + "type": "constant_cost" + } + }, + "modInteger": { + "cpu": { + "arguments": { + "constant": 85848, + "model": { + "arguments": { + "intercept": 228465, + "slope": 122 + }, + "type": "multiplied_sizes" + } + }, + "type": "const_above_diagonal" + }, + "memory": { + "arguments": { + "intercept": 0, + "minimum": 1, + "slope": 1 + }, + "type": "subtracted_sizes" + } + }, + "multiplyInteger": { + "cpu": { + "arguments": { + "intercept": 90434, + "slope": 519 + }, + "type": "multiplied_sizes" + }, + "memory": { + "arguments": { + "intercept": 0, + "slope": 1 + }, + "type": "added_sizes" + } + }, + "nullList": { + "cpu": { + "arguments": 74433, + "type": "constant_cost" + }, + "memory": { + "arguments": 32, + "type": "constant_cost" + } + }, + "quotientInteger": { + "cpu": { + "arguments": { + "constant": 85848, + "model": { + "arguments": { + "intercept": 228465, + "slope": 122 + }, + "type": "multiplied_sizes" + } + }, + "type": "const_above_diagonal" + }, + "memory": { + "arguments": { + "intercept": 0, + "minimum": 1, + "slope": 1 + }, + "type": "subtracted_sizes" + } + }, + "remainderInteger": { + "cpu": { + "arguments": { + "constant": 85848, + "model": { + "arguments": { + "intercept": 228465, + "slope": 122 + }, + "type": "multiplied_sizes" + } + }, + "type": "const_above_diagonal" + }, + "memory": { + "arguments": { + "intercept": 0, + "minimum": 1, + "slope": 1 + }, + "type": "subtracted_sizes" + } + }, + "serialiseData": { + "cpu": { + "arguments": { + "intercept": 955506, + "slope": 213312 + }, + "type": "linear_in_x" + }, + "memory": { + "arguments": { + "intercept": 0, + "slope": 2 + }, + "type": "linear_in_x" + } + }, + "sha2_256": { + "cpu": { + "arguments": { + "intercept": 270652, + "slope": 22588 + }, + "type": "linear_in_x" + }, + "memory": { + "arguments": 4, + "type": "constant_cost" + } + }, + "sha3_256": { + "cpu": { + "arguments": { + "intercept": 1457325, + "slope": 64566 + }, + "type": "linear_in_x" + }, + "memory": { + "arguments": 4, + "type": "constant_cost" + } + }, + "sliceByteString": { + "cpu": { + "arguments": { + "intercept": 20467, + "slope": 1 + }, + "type": "linear_in_z" + }, + "memory": { + "arguments": { + "intercept": 4, + "slope": 0 + }, + "type": "linear_in_z" + } + }, + "sndPair": { + "cpu": { + "arguments": 141992, + "type": "constant_cost" + }, + "memory": { + "arguments": 32, + "type": "constant_cost" + } + }, + "subtractInteger": { + "cpu": { + "arguments": { + "intercept": 100788, + "slope": 420 + }, + "type": "max_size" + }, + "memory": { + "arguments": { + "intercept": 1, + "slope": 1 + }, + "type": "max_size" + } + }, + "tailList": { + "cpu": { + "arguments": 81663, + "type": "constant_cost" + }, + "memory": { + "arguments": 32, + "type": "constant_cost" + } + }, + "trace": { + "cpu": { + "arguments": 59498, + "type": "constant_cost" + }, + "memory": { + "arguments": 32, + "type": "constant_cost" + } + }, + "unBData": { + "cpu": { + "arguments": 20142, + "type": "constant_cost" + }, + "memory": { + "arguments": 32, + "type": "constant_cost" + } + }, + "unConstrData": { + "cpu": { + "arguments": 24588, + "type": "constant_cost" + }, + "memory": { + "arguments": 32, + "type": "constant_cost" + } + }, + "unIData": { + "cpu": { + "arguments": 20744, + "type": "constant_cost" + }, + "memory": { + "arguments": 32, + "type": "constant_cost" + } + }, + "unListData": { + "cpu": { + "arguments": 25933, + "type": "constant_cost" + }, + "memory": { + "arguments": 32, + "type": "constant_cost" + } + }, + "unMapData": { + "cpu": { + "arguments": 24623, + "type": "constant_cost" + }, + "memory": { + "arguments": 32, + "type": "constant_cost" + } + }, + "verifyEcdsaSecp256k1Signature": { + "cpu": { + "arguments": 43053543, + "type": "constant_cost" + }, + "memory": { + "arguments": 10, + "type": "constant_cost" + } + }, + "verifyEd25519Signature": { + "cpu": { + "arguments": { + "intercept": 53384111, + "slope": 14333 + }, + "type": "linear_in_y" + }, + "memory": { + "arguments": 10, + "type": "constant_cost" + } + }, + "verifySchnorrSecp256k1Signature": { + "cpu": { + "arguments": { + "intercept": 43574283, + "slope": 26308 + }, + "type": "linear_in_y" + }, + "memory": { + "arguments": 10, + "type": "constant_cost" + } + } +} diff --git a/plutus-core/cost-model/data/builtinCostModelC.json b/plutus-core/cost-model/data/builtinCostModelC.json new file mode 100644 index 00000000000..8c7fc158bad --- /dev/null +++ b/plutus-core/cost-model/data/builtinCostModelC.json @@ -0,0 +1,955 @@ +{ + "addInteger": { + "cpu": { + "arguments": { + "intercept": 100788, + "slope": 420 + }, + "type": "max_size" + }, + "memory": { + "arguments": { + "intercept": 1, + "slope": 1 + }, + "type": "max_size" + } + }, + "appendByteString": { + "cpu": { + "arguments": { + "intercept": 1000, + "slope": 173 + }, + "type": "added_sizes" + }, + "memory": { + "arguments": { + "intercept": 0, + "slope": 1 + }, + "type": "added_sizes" + } + }, + "appendString": { + "cpu": { + "arguments": { + "intercept": 1000, + "slope": 59957 + }, + "type": "added_sizes" + }, + "memory": { + "arguments": { + "intercept": 4, + "slope": 1 + }, + "type": "added_sizes" + } + }, + "bData": { + "cpu": { + "arguments": 11183, + "type": "constant_cost" + }, + "memory": { + "arguments": 32, + "type": "constant_cost" + } + }, + "blake2b_224": { + "cpu": { + "arguments": { + "intercept": 207616, + "slope": 8310 + }, + "type": "linear_in_x" + }, + "memory": { + "arguments": 4, + "type": "constant_cost" + } + }, + "blake2b_256": { + "cpu": { + "arguments": { + "intercept": 201305, + "slope": 8356 + }, + "type": "linear_in_x" + }, + "memory": { + "arguments": 4, + "type": "constant_cost" + } + }, + "bls12_381_G1_add": { + "cpu": { + "arguments": 962335, + "type": "constant_cost" + }, + "memory": { + "arguments": 18, + "type": "constant_cost" + } + }, + "bls12_381_G1_compress": { + "cpu": { + "arguments": 2780678, + "type": "constant_cost" + }, + "memory": { + "arguments": 6, + "type": "constant_cost" + } + }, + "bls12_381_G1_equal": { + "cpu": { + "arguments": 442008, + "type": "constant_cost" + }, + "memory": { + "arguments": 1, + "type": "constant_cost" + } + }, + "bls12_381_G1_hashToGroup": { + "cpu": { + "arguments": { + "intercept": 52538055, + "slope": 3756 + }, + "type": "linear_in_x" + }, + "memory": { + "arguments": 18, + "type": "constant_cost" + } + }, + "bls12_381_G1_neg": { + "cpu": { + "arguments": 267929, + "type": "constant_cost" + }, + "memory": { + "arguments": 18, + "type": "constant_cost" + } + }, + "bls12_381_G1_scalarMul": { + "cpu": { + "arguments": { + "intercept": 76433006, + "slope": 8868 + }, + "type": "linear_in_x" + }, + "memory": { + "arguments": 18, + "type": "constant_cost" + } + }, + "bls12_381_G1_uncompress": { + "cpu": { + "arguments": 52948122, + "type": "constant_cost" + }, + "memory": { + "arguments": 18, + "type": "constant_cost" + } + }, + "bls12_381_G2_add": { + "cpu": { + "arguments": 1995836, + "type": "constant_cost" + }, + "memory": { + "arguments": 36, + "type": "constant_cost" + } + }, + "bls12_381_G2_compress": { + "cpu": { + "arguments": 3227919, + "type": "constant_cost" + }, + "memory": { + "arguments": 12, + "type": "constant_cost" + } + }, + "bls12_381_G2_equal": { + "cpu": { + "arguments": 901022, + "type": "constant_cost" + }, + "memory": { + "arguments": 1, + "type": "constant_cost" + } + }, + "bls12_381_G2_hashToGroup": { + "cpu": { + "arguments": { + "intercept": 166917843, + "slope": 4307 + }, + "type": "linear_in_x" + }, + "memory": { + "arguments": 36, + "type": "constant_cost" + } + }, + "bls12_381_G2_neg": { + "cpu": { + "arguments": 284546, + "type": "constant_cost" + }, + "memory": { + "arguments": 36, + "type": "constant_cost" + } + }, + "bls12_381_G2_scalarMul": { + "cpu": { + "arguments": { + "intercept": 158221314, + "slope": 26549 + }, + "type": "linear_in_x" + }, + "memory": { + "arguments": 36, + "type": "constant_cost" + } + }, + "bls12_381_G2_uncompress": { + "cpu": { + "arguments": 74698472, + "type": "constant_cost" + }, + "memory": { + "arguments": 36, + "type": "constant_cost" + } + }, + "bls12_381_finalVerify": { + "cpu": { + "arguments": 333849714, + "type": "constant_cost" + }, + "memory": { + "arguments": 1, + "type": "constant_cost" + } + }, + "bls12_381_millerLoop": { + "cpu": { + "arguments": 254006273, + "type": "constant_cost" + }, + "memory": { + "arguments": 72, + "type": "constant_cost" + } + }, + "bls12_381_mulMlResult": { + "cpu": { + "arguments": 2174038, + "type": "constant_cost" + }, + "memory": { + "arguments": 72, + "type": "constant_cost" + } + }, + "byteStringToInteger": { + "cpu": { + "arguments": { + "c0": 1006041, + "c1": 43623, + "c2": 251 + }, + "type": "quadratic_in_y" + }, + "memory": { + "arguments": { + "intercept": 0, + "slope": 1 + }, + "type": "linear_in_y" + } + }, + "chooseData": { + "cpu": { + "arguments": 94375, + "type": "constant_cost" + }, + "memory": { + "arguments": 32, + "type": "constant_cost" + } + }, + "chooseList": { + "cpu": { + "arguments": 132994, + "type": "constant_cost" + }, + "memory": { + "arguments": 32, + "type": "constant_cost" + } + }, + "chooseUnit": { + "cpu": { + "arguments": 61462, + "type": "constant_cost" + }, + "memory": { + "arguments": 4, + "type": "constant_cost" + } + }, + "consByteString": { + "cpu": { + "arguments": { + "intercept": 72010, + "slope": 178 + }, + "type": "linear_in_y" + }, + "memory": { + "arguments": { + "intercept": 0, + "slope": 1 + }, + "type": "added_sizes" + } + }, + "constrData": { + "cpu": { + "arguments": 22151, + "type": "constant_cost" + }, + "memory": { + "arguments": 32, + "type": "constant_cost" + } + }, + "decodeUtf8": { + "cpu": { + "arguments": { + "intercept": 91189, + "slope": 769 + }, + "type": "linear_in_x" + }, + "memory": { + "arguments": { + "intercept": 4, + "slope": 2 + }, + "type": "linear_in_x" + } + }, + "divideInteger": { + "cpu": { + "arguments": { + "constant": 85848, + "model": { + "arguments": { + "c00": 123203, + "c01": 7305, + "c02": -900, + "c10": 1716, + "c11": 549, + "c20": 57, + "minimum": 85848 + }, + "type": "quadratic_in_x_and_y" + } + }, + "type": "const_above_diagonal" + }, + "memory": { + "arguments": { + "intercept": 0, + "minimum": 1, + "slope": 1 + }, + "type": "subtracted_sizes" + } + }, + "encodeUtf8": { + "cpu": { + "arguments": { + "intercept": 1000, + "slope": 42921 + }, + "type": "linear_in_x" + }, + "memory": { + "arguments": { + "intercept": 4, + "slope": 2 + }, + "type": "linear_in_x" + } + }, + "equalsByteString": { + "cpu": { + "arguments": { + "constant": 24548, + "intercept": 29498, + "slope": 38 + }, + "type": "linear_on_diagonal" + }, + "memory": { + "arguments": 1, + "type": "constant_cost" + } + }, + "equalsData": { + "cpu": { + "arguments": { + "intercept": 898148, + "slope": 27279 + }, + "type": "min_size" + }, + "memory": { + "arguments": 1, + "type": "constant_cost" + } + }, + "equalsInteger": { + "cpu": { + "arguments": { + "intercept": 51775, + "slope": 558 + }, + "type": "min_size" + }, + "memory": { + "arguments": 1, + "type": "constant_cost" + } + }, + "equalsString": { + "cpu": { + "arguments": { + "constant": 39184, + "intercept": 1000, + "slope": 60594 + }, + "type": "linear_on_diagonal" + }, + "memory": { + "arguments": 1, + "type": "constant_cost" + } + }, + "fstPair": { + "cpu": { + "arguments": 141895, + "type": "constant_cost" + }, + "memory": { + "arguments": 32, + "type": "constant_cost" + } + }, + "headList": { + "cpu": { + "arguments": 83150, + "type": "constant_cost" + }, + "memory": { + "arguments": 32, + "type": "constant_cost" + } + }, + "iData": { + "cpu": { + "arguments": 15299, + "type": "constant_cost" + }, + "memory": { + "arguments": 32, + "type": "constant_cost" + } + }, + "ifThenElse": { + "cpu": { + "arguments": 76049, + "type": "constant_cost" + }, + "memory": { + "arguments": 1, + "type": "constant_cost" + } + }, + "indexByteString": { + "cpu": { + "arguments": 13169, + "type": "constant_cost" + }, + "memory": { + "arguments": 4, + "type": "constant_cost" + } + }, + "integerToByteString": { + "cpu": { + "arguments": { + "c0": 1293828, + "c1": 28716, + "c2": 63 + }, + "type": "quadratic_in_z" + }, + "memory": { + "arguments": { + "intercept": 0, + "slope": 1 + }, + "type": "literal_in_y_or_linear_in_z" + } + }, + "keccak_256": { + "cpu": { + "arguments": { + "intercept": 2261318, + "slope": 64571 + }, + "type": "linear_in_x" + }, + "memory": { + "arguments": 4, + "type": "constant_cost" + } + }, + "lengthOfByteString": { + "cpu": { + "arguments": 22100, + "type": "constant_cost" + }, + "memory": { + "arguments": 10, + "type": "constant_cost" + } + }, + "lessThanByteString": { + "cpu": { + "arguments": { + "intercept": 28999, + "slope": 74 + }, + "type": "min_size" + }, + "memory": { + "arguments": 1, + "type": "constant_cost" + } + }, + "lessThanEqualsByteString": { + "cpu": { + "arguments": { + "intercept": 28999, + "slope": 74 + }, + "type": "min_size" + }, + "memory": { + "arguments": 1, + "type": "constant_cost" + } + }, + "lessThanEqualsInteger": { + "cpu": { + "arguments": { + "intercept": 43285, + "slope": 552 + }, + "type": "min_size" + }, + "memory": { + "arguments": 1, + "type": "constant_cost" + } + }, + "lessThanInteger": { + "cpu": { + "arguments": { + "intercept": 44749, + "slope": 541 + }, + "type": "min_size" + }, + "memory": { + "arguments": 1, + "type": "constant_cost" + } + }, + "listData": { + "cpu": { + "arguments": 33852, + "type": "constant_cost" + }, + "memory": { + "arguments": 32, + "type": "constant_cost" + } + }, + "mapData": { + "cpu": { + "arguments": 68246, + "type": "constant_cost" + }, + "memory": { + "arguments": 32, + "type": "constant_cost" + } + }, + "mkCons": { + "cpu": { + "arguments": 72362, + "type": "constant_cost" + }, + "memory": { + "arguments": 32, + "type": "constant_cost" + } + }, + "mkNilData": { + "cpu": { + "arguments": 7243, + "type": "constant_cost" + }, + "memory": { + "arguments": 32, + "type": "constant_cost" + } + }, + "mkNilPairData": { + "cpu": { + "arguments": 7391, + "type": "constant_cost" + }, + "memory": { + "arguments": 32, + "type": "constant_cost" + } + }, + "mkPairData": { + "cpu": { + "arguments": 11546, + "type": "constant_cost" + }, + "memory": { + "arguments": 32, + "type": "constant_cost" + } + }, + "modInteger": { + "cpu": { + "arguments": { + "constant": 85848, + "model": { + "arguments": { + "c00": 123203, + "c01": 7305, + "c02": -900, + "c10": 1716, + "c11": 549, + "c20": 57, + "minimum": 85848 + }, + "type": "quadratic_in_x_and_y" + } + }, + "type": "const_above_diagonal" + }, + "memory": { + "arguments": { + "intercept": 0, + "slope": 1 + }, + "type": "linear_in_y" + } + }, + "multiplyInteger": { + "cpu": { + "arguments": { + "intercept": 90434, + "slope": 519 + }, + "type": "multiplied_sizes" + }, + "memory": { + "arguments": { + "intercept": 0, + "slope": 1 + }, + "type": "added_sizes" + } + }, + "nullList": { + "cpu": { + "arguments": 74433, + "type": "constant_cost" + }, + "memory": { + "arguments": 32, + "type": "constant_cost" + } + }, + "quotientInteger": { + "cpu": { + "arguments": { + "constant": 85848, + "model": { + "arguments": { + "c00": 123203, + "c01": 7305, + "c02": -900, + "c10": 1716, + "c11": 549, + "c20": 57, + "minimum": 85848 + }, + "type": "quadratic_in_x_and_y" + } + }, + "type": "const_above_diagonal" + }, + "memory": { + "arguments": { + "intercept": 0, + "minimum": 1, + "slope": 1 + }, + "type": "subtracted_sizes" + } + }, + "remainderInteger": { + "cpu": { + "arguments": { + "constant": 85848, + "model": { + "arguments": { + "c00": 123203, + "c01": 7305, + "c02": -900, + "c10": 1716, + "c11": 549, + "c20": 57, + "minimum": 85848 + }, + "type": "quadratic_in_x_and_y" + } + }, + "type": "const_above_diagonal" + }, + "memory": { + "arguments": { + "intercept": 0, + "slope": 1 + }, + "type": "linear_in_y" + } + }, + "serialiseData": { + "cpu": { + "arguments": { + "intercept": 955506, + "slope": 213312 + }, + "type": "linear_in_x" + }, + "memory": { + "arguments": { + "intercept": 0, + "slope": 2 + }, + "type": "linear_in_x" + } + }, + "sha2_256": { + "cpu": { + "arguments": { + "intercept": 270652, + "slope": 22588 + }, + "type": "linear_in_x" + }, + "memory": { + "arguments": 4, + "type": "constant_cost" + } + }, + "sha3_256": { + "cpu": { + "arguments": { + "intercept": 1457325, + "slope": 64566 + }, + "type": "linear_in_x" + }, + "memory": { + "arguments": 4, + "type": "constant_cost" + } + }, + "sliceByteString": { + "cpu": { + "arguments": { + "intercept": 20467, + "slope": 1 + }, + "type": "linear_in_z" + }, + "memory": { + "arguments": { + "intercept": 4, + "slope": 0 + }, + "type": "linear_in_z" + } + }, + "sndPair": { + "cpu": { + "arguments": 141992, + "type": "constant_cost" + }, + "memory": { + "arguments": 32, + "type": "constant_cost" + } + }, + "subtractInteger": { + "cpu": { + "arguments": { + "intercept": 100788, + "slope": 420 + }, + "type": "max_size" + }, + "memory": { + "arguments": { + "intercept": 1, + "slope": 1 + }, + "type": "max_size" + } + }, + "tailList": { + "cpu": { + "arguments": 81663, + "type": "constant_cost" + }, + "memory": { + "arguments": 32, + "type": "constant_cost" + } + }, + "trace": { + "cpu": { + "arguments": 59498, + "type": "constant_cost" + }, + "memory": { + "arguments": 32, + "type": "constant_cost" + } + }, + "unBData": { + "cpu": { + "arguments": 20142, + "type": "constant_cost" + }, + "memory": { + "arguments": 32, + "type": "constant_cost" + } + }, + "unConstrData": { + "cpu": { + "arguments": 24588, + "type": "constant_cost" + }, + "memory": { + "arguments": 32, + "type": "constant_cost" + } + }, + "unIData": { + "cpu": { + "arguments": 20744, + "type": "constant_cost" + }, + "memory": { + "arguments": 32, + "type": "constant_cost" + } + }, + "unListData": { + "cpu": { + "arguments": 25933, + "type": "constant_cost" + }, + "memory": { + "arguments": 32, + "type": "constant_cost" + } + }, + "unMapData": { + "cpu": { + "arguments": 24623, + "type": "constant_cost" + }, + "memory": { + "arguments": 32, + "type": "constant_cost" + } + }, + "verifyEcdsaSecp256k1Signature": { + "cpu": { + "arguments": 43053543, + "type": "constant_cost" + }, + "memory": { + "arguments": 10, + "type": "constant_cost" + } + }, + "verifyEd25519Signature": { + "cpu": { + "arguments": { + "intercept": 53384111, + "slope": 14333 + }, + "type": "linear_in_y" + }, + "memory": { + "arguments": 10, + "type": "constant_cost" + } + }, + "verifySchnorrSecp256k1Signature": { + "cpu": { + "arguments": { + "intercept": 43574283, + "slope": 26308 + }, + "type": "linear_in_y" + }, + "memory": { + "arguments": 10, + "type": "constant_cost" + } + } +} \ No newline at end of file diff --git a/plutus-core/cost-model/data/cekMachineCosts.json b/plutus-core/cost-model/data/cekMachineCostsA.json similarity index 100% rename from plutus-core/cost-model/data/cekMachineCosts.json rename to plutus-core/cost-model/data/cekMachineCostsA.json diff --git a/plutus-core/cost-model/data/cekMachineCostsB.json b/plutus-core/cost-model/data/cekMachineCostsB.json new file mode 100644 index 00000000000..ac4ef705fcc --- /dev/null +++ b/plutus-core/cost-model/data/cekMachineCostsB.json @@ -0,0 +1,13 @@ +{ + "cekStartupCost" : {"exBudgetCPU": 100, "exBudgetMemory": 100}, + "cekVarCost" : {"exBudgetCPU": 16000, "exBudgetMemory": 100}, + "cekConstCost" : {"exBudgetCPU": 16000, "exBudgetMemory": 100}, + "cekLamCost" : {"exBudgetCPU": 16000, "exBudgetMemory": 100}, + "cekDelayCost" : {"exBudgetCPU": 16000, "exBudgetMemory": 100}, + "cekForceCost" : {"exBudgetCPU": 16000, "exBudgetMemory": 100}, + "cekApplyCost" : {"exBudgetCPU": 16000, "exBudgetMemory": 100}, + "cekBuiltinCost" : {"exBudgetCPU": 16000, "exBudgetMemory": 100}, + "cekConstrCost" : {"exBudgetCPU": 16000, "exBudgetMemory": 100}, + "cekCaseCost" : {"exBudgetCPU": 16000, "exBudgetMemory": 100} +} + diff --git a/plutus-core/cost-model/data/cekMachineCostsC.json b/plutus-core/cost-model/data/cekMachineCostsC.json new file mode 100644 index 00000000000..ac4ef705fcc --- /dev/null +++ b/plutus-core/cost-model/data/cekMachineCostsC.json @@ -0,0 +1,13 @@ +{ + "cekStartupCost" : {"exBudgetCPU": 100, "exBudgetMemory": 100}, + "cekVarCost" : {"exBudgetCPU": 16000, "exBudgetMemory": 100}, + "cekConstCost" : {"exBudgetCPU": 16000, "exBudgetMemory": 100}, + "cekLamCost" : {"exBudgetCPU": 16000, "exBudgetMemory": 100}, + "cekDelayCost" : {"exBudgetCPU": 16000, "exBudgetMemory": 100}, + "cekForceCost" : {"exBudgetCPU": 16000, "exBudgetMemory": 100}, + "cekApplyCost" : {"exBudgetCPU": 16000, "exBudgetMemory": 100}, + "cekBuiltinCost" : {"exBudgetCPU": 16000, "exBudgetMemory": 100}, + "cekConstrCost" : {"exBudgetCPU": 16000, "exBudgetMemory": 100}, + "cekCaseCost" : {"exBudgetCPU": 16000, "exBudgetMemory": 100} +} + diff --git a/plutus-core/cost-model/data/models.R b/plutus-core/cost-model/data/models.R index 069e3c5af3f..86162b36873 100644 --- a/plutus-core/cost-model/data/models.R +++ b/plutus-core/cost-model/data/models.R @@ -421,8 +421,8 @@ modelFun <- function(path) { filter.and.check.nonempty(fname) %>% filter(x_mem > 0 & y_mem > 0) %>% discard.overhead () - m <- lm(t ~ I(x_mem + y_mem), filtered) - mk.result(m,"added_sizes") + m <- lm(t ~ I(x_mem * y_mem), filtered) + mk.result(m,"multiplied_sizes") } ## We do want I(x+y) here ^: the cost is linear, but symmetric. @@ -435,20 +435,24 @@ modelFun <- function(path) { ## a good fit. divideIntegerModel <- { fname <- "DivideInteger" - filtered <- data %>% ## Data below diagonal + + data1 <- data %>% ## Data on or above diagonal: effectively constant time. filter.and.check.nonempty(fname) %>% filter(x_mem > 0 & y_mem > 0) %>% - filter (x_mem > y_mem) %>% + filter (x_mem <= y_mem) %>% discard.overhead () - m <- lm(t ~ I(x_mem * y_mem), filtered) + constant = mean(data1$t) - filtered2 <- data %>% ## Data on or above diagonal: effectively constant time. + data2 <- data %>% ## Data below diagonal filter.and.check.nonempty(fname) %>% filter(x_mem > 0 & y_mem > 0) %>% - filter (x_mem <= y_mem) %>% + filter (x_mem > y_mem) %>% discard.overhead () - constant = mean(filtered2$t) - mk.result(m, "const_above_diagonal", constant=constant, subtype="multiplied_sizes") + m <- lm(t ~ I(x_mem) + I(y_mem) + I(x_mem^2) + I(x_mem * y_mem) + I(y_mem^2), data2) + + ## Re-use the above-diagonal cost as the minimum cost below the diagonal. See Note + ## [Minimum values for two-variable quadratic costing functions]. + mk.result(m, "const_above_diagonal", constant=constant, minimum=constant, subtype="quadratic_in_x_and_y") } quotientIntegerModel <- divideIntegerModel @@ -529,7 +533,7 @@ modelFun <- function(path) { m <- lm(t ~ x_mem, filtered) constant <- min(filtered$t) - ## FIXME. The `constant` value above is the above-diagonal cost, which we + ## FIXME. The `constant` value above is the off-diagonal cost, which we ## don't collect benchmarking data for. Collect some data and infer it. mk.result(m, "linear_on_diagonal", constant=constant) @@ -595,7 +599,7 @@ modelFun <- function(path) { m <- lm(t ~ x_mem, filtered) constant <- min(filtered$t) - ## FIXME. The `constant` value above is the above-diagonal cost, which + ## FIXME. The `constant` value above is the off-diagonal cost, which ## we don't collect benchmarking data for. We might want to collect ## some data and infer it. @@ -740,14 +744,11 @@ modelFun <- function(path) { ##### Models to be returned to Haskell ##### - models <- list ( + models.for.adjustment <- + list ( addIntegerModel = addIntegerModel, subtractIntegerModel = subtractIntegerModel, multiplyIntegerModel = multiplyIntegerModel, - divideIntegerModel = divideIntegerModel, - quotientIntegerModel = quotientIntegerModel, - remainderIntegerModel = remainderIntegerModel, - modIntegerModel = modIntegerModel, equalsIntegerModel = equalsIntegerModel, lessThanIntegerModel = lessThanIntegerModel, lessThanEqualsIntegerModel = lessThanEqualsIntegerModel, @@ -816,11 +817,20 @@ modelFun <- function(path) { bls12_381_finalVerifyModel = bls12_381_finalVerifyModel, integerToByteStringModel = integerToByteStringModel, byteStringToIntegerModel = byteStringToIntegerModel - ) + ) + + ## The integer division functions have a complex costing behaviour that requires some negative + ## coefficients to get accurate results. Because of this they are excluded from adjustModels: + ## the Haskell code receives the raw model and takes care of the (unlikely) case when a negative + ## value is returned itself (using a minimm value returned from R as an extra parameter). Any + ## other builtins which need a non-monotonic costing function should be treated similarly. - return(adjustModels(models)) + unadjusted.models <- list ( + divideIntegerModel = divideIntegerModel, + quotientIntegerModel = quotientIntegerModel, + remainderIntegerModel = remainderIntegerModel, + modIntegerModel = modIntegerModel + ) - ## Caution! If we introduce any non-monotonic costing functions they should - ## be excluded from adjustModels and make their own adjustments for eg, - ## possible negative return values + return(c(adjustModels(models.for.adjustment), unadjusted.models)) } diff --git a/plutus-core/cost-model/print-cost-model/Main.hs b/plutus-core/cost-model/print-cost-model/Main.hs index 921c45f2bb0..049ef658bd6 100644 --- a/plutus-core/cost-model/print-cost-model/Main.hs +++ b/plutus-core/cost-model/print-cost-model/Main.hs @@ -1,7 +1,6 @@ {-# LANGUAGE LambdaCase #-} {-# LANGUAGE OverloadedStrings #-} - {- | A program to parse a JSON representation of costing functions for Plutus Core builtins and print it in readable form. -} module Main where @@ -38,10 +37,24 @@ renderLinearFunction (LinearFunction intercept slope) var = unparen v = if v /= "" && head v == '(' && last v == ')' then tail $ init v else v -renderQuadraticFunction :: QuadraticFunction -> String -> String -renderQuadraticFunction (QuadraticFunction c0 c1 c2) var = +renderOneVariableQuadraticFunction + :: OneVariableQuadraticFunction + -> String + -> String +renderOneVariableQuadraticFunction + (OneVariableQuadraticFunction c0 c1 c2) var = printf "%d + %d*%s + %d*%s^2" c0 c1 var c2 var +renderTwoVariableQuadraticFunction + :: TwoVariableQuadraticFunction + -> String + -> String + -> String +renderTwoVariableQuadraticFunction + (TwoVariableQuadraticFunction minVal c00 c10 c01 c20 c11 c02) var1 var2 = + printf "max(%d, %d + %d*%s + %d*%s + %d*%s^2 + %d*%s*%s + %d*%s^2)" + minVal c00 c10 var1 c01 var2 c20 var1 c11 var1 var2 c02 var2 + renderModel :: Model -> [String] renderModel = \case @@ -53,8 +66,9 @@ renderModel = LinearInX f -> [ renderLinearFunction f "x" ] LinearInY f -> [ renderLinearFunction f "y" ] LinearInZ f -> [ renderLinearFunction f "z" ] - QuadraticInY f -> [ renderQuadraticFunction f "y" ] - QuadraticInZ f -> [ renderQuadraticFunction f "z" ] + QuadraticInY f -> [ renderOneVariableQuadraticFunction f "y" ] + QuadraticInZ f -> [ renderOneVariableQuadraticFunction f "z" ] + QuadraticInXAndY f -> [ renderTwoVariableQuadraticFunction f "x" "y" ] LiteralInYOrLinearInZ f -> [ "if y==0" , printf "then %s" $ renderLinearFunction f "z" , printf "else y bytes" @@ -107,10 +121,22 @@ printModel component width (name, CpuAndMemoryModel cpu mem) = do ---------------- Command line processing ---------------- -usage :: FilePath -> IO a -usage defaultCostModelPath = do +-- The names of the semantic variants. If X is a semantic variant and you pass +-- -X on the command line then the program looks for a cost model file called +-- builtinCostModelX.json in the data directory and prints its contents. The -d +-- option prints the cost model file (if any) corresponding to the final element +-- in the list. +semvars :: [String] +semvars = ["A", "B", "C"] + +semvarOptions :: [String] +semvarOptions = fmap ('-':) semvars + +usage :: [String] -> IO a +usage paths = do + let semvarInfo = printf "[%s]" (intercalate "|" semvarOptions) :: String prog <- getProgName - printf "Usage: %s [-c|--cpu|-m|--mem|--memory] [-d|--default] [<filename>]\n" prog + printf "Usage: %s [-c|--cpu|-m|--mem|--memory] [-d|--default] [<filename>] %s\n" prog semvarInfo printf "\n" printf "Print a JSON cost model file in readable form.\n" printf "The variables x, y, z, etc. represent the *sizes* of the builtin's arguments\n" @@ -121,33 +147,39 @@ usage defaultCostModelPath = do printf " -c, --cpu (default): print the CPU costing functions for each built-in function\n" printf " -m, --mem --memory: print the memory costing functions for each built-in function\n" printf " -d, --default: print the contents of the default cost model in\n" - printf " %s\n" defaultCostModelPath + printf " %s\n" (last paths) printf " <filename>: read and print the cost model in the given file\n" + printf " %s: read and print out the cost model for the given semantics variant\n" + (intercalate "," semvarOptions) exitSuccess -parseArgs :: [String] -> FilePath -> IO (ModelComponent, Maybe String) -parseArgs args defaultCostModelPath = +parseArgs :: [String] -> IO (ModelComponent, Maybe String) +parseArgs args = do + let prefix = "cost-model/data/builtinCostModel" + extension = ".json" + paths <- mapM (\x -> getDataFileName (prefix ++ x ++ extension)) semvars + let parse [] result = pure result + parse (arg:rest) (component, input) = + case arg of + [] -> errorWithoutStackTrace "Empty argument" + '-':_ -> parseOption arg rest (component, input) + _ -> parse rest (component, Just arg) + parseOption arg rest (component, input) + | Just path <- lookup arg $ zip semvarOptions paths = + parse rest (component, Just path) + | elem arg ["-d", "--default"] = + parse rest (component, Just $ last paths) + | elem arg ["-c", "--cpu"] = parse rest (Cpu, input) + | elem arg ["-m", "--mem", "--memory"] = parse rest (Memory, input) + | elem arg ["-h", "--help"] = usage paths + | otherwise = + printf "Error: unknown option %s\n" arg >> usage paths parse args (Cpu, Nothing) - where parse [] result = pure result - parse (arg:rest) (component, input) = - case arg of - [] -> errorWithoutStackTrace "Empty argument" - '-':_ -> parseOption arg rest (component, input) - _ -> parse rest (component, Just arg) - parseOption arg rest (component, input) - | elem arg ["-d", "--default"] = - parse rest (component, Just defaultCostModelPath) - | elem arg ["-c", "--cpu"] = parse rest (Cpu, input) - | elem arg ["-m", "--mem", "--memory"] = parse rest (Memory, input) - | elem arg ["-h", "--help"] = usage defaultCostModelPath - | otherwise = - printf "Error: unknown option %s\n" arg >> usage defaultCostModelPath main :: IO () main = do args <- getArgs - defaultCostModelPath <- getDataFileName "cost-model/data/builtinCostModel.json" - (component, input) <- parseArgs args defaultCostModelPath + (component, input) <- parseArgs args bytes <- case input of Nothing -> BSL.getContents -- Read from stdin Just file -> BSL.readFile file diff --git a/plutus-core/cost-model/test/TestCostModels.hs b/plutus-core/cost-model/test/TestCostModels.hs index cfb75c798b1..5e446022687 100644 --- a/plutus-core/cost-model/test/TestCostModels.hs +++ b/plutus-core/cost-model/test/TestCostModels.hs @@ -44,6 +44,9 @@ import Hedgehog.Range qualified as Range for exact equality of the outputs but instead check that the R result and the Haskell result agreee to within a factor of 1/100 (one percent). -} +-- FIXME: with this limit the two-variable quadratic costing functions for the +-- integer division builtins fail to pass the test. We don't run the test in +-- CI, but we should still fix it. -- | Maximum allowable difference beween R result and Haskell result. epsilon :: Double diff --git a/plutus-core/executables/plc/Main.hs b/plutus-core/executables/plc/Main.hs index 63d57d73cd7..e822b729dfc 100644 --- a/plutus-core/executables/plc/Main.hs +++ b/plutus-core/executables/plc/Main.hs @@ -48,7 +48,7 @@ data Command = Apply ApplyOptions | Example ExampleOptions | Erase EraseOptions | Eval EvalOptions - | DumpModel + | DumpModel (BuiltinSemanticsVariant PLC.DefaultFun) | PrintBuiltinSignatures ---------------- Option parsers ---------------- @@ -114,8 +114,8 @@ plutusOpts = hsubparser $ <> command "evaluate" (info (Eval <$> evalOpts) (progDesc "Evaluate a typed Plutus Core program using the CK machine.")) - <> command "dump-model" - (info (pure DumpModel) + <> command "dump-cost-model" + (info (DumpModel <$> builtinSemanticsVariant) (progDesc "Dump the cost model parameters.")) <> command "print-builtin-signatures" (info (pure PrintBuiltinSignatures) @@ -223,5 +223,5 @@ main = do Erase opts -> runErase opts Print opts -> runPrint @PlcProg opts Convert opts -> runConvert @PlcProg opts - DumpModel -> runDumpModel + DumpModel opts -> runDumpModel opts PrintBuiltinSignatures -> runPrintBuiltinSignatures diff --git a/plutus-core/executables/plutus/AnyProgram/Compile.hs b/plutus-core/executables/plutus/AnyProgram/Compile.hs index 1bbb1a9d91f..e71faad1abd 100644 --- a/plutus-core/executables/plutus/AnyProgram/Compile.hs +++ b/plutus-core/executables/plutus/AnyProgram/Compile.hs @@ -131,7 +131,7 @@ compileProgram = curry $ \case (SUplc _ _, SPir SName _) -> throwingPIR "Cannot compile uplc to pir" embedProgram :: PLC.Program tyname name uni fun ann -> PIR.Program tyname name uni fun ann -embedProgram (PLC.Program a v t) = PIR.Program a v $ embed t +embedProgram (PLC.Program a v t) = PIR.Program a v $ embedTerm t toOutAnn :: (Functor f, PIR.AsError e uni fun a, MonadError e m) => SAnn s1 diff --git a/plutus-core/executables/plutus/AnyProgram/IO.hs b/plutus-core/executables/plutus/AnyProgram/IO.hs index 5c304cbe5b6..5e61e0ff368 100644 --- a/plutus-core/executables/plutus/AnyProgram/IO.hs +++ b/plutus-core/executables/plutus/AnyProgram/IO.hs @@ -46,7 +46,7 @@ readProgram sngS fileS = case parseProgram @ParserErrorBundle sngS $ T.decodeUtf8Lenient bs of Left err -> failE $ show err Right res -> pure res - Flat_ -> withFlatL sngS $ do + Flat_ -> withLang @Flat sngS $ do bs <- readFileName (fromJust $ fileS^.fName) case unflat bs of Left err -> failE $ show err @@ -59,7 +59,7 @@ readProgram sngS fileS = case deserialiseOrFail $ BSL.fromStrict bs of Left err -> failE $ show err Right res -> pure res - _ -> withFlatL sngS $ + _ -> withLang @Flat sngS $ -- this is a cbor-embedded bytestring of the Flat encoding -- so we use the SerialiseViaFlat newtype wrapper. case deserialiseOrFail $ BSL.fromStrict bs of @@ -74,7 +74,7 @@ writeProgram sng ast file = Just fn -> do printED $ show $ "Outputting" <+> pretty file case file^.fType.fFormat of - Flat_ -> writeFileName fn $ withFlatL sng $ flat ast + Flat_ -> writeFileName fn $ withLang @Flat sng $ flat ast Text -> writeFileName fn $ T.encodeUtf8 $ renderStrict @@ -84,7 +84,7 @@ writeProgram sng ast file = Cbor -> writeFileName fn $ BSL.toStrict $ case sng %~ SData of Proved Refl -> serialise ast - _ -> withFlatL sng $ serialise (SerialiseViaFlat ast) + _ -> withLang @Flat sng $ serialise (SerialiseViaFlat ast) Json -> error "FIXME: not implemented yet" _ -> printE "Program passed all checks. No output file was written, use -o or --stdout." @@ -98,11 +98,11 @@ prettyWithStyle = \case readFileName :: (?opts :: Opts) => FileName -> IO BS.ByteString readFileName = \case - StdOut -> failE "should not happen" - StdIn -> BS.hGetContents stdin + StdOut -> failE "should not happen" + StdIn -> BS.hGetContents stdin AbsolutePath fp -> BS.readFile fp -- TODO: it needs some restructuring in Types, Example is not a FileName and cannot be IO-read - Example{} -> failE "should not happen" + Example{} -> failE "should not happen" writeFileName :: (?opts :: Opts) => FileName -> BS.ByteString -> IO () diff --git a/plutus-core/executables/plutus/AnyProgram/Run.hs b/plutus-core/executables/plutus/AnyProgram/Run.hs index 1fb24679edb..0e914b9cbb2 100644 --- a/plutus-core/executables/plutus/AnyProgram/Run.hs +++ b/plutus-core/executables/plutus/AnyProgram/Run.hs @@ -19,7 +19,6 @@ import Types import UntypedPlutusCore as UPLC import UntypedPlutusCore.Evaluation.Machine.Cek as UPLC -import Data.Foldable import Data.Text as Text runRun :: (?opts :: Opts) @@ -41,12 +40,13 @@ runRun = \case SData{} -> const $ failE "Cannot run data as a program." +-- TODO: add a semantic variant here to get the right machine parameters runPlc :: (?opts :: Opts) => PLC.Program TyName Name DefaultUni DefaultFun a -> IO () runPlc (PLC.Program _ _ t) | Nothing <- _budget ?opts = -- CK machine currently only works with ann==() , so we void before - case PLC.runCk defaultBuiltinsRuntime False (void t) of + case PLC.runCk defaultBuiltinsRuntimeForTesting False (void t) of (Left errorWithCause, logs) -> do for_ logs (printE . Text.unpack) failE $ show errorWithCause @@ -58,10 +58,11 @@ runPlc (PLC.Program _ _ t) printE $ show $ prettyWithStyle (_prettyStyle ?opts) finalTerm | otherwise = failE "Budget limiting/accounting is not possible for TPLC." +-- TODO: add a semantic variant here to get the right machine parameters runUplc :: (?opts :: Opts, Typeable a) => UPLC.UnrestrictedProgram NamedDeBruijn DefaultUni DefaultFun a -> IO () runUplc (UPLC.UnrestrictedProgram (UPLC.Program _ _ t)) = - case UPLC.runCekDeBruijn defaultCekParameters exBudgetMode logEmitter t of + case UPLC.runCekDeBruijn defaultCekParametersForTesting exBudgetMode logEmitter t of (Left errorWithCause, _, logs) -> do for_ logs (printE . Text.unpack) failE $ show errorWithCause diff --git a/plutus-core/executables/plutus/AnyProgram/With.hs b/plutus-core/executables/plutus/AnyProgram/With.hs index 7a6073a4b57..2917051d1b5 100644 --- a/plutus-core/executables/plutus/AnyProgram/With.hs +++ b/plutus-core/executables/plutus/AnyProgram/With.hs @@ -1,21 +1,26 @@ +{-# LANGUAGE AllowAmbiguousTypes #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE PolyKinds #-} +{-# LANGUAGE QuantifiedConstraints #-} {-# LANGUAGE RankNTypes #-} {-# LANGUAGE StandaloneKindSignatures #-} +{-# LANGUAGE TypeOperators #-} +{-# LANGUAGE UndecidableInstances #-} {-# LANGUAGE UndecidableSuperClasses #-} {-# OPTIONS_GHC -Wno-orphans #-} -- | BOILERPLATE needed to support Hasochism. -- See <https://homepages.inf.ed.ac.uk/slindley/papers/hasochism.pdf> module AnyProgram.With where +import PlutusCore qualified as PLC import PlutusCore.Data qualified as PLC import PlutusCore.Pretty as PLC +import PlutusIR qualified as PIR import UntypedPlutusCore qualified as UPLC import Data.Kind (Constraint) -import Flat import Types -- for: (typeclass `compose` type) @@ -23,6 +28,14 @@ type ComposeC :: forall a b. (b -> Constraint) -> (a -> b) -> a -> Constraint class constr (f x) => ComposeC constr f x instance constr (f x) => ComposeC constr f x +type UnitC :: forall a. a -> Constraint +class UnitC x +instance UnitC x + +type AndC :: forall a. (a -> Constraint) -> (a -> Constraint) -> a -> Constraint +class (constr1 x, constr2 x) => AndC constr1 constr2 x +instance (constr1 x, constr2 x) => AndC constr1 constr2 x + withN :: forall constr s r . ( constr (FromName 'Name) , constr (FromName 'DeBruijn) @@ -52,34 +65,71 @@ withA s r = case s of SUnit -> r STxSrcSpans -> r -withFlatL :: forall s r. SLang s -> (Flat (FromLang s) => r) -> r -withFlatL s r = case s of - SPir sname sann -> withN @Flat sname $ withNT @Flat sname $ withA @Flat sann r - SPlc sname sann -> withN @Flat sname $ withNT @Flat sname $ withA @Flat sann r - SUplc sname sann -> withN @Flat sname $ withN @(ComposeC Flat UPLC.Binder) sname $ - withA @Flat sann r - SData -> error "Flat is not available for Data" +withLangGeneral + :: forall constrTyName constrBinder constrName constrAnn constr s r. + ( constrTyName (FromNameTy 'Name) + , constrTyName (FromNameTy 'DeBruijn) + , constrTyName (FromNameTy 'NamedDeBruijn) + , constrBinder (UPLC.Binder UPLC.Name) + , constrBinder (UPLC.Binder UPLC.DeBruijn) + , constrBinder (UPLC.Binder UPLC.NamedDeBruijn) + , constrName (FromName 'Name) + , constrName (FromName 'DeBruijn) + , constrName (FromName 'NamedDeBruijn) + , constrAnn (FromAnn 'Unit) + , constrAnn (FromAnn 'TxSrcSpans) + , (forall tyname name ann. (constrTyName tyname, constrName name, constrAnn ann) => + constr (PIR.Program tyname name UPLC.DefaultUni UPLC.DefaultFun ann)) + , (forall tyname name ann. (constrTyName tyname, constrName name, constrAnn ann) => + constr (PLC.Program tyname name UPLC.DefaultUni UPLC.DefaultFun ann)) + , (forall name ann. (constrBinder (UPLC.Binder name), constrName name, constrAnn ann) => + constr (UPLC.UnrestrictedProgram name UPLC.DefaultUni UPLC.DefaultFun ann)) + ) + => SLang s -> (constr (FromLang s) => r) -> r +withLangGeneral s r = case s of + SPir sname sann -> + withNT @constrTyName sname + $ withN @constrName sname + $ withA @constrAnn sann r + SPlc sname sann -> + withNT @constrTyName sname + $ withN @constrName sname + $ withA @constrAnn sann r + SUplc sname sann -> + withN @(ComposeC constrBinder UPLC.Binder) sname + $ withN @constrName sname + $ withA @constrAnn sann r + SData -> error "not implemented yet" -withShowL :: forall s r. SLang s -> (Show (FromLang s) => r) -> r -withShowL s r = case s of - SPir sname sann -> withN @Show sname $ withNT @Show sname $ withA @Show sann r - SPlc sname sann -> withN @Show sname $ withNT @Show sname $ withA @Show sann r - SUplc sname sann -> withN @Show sname $ withN @(ComposeC Show UPLC.Binder) sname $ - withA @Show sann r - SData -> r +withLang + :: forall constr s r. + ( constr (FromNameTy 'Name) + , constr (FromNameTy 'DeBruijn) + , constr (FromNameTy 'NamedDeBruijn) + , constr (UPLC.Binder UPLC.Name) + , constr (UPLC.Binder UPLC.DeBruijn) + , constr (UPLC.Binder UPLC.NamedDeBruijn) + , constr (FromName 'Name) + , constr (FromName 'DeBruijn) + , constr (FromName 'NamedDeBruijn) + , constr (FromAnn 'Unit) + , constr (FromAnn 'TxSrcSpans) + , (forall tyname name ann. (constr tyname, constr name, constr ann) => + constr (PIR.Program tyname name UPLC.DefaultUni UPLC.DefaultFun ann)) + , (forall tyname name ann. (constr tyname, constr name, constr ann) => + constr (PLC.Program tyname name UPLC.DefaultUni UPLC.DefaultFun ann)) + , (forall name ann. (constr (UPLC.Binder name), constr name, constr ann) => + constr (UPLC.UnrestrictedProgram name UPLC.DefaultUni UPLC.DefaultFun ann)) + ) + => SLang s -> (constr (FromLang s) => r) -> r +withLang = withLangGeneral @constr @constr @constr @constr @constr -withPrettyPlcL :: forall s r. SLang s -> (PrettyBy PrettyConfigPlc (FromLang s) => r) -> r -withPrettyPlcL s r = case s of - SPir sname sann -> withN @PrettyClassic sname $ withN @PrettyReadable sname $ - withNT @PrettyClassic sname $ withNT @PrettyReadable sname $ - withA @Pretty sann r - SPlc sname sann -> withN @PrettyClassic sname $ withN @PrettyReadable sname $ - withNT @PrettyClassic sname $ withNT @PrettyReadable sname $ - withA @Pretty sann r - SUplc sname sann -> withN @PrettyClassic sname $ withN @PrettyReadable sname $ - withA @Pretty sann r - SData -> r +withPrettyPlcL :: forall s r. SLang s -> (PrettyPlc (FromLang s) => r) -> r +withPrettyPlcL = withLangGeneral + @(PrettyClassic `AndC` PrettyReadable) + @UnitC + @(PrettyClassic `AndC` PrettyReadable) + @Pretty + @PrettyPlc --- a dummy to make `withPrettyPlcL` work also with `Data` -instance PrettyBy PrettyConfigPlc PLC.Data where - prettyBy _ = pretty +instance PrettyBy PrettyConfigPlc PLC.Data diff --git a/plutus-core/executables/plutus/Debugger/TUI/Main.hs b/plutus-core/executables/plutus/Debugger/TUI/Main.hs index f5e13c08c19..3fdc3903318 100644 --- a/plutus-core/executables/plutus/Debugger/TUI/Main.hs +++ b/plutus-core/executables/plutus/Debugger/TUI/Main.hs @@ -46,7 +46,6 @@ import Control.Concurrent import Control.Monad.Except (runExcept) import Control.Monad.Primitive (unsafeIOToPrim) import Control.Monad.ST (RealWorld) -import Data.Foldable import Data.Maybe import GHC.IO (stToIO) import Graphics.Vty qualified as Vty @@ -177,7 +176,8 @@ driverThread driverMailbox brickMailbox prog mbudget = do _ -> coerceMode counting -- nilSlippage is important so as to get correct live up-to-date budget cekTransWithBudgetRead <- mkCekTrans - PLC.defaultCekParameters + -- TODO: get correct semantics variant + PLC.defaultCekParametersForTesting exBudgetMode brickEmitter nilSlippage diff --git a/plutus-core/executables/plutus/Mode/PrintCostModel.hs b/plutus-core/executables/plutus/Mode/PrintCostModel.hs index dd87a61434d..c3ef3368fcc 100644 --- a/plutus-core/executables/plutus/Mode/PrintCostModel.hs +++ b/plutus-core/executables/plutus/Mode/PrintCostModel.hs @@ -15,6 +15,8 @@ runPrintCostModel :: (?opts :: Opts) => IO () runPrintCostModel = do -- MAYBE: move to print-cost-model executable impl. which is much prettier printE "Cost model of latest plutus version:" - let params = fromJust PLC.defaultCostModelParams + -- TODO: add a semantic variant here to get the right machine parameters + let params = fromJust PLC.defaultCostModelParamsForTesting + BSL.putStr $ Aeson.encodePretty params putStrLn "" -- just for reading clarity diff --git a/plutus-core/executables/src/PlutusCore/Executable/Common.hs b/plutus-core/executables/src/PlutusCore/Executable/Common.hs index 5c678b0a589..8333287d342 100644 --- a/plutus-core/executables/src/PlutusCore/Executable/Common.hs +++ b/plutus-core/executables/src/PlutusCore/Executable/Common.hs @@ -71,7 +71,6 @@ import PlutusIR.Parser qualified as PIR (parse, program) import Control.Monad.Except import Data.Aeson qualified as Aeson import Data.ByteString.Lazy qualified as BSL -import Data.Foldable (traverse_) import Data.HashMap.Monoidal qualified as H import Data.Kind (Type) import Data.List (intercalate) @@ -485,9 +484,9 @@ runPrintExample getFn (ExampleOptions (ExampleSingle name)) = do ---------------- Print the cost model parameters ---------------- -runDumpModel :: IO () -runDumpModel = do - let params = fromJust PLC.defaultCostModelParams +runDumpModel :: PLC.BuiltinSemanticsVariant PLC.DefaultFun -> IO () +runDumpModel semvar = do + let params = fromJust $ PLC.defaultCostModelParamsForVariant semvar BSL.putStr $ Aeson.encode params ---------------- Print the type signatures of the default builtins ---------------- diff --git a/plutus-core/executables/src/PlutusCore/Executable/Parsers.hs b/plutus-core/executables/src/PlutusCore/Executable/Parsers.hs index 5a99d3f1a30..78784aa9234 100644 --- a/plutus-core/executables/src/PlutusCore/Executable/Parsers.hs +++ b/plutus-core/executables/src/PlutusCore/Executable/Parsers.hs @@ -141,30 +141,30 @@ exampleOpts = ExampleOptions <$> exampleMode builtinSemanticsVariantReader :: String -> Maybe (BuiltinSemanticsVariant DefaultFun) builtinSemanticsVariantReader = \case - "0" -> Just DefaultFunSemanticsVariant0 - "1" -> Just DefaultFunSemanticsVariant1 - "2" -> Just DefaultFunSemanticsVariant2 + "A" -> Just DefaultFunSemanticsVariantA + "B" -> Just DefaultFunSemanticsVariantB + "C" -> Just DefaultFunSemanticsVariantC _ -> Nothing -- This is used to make the help message show you what you actually need to type. showBuiltinSemanticsVariant :: BuiltinSemanticsVariant DefaultFun -> String showBuiltinSemanticsVariant = \case - DefaultFunSemanticsVariant0 -> "0" - DefaultFunSemanticsVariant1 -> "1" - DefaultFunSemanticsVariant2 -> "2" + DefaultFunSemanticsVariantA -> "A" + DefaultFunSemanticsVariantB -> "B" + DefaultFunSemanticsVariantC -> "C" builtinSemanticsVariant :: Parser (BuiltinSemanticsVariant DefaultFun) builtinSemanticsVariant = option (maybeReader builtinSemanticsVariantReader) ( long "builtin-semantics-variant" - <> short 'B' + <> short 'S' <> metavar "VARIANT" - <> value DefaultFunSemanticsVariant2 + <> value DefaultFunSemanticsVariantC <> showDefaultWith showBuiltinSemanticsVariant <> help - ("Builtin semantics variant: 0 -> DefaultFunSemanticsVariant0, " - <> "1 -> DefaultFunSemanticsVariant1" - <> "2 -> DefaultFunSemanticsVariant2" + ("Builtin semantics variant: A -> DefaultFunSemanticsVariantA, " + <> "B -> DefaultFunSemanticsVariantB, " + <> "C -> DefaultFunSemanticsVariantC" ) ) diff --git a/plutus-core/executables/uplc/Main.hs b/plutus-core/executables/uplc/Main.hs index ffb6b6b689a..7f2edaf0ba1 100644 --- a/plutus-core/executables/uplc/Main.hs +++ b/plutus-core/executables/uplc/Main.hs @@ -22,7 +22,6 @@ import PlutusCore.Executable.Parsers import PlutusCore.MkPlc (mkConstant) import PlutusPrelude -import PlutusCore.Evaluation.Machine.MachineParameters import UntypedPlutusCore.Evaluation.Machine.SteppableCek.DebugDriver qualified as D import UntypedPlutusCore.Evaluation.Machine.SteppableCek.Internal qualified as D @@ -82,7 +81,11 @@ data BenchmarkOptions = Double data DbgOptions = - DbgOptions Input Format CekModel + DbgOptions + Input Format + CekModel + (BuiltinSemanticsVariant PLC.DefaultFun) + ---------------- Main commands ----------------- @@ -95,7 +98,7 @@ data Command = Apply ApplyOptions | Example ExampleOptions | Eval EvalOptions | Dbg DbgOptions - | DumpModel + | DumpModel (BuiltinSemanticsVariant PLC.DefaultFun) | PrintBuiltinSignatures ---------------- Option parsers ---------------- @@ -137,7 +140,7 @@ evalOpts = dbgOpts :: Parser DbgOptions dbgOpts = DbgOptions <$> - input <*> inputformat <*> cekmodel + input <*> inputformat <*> cekmodel <*> builtinSemanticsVariant -- Reader for budget. The --restricting option requires two integer arguments -- and the easiest way to do this is to supply a colon-separated pair of @@ -239,8 +242,8 @@ plutusOpts = hsubparser $ <> command "debug" (info (Dbg <$> dbgOpts) (progDesc "Debug an untyped Plutus Core program using the CEK machine.")) - <> command "dump-model" - (info (pure DumpModel) + <> command "dump-cost-model" + (info (DumpModel <$> builtinSemanticsVariant) (progDesc "Dump the cost model parameters.")) <> command "print-builtin-signatures" (info (pure PrintBuiltinSignatures) @@ -300,7 +303,7 @@ runBenchmark :: BenchmarkOptions -> IO () runBenchmark (BenchmarkOptions inp ifmt semvar timeLim) = do prog <- readProgram ifmt inp let criterionConfig = defaultConfig {reportFile = Nothing, timeLimit = timeLim} - cekparams = mkMachineParameters semvar PLC.defaultCekCostModel + cekparams = PLC.defaultCekParametersForVariant semvar getResult (x,_,_) = either (error . show) (const ()) x -- Extract an evaluation result evaluate = getResult . Cek.runCekDeBruijn cekparams Cek.restrictingEnormous Cek.noEmitter -- readProgam throws away De Bruijn indices and returns an AST with Names; @@ -322,7 +325,7 @@ runEval (EvalOptions inp ifmt printMode budgetMode traceMode let term = void $ prog ^. UPLC.progTerm cekparams = case cekModel of -- AST nodes are charged according to the default cost model - Default -> mkMachineParameters semvar PLC.defaultCekCostModel + Default -> PLC.defaultCekParametersForVariant semvar -- AST nodes are charged one unit each, so we can see how many times each node -- type is encountered. This is useful for calibrating the budgeting code Unit -> PLC.unitCekParameters @@ -355,14 +358,14 @@ runEval (EvalOptions inp ifmt printMode budgetMode traceMode ---------------- Debugging ---------------- runDbg :: DbgOptions -> IO () -runDbg (DbgOptions inp ifmt cekModel) = do +runDbg (DbgOptions inp ifmt cekModel semvar) = do prog <- readProgram ifmt inp let term = prog ^. UPLC.progTerm nterm = fromRight (error "Term to debug must be closed.") $ runExcept @FreeVariableError $ UPLC.deBruijnTerm term let cekparams = case cekModel of - -- AST nodes are charged according to the default cost model - Default -> PLC.defaultCekParameters + -- AST nodes are charged according to the appropriate cost model + Default -> PLC.defaultCekParametersForVariant semvar -- AST nodes are charged one unit each, so we can see how many times each node -- type is encountered. This is useful for calibrating the budgeting code Unit -> PLC.unitCekParameters @@ -437,5 +440,5 @@ main = do Optimise opts -> runOptimisations opts Print opts -> runPrint @UplcProg opts Convert opts -> runConvert @UplcProg opts - DumpModel -> runDumpModel + DumpModel opts -> runDumpModel opts PrintBuiltinSignatures -> runPrintBuiltinSignatures diff --git a/plutus-core/plutus-core.cabal b/plutus-core/plutus-core.cabal index 74abadd6aa0..d234c6af656 100644 --- a/plutus-core/plutus-core.cabal +++ b/plutus-core/plutus-core.cabal @@ -1,26 +1,29 @@ -cabal-version: 3.0 -name: plutus-core -version: 1.28.0.0 -license: Apache-2.0 +cabal-version: 3.0 +name: plutus-core +version: 1.29.0.0 +license: Apache-2.0 license-files: LICENSE NOTICE -maintainer: michael.peyton-jones@iohk.io -author: Plutus Core Team -synopsis: Language library for Plutus Core -description: Pretty-printer, parser, and typechecker for Plutus Core. -category: Language, Plutus -build-type: Simple +maintainer: michael.peyton-jones@iohk.io +author: Plutus Core Team +synopsis: Language library for Plutus Core +description: Pretty-printer, parser, and typechecker for Plutus Core. +category: Language, Plutus +build-type: Simple extra-doc-files: CHANGELOG.md README.md -extra-source-files: +data-files: cost-model/data/*.R - cost-model/data/benching.csv - cost-model/data/builtinCostModel.json - cost-model/data/cekMachineCosts.json + cost-model/data/builtinCostModelA.json + cost-model/data/builtinCostModelB.json + cost-model/data/builtinCostModelC.json + cost-model/data/cekMachineCostsA.json + cost-model/data/cekMachineCostsB.json + cost-model/data/cekMachineCostsC.json plutus-core/test/CostModelInterface/defaultCostModelParams.json source-repository head @@ -117,6 +120,7 @@ library PlutusCore.Default PlutusCore.Default.Builtins PlutusCore.Error + PlutusCore.Evaluation.Error PlutusCore.Evaluation.ErrorWithCause PlutusCore.Evaluation.Machine.BuiltinCostModel PlutusCore.Evaluation.Machine.Ck @@ -318,7 +322,7 @@ library , nothunks ^>=0.1.5 , parser-combinators >=0.4.0 , prettyprinter >=1.1.0.1 - , prettyprinter-configurable ^>=1.28 + , prettyprinter-configurable ^>=1.29 , primitive , profunctors , recursion-schemes @@ -381,7 +385,7 @@ test-suite plutus-core-test , hex-text , mmorph , mtl - , plutus-core:{plutus-core, plutus-core-testlib} ^>=1.28 + , plutus-core:{plutus-core, plutus-core-testlib} ^>=1.29 , prettyprinter , serialise , tasty @@ -442,7 +446,7 @@ test-suite untyped-plutus-core-test , hedgehog , lens , mtl - , plutus-core:{plutus-core, plutus-core-testlib} ^>=1.28 + , plutus-core:{plutus-core, plutus-core-testlib} ^>=1.29 , pretty-show , prettyprinter , QuickCheck @@ -465,8 +469,8 @@ executable plc , bytestring , flat ^>=0.6 , optparse-applicative - , plutus-core ^>=1.28 - , plutus-core-execlib ^>=1.28 + , plutus-core ^>=1.29 + , plutus-core-execlib ^>=1.29 , text executable uplc @@ -482,8 +486,8 @@ executable uplc , haskeline , mtl , optparse-applicative - , plutus-core ^>=1.28 - , plutus-core-execlib ^>=1.28 + , plutus-core ^>=1.29 + , plutus-core-execlib ^>=1.29 , prettyprinter , split , text @@ -579,7 +583,7 @@ library plutus-ir , mtl , multiset , parser-combinators >=0.4.0 - , plutus-core ^>=1.28 + , plutus-core ^>=1.29 , prettyprinter >=1.1.0.1 , profunctors , semigroupoids @@ -648,7 +652,7 @@ test-suite plutus-ir-test , hedgehog , lens , mtl - , plutus-core:{plutus-core, plutus-core-testlib, plutus-ir} ^>=1.28 + , plutus-core:{plutus-core, plutus-core-testlib, plutus-ir} ^>=1.29 , QuickCheck , serialise , tasty @@ -671,8 +675,8 @@ executable pir , lens , megaparsec , optparse-applicative - , plutus-core-execlib ^>=1.28 - , plutus-core:{plutus-core, plutus-ir} ^>=1.28 + , plutus-core-execlib ^>=1.29 + , plutus-core:{plutus-core, plutus-ir} ^>=1.29 , text , transformers @@ -728,7 +732,7 @@ executable plutus , microlens-th ^>=0.4 , mono-traversable , mtl - , plutus-core:{plutus-core, plutus-ir} ^>=1.28 + , plutus-core:{plutus-core, plutus-ir} ^>=1.29 , prettyprinter , primitive , serialise @@ -768,7 +772,7 @@ library plutus-core-execlib , monoidal-containers , mtl , optparse-applicative - , plutus-core:{plutus-core, plutus-core-testlib, plutus-ir} ^>=1.28 + , plutus-core:{plutus-core, plutus-core-testlib, plutus-ir} ^>=1.29 , prettyprinter , text @@ -823,6 +827,7 @@ library plutus-core-testlib , data-default-class , dependent-map >=0.4.0.0 , filepath + , free , hashable , hedgehog >=1.0 , lazy-search @@ -830,9 +835,9 @@ library plutus-core-testlib , mmorph , mtl , multiset - , plutus-core:{plutus-core, plutus-ir} ^>=1.28 + , plutus-core:{plutus-core, plutus-ir} ^>=1.29 , prettyprinter >=1.1.0.1 - , prettyprinter-configurable ^>=1.28 + , prettyprinter-configurable ^>=1.29 , QuickCheck , quickcheck-instances , quickcheck-transformer @@ -864,7 +869,7 @@ library plutus-ir-cert exposed-modules: PlutusIR.Certifier build-depends: , base - , plutus-core:{plutus-core, plutus-ir} ^>=1.28 + , plutus-core:{plutus-core, plutus-ir} ^>=1.29 ---------------------------------------------- -- profiling @@ -942,7 +947,7 @@ executable cost-model-budgeting-bench , hedgehog , mtl , optparse-applicative - , plutus-core ^>=1.28 + , plutus-core ^>=1.29 , QuickCheck , quickcheck-instances , random @@ -976,7 +981,7 @@ executable generate-cost-model , directory , inline-r >=1.0.1 , optparse-applicative - , plutus-core ^>=1.28 + , plutus-core ^>=1.29 , text -- , exceptions @@ -991,7 +996,7 @@ executable generate-cost-model -- prevent it from being run automatically but will still allow us to run it -- manually; `cabal bench` also sets the working directory to the root of the -- relevant package, which makes it easier to find the cost model data files --- (unlike `cabal run` for exectuables, which sets the working directory to the +-- (unlike `cabal run` for executables, which sets the working directory to the -- current shell directory). benchmark cost-model-test import: lang @@ -1016,7 +1021,7 @@ benchmark cost-model-test , hedgehog , inline-r >=1.0.1 , mmorph - , plutus-core ^>=1.28 + , plutus-core ^>=1.29 , template-haskell , text @@ -1033,7 +1038,7 @@ executable print-cost-model , aeson , base >=4.9 && <5 , bytestring - , plutus-core ^>=1.28 + , plutus-core ^>=1.29 ---------------------------------------------- -- satint diff --git a/plutus-core/plutus-core/examples/PlutusCore/Examples/Builtins.hs b/plutus-core/plutus-core/examples/PlutusCore/Examples/Builtins.hs index f31be9613f1..96755b93c7a 100644 --- a/plutus-core/plutus-core/examples/PlutusCore/Examples/Builtins.hs +++ b/plutus-core/plutus-core/examples/PlutusCore/Examples/Builtins.hs @@ -174,7 +174,7 @@ instance type IsBuiltin _ (MetaForall name a) = 'False type ToHoles _ (MetaForall name a) = '[TypeHole a] type ToBinds uni acc (MetaForall name a) = ToBinds uni (Insert ('GADT.Some name) acc) a - toTypeAst _ = toTypeAst $ Proxy @a + typeAst = toTypeAst $ Proxy @a instance MakeKnownIn DefaultUni term a => MakeKnownIn DefaultUni term (MetaForall name a) where makeKnown (MetaForall x) = makeKnown x -- 'ReadKnownIn' doesn't make sense for 'MetaForall'. @@ -185,16 +185,19 @@ instance (tyname ~ TyName, KnownTypeAst tyname uni a) => type IsBuiltin _ (PlcListRep a) = 'False type ToHoles _ (PlcListRep a) = '[RepHole a] type ToBinds uni acc (PlcListRep a) = ToBinds uni acc a - toTypeAst _ = TyApp () Plc.listTy . toTypeAst $ Proxy @a + typeAst = TyApp () Plc.listTy . toTypeAst $ Proxy @a instance tyname ~ TyName => KnownTypeAst tyname DefaultUni Void where - toTypeAst _ = runQuote $ do + type IsBuiltin _ _ = 'False + type ToHoles _ _ = '[] + type ToBinds _ acc _ = acc + typeAst = runQuote $ do a <- freshTyName "a" pure $ TyForall () a (Type ()) $ TyVar () a instance UniOf term ~ DefaultUni => MakeKnownIn DefaultUni term Void where makeKnown = absurd instance UniOf term ~ DefaultUni => ReadKnownIn DefaultUni term Void where - readKnown _ = throwing _UnliftingError "Can't unlift to 'Void'" + readKnown _ = throwing _StructuralUnliftingError "Can't unlift to 'Void'" data BuiltinErrorCall = BuiltinErrorCall deriving stock (Show, Eq) @@ -227,8 +230,8 @@ instance uni ~ DefaultUni => ToBuiltinMeaning uni ExtensionFun where type CostingPart uni ExtensionFun = () data BuiltinSemanticsVariant ExtensionFun = - ExtensionFunSemanticsVariant0 - | ExtensionFunSemanticsVariant1 + ExtensionFunSemanticsVariantX + | ExtensionFunSemanticsVariantY deriving stock (Enum, Bounded, Show) toBuiltinMeaning :: forall val. HasMeaningIn uni val @@ -461,8 +464,8 @@ instance uni ~ DefaultUni => ToBuiltinMeaning uni ExtensionFun where makeBuiltinMeaning @(() -> EvaluationResult Integer) (\(_ :: ()) -> EvaluationSuccess $ case semvar of - ExtensionFunSemanticsVariant0 -> 0 - ExtensionFunSemanticsVariant1 -> 1) + ExtensionFunSemanticsVariantX -> 0 + ExtensionFunSemanticsVariantY -> 1) whatever -- We want to know if the CEK machine releases individual budgets after accounting for them and @@ -535,4 +538,4 @@ instance uni ~ DefaultUni => ToBuiltinMeaning uni ExtensionFun where (\_ -> unsafePerformIO . regBudgets . runCostingFunOneArgument model) instance Default (BuiltinSemanticsVariant ExtensionFun) where - def = ExtensionFunSemanticsVariant1 + def = ExtensionFunSemanticsVariantY diff --git a/plutus-core/plutus-core/src/PlutusCore/Builtin/KnownType.hs b/plutus-core/plutus-core/src/PlutusCore/Builtin/KnownType.hs index b3385aa3851..c6770fe96c1 100644 --- a/plutus-core/plutus-core/src/PlutusCore/Builtin/KnownType.hs +++ b/plutus-core/plutus-core/src/PlutusCore/Builtin/KnownType.hs @@ -43,7 +43,6 @@ import PlutusCore.Evaluation.ErrorWithCause import PlutusCore.Evaluation.Result import PlutusCore.Pretty -import Control.Monad.Except import Data.Either.Extras import Data.String import GHC.Exts (inline, oneShot) @@ -239,27 +238,17 @@ Lifting is allowed to the following classes of types: one, and for another example define an instance for 'Void' in tests -} --- | Attach a @cause@ to a 'BuiltinError' and throw that. --- Note that an evaluator might require the cause to be computed lazily for best performance on the --- happy path, hence this function must not force its first argument. --- TODO: wrap @cause@ in 'Lazy' once we have it. -throwBuiltinErrorWithCause - :: (MonadError (ErrorWithCause err cause) m, AsUnliftingError err, AsEvaluationFailure err) - => cause -> BuiltinError -> m void -throwBuiltinErrorWithCause cause = \case - BuiltinUnliftingError unlErr -> throwingWithCause _UnliftingError unlErr $ Just cause - BuiltinEvaluationFailure -> throwingWithCause _EvaluationFailure () $ Just cause - typeMismatchError :: PrettyParens (SomeTypeIn uni) => uni (Esc a) -> uni (Esc b) - -> UnliftingError -typeMismatchError uniExp uniAct = fromString $ concat - [ "Type mismatch: " - , "expected: " ++ render (prettyBy botRenderContext $ SomeTypeIn uniExp) - , "; actual: " ++ render (prettyBy botRenderContext $ SomeTypeIn uniAct) - ] + -> UnliftingEvaluationError +typeMismatchError uniExp uniAct = + MkUnliftingEvaluationError . StructuralEvaluationError . fromString $ concat + [ "Type mismatch: " + , "expected: " ++ displayBy botRenderContext (SomeTypeIn uniExp) + , "; actual: " ++ displayBy botRenderContext (SomeTypeIn uniAct) + ] -- Just for tidier Core to get generated, we don't care about performance here, since it's just a -- failure message and evaluation is about to be shut anyway. {-# NOINLINE typeMismatchError #-} @@ -291,7 +280,7 @@ readKnownConstant val = asConstant val >>= oneShot \case -- optimize some of the matching away. case uniExp `geq` uniAct of Just Refl -> pure x - Nothing -> throwing _UnliftingError $ typeMismatchError uniExp uniAct + Nothing -> throwing _UnliftingEvaluationError $ typeMismatchError uniExp uniAct {-# INLINE readKnownConstant #-} -- See Note [Performance of ReadKnownIn and MakeKnownIn instances]. @@ -335,9 +324,7 @@ makeKnownOrFail x = case makeKnown x of -- | Same as 'readKnown', but the cause of a potential failure is the provided term itself. readKnownSelf - :: ( ReadKnown val a - , AsUnliftingError err, AsEvaluationFailure err - ) + :: (ReadKnown val a, AsUnliftingEvaluationError err, AsEvaluationFailure err) => val -> Either (ErrorWithCause err val) a readKnownSelf val = fromRightM (throwBuiltinErrorWithCause val) $ readKnown val {-# INLINE readKnownSelf #-} @@ -361,7 +348,7 @@ instance ( TypeError ('Text "‘EvaluationResult’ cannot appear in the type of an argument") , uni ~ UniOf val ) => ReadKnownIn uni val (EvaluationResult a) where - readKnown _ = throwing _UnliftingError "Panic: 'TypeError' was bypassed" + readKnown _ = throwing _StructuralUnliftingError "Panic: 'TypeError' was bypassed" -- Just for 'readKnown' not to appear in the generated Core. {-# INLINE readKnown #-} @@ -374,7 +361,7 @@ instance ( TypeError ('Text "‘Emitter’ cannot appear in the type of an argument") , uni ~ UniOf val ) => ReadKnownIn uni val (Emitter a) where - readKnown _ = throwing _UnliftingError "Panic: 'TypeError' was bypassed" + readKnown _ = throwing _StructuralUnliftingError "Panic: 'TypeError' was bypassed" -- Just for 'readKnown' not to appear in the generated Core. {-# INLINE readKnown #-} diff --git a/plutus-core/plutus-core/src/PlutusCore/Builtin/KnownTypeAst.hs b/plutus-core/plutus-core/src/PlutusCore/Builtin/KnownTypeAst.hs index 53679e8f843..19196231858 100644 --- a/plutus-core/plutus-core/src/PlutusCore/Builtin/KnownTypeAst.hs +++ b/plutus-core/plutus-core/src/PlutusCore/Builtin/KnownTypeAst.hs @@ -26,6 +26,7 @@ module PlutusCore.Builtin.KnownTypeAst , TypeHole , KnownBuiltinTypeAst , KnownTypeAst (..) + , toTypeAst , Insert , Delete ) where @@ -210,47 +211,54 @@ class KnownTypeAst tyname uni x where type ToBinds uni (acc :: [GADT.Some TyNameRep]) x :: [GADT.Some TyNameRep] type ToBinds uni acc x = ToBinds uni acc (ElaborateBuiltin uni x) - -- | Return the Plutus counterpart of the @x@ type. - toTypeAst :: proxy x -> Type tyname uni () - default toTypeAst - :: KnownTypeAst tyname uni (ElaborateBuiltin uni x) => proxy x -> Type tyname uni () - toTypeAst _ = toTypeAst (Proxy @(ElaborateBuiltin uni x)) - {-# INLINE toTypeAst #-} + -- Doesn't take a @proxy@, so that newtype- and via-deriving are available. + -- | The Plutus counterpart of the @x@ type. + typeAst :: Type tyname uni () + default typeAst :: KnownTypeAst tyname uni (ElaborateBuiltin uni x) => Type tyname uni () + typeAst = toTypeAst $ Proxy @(ElaborateBuiltin uni x) + {-# INLINE typeAst #-} instance KnownTypeAst tyname uni a => KnownTypeAst tyname uni (EvaluationResult a) where type IsBuiltin _ (EvaluationResult a) = 'False type ToHoles _ (EvaluationResult a) = '[TypeHole a] type ToBinds uni acc (EvaluationResult a) = ToBinds uni acc a - toTypeAst _ = toTypeAst $ Proxy @a - {-# INLINE toTypeAst #-} + typeAst = toTypeAst $ Proxy @a + {-# INLINE typeAst #-} instance KnownTypeAst tyname uni a => KnownTypeAst tyname uni (BuiltinResult a) where type IsBuiltin _ (BuiltinResult a) = 'False type ToHoles _ (BuiltinResult a) = '[TypeHole a] type ToBinds uni acc (BuiltinResult a) = ToBinds uni acc a - toTypeAst _ = toTypeAst $ Proxy @a - {-# INLINE toTypeAst #-} + typeAst = toTypeAst $ Proxy @a + {-# INLINE typeAst #-} instance KnownTypeAst tyname uni a => KnownTypeAst tyname uni (Emitter a) where type IsBuiltin _ (Emitter a) = 'False type ToHoles _ (Emitter a) = '[TypeHole a] type ToBinds uni acc (Emitter a) = ToBinds uni acc a - toTypeAst _ = toTypeAst $ Proxy @a - {-# INLINE toTypeAst #-} + typeAst = toTypeAst $ Proxy @a + {-# INLINE typeAst #-} instance KnownTypeAst tyname uni rep => KnownTypeAst tyname uni (SomeConstant uni rep) where type IsBuiltin _ (SomeConstant uni rep) = 'False type ToHoles _ (SomeConstant _ rep) = '[RepHole rep] type ToBinds uni acc (SomeConstant _ rep) = ToBinds uni acc rep - toTypeAst _ = toTypeAst $ Proxy @rep - {-# INLINE toTypeAst #-} + typeAst = toTypeAst $ Proxy @rep + {-# INLINE typeAst #-} instance KnownTypeAst tyname uni rep => KnownTypeAst tyname uni (Opaque val rep) where type IsBuiltin _ (Opaque val rep) = 'False type ToHoles _ (Opaque _ rep) = '[RepHole rep] type ToBinds uni acc (Opaque _ rep) = ToBinds uni acc rep - toTypeAst _ = toTypeAst $ Proxy @rep - {-# INLINE toTypeAst #-} + typeAst = toTypeAst $ Proxy @rep + {-# INLINE typeAst #-} + +-- | Return the Plutus counterpart of the @x@ type. +toTypeAst + :: forall a tyname uni (x :: a) proxy. KnownTypeAst tyname uni x + => proxy x -> Type tyname uni () +toTypeAst _ = typeAst @_ @tyname @uni @x +{-# INLINE toTypeAst #-} toTyNameAst :: forall text uniq. (KnownSymbol text, KnownNat uniq) @@ -265,32 +273,32 @@ instance uni `Contains` f => KnownTypeAst tyname uni (BuiltinHead f) where type IsBuiltin _ (BuiltinHead f) = 'True type ToHoles _ (BuiltinHead f) = '[] type ToBinds _ acc (BuiltinHead f) = acc - toTypeAst _ = TyBuiltin () $ someType @_ @f - {-# INLINE toTypeAst #-} + typeAst = TyBuiltin () $ someType @_ @f + {-# INLINE typeAst #-} instance (KnownTypeAst tyname uni a, KnownTypeAst tyname uni b) => KnownTypeAst tyname uni (a -> b) where type IsBuiltin _ (a -> b) = 'False type ToHoles _ (a -> b) = '[TypeHole a, TypeHole b] type ToBinds uni acc (a -> b) = ToBinds uni (ToBinds uni acc a) b - toTypeAst _ = TyFun () (toTypeAst $ Proxy @a) (toTypeAst $ Proxy @b) - {-# INLINE toTypeAst #-} + typeAst = TyFun () (toTypeAst $ Proxy @a) (toTypeAst $ Proxy @b) + {-# INLINE typeAst #-} instance (tyname ~ TyName, name ~ 'TyNameRep text uniq, KnownSymbol text, KnownNat uniq) => KnownTypeAst tyname uni (TyVarRep name) where type IsBuiltin _ (TyVarRep name) = 'False type ToHoles _ (TyVarRep name) = '[] type ToBinds _ acc (TyVarRep name) = Insert ('GADT.Some name) acc - toTypeAst _ = TyVar () . toTyNameAst $ Proxy @('TyNameRep text uniq) - {-# INLINE toTypeAst #-} + typeAst = TyVar () . toTyNameAst $ Proxy @('TyNameRep text uniq) + {-# INLINE typeAst #-} instance (KnownTypeAst tyname uni fun, KnownTypeAst tyname uni arg) => KnownTypeAst tyname uni (TyAppRep fun arg) where type IsBuiltin uni (TyAppRep fun arg) = IsBuiltin uni fun && IsBuiltin uni arg type ToHoles _ (TyAppRep fun arg) = '[RepHole fun, RepHole arg] type ToBinds uni acc (TyAppRep fun arg) = ToBinds uni (ToBinds uni acc fun) arg - toTypeAst _ = TyApp () (toTypeAst $ Proxy @fun) (toTypeAst $ Proxy @arg) - {-# INLINE toTypeAst #-} + typeAst = TyApp () (toTypeAst $ Proxy @fun) (toTypeAst $ Proxy @arg) + {-# INLINE typeAst #-} instance ( tyname ~ TyName, name ~ 'TyNameRep @kind text uniq, KnownSymbol text, KnownNat uniq @@ -299,12 +307,12 @@ instance type IsBuiltin _ (TyForallRep name a) = 'False type ToHoles _ (TyForallRep name a) = '[RepHole a] type ToBinds uni acc (TyForallRep name a) = Delete ('GADT.Some name) (ToBinds uni acc a) - toTypeAst _ = + typeAst = TyForall () (toTyNameAst $ Proxy @('TyNameRep text uniq)) (demoteKind $ knownKind @kind) (toTypeAst $ Proxy @a) - {-# INLINE toTypeAst #-} + {-# INLINE typeAst #-} -- Utils diff --git a/plutus-core/plutus-core/src/PlutusCore/Builtin/Meaning.hs b/plutus-core/plutus-core/src/PlutusCore/Builtin/Meaning.hs index a8838df74fd..3ecd33a823d 100644 --- a/plutus-core/plutus-core/src/PlutusCore/Builtin/Meaning.hs +++ b/plutus-core/plutus-core/src/PlutusCore/Builtin/Meaning.hs @@ -109,8 +109,9 @@ throw an error instead of overflowing its first argument. One denotation from each builtin is grouped into a 'BuiltinSemanticsVariant'. Each Plutus Language version is linked to a specific 'BuiltinSemanticsVariant' (done by plutus-ledger-api); e.g. plutus-v1 and plutus-v2 are linked to -'DefaultFunSemanticsVariant1', whereas plutus-v3 changes the set of denotations -to 'DefaultFunSemanticsVariant2' (thus fixing 'ConsByteString'). +'DefaultFunSemanticsVariantA' and 'DefaultFunSemanticsVariantB', whereas +plutus-v3 changes the set of denotations to 'DefaultFunSemanticsVariantC' (thus +fixing 'ConsByteString'). Each 'BuiltinSemanticsVariant' (grouping) can change the denotation of one or more builtins --- or none, but what's the point in that? diff --git a/plutus-core/plutus-core/src/PlutusCore/Builtin/Result.hs b/plutus-core/plutus-core/src/PlutusCore/Builtin/Result.hs index 19e0270c2b6..d559df8f123 100644 --- a/plutus-core/plutus-core/src/PlutusCore/Builtin/Result.hs +++ b/plutus-core/plutus-core/src/PlutusCore/Builtin/Result.hs @@ -3,15 +3,23 @@ {-# LANGUAGE LambdaCase #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE OverloadedStrings #-} +{-# LANGUAGE RankNTypes #-} {-# LANGUAGE TemplateHaskell #-} module PlutusCore.Builtin.Result - ( UnliftingError (..) + ( EvaluationError (..) + , AsEvaluationError (..) + , UnliftingError (..) + , UnliftingEvaluationError (..) , BuiltinError (..) , BuiltinResult (..) + , AsUnliftingEvaluationError (..) , AsUnliftingError (..) , AsBuiltinError (..) , AsBuiltinResult (..) + , _UnliftingErrorVia + , _StructuralUnliftingError + , _OperationalUnliftingError , throwNotAConstant , withLogs , throwing @@ -21,25 +29,33 @@ module PlutusCore.Builtin.Result import PlutusPrelude import PlutusCore.Builtin.Emitter +import PlutusCore.Evaluation.Error import PlutusCore.Evaluation.Result import Control.Lens import Control.Monad.Error.Lens (throwing, throwing_) import Control.Monad.Except +import Data.Bitraversable import Data.DList (DList) import Data.String (IsString) import Data.Text (Text) import Prettyprinter --- | When unlifting of a PLC term into a Haskell value fails, this error is thrown. +-- | The error message part of an 'UnliftingEvaluationError'. newtype UnliftingError = MkUnliftingError { unUnliftingError :: Text } deriving stock (Show, Eq) deriving newtype (IsString, Semigroup, NFData) +-- | When unlifting of a PLC term into a Haskell value fails, this error is thrown. +newtype UnliftingEvaluationError = MkUnliftingEvaluationError + { unUnliftingEvaluationError :: EvaluationError UnliftingError UnliftingError + } deriving stock (Show, Eq) + deriving newtype (NFData) + -- | The type of errors that 'readKnown' and 'makeKnown' can return. data BuiltinError - = BuiltinUnliftingError !UnliftingError + = BuiltinUnliftingEvaluationError !UnliftingEvaluationError | BuiltinEvaluationFailure deriving stock (Show, Eq) @@ -65,13 +81,34 @@ data BuiltinResult a mtraverse makeClassyPrisms [ ''UnliftingError + , ''UnliftingEvaluationError , ''BuiltinError , ''BuiltinResult ] -instance AsUnliftingError BuiltinError where - _UnliftingError = _BuiltinUnliftingError - {-# INLINE _UnliftingError #-} +instance AsEvaluationError UnliftingEvaluationError UnliftingError UnliftingError where + _EvaluationError = coerced + {-# INLINE _EvaluationError #-} + +-- | An 'UnliftingEvaluationError' /is/ an 'EvaluationError', hence for this instance we only +-- require both @operational@ and @structural@ to have '_UnliftingError' prisms, so that we can +-- handle both the cases pointwisely. +instance (AsUnliftingError operational, AsUnliftingError structural) => + AsUnliftingEvaluationError (EvaluationError operational structural) where + _UnliftingEvaluationError = go . coerced where + go = + prism' + (bimap + (review _UnliftingError) + (review _UnliftingError)) + (bitraverse + (reoption . matching _UnliftingError) + (reoption . matching _UnliftingError)) + {-# INLINE _UnliftingEvaluationError #-} + +instance AsUnliftingEvaluationError BuiltinError where + _UnliftingEvaluationError = _BuiltinUnliftingEvaluationError . _UnliftingEvaluationError + {-# INLINE _UnliftingEvaluationError #-} instance AsEvaluationFailure BuiltinError where _EvaluationFailure = _EvaluationFailureVia BuiltinEvaluationFailure @@ -102,12 +139,36 @@ instance Pretty UnliftingError where , pretty err ] +deriving newtype instance Pretty UnliftingEvaluationError + instance Pretty BuiltinError where - pretty (BuiltinUnliftingError err) = "Builtin evaluation failure:" <+> pretty err - pretty BuiltinEvaluationFailure = "Builtin evaluation failure" + pretty (BuiltinUnliftingEvaluationError err) = "Builtin evaluation failure:" <+> pretty err + pretty BuiltinEvaluationFailure = "Builtin evaluation failure" + +-- See Note [Ignoring context in OperationalEvaluationError]. +-- | Construct a prism focusing on the @*EvaluationFailure@ part of @err@ by taking +-- that @*EvaluationFailure@ and +-- +-- 1. pretty-printing and embedding it into an 'UnliftingError' for the setter part of the prism +-- 2. returning it directly for the opposite direction (there's no other way to convert an +-- 'UnliftingError' to an evaluation failure, since the latter doesn't carry any content) +-- +-- This is useful for providing 'AsUnliftingError' instances for types such as 'CkUserError' and +-- 'CekUserError'. +_UnliftingErrorVia :: Pretty err => err -> Prism' err UnliftingError +_UnliftingErrorVia err = iso (MkUnliftingError . display) (const err) +{-# INLINE _UnliftingErrorVia #-} + +_StructuralUnliftingError :: AsBuiltinError err => Prism' err UnliftingError +_StructuralUnliftingError = _BuiltinUnliftingEvaluationError . _StructuralEvaluationError +{-# INLINE _StructuralUnliftingError #-} + +_OperationalUnliftingError :: AsBuiltinError err => Prism' err UnliftingError +_OperationalUnliftingError = _BuiltinUnliftingEvaluationError . _OperationalEvaluationError +{-# INLINE _OperationalUnliftingError #-} throwNotAConstant :: MonadError BuiltinError m => m void -throwNotAConstant = throwError $ BuiltinUnliftingError "Not a constant" +throwNotAConstant = throwing _StructuralUnliftingError "Not a constant" {-# INLINE throwNotAConstant #-} -- | Prepend logs to a 'BuiltinResult' computation. diff --git a/plutus-core/plutus-core/src/PlutusCore/Check/Normal.hs b/plutus-core/plutus-core/src/PlutusCore/Check/Normal.hs index 9043abcde05..7ea2a4fc5ce 100644 --- a/plutus-core/plutus-core/src/PlutusCore/Check/Normal.hs +++ b/plutus-core/plutus-core/src/PlutusCore/Check/Normal.hs @@ -16,7 +16,6 @@ import PlutusCore.Core import PlutusCore.Error import Control.Monad.Except -import Data.Foldable (traverse_) -- | Ensure that all types in the 'Program' are normalized. checkProgram diff --git a/plutus-core/plutus-core/src/PlutusCore/Core/Instance/Eq.hs b/plutus-core/plutus-core/src/PlutusCore/Core/Instance/Eq.hs index 3c94ba83002..3fda5974720 100644 --- a/plutus-core/plutus-core/src/PlutusCore/Core/Instance/Eq.hs +++ b/plutus-core/plutus-core/src/PlutusCore/Core/Instance/Eq.hs @@ -22,8 +22,6 @@ import PlutusCore.Rename.Monad import Universe -import Data.Foldable (for_) - instance (GEq uni, Eq ann) => Eq (Type TyName uni ann) where ty1 == ty2 = runEqRename @TypeRenaming $ eqTypeM ty1 ty2 diff --git a/plutus-core/plutus-core/src/PlutusCore/Crypto/Ed25519.hs b/plutus-core/plutus-core/src/PlutusCore/Crypto/Ed25519.hs index cf7a513a5c1..295aea94739 100644 --- a/plutus-core/plutus-core/src/PlutusCore/Crypto/Ed25519.hs +++ b/plutus-core/plutus-core/src/PlutusCore/Crypto/Ed25519.hs @@ -57,4 +57,3 @@ verifyEd25519Signature_V2 pk msg sig = where loc :: Text loc = "Ed25519 signature verification" - diff --git a/plutus-core/plutus-core/src/PlutusCore/DataFilePaths.hs b/plutus-core/plutus-core/src/PlutusCore/DataFilePaths.hs index 8e2d4613d7e..ea1a8ddceaa 100644 --- a/plutus-core/plutus-core/src/PlutusCore/DataFilePaths.hs +++ b/plutus-core/plutus-core/src/PlutusCore/DataFilePaths.hs @@ -9,11 +9,29 @@ import System.FilePath costModelDataDir :: FilePath costModelDataDir = "cost-model" </> "data" -builtinCostModelFile :: FilePath -builtinCostModelFile = costModelDataDir </> "builtinCostModel" <.> "json" +builtinCostModelFileA :: FilePath +builtinCostModelFileA = costModelDataDir </> "builtinCostModelA" <.> "json" -cekMachineCostsFile :: FilePath -cekMachineCostsFile = costModelDataDir </> "cekMachineCosts" <.> "json" +builtinCostModelFileB :: FilePath +builtinCostModelFileB = costModelDataDir </> "builtinCostModelB" <.> "json" + +builtinCostModelFileC :: FilePath +builtinCostModelFileC = costModelDataDir </> "builtinCostModelC" <.> "json" + +latestBuiltinCostModelFile :: FilePath +latestBuiltinCostModelFile = builtinCostModelFileC + +cekMachineCostsFileA :: FilePath +cekMachineCostsFileA = costModelDataDir </> "cekMachineCostsA" <.> "json" + +cekMachineCostsFileB :: FilePath +cekMachineCostsFileB = costModelDataDir </> "cekMachineCostsB" <.> "json" + +cekMachineCostsFileC :: FilePath +cekMachineCostsFileC = costModelDataDir </> "cekMachineCostsC" <.> "json" + +latestMachineCostsFile :: FilePath +latestMachineCostsFile = cekMachineCostsFileC -- | The file containing the R models: only needed for cost-model-test. rModelFile :: FilePath @@ -22,5 +40,5 @@ rModelFile = costModelDataDir </> "models" <.> "R" -- | The file containing the benchmark results for the built-in functions: only -- needed for cost-model-test. benchingResultsFile :: FilePath -benchingResultsFile = costModelDataDir </> "benching" <.> "csv" +benchingResultsFile = costModelDataDir </> "benching-conway" <.> "csv" diff --git a/plutus-core/plutus-core/src/PlutusCore/Default/Builtins.hs b/plutus-core/plutus-core/src/PlutusCore/Default/Builtins.hs index 0eb19d9d45e..12495105440 100644 --- a/plutus-core/plutus-core/src/PlutusCore/Default/Builtins.hs +++ b/plutus-core/plutus-core/src/PlutusCore/Default/Builtins.hs @@ -1082,13 +1082,13 @@ instance uni ~ DefaultUni => ToBuiltinMeaning uni DefaultFun where type CostingPart uni DefaultFun = BuiltinCostModel {- | Allow different variants of builtins with different implementations, and - possibly different semantics. Note that DefaultFunSemanticsVariant1, - DefaultFunSemanticsVariant1 etc. do not correspond directly to PlutusV1, + possibly different semantics. Note that DefaultFunSemanticsVariantA, + DefaultFunSemanticsVariantB etc. do not correspond directly to PlutusV1, PlutusV2 etc. in plutus-ledger-api: see Note [Builtin semantics variants]. -} data BuiltinSemanticsVariant DefaultFun - = DefaultFunSemanticsVariant0 - | DefaultFunSemanticsVariant1 - | DefaultFunSemanticsVariant2 + = DefaultFunSemanticsVariantA + | DefaultFunSemanticsVariantB + | DefaultFunSemanticsVariantC deriving stock (Eq, Enum, Bounded, Show, Generic) deriving anyclass (NFData, NoThunks) @@ -1205,7 +1205,7 @@ instance uni ~ DefaultUni => ToBuiltinMeaning uni DefaultFun where in makeBuiltinMeaning consByteStringDenotation costingFun - -- For builtin semantics variants larger than 'DefaultFunSemanticsVariant1', the first + -- For builtin semantics variants larger than 'DefaultFunSemanticsVariantA', the first -- input must be in range @[0..255]@. consByteStringMeaning_V2 = let consByteStringDenotation :: Word8 -> BS.ByteString -> BS.ByteString @@ -1215,9 +1215,9 @@ instance uni ~ DefaultUni => ToBuiltinMeaning uni DefaultFun where consByteStringDenotation costingFun in case semvar of - DefaultFunSemanticsVariant0 -> consByteStringMeaning_V1 - DefaultFunSemanticsVariant1 -> consByteStringMeaning_V1 - DefaultFunSemanticsVariant2 -> consByteStringMeaning_V2 + DefaultFunSemanticsVariantA -> consByteStringMeaning_V1 + DefaultFunSemanticsVariantB -> consByteStringMeaning_V1 + DefaultFunSemanticsVariantC -> consByteStringMeaning_V2 toBuiltinMeaning _semvar SliceByteString = let sliceByteStringDenotation :: Int -> Int -> BS.ByteString -> BS.ByteString @@ -1300,9 +1300,9 @@ instance uni ~ DefaultUni => ToBuiltinMeaning uni DefaultFun where :: BS.ByteString -> BS.ByteString -> BS.ByteString -> BuiltinResult Bool verifyEd25519SignatureDenotation = case semvar of - DefaultFunSemanticsVariant0 -> verifyEd25519Signature_V1 - DefaultFunSemanticsVariant1 -> verifyEd25519Signature_V2 - DefaultFunSemanticsVariant2 -> verifyEd25519Signature_V2 + DefaultFunSemanticsVariantA -> verifyEd25519Signature_V1 + DefaultFunSemanticsVariantB -> verifyEd25519Signature_V2 + DefaultFunSemanticsVariantC -> verifyEd25519Signature_V2 {-# INLINE verifyEd25519SignatureDenotation #-} in makeBuiltinMeaning verifyEd25519SignatureDenotation @@ -1908,7 +1908,7 @@ instance uni ~ DefaultUni => ToBuiltinMeaning uni DefaultFun where -} instance Default (BuiltinSemanticsVariant DefaultFun) where - def = DefaultFunSemanticsVariant2 + def = maxBound instance Pretty (BuiltinSemanticsVariant DefaultFun) where pretty = viaShow diff --git a/plutus-core/plutus-core/src/PlutusCore/Default/Universe.hs b/plutus-core/plutus-core/src/PlutusCore/Default/Universe.hs index 8bf5f2bc680..4ccc72b60e5 100644 --- a/plutus-core/plutus-core/src/PlutusCore/Default/Universe.hs +++ b/plutus-core/plutus-core/src/PlutusCore/Default/Universe.hs @@ -1,12 +1,8 @@ -- editorconfig-checker-disable-file - --- | The universe used by default and its instances. - {-# OPTIONS -fno-warn-missing-pattern-synonym-signatures #-} --- on 9.2.4 this is the flag that suppresses the above --- warning +-- on 9.2.4 this is the flag that suppresses the above warning {-# OPTIONS -Wno-missing-signatures #-} --- 9.6 notices that all the constraints on TestTypesFromTheUniverseAreAllKnown +-- 9.6 notices that all the constraints on 'TestTypesFromTheUniverseAreAllKnown' -- are redundant (which they are), but we don't care because it only exists -- to test that some constraints are solvable {-# OPTIONS -Wno-redundant-constraints #-} @@ -14,6 +10,7 @@ {-# LANGUAGE BlockArguments #-} {-# LANGUAGE CPP #-} {-# LANGUAGE ConstraintKinds #-} +{-# LANGUAGE DataKinds #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GADTs #-} {-# LANGUAGE InstanceSigs #-} @@ -35,6 +32,7 @@ -- performance, but it's not clear why. This needs to be investigated. {-# OPTIONS_GHC -O2 #-} +-- | The universe used by default and its instances. module PlutusCore.Default.Universe ( DefaultUni (..) , pattern DefaultUniList @@ -43,25 +41,24 @@ module PlutusCore.Default.Universe , module Export -- Re-exporting universes infrastructure for convenience. ) where +import PlutusPrelude + import PlutusCore.Builtin import PlutusCore.Crypto.BLS12_381.G1 qualified as BLS12_381.G1 import PlutusCore.Crypto.BLS12_381.G2 qualified as BLS12_381.G2 import PlutusCore.Crypto.BLS12_381.Pairing qualified as BLS12_381.Pairing import PlutusCore.Data import PlutusCore.Evaluation.Machine.ExMemoryUsage (LiteralByteSize (..)) -import PlutusCore.Evaluation.Result import PlutusCore.Pretty.Extra -import Control.Applicative -import Data.Bits (toIntegralSized) import Data.ByteString (ByteString) import Data.Int import Data.Proxy import Data.Text (Text) +import Data.Text qualified as Text +import Data.Typeable (typeRep) import Data.Word import GHC.Exts (inline, oneShot) -import Text.Pretty -import Text.PrettyBy import Text.PrettyBy.Fixity import Universe as Export @@ -339,90 +336,142 @@ instance TestTypesFromTheUniverseAreAllKnown DefaultUni {- Note [Integral types as Integer] Technically our universe only contains 'Integer', but many of the builtin functions that we would -like to use work over 'Int' and 'Word8'. +like to use work over 'Int', 'Word8' etc. This is inconvenient and also error-prone: dealing with a function that takes an 'Int' or 'Word8' means carefully downcasting the 'Integer', running the function, potentially upcasting at the end. -And it's easy to get wrong by e.g. blindly using 'fromInteger'. +And it's easy to get wrong by e.g. blindly using 'fromInteger' or 'fromIntegral'. Moreover, there is a latent risk here: if we *were* to build on a 32-bit architecture, then programs which use arguments between @maxBound :: Int32@ and @maxBound :: Int64@ would behave differently! So, what to do? We adopt the following strategy: -- We allow lifting/unlifting 'Word8' via 'Integer', including a safe downcast in 'readKnown'. -- We allow lifting/unlifting 'Int64' via 'Integer', including a safe downcast in 'readKnown'. -- We allow lifting/unlifting 'Int' via 'Int64', constraining the conversion between them to -64-bit architectures where this conversion is safe. +- We allow lifting/unlifting bounded integral types such as 'Word8' or 'Int64' via 'Integer', + including a safe upcast in 'makeKnown' (which we could have on any architecture, but we only add + it for 64-bit for uniformity) and a safe checked downcast in 'readKnown'. +- We allow lifting/unlifting 'Int' via 'Int64' and 'Word' via 'Word64', constraining the conversion + between them to 64-bit architectures where this conversion is safe. Doing this effectively bans builds on 32-bit systems, but that's fine, since we don't care about supporting 32-bit systems anyway, and this way any attempts to build on them will fail fast. -} -instance KnownTypeAst tyname DefaultUni Int64 where - toTypeAst _ = toTypeAst $ Proxy @Integer +-- | For deriving 'KnownTypeAst', 'MakeKnown' and 'ReadKnown' instances via 'Integer'. +newtype AsInteger a = AsInteger + { unAsInteger :: a + } --- See Note [Integral types as Integer]. -instance HasConstantIn DefaultUni term => MakeKnownIn DefaultUni term Int64 where - makeKnown = makeKnown . toInteger +instance KnownTypeAst tyname DefaultUni (AsInteger a) where + type IsBuiltin _ _ = 'False + type ToHoles _ _ = '[] + type ToBinds _ acc _ = acc + typeAst = toTypeAst $ Proxy @Integer + +instance (HasConstantIn DefaultUni term, Integral a) => + MakeKnownIn DefaultUni term (AsInteger a) where + makeKnown = makeKnown . toInteger . unAsInteger {-# INLINE makeKnown #-} -instance HasConstantIn DefaultUni term => ReadKnownIn DefaultUni term Int64 where +instance (HasConstantIn DefaultUni term, Integral a, Bounded a, Typeable a) => + ReadKnownIn DefaultUni term (AsInteger a) where readKnown term = -- See Note [Performance of ReadKnownIn and MakeKnownIn instances]. -- Funnily, we don't need 'inline' here, unlike in the default implementation of 'readKnown' -- (go figure why). inline readKnownConstant term >>= oneShot \(i :: Integer) -> - -- We don't make use here of `toIntegralSized` because of performance considerations, + -- We don't make use here of 'toIntegralSized' because of performance considerations, -- see: https://gitlab.haskell.org/ghc/ghc/-/issues/19641 - -- OPTIMIZE: benchmark an alternative `integerToIntMaybe`, modified from 'ghc-bignum' - if fromIntegral (minBound :: Int64) <= i && i <= fromIntegral (maxBound :: Int64) - then pure $ fromIntegral i - else throwing_ _EvaluationFailure + -- TODO: benchmark an alternative 'integerToIntMaybe', modified from @ghc-bignum@ + if fromIntegral (minBound :: a) <= i && i <= fromIntegral (maxBound :: a) + then pure . AsInteger $ fromIntegral i + else throwing _OperationalUnliftingError . MkUnliftingError $ fold + [ Text.pack $ show i + , " is not within the bounds of " + , Text.pack . show . typeRep $ Proxy @a + ] {-# INLINE readKnown #-} #if WORD_SIZE_IN_BITS == 64 -- See Note [Integral types as Integer]. - -instance KnownTypeAst tyname DefaultUni Int where - toTypeAst _ = toTypeAst $ Proxy @Integer - -instance HasConstantIn DefaultUni term => MakeKnownIn DefaultUni term Int where - -- Convert Int-to-Integer via Int64. We could go directly `toInteger`, but this way - -- is more explicit and it'll turn into the same thing anyway. - -- Although this conversion is safe regardless of the CPU arch (unlike the opposite conversion), - -- we constrain it to 64-bit for the sake of uniformity. - makeKnown = makeKnown . fromIntegral @Int @Int64 - {-# INLINE makeKnown #-} - +deriving via AsInteger Int instance + KnownTypeAst tyname DefaultUni Int +deriving via AsInteger Int instance HasConstantIn DefaultUni term => + MakeKnownIn DefaultUni term Int instance HasConstantIn DefaultUni term => ReadKnownIn DefaultUni term Int where - -- Convert Integer-to-Int via Int64. This instance is safe only for 64-bit architecture - -- where Int===Int64 (i.e. no truncation happening). readKnown term = fromIntegral @Int64 @Int <$> readKnown term {-# INLINE readKnown #-} -#endif - -instance KnownTypeAst tyname DefaultUni Word8 where - toTypeAst _ = toTypeAst $ Proxy @Integer - --- See Note [Integral types as Integer]. -instance HasConstantIn DefaultUni term => MakeKnownIn DefaultUni term Word8 where - makeKnown = makeKnown . toInteger - {-# INLINE makeKnown #-} -instance HasConstantIn DefaultUni term => ReadKnownIn DefaultUni term Word8 where - readKnown term = - inline readKnownConstant term >>= oneShot \(i :: Integer) -> - case toIntegralSized i of - Just w8 -> pure w8 - _ -> throwing_ _EvaluationFailure +deriving via AsInteger Word instance + KnownTypeAst tyname DefaultUni Word +deriving via AsInteger Word instance HasConstantIn DefaultUni term => + MakeKnownIn DefaultUni term Word +instance HasConstantIn DefaultUni term => ReadKnownIn DefaultUni term Word where + readKnown term = fromIntegral @Word64 @Word <$> readKnown term {-# INLINE readKnown #-} +#endif --- deriving newtype doesn't work here (or at least not easily), so we have an explicit instance. -instance KnownTypeAst tyname DefaultUni LiteralByteSize where - toTypeAst _ = toTypeAst $ Proxy @Integer - -deriving newtype instance HasConstantIn DefaultUni term => MakeKnownIn DefaultUni term LiteralByteSize -deriving newtype instance HasConstantIn DefaultUni term => ReadKnownIn DefaultUni term LiteralByteSize +deriving via AsInteger Int8 instance + KnownTypeAst tyname DefaultUni Int8 +deriving via AsInteger Int8 instance HasConstantIn DefaultUni term => + MakeKnownIn DefaultUni term Int8 +deriving via AsInteger Int8 instance HasConstantIn DefaultUni term => + ReadKnownIn DefaultUni term Int8 + +deriving via AsInteger Int16 instance + KnownTypeAst tyname DefaultUni Int16 +deriving via AsInteger Int16 instance HasConstantIn DefaultUni term => + MakeKnownIn DefaultUni term Int16 +deriving via AsInteger Int16 instance HasConstantIn DefaultUni term => + ReadKnownIn DefaultUni term Int16 + +deriving via AsInteger Int32 instance + KnownTypeAst tyname DefaultUni Int32 +deriving via AsInteger Int32 instance HasConstantIn DefaultUni term => + MakeKnownIn DefaultUni term Int32 +deriving via AsInteger Int32 instance HasConstantIn DefaultUni term => + ReadKnownIn DefaultUni term Int32 + +deriving via AsInteger Int64 instance + KnownTypeAst tyname DefaultUni Int64 +deriving via AsInteger Int64 instance HasConstantIn DefaultUni term => + MakeKnownIn DefaultUni term Int64 +deriving via AsInteger Int64 instance HasConstantIn DefaultUni term => + ReadKnownIn DefaultUni term Int64 + +deriving via AsInteger Word8 instance + KnownTypeAst tyname DefaultUni Word8 +deriving via AsInteger Word8 instance HasConstantIn DefaultUni term => + MakeKnownIn DefaultUni term Word8 +deriving via AsInteger Word8 instance HasConstantIn DefaultUni term => + ReadKnownIn DefaultUni term Word8 + +deriving via AsInteger Word16 instance + KnownTypeAst tyname DefaultUni Word16 +deriving via AsInteger Word16 instance HasConstantIn DefaultUni term => + MakeKnownIn DefaultUni term Word16 +deriving via AsInteger Word16 instance HasConstantIn DefaultUni term => + ReadKnownIn DefaultUni term Word16 + +deriving via AsInteger Word32 instance + KnownTypeAst tyname DefaultUni Word32 +deriving via AsInteger Word32 instance HasConstantIn DefaultUni term => + MakeKnownIn DefaultUni term Word32 +deriving via AsInteger Word32 instance HasConstantIn DefaultUni term => + ReadKnownIn DefaultUni term Word32 + +deriving via AsInteger Word64 instance + KnownTypeAst tyname DefaultUni Word64 +deriving via AsInteger Word64 instance HasConstantIn DefaultUni term => + MakeKnownIn DefaultUni term Word64 +deriving via AsInteger Word64 instance HasConstantIn DefaultUni term => + ReadKnownIn DefaultUni term Word64 + +deriving newtype instance + KnownTypeAst tyname DefaultUni LiteralByteSize +deriving newtype instance HasConstantIn DefaultUni term => + MakeKnownIn DefaultUni term LiteralByteSize +deriving newtype instance HasConstantIn DefaultUni term => + ReadKnownIn DefaultUni term LiteralByteSize {- Note [Stable encoding of tags] 'encodeUni' and 'decodeUni' are used for serialisation and deserialisation of types from the diff --git a/plutus-core/plutus-core/src/PlutusCore/Evaluation/Error.hs b/plutus-core/plutus-core/src/PlutusCore/Evaluation/Error.hs new file mode 100644 index 00000000000..0c3e5317e70 --- /dev/null +++ b/plutus-core/plutus-core/src/PlutusCore/Evaluation/Error.hs @@ -0,0 +1,89 @@ +-- editorconfig-checker-disable-file +-- | The exceptions that an abstract machine can throw. + +-- appears in the generated instances +{-# OPTIONS_GHC -Wno-overlapping-patterns #-} + +{-# LANGUAGE DataKinds #-} +{-# LANGUAGE DeriveAnyClass #-} +{-# LANGUAGE FlexibleInstances #-} +{-# LANGUAGE FunctionalDependencies #-} +{-# LANGUAGE OverloadedStrings #-} +{-# LANGUAGE TemplateHaskell #-} +{-# LANGUAGE TypeFamilies #-} +{-# LANGUAGE TypeOperators #-} +{-# LANGUAGE UndecidableInstances #-} + +module PlutusCore.Evaluation.Error + ( EvaluationError (..) + , AsEvaluationError (..) + ) where + +import PlutusPrelude + +import PlutusCore.Evaluation.Result + +import Control.Lens +import Data.Bifoldable +import Data.Bitraversable + +{- | The type of errors that can occur during evaluation. There are two kinds of errors: + +1. Operational ones -- these are errors that are indicative of the _logic_ of the program being + wrong. For example, 'Error' was executed, 'tailList' was applied to an empty list or evaluation + ran out of gas. +2. Structural ones -- these are errors that are indicative of the _structure_ of the program being + wrong. For example, a free variable was encountered during evaluation, or a non-function was + applied to an argument. + +On the chain both of these are just regular failures and we don't distinguish between them there: +if a script fails, it fails, it doesn't matter what the reason was. However in the tests it does +matter why the failure occurred: a structural error may indicate that the test was written +incorrectly while an operational error may be entirely expected. + +In other words, operational errors are regular runtime errors and structural errors are \"runtime +type errors\". Which means that evaluating an (erased) well-typed program should never produce a +structural error, only an operational one. This creates a sort of \"runtime type system\" for UPLC +and it would be great to stick to it and enforce in tests etc, but we currently don't. For example, +a built-in function expecting a list but getting something else should throw a structural error, +but currently it'll throw an operational one. This is something that we plan to improve upon in +future. +-} +data EvaluationError operational structural + = OperationalEvaluationError !operational + | StructuralEvaluationError !structural + deriving stock (Show, Eq, Functor, Generic) + deriving anyclass (NFData) + +mtraverse makeClassyPrisms + [ ''EvaluationError + ] + +instance Bifunctor EvaluationError where + bimap f _ (OperationalEvaluationError err) = OperationalEvaluationError $ f err + bimap _ g (StructuralEvaluationError err) = StructuralEvaluationError $ g err + +instance Bifoldable EvaluationError where + bifoldMap f _ (OperationalEvaluationError err) = f err + bifoldMap _ g (StructuralEvaluationError err) = g err + +instance Bitraversable EvaluationError where + bitraverse f _ (OperationalEvaluationError err) = OperationalEvaluationError <$> f err + bitraverse _ g (StructuralEvaluationError err) = StructuralEvaluationError <$> g err + +-- | A raw evaluation failure is always an operational error. +instance AsEvaluationFailure operational => + AsEvaluationFailure (EvaluationError operational structural) where + _EvaluationFailure = _OperationalEvaluationError . _EvaluationFailure + +instance + ( HasPrettyDefaults config ~ 'True + , Pretty operational, PrettyBy config structural + ) => PrettyBy config (EvaluationError operational structural) where + prettyBy _ (OperationalEvaluationError operational) = pretty operational + prettyBy config (StructuralEvaluationError structural) = prettyBy config structural + +instance (Pretty operational, Pretty structural) => + Pretty (EvaluationError operational structural) where + pretty (OperationalEvaluationError operational) = pretty operational + pretty (StructuralEvaluationError structural) = pretty structural diff --git a/plutus-core/plutus-core/src/PlutusCore/Evaluation/ErrorWithCause.hs b/plutus-core/plutus-core/src/PlutusCore/Evaluation/ErrorWithCause.hs index 15d3123338e..f63f2588506 100644 --- a/plutus-core/plutus-core/src/PlutusCore/Evaluation/ErrorWithCause.hs +++ b/plutus-core/plutus-core/src/PlutusCore/Evaluation/ErrorWithCause.hs @@ -1,5 +1,6 @@ {-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE FlexibleInstances #-} +{-# LANGUAGE LambdaCase #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE TypeFamilies #-} @@ -8,10 +9,13 @@ module PlutusCore.Evaluation.ErrorWithCause ( ErrorWithCause (..) , throwingWithCause + , throwingWithCause_ + , throwBuiltinErrorWithCause ) where import PlutusPrelude +import PlutusCore.Builtin.Result import PlutusCore.Evaluation.Result import PlutusCore.Pretty @@ -37,11 +41,14 @@ instance (Pretty err, Pretty cause) => Pretty (ErrorWithCause err cause) where instance (PrettyBy config cause, PrettyBy config err) => PrettyBy config (ErrorWithCause err cause) where - prettyBy config (ErrorWithCause err mayCause) = - "An error has occurred: " <+> prettyBy config err <> - case mayCause of - Nothing -> mempty - Just cause -> hardline <> "Caused by:" <+> prettyBy config cause + prettyBy config (ErrorWithCause err mayCause) = fold + [ "An error has occurred:" + , hardline + , prettyBy config err + , case mayCause of + Nothing -> mempty + Just cause -> hardline <> "Caused by:" <+> prettyBy config cause + ] instance (PrettyPlc cause, PrettyPlc err) => Show (ErrorWithCause err cause) where @@ -56,3 +63,26 @@ throwingWithCause :: forall exc e t term m x. (exc ~ ErrorWithCause e term, MonadError exc m) => AReview e t -> t -> Maybe term -> m x throwingWithCause l t cause = reviews l (\e -> throwError $ ErrorWithCause e cause) t + +-- | "Prismatically" throw a contentless error and its (optional) cause. 'throwingWithCause_' is to +-- 'throwingWithCause' as 'throwing_' is to 'throwing'. +throwingWithCause_ + -- Binds @exc@ so it can be used as a convenient parameter with @TypeApplications@. + :: forall exc e term m x. (exc ~ ErrorWithCause e term, MonadError exc m) + => AReview e () -> Maybe term -> m x +throwingWithCause_ l = throwingWithCause l () + +-- | Attach a @cause@ to a 'BuiltinError' and throw that. +-- Note that an evaluator might require the cause to be computed lazily for best performance on the +-- happy path, hence this function must not force its first argument. +-- TODO: wrap @cause@ in 'Lazy' once we have it. +throwBuiltinErrorWithCause + :: ( MonadError (ErrorWithCause err cause) m + , AsUnliftingEvaluationError err, AsEvaluationFailure err + ) + => cause -> BuiltinError -> m void +throwBuiltinErrorWithCause cause = \case + BuiltinUnliftingEvaluationError unlErr -> + throwingWithCause _UnliftingEvaluationError unlErr $ Just cause + BuiltinEvaluationFailure -> + throwingWithCause_ _EvaluationFailure $ Just cause diff --git a/plutus-core/plutus-core/src/PlutusCore/Evaluation/Machine/BuiltinCostModel.hs b/plutus-core/plutus-core/src/PlutusCore/Evaluation/Machine/BuiltinCostModel.hs index a5855efff28..39c4169d34e 100644 --- a/plutus-core/plutus-core/src/PlutusCore/Evaluation/Machine/BuiltinCostModel.hs +++ b/plutus-core/plutus-core/src/PlutusCore/Evaluation/Machine/BuiltinCostModel.hs @@ -20,9 +20,16 @@ module PlutusCore.Evaluation.Machine.BuiltinCostModel , Coefficient0(..) , Coefficient1(..) , Coefficient2(..) + , Coefficient00(..) + , Coefficient10(..) + , Coefficient01(..) + , Coefficient20(..) + , Coefficient11(..) + , Coefficient02(..) , OneVariableLinearFunction(..) , OneVariableQuadraticFunction(..) , TwoVariableLinearFunction(..) + , TwoVariableQuadraticFunction(..) , ModelSubtractedSizes(..) , ModelConstantOrOneArgument(..) , ModelConstantOrTwoArguments(..) diff --git a/plutus-core/plutus-core/src/PlutusCore/Evaluation/Machine/Ck.hs b/plutus-core/plutus-core/src/PlutusCore/Evaluation/Machine/Ck.hs index e188b2cfa73..63c9a8f0cfb 100644 --- a/plutus-core/plutus-core/src/PlutusCore/Evaluation/Machine/Ck.hs +++ b/plutus-core/plutus-core/src/PlutusCore/Evaluation/Machine/Ck.hs @@ -17,12 +17,11 @@ module PlutusCore.Evaluation.Machine.Ck , CkEvaluationException , CkM , CkValue - , extractEvaluationResult , runCk + , extractEvaluationResult + , unsafeToEvaluationResult , evaluateCk , evaluateCkNoEmit - , unsafeEvaluateCk - , unsafeEvaluateCkNoEmit , readKnownCk ) where @@ -116,6 +115,9 @@ type CkM uni fun s = instance AsEvaluationFailure CkUserError where _EvaluationFailure = _EvaluationFailureVia CkEvaluationFailure +instance AsUnliftingError CkUserError where + _UnliftingError = _UnliftingErrorVia CkEvaluationFailure + instance Pretty CkUserError where pretty CkEvaluationFailure = "The provided Plutus code called 'error'." @@ -195,7 +197,7 @@ stack |> Constr _ ty i es = case es of t : ts -> FrameConstr ty i ts [] : stack |> t stack |> Case _ _ arg cs = FrameCase cs : stack |> arg _ |> Error{} = - throwingWithCause _EvaluationError (UserEvaluationError CkEvaluationFailure) Nothing + throwingWithCause _EvaluationError (OperationalEvaluationError CkEvaluationFailure) Nothing _ |> var@Var{} = throwingWithCause _MachineError OpenTermEvaluatedMachineError $ Just var @@ -312,22 +314,6 @@ evaluateCkNoEmit -> Either (CkEvaluationException uni fun) (Term TyName Name uni fun ()) evaluateCkNoEmit runtime = fst . runCk runtime False --- | Evaluate a term using the CK machine with logging enabled. May throw a 'CkEvaluationException'. -unsafeEvaluateCk - :: ThrowableBuiltins uni fun - => BuiltinsRuntime fun (CkValue uni fun) - -> Term TyName Name uni fun () - -> (EvaluationResult (Term TyName Name uni fun ()), [Text]) -unsafeEvaluateCk runtime = first unsafeExtractEvaluationResult . evaluateCk runtime - --- | Evaluate a term using the CK machine with logging disabled. May throw a 'CkEvaluationException'. -unsafeEvaluateCkNoEmit - :: ThrowableBuiltins uni fun - => BuiltinsRuntime fun (CkValue uni fun) - -> Term TyName Name uni fun () - -> EvaluationResult (Term TyName Name uni fun ()) -unsafeEvaluateCkNoEmit runtime = unsafeExtractEvaluationResult . evaluateCkNoEmit runtime - -- | Unlift a value using the CK machine. readKnownCk :: ReadKnown (Term TyName Name uni fun ()) a diff --git a/plutus-core/plutus-core/src/PlutusCore/Evaluation/Machine/CostModelInterface.hs b/plutus-core/plutus-core/src/PlutusCore/Evaluation/Machine/CostModelInterface.hs index b9722d754dd..134db5c7c54 100644 --- a/plutus-core/plutus-core/src/PlutusCore/Evaluation/Machine/CostModelInterface.hs +++ b/plutus-core/plutus-core/src/PlutusCore/Evaluation/Machine/CostModelInterface.hs @@ -259,9 +259,9 @@ data CostModelApplyWarn = instance Pretty CostModelApplyError where pretty = (preamble <+>) . \case - CMUnknownParamError k -> "Unknown cost model parameter:" <+> pretty k - CMInternalReadError -> "Internal problem occurred upon reading the given cost model parameteres" - CMInternalWriteError str -> "Internal problem occurred upon generating the applied cost model parameters with JSON error:" <+> pretty str + CMUnknownParamError k -> "No such parameter in target cost model:" <+> pretty k + CMInternalReadError -> "Internal problem occurred upon reading the given cost model parameters" + CMInternalWriteError str -> "Internal problem occurred upon generating the applied cost model parameters with JSON error:" <+> pretty str where preamble = "applyParams error:" diff --git a/plutus-core/plutus-core/src/PlutusCore/Evaluation/Machine/CostingFun/Core.hs b/plutus-core/plutus-core/src/PlutusCore/Evaluation/Machine/CostingFun/Core.hs index f3e20a12a6f..36beaf63d29 100644 --- a/plutus-core/plutus-core/src/PlutusCore/Evaluation/Machine/CostingFun/Core.hs +++ b/plutus-core/plutus-core/src/PlutusCore/Evaluation/Machine/CostingFun/Core.hs @@ -17,9 +17,16 @@ module PlutusCore.Evaluation.Machine.CostingFun.Core , Coefficient0(..) , Coefficient1(..) , Coefficient2(..) + , Coefficient00(..) + , Coefficient10(..) + , Coefficient01(..) + , Coefficient20(..) + , Coefficient11(..) + , Coefficient02(..) , OneVariableLinearFunction(..) - , TwoVariableLinearFunction(..) , OneVariableQuadraticFunction(..) + , TwoVariableLinearFunction(..) + , TwoVariableQuadraticFunction(..) , ModelSubtractedSizes(..) , ModelConstantOrLinear(..) -- Deprecated: see below. , ModelConstantOrOneArgument(..) @@ -150,6 +157,48 @@ newtype Coefficient2 = Coefficient2 } deriving stock (Generic, Lift) deriving newtype (Show, Eq, Num, NFData) +-- | A wrapped 'CostingInteger' that is supposed to be used as the degree (0,0) +-- coefficient of a two-variable polynomial. +newtype Coefficient00 = Coefficient00 + { unCoefficient00 :: CostingInteger + } deriving stock (Generic, Lift) + deriving newtype (Show, Eq, Num, NFData) + +-- | A wrapped 'CostingInteger' that is supposed to be used as the degree (1,0) +-- coefficient of a two-variable polynomial. +newtype Coefficient10 = Coefficient10 + { unCoefficient10 :: CostingInteger + } deriving stock (Generic, Lift) + deriving newtype (Show, Eq, Num, NFData) + +-- | A wrapped 'CostingInteger' that is supposed to be used as the degree (0,1) +-- coefficient of a two-variable polynomial. +newtype Coefficient01 = Coefficient01 + { unCoefficient01 :: CostingInteger + } deriving stock (Generic, Lift) + deriving newtype (Show, Eq, Num, NFData) + +-- | A wrapped 'CostingInteger' that is supposed to be used as the degree (2,0) +-- coefficient of a two-variable polynomial. +newtype Coefficient20 = Coefficient20 + { unCoefficient20 :: CostingInteger + } deriving stock (Generic, Lift) + deriving newtype (Show, Eq, Num, NFData) + +-- | A wrapped 'CostingInteger' that is supposed to be used as the degree (1,1) +-- coefficient of a two-variable polynomial. +newtype Coefficient11 = Coefficient11 + { unCoefficient11 :: CostingInteger + } deriving stock (Generic, Lift) + deriving newtype (Show, Eq, Num, NFData) + +-- | A wrapped 'CostingInteger' that is supposed to be used as the degree (0,2) +-- coefficient of a two-variable polynomial. +newtype Coefficient02 = Coefficient02 + { unCoefficient02 :: CostingInteger + } deriving stock (Generic, Lift) + deriving newtype (Show, Eq, Num, NFData) + ---------------- One-argument costing functions ---------------- data ModelOneArgument = @@ -283,7 +332,7 @@ data TwoVariableLinearFunction = TwoVariableLinearFunction } deriving stock (Show, Eq, Generic, Lift) deriving anyclass (NFData) --- | c2*x^2 + c1*x + c0 +-- | c0 + c1*x + c2*x^2 data OneVariableQuadraticFunction = OneVariableQuadraticFunction { oneVariableQuadraticFunctionC0 :: Coefficient0 , oneVariableQuadraticFunctionC1 :: Coefficient1 @@ -292,11 +341,48 @@ data OneVariableQuadraticFunction = OneVariableQuadraticFunction deriving anyclass (NFData) {-# INLINE evaluateOneVariableQuadraticFunction #-} -evaluateOneVariableQuadraticFunction :: OneVariableQuadraticFunction -> CostingInteger -> CostingInteger +evaluateOneVariableQuadraticFunction + :: OneVariableQuadraticFunction + -> CostingInteger + -> CostingInteger evaluateOneVariableQuadraticFunction (OneVariableQuadraticFunction (Coefficient0 c0) (Coefficient1 c1) (Coefficient2 c2)) x = c0 + c1*x + c2*x*x +{- Note [Minimum values for two-variable quadratic costing functions] Unlike most + of our other costing functions our use cases for two-variable quadratic + costing functions may require one or more negative coefficients, so there's a + danger that we could return a negative cost. This is unlikely, but we make + certain that it never happens by returning a result that is at never smaller + than a minimum value that is stored along with the coefficients of the + function. +-} +-- | c00 + c10*x + c01*y + c20*x^2 + c11*c*y + c02*y^2 +data TwoVariableQuadraticFunction = TwoVariableQuadraticFunction + { twoVariableQuadraticFunctionMinimum :: CostingInteger + , twoVariableQuadraticFunctionC00 :: Coefficient00 + , twoVariableQuadraticFunctionC10 :: Coefficient10 + , twoVariableQuadraticFunctionC01 :: Coefficient01 + , twoVariableQuadraticFunctionC20 :: Coefficient20 + , twoVariableQuadraticFunctionC11 :: Coefficient11 + , twoVariableQuadraticFunctionC02 :: Coefficient02 + } deriving stock (Show, Eq, Generic, Lift) + deriving anyclass (NFData) + +{-# INLINE evaluateTwoVariableQuadraticFunction #-} +evaluateTwoVariableQuadraticFunction + :: TwoVariableQuadraticFunction + -> CostingInteger + -> CostingInteger + -> CostingInteger +evaluateTwoVariableQuadraticFunction + (TwoVariableQuadraticFunction minVal + (Coefficient00 c00) (Coefficient10 c10) (Coefficient01 c01) + (Coefficient20 c20) (Coefficient11 c11) (Coefficient02 c02) + ) x y = max minVal (c00 + c10*x + c01*y + c20*x*x + c11*x*y + c02*y*y) + -- We want to be absolutely sure that we don't get back a negative number + -- here: see Note [Minimum values for two-variable quadratic costing functions] + -- FIXME: we could use ModelConstantOrOneArgument for -- ModelTwoArgumentsSubtractedSizes instead, but that would change the order of -- the cost model parameters since the minimum value would come first instead of @@ -364,6 +450,7 @@ data ModelTwoArguments = | ModelTwoArgumentsConstAboveDiagonal ModelConstantOrTwoArguments | ModelTwoArgumentsConstBelowDiagonal ModelConstantOrTwoArguments | ModelTwoArgumentsQuadraticInY OneVariableQuadraticFunction + | ModelTwoArgumentsQuadraticInXAndY TwoVariableQuadraticFunction deriving stock (Show, Eq, Generic, Lift) deriving anyclass (NFData) @@ -493,6 +580,12 @@ runTwoArgumentModel (ModelTwoArgumentsQuadraticInY f) = lazy $ \_ costs2 -> CostLast $ evaluateOneVariableQuadraticFunction f $ sumCostStream costs2 +runTwoArgumentModel + (ModelTwoArgumentsQuadraticInXAndY f) = + lazy $ \costs1 costs2 -> + let !size1 = sumCostStream costs1 + !size2 = sumCostStream costs2 + in CostLast $ evaluateTwoVariableQuadraticFunction f size1 size2 {-# NOINLINE runTwoArgumentModel #-} diff --git a/plutus-core/plutus-core/src/PlutusCore/Evaluation/Machine/CostingFun/JSON.hs b/plutus-core/plutus-core/src/PlutusCore/Evaluation/Machine/CostingFun/JSON.hs index 31ad722551c..0ce9d157ba1 100644 --- a/plutus-core/plutus-core/src/PlutusCore/Evaluation/Machine/CostingFun/JSON.hs +++ b/plutus-core/plutus-core/src/PlutusCore/Evaluation/Machine/CostingFun/JSON.hs @@ -43,6 +43,18 @@ deriving newtype instance FromJSON Coefficient1 deriving newtype instance ToJSON Coefficient1 deriving newtype instance FromJSON Coefficient2 deriving newtype instance ToJSON Coefficient2 +deriving newtype instance FromJSON Coefficient00 +deriving newtype instance ToJSON Coefficient00 +deriving newtype instance FromJSON Coefficient10 +deriving newtype instance ToJSON Coefficient10 +deriving newtype instance FromJSON Coefficient01 +deriving newtype instance ToJSON Coefficient01 +deriving newtype instance FromJSON Coefficient20 +deriving newtype instance ToJSON Coefficient20 +deriving newtype instance FromJSON Coefficient11 +deriving newtype instance ToJSON Coefficient11 +deriving newtype instance FromJSON Coefficient02 +deriving newtype instance ToJSON Coefficient02 deriving via ModelArgumentJSON "ModelOneArgument" ModelOneArgument instance FromJSON ModelOneArgument @@ -85,6 +97,10 @@ deriving via ModelJSON "oneVariableQuadraticFunction" OneVariableQuadraticFuncti instance FromJSON OneVariableQuadraticFunction deriving via ModelJSON "oneVariableQuadraticFunction" OneVariableQuadraticFunction instance ToJSON OneVariableQuadraticFunction +deriving via ModelJSON "twoVariableQuadraticFunction" TwoVariableQuadraticFunction + instance FromJSON TwoVariableQuadraticFunction +deriving via ModelJSON "twoVariableQuadraticFunction" TwoVariableQuadraticFunction + instance ToJSON TwoVariableQuadraticFunction deriving via ModelJSON "modelConstantOrOneArgument" ModelConstantOrOneArgument instance FromJSON ModelConstantOrOneArgument deriving via ModelJSON "modelConstantOrOneArgument" ModelConstantOrOneArgument diff --git a/plutus-core/plutus-core/src/PlutusCore/Evaluation/Machine/CostingFun/SimpleJSON.hs b/plutus-core/plutus-core/src/PlutusCore/Evaluation/Machine/CostingFun/SimpleJSON.hs index 84fdcf53816..c93dcf45a34 100644 --- a/plutus-core/plutus-core/src/PlutusCore/Evaluation/Machine/CostingFun/SimpleJSON.hs +++ b/plutus-core/plutus-core/src/PlutusCore/Evaluation/Machine/CostingFun/SimpleJSON.hs @@ -20,17 +20,35 @@ instance FromJSON LinearFunction where parseJSON = withObject "Linear function" $ \obj -> LinearFunction <$> obj .: "intercept" <*> obj .: "slope" -data QuadraticFunction = - QuadraticFunction +data OneVariableQuadraticFunction = + OneVariableQuadraticFunction { coeff0_ :: Integer , coeff1_ :: Integer , coeff2_ :: Integer } deriving stock (Show, Lift) -instance FromJSON QuadraticFunction where - parseJSON = withObject "Quadratic function" $ \obj -> - QuadraticFunction <$> obj .: "c0" <*> obj .: "c1" <*> obj .: "c2" +instance FromJSON OneVariableQuadraticFunction where + parseJSON = withObject "One-variable quadratic function" $ \obj -> + OneVariableQuadraticFunction <$> obj .: "c0" <*> obj .: "c1" <*> obj .: "c2" + +data TwoVariableQuadraticFunction = + TwoVariableQuadraticFunction + { minimum :: Integer + , coeff00_ :: Integer + , coeff10_ :: Integer + , coeff01_ :: Integer + , coeff20_ :: Integer + , coeff11_ :: Integer + , coeff02_ :: Integer + } + deriving stock (Show, Lift) + +instance FromJSON TwoVariableQuadraticFunction where + parseJSON = withObject "Two-variable quadratic function" $ \obj -> + TwoVariableQuadraticFunction <$> obj .: "minimum" <*> + obj .: "c00" <*> obj .: "c10" <*> obj .: "c01" <*> + obj .: "c20" <*> obj .: "c11" <*> obj .: "c02" {- | This type reflects what is actually in the JSON. The stuff in CostingFun.Core and CostingFun.JSON is much more rigid, allowing parsing only @@ -49,8 +67,9 @@ data Model | LinearInY LinearFunction | LinearInZ LinearFunction | LiteralInYOrLinearInZ LinearFunction - | QuadraticInY QuadraticFunction - | QuadraticInZ QuadraticFunction + | QuadraticInY OneVariableQuadraticFunction + | QuadraticInZ OneVariableQuadraticFunction + | QuadraticInXAndY TwoVariableQuadraticFunction | SubtractedSizes LinearFunction Integer -- ^ Linear model in x-y plus minimum value for the case x-y < 0. | ConstAboveDiagonal Integer Model @@ -92,6 +111,7 @@ instance FromJSON Model where "linear_in_z" -> LinearInZ <$> parseJSON args "quadratic_in_y" -> QuadraticInY <$> parseJSON args "quadratic_in_z" -> QuadraticInZ <$> parseJSON args + "quadratic_in_x_and_y" -> QuadraticInXAndY <$> parseJSON args "literal_in_y_or_linear_in_z" -> LiteralInYOrLinearInZ <$> parseJSON args "subtracted_sizes" -> SubtractedSizes <$> parseJSON args <*> objOf args .: "minimum" "const_above_diagonal" -> modelWithConstant ConstAboveDiagonal args diff --git a/plutus-core/plutus-core/src/PlutusCore/Evaluation/Machine/ExBudgetingDefaults.hs b/plutus-core/plutus-core/src/PlutusCore/Evaluation/Machine/ExBudgetingDefaults.hs index 309095f60db..2f4d119c813 100644 --- a/plutus-core/plutus-core/src/PlutusCore/Evaluation/Machine/ExBudgetingDefaults.hs +++ b/plutus-core/plutus-core/src/PlutusCore/Evaluation/Machine/ExBudgetingDefaults.hs @@ -1,17 +1,21 @@ -- editorconfig-checker-disable-file {-# LANGUAGE DataKinds #-} +{-# LANGUAGE LambdaCase #-} {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE TypeFamilies #-} module PlutusCore.Evaluation.Machine.ExBudgetingDefaults ( defaultBuiltinsRuntimeForSemanticsVariant - , defaultBuiltinsRuntime - , defaultCekCostModel - , toCekCostModel - , defaultCekMachineCosts - , defaultCekParameters - , defaultCostModelParams - , defaultBuiltinCostModel + , defaultCekParametersForVariant + , defaultCostModelParamsForVariant + , cekCostModelForVariant + , defaultBuiltinsRuntimeForTesting + , defaultCekParametersForTesting + , defaultCekMachineCostsForTesting + , defaultCostModelParamsForTesting + , defaultBuiltinCostModelForTesting + , defaultCekCostModelForTesting + , defaultCekCostModelForTestingB , unitCekMachineCosts , unitCekParameters ) @@ -34,13 +38,6 @@ import Data.Aeson.THReader import GHC.Magic (noinline) import PlutusPrelude --- | The default cost model for built-in functions. -defaultBuiltinCostModel :: BuiltinCostModel -defaultBuiltinCostModel = - $$(readJSONFromFile DFP.builtinCostModelFile) --- This is a huge record, inlining it is wasteful. -{-# NOINLINE defaultBuiltinCostModel #-} - {- Note [Modifying the cost model] When the Haskell representation of the cost model is changed, for example by adding a new builtin or changing the name of an existing one, @@ -57,22 +54,30 @@ defaultBuiltinCostModel = values (assuming that suitable benchmarking data is in benching.csv and that models.R contains R code to generate cost models for any new functions). - Alternatively, modify 'builtinCostModel.json' by hand so that it matches the new - format. + Alternatively, modify the appropriate 'builtinCostModelX.json' by hand so + that it matches the new format. -} -- import Data.Default -- defaultBuiltinCostModel :: BuiltinCostModel -- defaultBuiltinCostModel = def --- | Default costs for CEK machine instructions. -defaultCekMachineCosts :: CekMachineCosts -defaultCekMachineCosts = - $$(readJSONFromFile DFP.cekMachineCostsFile) --- We don't want this to get inlined, as otherwise the default 'CekMachineCosts' appears faster --- than 'CekMachineCosts' that we get in production after applying the costing parameters provided --- by the ledger. -{-# NOINLINE defaultCekMachineCosts #-} +-- | The default cost model for built-in functions (variant A) +builtinCostModelVariantA :: BuiltinCostModel +builtinCostModelVariantA = + $$(readJSONFromFile DFP.builtinCostModelFileA) +-- This is a huge record, inlining it is wasteful. +{-# NOINLINE builtinCostModelVariantA #-} + +{- Note [No inlining for CekMachineCosts] +We don't want this to get inlined, as otherwise the default 'CekMachineCosts' +appears faster than 'CekMachineCosts' that we get in production after applying +the costing parameters provided by the ledger. -} +-- | Default costs for CEK machine instructions (variant A) +cekMachineCostsVariantA :: CekMachineCosts +cekMachineCostsVariantA = + $$(readJSONFromFile DFP.cekMachineCostsFileA) +{-# NOINLINE cekMachineCostsVariantA #-} {-| The default cost model, including both builtin costs and machine step costs. Note that this is not necessarily the cost model in use on the chain at any @@ -83,53 +88,144 @@ defaultCekMachineCosts = evaluation the ledger passes a cost model to the Plutus Core evaluator using the `mkEvaluationContext` functions in PlutusLedgerApi. -} -defaultCekCostModel :: CostModel CekMachineCosts BuiltinCostModel -defaultCekCostModel = CostModel defaultCekMachineCosts defaultBuiltinCostModel +cekCostModelVariantA :: CostModel CekMachineCosts BuiltinCostModel +cekCostModelVariantA = CostModel cekMachineCostsVariantA builtinCostModelVariantA + +builtinCostModelVariantB :: BuiltinCostModel +builtinCostModelVariantB = + $$(readJSONFromFile DFP.builtinCostModelFileB) +{-# NOINLINE builtinCostModelVariantB #-} + +-- See Note [No inlining for CekMachineCosts] +cekMachineCostsVariantB :: CekMachineCosts +cekMachineCostsVariantB = + $$(readJSONFromFile DFP.cekMachineCostsFileB) +{-# NOINLINE cekMachineCostsVariantB #-} + +cekCostModelVariantB :: CostModel CekMachineCosts BuiltinCostModel +cekCostModelVariantB = CostModel cekMachineCostsVariantB builtinCostModelVariantB + +builtinCostModelVariantC :: BuiltinCostModel +builtinCostModelVariantC = + $$(readJSONFromFile DFP.builtinCostModelFileC) +{-# NOINLINE builtinCostModelVariantC #-} + +-- See Note [No inlining for CekMachineCosts] +cekMachineCostsVariantC :: CekMachineCosts +cekMachineCostsVariantC = + $$(readJSONFromFile DFP.cekMachineCostsFileC) +{-# NOINLINE cekMachineCostsVariantC #-} + +cekCostModelVariantC :: CostModel CekMachineCosts BuiltinCostModel +cekCostModelVariantC = CostModel cekMachineCostsVariantC builtinCostModelVariantC -- | Return the 'CostModel' corresponding to the given semantics variant. The dependency on the -- semantics variant is what makes cost models configurable. -toCekCostModel :: BuiltinSemanticsVariant DefaultFun -> CostModel CekMachineCosts BuiltinCostModel -toCekCostModel _ = defaultCekCostModel +cekCostModelForVariant :: BuiltinSemanticsVariant DefaultFun -> CostModel CekMachineCosts BuiltinCostModel +cekCostModelForVariant DefaultFunSemanticsVariantA = cekCostModelVariantA +cekCostModelForVariant DefaultFunSemanticsVariantB = cekCostModelVariantB +cekCostModelForVariant DefaultFunSemanticsVariantC = cekCostModelVariantC -- | The default cost model data. This is exposed to the ledger, so let's not -- confuse anybody by mentioning the CEK machine -defaultCostModelParams :: Maybe CostModelParams -defaultCostModelParams = extractCostModelParams defaultCekCostModel +defaultCostModelParamsA :: Maybe CostModelParams +defaultCostModelParamsA = extractCostModelParams cekCostModelVariantA + +defaultCostModelParamsB :: Maybe CostModelParams +defaultCostModelParamsB = extractCostModelParams cekCostModelVariantB + +defaultCostModelParamsC :: Maybe CostModelParams +defaultCostModelParamsC = extractCostModelParams cekCostModelVariantC + +defaultCostModelParamsForVariant :: BuiltinSemanticsVariant DefaultFun -> Maybe CostModelParams +defaultCostModelParamsForVariant = \case + DefaultFunSemanticsVariantA -> defaultCostModelParamsA + DefaultFunSemanticsVariantB -> defaultCostModelParamsB + DefaultFunSemanticsVariantC -> defaultCostModelParamsC -defaultCekParameters :: Typeable ann => MachineParameters CekMachineCosts DefaultFun (CekValue DefaultUni DefaultFun ann) -defaultCekParameters = - -- We don't want this to get inlined in order for this definition not to appear faster than the - -- one used in production. Also see Note [noinline for saving on ticks]. - noinline mkMachineParameters def defaultCekCostModel +{- Note [No inlining for MachineParameters] +We don't want this to get inlined in order for this definition not to appear +faster than the used in production. Also see Note [noinline for saving on +ticks]. -} +defaultCekParametersA :: Typeable ann => MachineParameters CekMachineCosts DefaultFun (CekValue DefaultUni DefaultFun ann) +defaultCekParametersA = + noinline mkMachineParameters DefaultFunSemanticsVariantA cekCostModelVariantA + +-- See Note [No inlining for MachineParameters] +defaultCekParametersB :: Typeable ann => MachineParameters CekMachineCosts DefaultFun (CekValue DefaultUni DefaultFun ann) +defaultCekParametersB = + noinline mkMachineParameters DefaultFunSemanticsVariantB cekCostModelVariantB + +-- See Note [No inlining for MachineParameters] +defaultCekParametersC :: Typeable ann => MachineParameters CekMachineCosts DefaultFun (CekValue DefaultUni DefaultFun ann) +defaultCekParametersC = + noinline mkMachineParameters DefaultFunSemanticsVariantC cekCostModelVariantC {- Note [noinline for saving on ticks] We use 'noinline' purely for saving on simplifier ticks for definitions, whose performance doesn't matter. Otherwise compilation for this module is slower and GHC may end up exhausting simplifier ticks leading to a compilation error. -} - -unitCekParameters :: Typeable ann => MachineParameters CekMachineCosts DefaultFun (CekValue DefaultUni DefaultFun ann) -unitCekParameters = - -- See Note [noinline for saving on ticks]. - noinline mkMachineParameters def $ - CostModel unitCekMachineCosts unitCostBuiltinCostModel - defaultBuiltinsRuntimeForSemanticsVariant :: HasMeaningIn DefaultUni term => BuiltinSemanticsVariant DefaultFun -> BuiltinsRuntime DefaultFun term -- See Note [noinline for saving on ticks]. -defaultBuiltinsRuntimeForSemanticsVariant semvar = noinline toBuiltinsRuntime semvar defaultBuiltinCostModel +defaultBuiltinsRuntimeForSemanticsVariant semvar = + noinline toBuiltinsRuntime semvar $ builtinCostModelFor semvar + where builtinCostModelFor = \case + DefaultFunSemanticsVariantA -> builtinCostModelVariantA + DefaultFunSemanticsVariantB -> builtinCostModelVariantB + DefaultFunSemanticsVariantC -> builtinCostModelVariantC -defaultBuiltinsRuntime +defaultCekParametersForVariant + :: Typeable ann + => BuiltinSemanticsVariant DefaultFun + -> MachineParameters CekMachineCosts DefaultFun (CekValue DefaultUni DefaultFun ann) +defaultCekParametersForVariant = \case + DefaultFunSemanticsVariantA -> defaultCekParametersA + DefaultFunSemanticsVariantB -> defaultCekParametersB + DefaultFunSemanticsVariantC -> defaultCekParametersC + + +-- *** THE FOLLOWING SHOULD ONLY BE USED FOR TESTING *** +{- We export a number of objects which are used in tests in a number of places in + the codebase. For the time being we'll just use the most recent cost model + for all of these. In fact we may want tests for each variant in some cases + TODO: + * Maybe export fewer things and extract the required component at the use site. + * Make the names more sensible: does "default" refer to the variant + or the set of builtins? + * Perhaps export functions like `defaultBuiltinCostModelForVariant + and then apply those to `def` where they're used. +-} +defaultBuiltinsRuntimeForTesting :: HasMeaningIn DefaultUni term => BuiltinsRuntime DefaultFun term -- See Note [noinline for saving on ticks]. -defaultBuiltinsRuntime = noinline toBuiltinsRuntime def defaultBuiltinCostModel +defaultBuiltinsRuntimeForTesting = defaultBuiltinsRuntimeForSemanticsVariant DefaultFunSemanticsVariantC + +defaultCekParametersForTesting :: Typeable ann => MachineParameters CekMachineCosts DefaultFun (CekValue DefaultUni DefaultFun ann) +defaultCekParametersForTesting = defaultCekParametersC +defaultCekMachineCostsForTesting :: CekMachineCosts +defaultCekMachineCostsForTesting = cekMachineCostsVariantC --- A cost model with unit costs, so we can count how often each builtin is called +defaultBuiltinCostModelForTesting :: BuiltinCostModel +defaultBuiltinCostModelForTesting = builtinCostModelVariantC +defaultCostModelParamsForTesting :: Maybe CostModelParams +defaultCostModelParamsForTesting = defaultCostModelParamsC + +defaultCekCostModelForTesting :: CostModel CekMachineCosts BuiltinCostModel +defaultCekCostModelForTesting = cekCostModelVariantC + +defaultCekCostModelForTestingB :: CostModel CekMachineCosts BuiltinCostModel +defaultCekCostModelForTestingB = cekCostModelVariantB + +{- A cost model with unit costs, so we can count how often each builtin is called. + This currently works for all semantics variants because to date we have only + ever added new builtins and never removed any. -} unitCostOneArgument :: CostingFun ModelOneArgument unitCostOneArgument = CostingFun (ModelOneArgumentConstantCost 1) (ModelOneArgumentConstantCost 0) @@ -236,3 +332,8 @@ unitCostBuiltinCostModel = BuiltinCostModelBase , paramByteStringToInteger = unitCostTwoArguments } +unitCekParameters :: Typeable ann => MachineParameters CekMachineCosts DefaultFun (CekValue DefaultUni DefaultFun ann) +unitCekParameters = + -- See Note [noinline for saving on ticks]. + noinline mkMachineParameters def $ + CostModel unitCekMachineCosts unitCostBuiltinCostModel diff --git a/plutus-core/plutus-core/src/PlutusCore/Evaluation/Machine/Exception.hs b/plutus-core/plutus-core/src/PlutusCore/Evaluation/Machine/Exception.hs index 354750cc82c..c56a4e6faed 100644 --- a/plutus-core/plutus-core/src/PlutusCore/Evaluation/Machine/Exception.hs +++ b/plutus-core/plutus-core/src/PlutusCore/Evaluation/Machine/Exception.hs @@ -29,7 +29,7 @@ module PlutusCore.Evaluation.Machine.Exception , throwing_ , throwingWithCause , extractEvaluationResult - , unsafeExtractEvaluationResult + , unsafeToEvaluationResult ) where import PlutusPrelude @@ -55,9 +55,9 @@ data MachineError fun | OpenTermEvaluatedMachineError -- ^ An attempt to evaluate an open term. | UnliftingMachineError UnliftingError - -- ^ An attempt to compute a constant application resulted in 'ConstAppError'. + -- ^ An attempt to compute a constant application resulted in 'UnliftingError'. | BuiltinTermArgumentExpectedMachineError - -- ^ A builtin expected a term argument, but something else was received + -- ^ A builtin expected a term argument, but something else was received. | UnexpectedBuiltinTermArgumentMachineError -- ^ A builtin received a term argument when something else was expected | NonConstrScrutinized @@ -65,62 +65,49 @@ data MachineError fun deriving stock (Show, Eq, Functor, Generic) deriving anyclass (NFData) --- | The type of errors (all of them) which can occur during evaluation --- (some are used-caused, some are internal). -data EvaluationError user internal - = InternalEvaluationError !internal - -- ^ Indicates bugs. - | UserEvaluationError !user - -- ^ Indicates user errors. - deriving stock (Show, Eq, Functor, Generic) - deriving anyclass (NFData) - mtraverse makeClassyPrisms [ ''MachineError - , ''EvaluationError ] -instance internal ~ MachineError fun => AsMachineError (EvaluationError user internal) fun where - _MachineError = _InternalEvaluationError -instance AsUnliftingError internal => AsUnliftingError (EvaluationError user internal) where - _UnliftingError = _InternalEvaluationError . _UnliftingError +instance structural ~ MachineError fun => + AsMachineError (EvaluationError operational structural) fun where + _MachineError = _StructuralEvaluationError + instance AsUnliftingError (MachineError fun) where _UnliftingError = _UnliftingMachineError -instance AsEvaluationFailure user => AsEvaluationFailure (EvaluationError user internal) where - _EvaluationFailure = _UserEvaluationError . _EvaluationFailure -type EvaluationException user internal = - ErrorWithCause (EvaluationError user internal) - -{- Note [Ignoring context in UserEvaluationError] -The UserEvaluationError error has a term argument, but -extractEvaluationResult just discards this and returns -EvaluationFailure. This means that, for example, if we use the `plc` -command to execute a program containing a division by zero, plc exits -silently without reporting that anything has gone wrong (but returning -a non-zero exit code to the shell via `exitFailure`). This is because -UserEvaluationError is used in cases when a PLC program itself goes -wrong (for example, a failure due to `(error)`, a failure during -builtin evaluation, or exceeding the gas limit). This is used to -signal unsuccessful in validation and so is not regarded as a real -error; in contrast, machine errors, typechecking failures, -and so on are genuine errors and we report their context if available. - -} - --- | Turn any 'UserEvaluationError' into an 'EvaluationFailure'. +type EvaluationException operational structural = + ErrorWithCause (EvaluationError operational structural) + +{- Note [Ignoring context in OperationalEvaluationError] +The 'OperationalEvaluationError' error has a term argument, but 'extractEvaluationResult' just +discards this and returns 'EvaluationFailure'. This means that, for example, if we use the @plc@ +command to execute a program containing a division by zero, @plc@ exits silently without reporting +that anything has gone wrong (but returning a non-zero exit code to the shell via 'exitFailure'). +This is because 'OperationalEvaluationError' is used in cases when a PLC program itself goes wrong +(see the Haddocks of 'EvaluationError'). This is used to signal unsuccessful validation and so is +not regarded as a real error; in contrast structural errors are genuine errors and we report their +context if available. +-} + +-- See Note [Ignoring context in OperationalEvaluationError]. +-- | Preserve the contents of an 'StructuralEvaluationError' as a 'Left' and turn an +-- 'OperationalEvaluationError' into a @Right EvaluationFailure@. extractEvaluationResult - :: Either (EvaluationException user internal term) a - -> Either (ErrorWithCause internal term) (EvaluationResult a) + :: Either (EvaluationException operational structural term) a + -> Either (ErrorWithCause structural term) (EvaluationResult a) extractEvaluationResult (Right term) = Right $ EvaluationSuccess term extractEvaluationResult (Left (ErrorWithCause evalErr cause)) = case evalErr of - InternalEvaluationError err -> Left $ ErrorWithCause err cause - UserEvaluationError _ -> Right $ EvaluationFailure + StructuralEvaluationError err -> Left $ ErrorWithCause err cause + OperationalEvaluationError _ -> Right EvaluationFailure -unsafeExtractEvaluationResult +-- | Throw on a 'StructuralEvaluationError' and turn an 'OperationalEvaluationError' into an +-- 'EvaluationFailure'. +unsafeToEvaluationResult :: (PrettyPlc internal, PrettyPlc term, Typeable internal, Typeable term) => Either (EvaluationException user internal term) a -> EvaluationResult a -unsafeExtractEvaluationResult = unsafeFromEither . extractEvaluationResult +unsafeToEvaluationResult = unsafeFromEither . extractEvaluationResult instance (HasPrettyDefaults config ~ 'True, Pretty fun) => PrettyBy config (MachineError fun) where @@ -142,16 +129,3 @@ instance (HasPrettyDefaults config ~ 'True, Pretty fun) => "A non-constructor value was scrutinized in a case expression" prettyBy _ (MissingCaseBranch i) = "Case expression missing the branch required by the scrutinee tag:" <+> pretty i - -instance - ( HasPrettyDefaults config ~ 'True - , PrettyBy config internal, Pretty user - ) => PrettyBy config (EvaluationError user internal) where - prettyBy config (InternalEvaluationError err) = fold - [ "error:", hardline - , prettyBy config err - ] - prettyBy _ (UserEvaluationError err) = fold - [ "User error:", hardline - , pretty err - ] diff --git a/plutus-core/plutus-core/src/PlutusCore/Evaluation/Machine/MachineParameters/Default.hs b/plutus-core/plutus-core/src/PlutusCore/Evaluation/Machine/MachineParameters/Default.hs index 91e0733b630..b7eca92f7bd 100644 --- a/plutus-core/plutus-core/src/PlutusCore/Evaluation/Machine/MachineParameters/Default.hs +++ b/plutus-core/plutus-core/src/PlutusCore/Evaluation/Machine/MachineParameters/Default.hs @@ -46,7 +46,7 @@ inlining). -- | Produce a 'DefaultMachineParameters' for each of the given semantics variants. -- The 'CostModelParams' argument is used to update the costing parameters returned by --- 'toCekCostModel' for each of the semantics variants. +-- 'cekCostModelForVariant' for each of the semantics variants. -- -- Whenever you need to evaluate UPLC in a performance-sensitive manner (e.g. in the production, -- for benchmarking, for cost calibration etc), you MUST use this definition for creating a @@ -68,7 +68,7 @@ mkMachineParametersFor semVars newCMP = do res <- for semVars $ \semVar -> -- See Note [Inlining meanings of builtins]. (,) semVar . inline mkMachineParameters semVar <$> - applyCostModelParams (toCekCostModel semVar) newCMP + applyCostModelParams (cekCostModelForVariant semVar) newCMP -- Force all thunks to pay the cost of creating machine parameters upfront. Doing it here saves -- us from doing that in every single benchmark runner. pure $! force res diff --git a/plutus-core/plutus-core/src/PlutusCore/Evaluation/Machine/SimpleBuiltinCostModel.hs b/plutus-core/plutus-core/src/PlutusCore/Evaluation/Machine/SimpleBuiltinCostModel.hs index 717b09e74bc..71f566827f3 100644 --- a/plutus-core/plutus-core/src/PlutusCore/Evaluation/Machine/SimpleBuiltinCostModel.hs +++ b/plutus-core/plutus-core/src/PlutusCore/Evaluation/Machine/SimpleBuiltinCostModel.hs @@ -1,6 +1,7 @@ {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE TemplateHaskell #-} +-- TODO: Extend this to handle the different variants of the cost model {- | A program to parse a JSON representation of costing functions for Plutus Core builtins and and produce a simple cost model which can be used from Agda and other executables -} @@ -23,9 +24,10 @@ type BuiltinCostMap = [(Text, CpuAndMemoryModel)] type BuiltinCostKeyMap = KeyMap.KeyMap CpuAndMemoryModel -- | The default builtin cost map. + -- TODO: maybe we should take account of the semantic variant here. defaultBuiltinCostKeyMap :: BuiltinCostKeyMap defaultBuiltinCostKeyMap = - $$(readJSONFromFile DFP.builtinCostModelFile) + $$(readJSONFromFile DFP.latestBuiltinCostModelFile) -- replace underscores _ by dashes - builtinName :: Text -> Text diff --git a/plutus-core/plutus-core/src/PlutusCore/Evaluation/Result.hs b/plutus-core/plutus-core/src/PlutusCore/Evaluation/Result.hs index d45c768a58e..43321ea4c88 100644 --- a/plutus-core/plutus-core/src/PlutusCore/Evaluation/Result.hs +++ b/plutus-core/plutus-core/src/PlutusCore/Evaluation/Result.hs @@ -43,7 +43,7 @@ evaluationFailure :: AsEvaluationFailure err => err evaluationFailure = _EvaluationFailure # () {-# INLINE evaluationFailure #-} --- | Construct a 'Prism' focusing on the @*EvaluationFailure@ part of @err@ by taking +-- | Construct a prism focusing on the @*EvaluationFailure@ part of @err@ by taking -- that @*EvaluationFailure@ and -- -- 1. returning it for the setter part of the prism diff --git a/plutus-core/plutus-core/src/PlutusCore/MkPlc.hs b/plutus-core/plutus-core/src/PlutusCore/MkPlc.hs index afc44d0d92d..cef4f70725e 100644 --- a/plutus-core/plutus-core/src/PlutusCore/MkPlc.hs +++ b/plutus-core/plutus-core/src/PlutusCore/MkPlc.hs @@ -29,7 +29,7 @@ module PlutusCore.MkPlc , mkTyVar , tyDeclVar , Def (..) - , embed + , embedTerm , TermDef , TypeDef , FunctionType (..) @@ -121,20 +121,20 @@ instance TermLike (Term tyname name uni fun) tyname name uni fun where constr = Constr kase = Case -embed :: TermLike term tyname name uni fun => Term tyname name uni fun ann -> term ann -embed = \case +embedTerm :: TermLike term tyname name uni fun => Term tyname name uni fun ann -> term ann +embedTerm = \case Var a n -> var a n - TyAbs a tn k t -> tyAbs a tn k (embed t) - LamAbs a n ty t -> lamAbs a n ty (embed t) - Apply a t1 t2 -> apply a (embed t1) (embed t2) + TyAbs a tn k t -> tyAbs a tn k (embedTerm t) + LamAbs a n ty t -> lamAbs a n ty (embedTerm t) + Apply a t1 t2 -> apply a (embedTerm t1) (embedTerm t2) Constant a c -> constant a c Builtin a bi -> builtin a bi - TyInst a t ty -> tyInst a (embed t) ty + TyInst a t ty -> tyInst a (embedTerm t) ty Error a ty -> error a ty - Unwrap a t -> unwrap a (embed t) - IWrap a ty1 ty2 t -> iWrap a ty1 ty2 (embed t) - Constr a ty i es -> constr a ty i (fmap embed es) - Case a ty arg cs -> kase a ty (embed arg) (fmap embed cs) + Unwrap a t -> unwrap a (embedTerm t) + IWrap a ty1 ty2 t -> iWrap a ty1 ty2 (embedTerm t) + Constr a ty i es -> constr a ty i (fmap embedTerm es) + Case a ty arg cs -> kase a ty (embedTerm arg) (fmap embedTerm cs) -- | Make a 'Var' referencing the given 'VarDecl'. mkVar :: TermLike term tyname name uni fun => ann -> VarDecl tyname name uni ann -> term ann diff --git a/plutus-core/plutus-core/src/PlutusCore/TypeCheck.hs b/plutus-core/plutus-core/src/PlutusCore/TypeCheck.hs index b71f193d2db..995f944c372 100644 --- a/plutus-core/plutus-core/src/PlutusCore/TypeCheck.hs +++ b/plutus-core/plutus-core/src/PlutusCore/TypeCheck.hs @@ -36,9 +36,9 @@ import PlutusCore.Quote import PlutusCore.Rename import PlutusCore.TypeCheck.Internal --- | The constraint for built-in types/functions are kind/type-checkable. +-- | The constraint for built-in types\/functions are kind\/type-checkable. -- --- We keep this separate from 'MonadKindCheck'/'MonadTypeCheck', because those mainly constrain the +-- We keep this separate from 'MonadKindCheck'\/'MonadTypeCheck', because those mainly constrain the -- monad and 'Typecheckable' constraints only the builtins. In particular useful when the monad gets -- instantiated and builtins don't. Another reason is that 'Typecheckable' is not required during -- type checking, since it's only needed for computing 'BuiltinTypes', which is passed as a regular diff --git a/plutus-core/plutus-core/test/CostModelInterface/Spec.hs b/plutus-core/plutus-core/test/CostModelInterface/Spec.hs index d14a115dde0..7f7e4b042a6 100644 --- a/plutus-core/plutus-core/test/CostModelInterface/Spec.hs +++ b/plutus-core/plutus-core/test/CostModelInterface/Spec.hs @@ -66,7 +66,7 @@ cekVarCostCpuKey :: Text.Text cekVarCostCpuKey = "cekVarCost-exBudgetCPU" -- This is the result of flatten . toJSON randomCekCostModel :: CekCostModel -randomCekCostModel = CostModel randomCekCosts defaultBuiltinCostModel +randomCekCostModel = CostModel randomCekCosts defaultBuiltinCostModelForTesting -- Tests @@ -80,6 +80,7 @@ extractParams model = do -- | Extract some params from a cost model and return the updated version, failing if it doesn't work applyParams :: CekCostModel -> CostModelParams -> IO CekCostModel applyParams model params = fromRightM (assertFailure . show . pretty) $ applyCostModelParams model params + -- | Just check that extraction works. testExtraction :: CekCostModel -> IO () testExtraction model = do @@ -159,8 +160,8 @@ testDeserialise = assertBool "Failed to decode default ledger cost params" $ testApply :: IO () testApply = do let decodedParams = fromJust $ decode @CostModelParams ledgerParamsBS - assertBool "Failed to load the ledger cost params into the our cost model" $ - isRight $ applyCostModelParams defaultCekCostModel decodedParams + assertBool "Failed to load the ledger cost params into our cost model" $ + isRight $ applyCostModelParams defaultCekCostModelForTesting decodedParams -- | Test to catch a mispelled/missing param. -- A parameter with that name exists in the ledger params but is missing from the cost model, and that is an error. @@ -170,7 +171,7 @@ testMispelled = do (cekVarCostValueM, paramsReducted) = deleteLookup cekVarCostCpuKey params paramsMispelled = Map.insert cekVarCostCpuKeyMispelled (fromJust cekVarCostValueM) paramsReducted assertBool "Failed to catch mispelled cost param" $ - isLeft $ applyCostModelParams defaultCekCostModel paramsMispelled + isLeft $ applyCostModelParams defaultCekCostModelForTesting paramsMispelled where cekVarCostCpuKeyMispelled = "cekVarCost--exBudgetCPU" deleteLookup = Map.updateLookupWithKey (const $ const Nothing) @@ -179,41 +180,46 @@ test_costModelInterface :: TestTree test_costModelInterface = testGroup "cost model interface tests" [ testGroup "extractCostModelParams works" - [ testCase "defaultCekCostModel" $ testExtraction defaultCekCostModel + [ testCase "defaultCekCostModel" $ testExtraction defaultCekCostModelForTesting , testCase "randomCekCostModel" $ testExtraction randomCekCostModel ] , testGroup "self-update is identity" - [ testCase "defaultCekCostModel <- defaultCekCostModel" $ testSelfUpdate defaultCekCostModel + [ testCase "defaultCekCostModel <- defaultCekCostModel" $ testSelfUpdate defaultCekCostModelForTesting , testCase "randomCekCostModel <- randomCekCostModel" $ testSelfUpdate randomCekCostModel ] , testGroup "update-empty is identity" - [ testCase "defaultCekCostModel <- defaultCekCostModel" $ testUpdateEmpty defaultCekCostModel + [ testCase "defaultCekCostModel <- defaultCekCostModel" $ testUpdateEmpty defaultCekCostModelForTesting , testCase "randomCekCostModel <- randomCekCostModel" $ testUpdateEmpty randomCekCostModel ] , testGroup "overwriting works" - [ testCase "defaultCekCostModel <- randomCekCostModel" $ testOverwrite defaultCekCostModel randomCekCostModel - , testCase "randomCekCostModel <- defaultCekCostModel" $ testOverwrite randomCekCostModel defaultCekCostModel + [ testCase "defaultCekCostModel <- randomCekCostModel" $ testOverwrite defaultCekCostModelForTesting randomCekCostModel + , testCase "randomCekCostModel <- defaultCekCostModel" $ testOverwrite randomCekCostModel defaultCekCostModelForTesting ] , testGroup "superfluous entry in params is NOT OK in self-update" - [ testCase "defaultCekCostModel" $ testSelfUpdateWithExtraEntry defaultCekCostModel + [ testCase "defaultCekCostModel" $ testSelfUpdateWithExtraEntry defaultCekCostModelForTesting , testCase "randomCekCostModel" $ testSelfUpdateWithExtraEntry randomCekCostModel ] , testGroup "missing entry in params is OK in self-update" - [ testCase "defaultCekCostModel" $ testSelfUpdateWithMissingEntry defaultCekCostModel + [ testCase "defaultCekCostModel" $ testSelfUpdateWithMissingEntry defaultCekCostModelForTesting , testCase "randomCekCostModel" $ testSelfUpdateWithMissingEntry randomCekCostModel ] , testGroup "missing entry in update of different model" - [ testCase "defaultCekCostModel" $ testOtherUpdateWithMissingEntry defaultCekCostModel randomCekCostModel - , testCase "randomCekCostModel" $ testOtherUpdateWithMissingEntry randomCekCostModel defaultCekCostModel + [ testCase "defaultCekCostModel" $ testOtherUpdateWithMissingEntry defaultCekCostModelForTesting randomCekCostModel + , testCase "randomCekCostModel" $ testOtherUpdateWithMissingEntry randomCekCostModel defaultCekCostModelForTesting ] , testGroup "extract after apply is identity" - [ testCase "defaultCekCostModel <- defaultCekCostModel" $ testExtractAfterUpdate defaultCekCostModel defaultCekCostModel - , testCase "randomCekCostModel <- randomCekCostModel" $ testExtractAfterUpdate randomCekCostModel randomCekCostModel - , testCase "randomCekCostModel <- defaultCekCostModel" $ testExtractAfterUpdate randomCekCostModel defaultCekCostModel - , testCase "defaultCekCostModel <- randomCekCostModel" $ testExtractAfterUpdate defaultCekCostModel randomCekCostModel + [ testCase "defaultCekCostModel <- defaultCekCostModel" $ + testExtractAfterUpdate defaultCekCostModelForTesting defaultCekCostModelForTesting + , testCase "randomCekCostModel <- randomCekCostModel" $ + testExtractAfterUpdate randomCekCostModel randomCekCostModel + , testCase "randomCekCostModel <- defaultCekCostModel" $ + testExtractAfterUpdate randomCekCostModel defaultCekCostModelForTesting + , testCase "defaultCekCostModel <- randomCekCostModel" $ + testExtractAfterUpdate defaultCekCostModelForTesting randomCekCostModel ] , testGroup "default ledger params" [ testCase "default ledger params deserialize" testDeserialise + -- TODO: do something here for each version of the cost model? , testCase "default ledger params can be applied to default cost model" testApply , testCase "mispelled param in ledger params " testMispelled ] diff --git a/plutus-core/plutus-core/test/CostModelInterface/defaultCostModelParams.json b/plutus-core/plutus-core/test/CostModelInterface/defaultCostModelParams.json index 075a87e260f..ac8d35742ce 100644 --- a/plutus-core/plutus-core/test/CostModelInterface/defaultCostModelParams.json +++ b/plutus-core/plutus-core/test/CostModelInterface/defaultCostModelParams.json @@ -57,7 +57,12 @@ "bls12_381_millerLoop-memory-arguments": 72, "bls12_381_mulMlResult-cpu-arguments": 2544991, "bls12_381_mulMlResult-memory-arguments": 72, - "cekApplyCost-exBudgetCPU": 23000, + "byteStringToInteger-cpu-arguments-c0": 1006041, + "byteStringToInteger-cpu-arguments-c1": 43623, + "byteStringToInteger-cpu-arguments-c2": 251, + "byteStringToInteger-memory-arguments-intercept": 0, + "byteStringToInteger-memory-arguments-slope": 1, + "cekApplyCost-exBudgetCPU": 16000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 23000, "cekBuiltinCost-exBudgetMemory": 100, @@ -93,9 +98,13 @@ "decodeUtf8-cpu-arguments-slope": 14068, "decodeUtf8-memory-arguments-intercept": 4, "decodeUtf8-memory-arguments-slope": 2, - "divideInteger-cpu-arguments-constant": 196500, - "divideInteger-cpu-arguments-model-arguments-intercept": 453240, - "divideInteger-cpu-arguments-model-arguments-slope": 220, + "divideInteger-cpu-arguments-model-arguments-c00": 111111, + "divideInteger-cpu-arguments-model-arguments-c01": 222222, + "divideInteger-cpu-arguments-model-arguments-c02": -333333, + "divideInteger-cpu-arguments-model-arguments-c10": 444444, + "divideInteger-cpu-arguments-model-arguments-c11": -555555, + "divideInteger-cpu-arguments-model-arguments-c20": 666666, + "divideInteger-cpu-arguments-model-arguments-minimum": 100, "divideInteger-memory-arguments-intercept": 0, "divideInteger-memory-arguments-minimum": 1, "divideInteger-memory-arguments-slope": 1, @@ -127,8 +136,13 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 57667, "indexByteString-memory-arguments": 4, - "keccak_256-cpu-arguments-intercept": 1927926, - "keccak_256-cpu-arguments-slope": 82523, + "integerToByteString-cpu-arguments-c0": 12345678, + "integerToByteString-cpu-arguments-c1": 12345678, + "integerToByteString-cpu-arguments-c2": 12334578, + "integerToByteString-memory-arguments-intercept": 0, + "integerToByteString-memory-arguments-slope": 1, + "keccak_256-cpu-arguments-intercept": 2261318, + "keccak_256-cpu-arguments-slope": 64571, "keccak_256-memory-arguments": 4, "lengthOfByteString-cpu-arguments": 1000, "lengthOfByteString-memory-arguments": 10, @@ -156,11 +170,14 @@ "mkNilPairData-memory-arguments": 32, "mkPairData-cpu-arguments": 76511, "mkPairData-memory-arguments": 32, - "modInteger-cpu-arguments-constant": 196500, - "modInteger-cpu-arguments-model-arguments-intercept": 453240, - "modInteger-cpu-arguments-model-arguments-slope": 220, + "modInteger-cpu-arguments-model-arguments-c00": -123203, + "modInteger-cpu-arguments-model-arguments-c01": 7305, + "modInteger-cpu-arguments-model-arguments-c02": -900, + "modInteger-cpu-arguments-model-arguments-c10": 1716, + "modInteger-cpu-arguments-model-arguments-c11": -549, + "modInteger-cpu-arguments-model-arguments-c20": 57, + "modInteger-cpu-arguments-model-arguments-minimum": 75, "modInteger-memory-arguments-intercept": 0, - "modInteger-memory-arguments-minimum": 1, "modInteger-memory-arguments-slope": 1, "multiplyInteger-cpu-arguments-intercept": 69522, "multiplyInteger-cpu-arguments-slope": 11687, @@ -168,17 +185,24 @@ "multiplyInteger-memory-arguments-slope": 1, "nullList-cpu-arguments": 60091, "nullList-memory-arguments": 32, - "quotientInteger-cpu-arguments-constant": 196500, - "quotientInteger-cpu-arguments-model-arguments-intercept": 453240, - "quotientInteger-cpu-arguments-model-arguments-slope": 220, + "quotientInteger-cpu-arguments-model-arguments-c00": 11, + "quotientInteger-cpu-arguments-model-arguments-c01": 22, + "quotientInteger-cpu-arguments-model-arguments-c02": 33, + "quotientInteger-cpu-arguments-model-arguments-c10": -44, + "quotientInteger-cpu-arguments-model-arguments-c11": -55, + "quotientInteger-cpu-arguments-model-arguments-c20": -66, + "quotientInteger-cpu-arguments-model-arguments-minimum": 0, "quotientInteger-memory-arguments-intercept": 0, "quotientInteger-memory-arguments-minimum": 1, "quotientInteger-memory-arguments-slope": 1, - "remainderInteger-cpu-arguments-constant": 196500, - "remainderInteger-cpu-arguments-model-arguments-intercept": 453240, - "remainderInteger-cpu-arguments-model-arguments-slope": 220, + "remainderInteger-cpu-arguments-model-arguments-c00": -123203, + "remainderInteger-cpu-arguments-model-arguments-c01": 7305, + "remainderInteger-cpu-arguments-model-arguments-c02": -900, + "remainderInteger-cpu-arguments-model-arguments-c10": 1716, + "remainderInteger-cpu-arguments-model-arguments-c11": -549, + "remainderInteger-cpu-arguments-model-arguments-c20": 57, + "remainderInteger-cpu-arguments-model-arguments-minimum": 10000, "remainderInteger-memory-arguments-intercept": 0, - "remainderInteger-memory-arguments-minimum": 1, "remainderInteger-memory-arguments-slope": 1, "serialiseData-cpu-arguments-intercept": 1159724, "serialiseData-cpu-arguments-slope": 392670, diff --git a/plutus-core/plutus-core/test/CostModelSafety/Spec.hs b/plutus-core/plutus-core/test/CostModelSafety/Spec.hs index 00d78b15aa7..7eef782ac00 100644 --- a/plutus-core/plutus-core/test/CostModelSafety/Spec.hs +++ b/plutus-core/plutus-core/test/CostModelSafety/Spec.hs @@ -25,18 +25,20 @@ check that the cost is strictly positive. -} module CostModelSafety.Spec (test_costModelSafety) where -import PlutusCore (DefaultFun, DefaultUni) +import PlutusCore (DefaultUni) import PlutusCore qualified as PLC import PlutusCore.Builtin import PlutusCore.Crypto.BLS12_381.G1 qualified as BLS12_381.G1 import PlutusCore.Crypto.BLS12_381.G2 qualified as BLS12_381.G2 import PlutusCore.Crypto.BLS12_381.Pairing qualified as BLS12_381.Pairing import PlutusCore.Data (Data (..)) +import PlutusCore.Default.Builtins +import PlutusCore.Evaluation.Machine.BuiltinCostModel (BuiltinCostModel) import PlutusCore.Evaluation.Machine.ExBudget (ExBudget (ExBudget)) -import PlutusCore.Evaluation.Machine.ExBudgetingDefaults (defaultBuiltinCostModel, - defaultCekMachineCosts) +import PlutusCore.Evaluation.Machine.ExBudgetingDefaults (cekCostModelForVariant) import PlutusCore.Evaluation.Machine.ExBudgetStream (sumExBudgetStream) import PlutusCore.Evaluation.Machine.ExMemoryUsage (LiteralByteSize) +import PlutusCore.Evaluation.Machine.MachineParameters (CostModel (..)) import UntypedPlutusCore.Evaluation.Machine.Cek.CekMachineCosts (CekMachineCosts, CekMachineCostsBase (..)) @@ -47,18 +49,18 @@ import Data.List.Extra (enumerate) import Data.Text (Text) import Data.Word (Word8) import Test.Tasty (TestTree, testGroup) -import Test.Tasty.HUnit (assertBool, testCase) +import Test.Tasty.HUnit (Assertion, assertBool, testCase) import Type.Reflection (TypeRep, eqTypeRep, pattern App, typeRep, (:~~:) (..)) -- Machine costs -checkBudget :: Identity ExBudget -> IO () +checkBudget :: Identity ExBudget -> Assertion checkBudget (Identity (ExBudget cpu mem)) = do assertBool "exBudgetCPU <= 0 in CEK machine costs" $ cpu > 0 assertBool "exBudgetMemory <= 0 in CEK machine costs" $ mem > 0 -- Check that the machine costs are all strictly positive. All of the fields are matched explicitly -- to make sure that we don't forget any new ones that get added. -testMachineCostModel :: CekMachineCosts -> IO () +testMachineCostModel :: CekMachineCosts -> Assertion testMachineCostModel ( CekMachineCostsBase cekStartupBudget @@ -165,11 +167,15 @@ genArgs semvar bn = case meaning of meaning :: BuiltinMeaning Term (CostingPart DefaultUni DefaultFun) meaning = toBuiltinMeaning semvar bn +-- FIXME: this doesn't work in some cases: for example if we have a costing +-- function 10-2*size we'll only test it on for a small value of size (0 or 1) +-- so we won't spot that it can give you a negative result. We do want to check +-- small sizes, but we should also check larger ones. testCosts :: BuiltinSemanticsVariant DefaultFun -> BuiltinsRuntime DefaultFun Term -> DefaultFun - -> IO () + -> Assertion testCosts semvar runtimes bn = let args0 = genArgs semvar bn runtime0 = lookupBuiltin bn runtimes @@ -192,17 +198,20 @@ testCosts semvar runtimes bn = -- should be OK since there should never be any inputs of size zero. assertBool ("Memory usage <= 0 in " ++ show bn) $ memUsage > 0 -testBuiltinCostModel :: BuiltinSemanticsVariant DefaultFun -> TestTree -testBuiltinCostModel semvar = - let builtins = enumerate @DefaultFun - runtimes = toBuiltinsRuntime semvar defaultBuiltinCostModel - in testCase ("Built-in cost model for " ++ show semvar) $ - mapM_ (testCosts semvar runtimes) builtins +testBuiltinCostModel :: BuiltinSemanticsVariant DefaultFun -> BuiltinCostModel -> Assertion +testBuiltinCostModel semvar model = + {- The next line is where toBuiltinsRuntime might ignore what's in the model and + supply its own costing function (see the comment at the top of the file). -} + let runtimes = toBuiltinsRuntime semvar model + in mapM_ (testCosts semvar runtimes) (enumerate @DefaultFun) test_costModelSafety :: TestTree test_costModelSafety = - testGroup "Default cost model safety test" - ( - (testCase "Machine costs" $ testMachineCostModel defaultCekMachineCosts) : - (fmap testBuiltinCostModel $ enumerate @(BuiltinSemanticsVariant DefaultFun)) - ) + let mkTest semvar = + let CostModel machineCosts builtinCosts = cekCostModelForVariant semvar + in testGroup ("Cost model for " ++ show semvar) $ + [ testCase "Machine costs" $ testMachineCostModel machineCosts + , testCase "Builtin costs" $ testBuiltinCostModel semvar builtinCosts] + in testGroup "Cost model safety test" $ + map mkTest $ enumerate @(BuiltinSemanticsVariant DefaultFun) + diff --git a/plutus-core/plutus-core/test/Evaluation/Machines.hs b/plutus-core/plutus-core/test/Evaluation/Machines.hs index 0d662124ce3..c8a9233b3e1 100644 --- a/plutus-core/plutus-core/test/Evaluation/Machines.hs +++ b/plutus-core/plutus-core/test/Evaluation/Machines.hs @@ -20,10 +20,12 @@ import Test.Tasty import Test.Tasty.Hedgehog testMachine - :: (uni ~ DefaultUni, fun ~ DefaultFun, PrettyPlc internal) + :: (uni ~ DefaultUni, fun ~ DefaultFun, PrettyPlc structural) => String -> (Term TyName Name uni fun () -> - Either (EvaluationException user internal (Term TyName Name uni fun ())) (Term TyName Name uni fun ())) + Either + (EvaluationException operational structural (Term TyName Name uni fun ())) + (Term TyName Name uni fun ())) -> TestTree testMachine machine eval = testGroup machine $ fromInterestingTermGens $ \name -> @@ -32,5 +34,5 @@ testMachine machine eval = test_machines :: TestTree test_machines = testGroup "machines" - [ testMachine "CK" $ evaluateCkNoEmit defaultBuiltinsRuntime + [ testMachine "CK" $ evaluateCkNoEmit defaultBuiltinsRuntimeForTesting ] diff --git a/plutus-core/plutus-core/test/Evaluation/Spec.hs b/plutus-core/plutus-core/test/Evaluation/Spec.hs index 204ded40fe0..b2a1ef1ba15 100644 --- a/plutus-core/plutus-core/test/Evaluation/Spec.hs +++ b/plutus-core/plutus-core/test/Evaluation/Spec.hs @@ -50,7 +50,7 @@ test_builtinsDon'tThrow = testGroup "Builtins don't throw" $ enumerate @(BuiltinSemanticsVariant DefaultFun) <&> \semvar -> testGroup (fromString . render $ "Version: " <> pretty semvar) $ - let runtimes = toBuiltinsRuntime semvar defaultBuiltinCostModel + let runtimes = toBuiltinsRuntime semvar defaultBuiltinCostModelForTesting in enumerate @DefaultFun <&> \fun -> -- Perhaps using @maxBound@ (with @Enum@, @Bounded@) is indeed better than -- @Default@ for BuiltinSemanticsVariants @@ -79,7 +79,7 @@ instance Pretty AlwaysThrows where instance uni ~ DefaultUni => ToBuiltinMeaning uni AlwaysThrows where type CostingPart uni AlwaysThrows = () - data BuiltinSemanticsVariant AlwaysThrows = AlwaysThrowsSemanticsVariant1 + data BuiltinSemanticsVariant AlwaysThrows = AlwaysThrowsSemanticsVariantX toBuiltinMeaning _semvar AlwaysThrows = makeBuiltinMeaning f $ \_ _ -> ExBudgetLast mempty where @@ -87,7 +87,7 @@ instance uni ~ DefaultUni => ToBuiltinMeaning uni AlwaysThrows where f _ = error "This builtin function always throws an exception." instance Default (BuiltinSemanticsVariant AlwaysThrows) where - def = AlwaysThrowsSemanticsVariant1 + def = AlwaysThrowsSemanticsVariantX {- | This test verifies that if evaluating a builtin function actually throws an exception, we'd get a `Left` value, which would cause `test_builtinsDon'tThrow` to fail. @@ -100,7 +100,7 @@ test_alwaysThrows = prop_builtinEvaluation @_ @AlwaysThrows runtimes AlwaysThrows (genArgsWellTyped semvar) f ] where - semvar = AlwaysThrowsSemanticsVariant1 + semvar = AlwaysThrowsSemanticsVariantX runtimes = toBuiltinsRuntime semvar () f bn args = \case Left _ -> success diff --git a/plutus-core/plutus-core/test/Pretty/Readable.hs b/plutus-core/plutus-core/test/Pretty/Readable.hs index 0a1f91cfb5d..a346e264b71 100644 --- a/plutus-core/plutus-core/test/Pretty/Readable.hs +++ b/plutus-core/plutus-core/test/Pretty/Readable.hs @@ -31,8 +31,7 @@ test_PrettyReadable = where folder :: Pretty fun => PlcFolderContents DefaultUni fun -> TestTree folder - = runTestNestedIn ["plutus-core", "test", "Pretty", "Golden"] - . testNested "Readable" + = runTestNested ["plutus-core", "test", "Pretty", "Golden", "Readable"] . foldPlcFolderContents testNested testReadable testReadable test_Pretty :: TestTree diff --git a/plutus-core/plutus-core/test/Spec.hs b/plutus-core/plutus-core/test/Spec.hs index df56d7f15b4..daf13d8b770 100644 --- a/plutus-core/plutus-core/test/Spec.hs +++ b/plutus-core/plutus-core/test/Spec.hs @@ -36,7 +36,6 @@ import PlutusCore.Test import Control.Monad.Except import Data.ByteString.Lazy qualified as BSL -import Data.Foldable (for_) import Data.Proxy import Data.Text qualified as T import Data.Text.Encoding (encodeUtf8) diff --git a/plutus-core/plutus-core/test/TypeSynthesis/Spec.hs b/plutus-core/plutus-core/test/TypeSynthesis/Spec.hs index 7d0f7d76810..b07512262cc 100644 --- a/plutus-core/plutus-core/test/TypeSynthesis/Spec.hs +++ b/plutus-core/plutus-core/test/TypeSynthesis/Spec.hs @@ -67,8 +67,7 @@ foldAssertWell -> PlcFolderContents DefaultUni fun -> TestTree foldAssertWell semvar - = runTestNestedIn ["plutus-core", "test", "TypeSynthesis"] - . testNested "Golden" + = runTestNested ["plutus-core", "test", "TypeSynthesis", "Golden"] . foldPlcFolderContents testNested (\name -> nestedGoldenVsErrorOrThing name . kindcheck) (\name -> nestedGoldenVsErrorOrThing name . typecheck semvar) @@ -128,27 +127,27 @@ test_typecheckIllTyped = ] test_typecheckAllFun - :: forall fun. (ToBuiltinMeaning DefaultUni fun, Show fun) + :: forall fun. (ToBuiltinMeaning DefaultUni fun, Show fun, Show (BuiltinSemanticsVariant fun)) => String -> BuiltinSemanticsVariant fun - -> TestTree -test_typecheckAllFun name semvar - = runTestNestedIn ["plutus-core", "test", "TypeSynthesis", "Golden"] - . testNested name + -> TestNested +test_typecheckAllFun name semVar + = testNestedNamed name (show semVar) . map testFun $ enumerate @fun where testFun fun = - nestedGoldenVsErrorOrThing (show fun) . kindcheck $ typeOfBuiltinFunction semvar fun + nestedGoldenVsErrorOrThing (show fun) . kindcheck $ typeOfBuiltinFunction semVar fun test_typecheckDefaultFuns :: TestTree test_typecheckDefaultFuns = -- This checks that for each set of builtins the Plutus type of every builtin is the same -- regardless of versioning. - testGroup "builtins" $ concat - [ map (test_typecheckAllFun @DefaultFun "DefaultFun") enumerate - , map (test_typecheckAllFun @ExtensionFun "ExtensionFun") enumerate - ] + testGroup "builtins" . pure $ + runTestNested ["plutus-core", "test", "TypeSynthesis", "Golden"] $ concat + [ map (test_typecheckAllFun @DefaultFun "DefaultFun") enumerate + , map (test_typecheckAllFun @ExtensionFun "ExtensionFun") enumerate + ] test_typecheck :: TestTree test_typecheck = diff --git a/plutus-core/plutus-ir/src/PlutusIR/Transform/EvaluateBuiltins.hs b/plutus-core/plutus-ir/src/PlutusIR/Transform/EvaluateBuiltins.hs index 01a0c4021ce..cd6df1b4109 100644 --- a/plutus-core/plutus-ir/src/PlutusIR/Transform/EvaluateBuiltins.hs +++ b/plutus-core/plutus-ir/src/PlutusIR/Transform/EvaluateBuiltins.hs @@ -28,10 +28,10 @@ evaluateBuiltinsPass :: (PLC.Typecheckable uni fun, PLC.GEq uni, Applicative m) -> BuiltinsInfo uni fun -> CostingPart uni fun -> Pass m TyName Name uni fun a -evaluateBuiltinsPass tcconfig conservative binfo costModel = +evaluateBuiltinsPass tcconfig preserveLogging binfo costModel = NamedPass "evaluate builtins" $ Pass - (pure . evaluateBuiltins conservative binfo costModel) + (pure . evaluateBuiltins preserveLogging binfo costModel) [Typechecks tcconfig] [ConstCondition (Typechecks tcconfig)] @@ -46,7 +46,7 @@ evaluateBuiltins -> CostingPart uni fun -> Term tyname name uni fun a -> Term tyname name uni fun a -evaluateBuiltins conservative binfo costModel = transformOf termSubterms processTerm +evaluateBuiltins preserveLogging binfo costModel = transformOf termSubterms processTerm where -- Nothing means "leave the original term as it was" eval @@ -55,18 +55,18 @@ evaluateBuiltins conservative binfo costModel = transformOf termSubterms process -> Maybe (Term tyname name uni fun ()) eval (BuiltinCostedResult _ getX) AppContextEnd = case getX of - BuiltinSuccess v -> Just v + BuiltinSuccess term -> Just term -- Evaluates successfully, but does logging. If we're being conservative -- then we should leave these in, so we don't remove people's logging! -- Otherwise `trace "hello" x` is a prime candidate for evaluation! - BuiltinSuccessWithLogs _ v -> if conservative then Nothing else Just v + BuiltinSuccessWithLogs _ term -> if preserveLogging then Nothing else Just term -- Evaluation failure. This can mean that the evaluation legitimately -- failed (e.g. `divideInteger 1 0`), or that it failed because the -- argument terms are not currently in the right form (because they're -- not evaluated, we're in the middle of a term here!). Since we can't -- distinguish these, we have to assume it's the latter case and just leave -- things alone. - BuiltinFailure{} -> Nothing + BuiltinFailure{} -> Nothing eval (BuiltinExpectArgument toRuntime) (TermAppContext arg _ ctx) = -- Builtin evaluation does not work with annotations, so we have to throw -- the argument annotation away here diff --git a/plutus-core/plutus-ir/test/PlutusIR/Analysis/RetainedSize/Tests.hs b/plutus-core/plutus-ir/test/PlutusIR/Analysis/RetainedSize/Tests.hs index d01b58b2f60..f7d91041b37 100644 --- a/plutus-core/plutus-ir/test/PlutusIR/Analysis/RetainedSize/Tests.hs +++ b/plutus-core/plutus-ir/test/PlutusIR/Analysis/RetainedSize/Tests.hs @@ -13,8 +13,8 @@ import PlutusIR.Test import PlutusPrelude test_retainedSize :: TestTree -test_retainedSize = runTestNestedIn ["plutus-ir", "test", "PlutusIR", "Analysis"] $ - testNested "RetainedSize" $ +test_retainedSize = + runTestNested ["plutus-ir", "test", "PlutusIR", "Analysis", "RetainedSize"] $ map (goldenPir renameAndAnnotate pTerm) [ "typeLet" diff --git a/plutus-core/plutus-ir/test/PlutusIR/Compiler/Datatype/Tests.hs b/plutus-core/plutus-ir/test/PlutusIR/Compiler/Datatype/Tests.hs index b203e842d7b..8f6239dc040 100644 --- a/plutus-core/plutus-ir/test/PlutusIR/Compiler/Datatype/Tests.hs +++ b/plutus-core/plutus-ir/test/PlutusIR/Compiler/Datatype/Tests.hs @@ -8,15 +8,15 @@ import Test.Tasty.Extras test_datatypes :: TestTree test_datatypes = - runTestNestedIn ["plutus-ir", "test", "PlutusIR", "Compiler"] $ testNested "Datatype" - [ goldenPlcFromPir pTermAsProg "maybe" - , goldenPlcFromPir pTermAsProg "listMatch" - , goldenPlcFromPir pTermAsProg "idleAll" - , goldenPlcFromPir pTermAsProg "some" - , goldenEvalPir pTermAsProg "listMatchEval" - , goldenTypeFromPir topSrcSpan pTerm "dataEscape" - , testNested "scott" - [ goldenPlcFromPirScott pTermAsProg "maybe" - , goldenPlcFromPirScott pTermAsProg "listMatch" + runTestNested ["plutus-ir", "test", "PlutusIR", "Compiler", "Datatype"] + [ goldenPlcFromPir pTermAsProg "maybe" + , goldenPlcFromPir pTermAsProg "listMatch" + , goldenPlcFromPir pTermAsProg "idleAll" + , goldenPlcFromPir pTermAsProg "some" + , goldenEvalPir pTermAsProg "listMatchEval" + , goldenTypeFromPir topSrcSpan pTerm "dataEscape" + , testNested "scott" + [ goldenPlcFromPirScott pTermAsProg "maybe" + , goldenPlcFromPirScott pTermAsProg "listMatch" + ] ] - ] diff --git a/plutus-core/plutus-ir/test/PlutusIR/Compiler/Error/Tests.hs b/plutus-core/plutus-ir/test/PlutusIR/Compiler/Error/Tests.hs index 142a50592a8..f0029cb077e 100644 --- a/plutus-core/plutus-ir/test/PlutusIR/Compiler/Error/Tests.hs +++ b/plutus-core/plutus-ir/test/PlutusIR/Compiler/Error/Tests.hs @@ -6,7 +6,8 @@ import Test.Tasty import Test.Tasty.Extras test_error :: TestTree -test_error = runTestNestedIn ["plutus-ir", "test", "PlutusIR", "Compiler"] $ testNested "Error" - [ goldenPlcFromPir pTermAsProg "mutuallyRecursiveTypes" - , goldenPlcFromPir pTermAsProg "recursiveTypeBind" - ] +test_error = + runTestNested ["plutus-ir", "test", "PlutusIR", "Compiler", "Error"] + [ goldenPlcFromPir pTermAsProg "mutuallyRecursiveTypes" + , goldenPlcFromPir pTermAsProg "recursiveTypeBind" + ] diff --git a/plutus-core/plutus-ir/test/PlutusIR/Compiler/Let/Tests.hs b/plutus-core/plutus-ir/test/PlutusIR/Compiler/Let/Tests.hs index 4cb37e52e70..478ea013cac 100644 --- a/plutus-core/plutus-ir/test/PlutusIR/Compiler/Let/Tests.hs +++ b/plutus-core/plutus-ir/test/PlutusIR/Compiler/Let/Tests.hs @@ -22,10 +22,11 @@ import Test.Tasty.Extras import Test.Tasty.QuickCheck test_lets :: TestTree -test_lets = runTestNestedIn ["plutus-ir", "test", "PlutusIR", "Compiler"] $ testNested "Let" - [ goldenPlcFromPir pTermAsProg "letInLet" - , goldenPlcFromPir pTermAsProg "letDep" - ] +test_lets = + runTestNested ["plutus-ir", "test", "PlutusIR", "Compiler", "Let"] + [ goldenPlcFromPir pTermAsProg "letInLet" + , goldenPlcFromPir pTermAsProg "letDep" + ] -- FIXME: this fails because some of the let passes expect certain things to be -- gone, e.g. non-strict bindings. We should a) add pre-/post-conditions for these, diff --git a/plutus-core/plutus-ir/test/PlutusIR/Compiler/Recursion/Tests.hs b/plutus-core/plutus-ir/test/PlutusIR/Compiler/Recursion/Tests.hs index 17926d14a6e..7d6963954e5 100644 --- a/plutus-core/plutus-ir/test/PlutusIR/Compiler/Recursion/Tests.hs +++ b/plutus-core/plutus-ir/test/PlutusIR/Compiler/Recursion/Tests.hs @@ -7,11 +7,11 @@ import Test.Tasty.Extras test_recursion :: TestTree test_recursion = - runTestNestedIn ["plutus-ir", "test", "PlutusIR", "Compiler"] $ testNested "Recursion" - [ goldenNamedUPlcFromPir pTermAsProg "factorial" - , goldenPlcFromPir pTermAsProg "even3" - , goldenEvalPir pTermAsProg "even3Eval" - , goldenPlcFromPir pTermAsProg "stupidZero" - , goldenPlcFromPir pTermAsProg "mutuallyRecursiveValues" - , goldenEvalPir pTermAsProg "errorBinding" - ] + runTestNested ["plutus-ir", "test", "PlutusIR", "Compiler", "Recursion"] + [ goldenNamedUPlcFromPir pTermAsProg "factorial" + , goldenPlcFromPir pTermAsProg "even3" + , goldenEvalPir pTermAsProg "even3Eval" + , goldenPlcFromPir pTermAsProg "stupidZero" + , goldenPlcFromPir pTermAsProg "mutuallyRecursiveValues" + , goldenEvalPir pTermAsProg "errorBinding" + ] diff --git a/plutus-core/plutus-ir/test/PlutusIR/Compiler/Recursion/errorBinding.golden b/plutus-core/plutus-ir/test/PlutusIR/Compiler/Recursion/errorBinding.golden index 26a2b45bb82..4efbe91da20 100644 --- a/plutus-core/plutus-ir/test/PlutusIR/Compiler/Recursion/errorBinding.golden +++ b/plutus-core/plutus-ir/test/PlutusIR/Compiler/Recursion/errorBinding.golden @@ -1,4 +1,4 @@ -An error has occurred: User error: +An error has occurred: The machine terminated because of an error, either from a built-in function or from an explicit use of 'error'. Final budget: ({cpu: 100 | mem: 100}) diff --git a/plutus-core/plutus-ir/test/PlutusIR/Core/Tests.hs b/plutus-core/plutus-ir/test/PlutusIR/Core/Tests.hs index 306b053749e..4f4275370d1 100644 --- a/plutus-core/plutus-ir/test/PlutusIR/Core/Tests.hs +++ b/plutus-core/plutus-ir/test/PlutusIR/Core/Tests.hs @@ -13,42 +13,45 @@ import Data.Functor import Flat test_prettyprinting :: TestTree -test_prettyprinting = runTestNestedIn ["plutus-ir", "test", "PlutusIR", "Core"] $ - testNested "prettyprinting" - $ map (goldenPir id pTerm) - [ "basic" - , "maybe" - ] +test_prettyprinting = + runTestNested ["plutus-ir", "test", "PlutusIR", "Core", "prettyprinting"] $ + map + (goldenPir id pTerm) + [ "basic" + , "maybe" + ] test_prettyprintingReadable :: TestTree -test_prettyprintingReadable = runTestNestedIn ["plutus-ir", "test", "PlutusIR", "Core"] $ - testNested "prettyprintingReadable" - $ map (goldenPirDoc prettyPirReadable pTerm) - [ "basic" - , "maybe" - , "letInLet" - , "letDep" - , "listMatch" - , "idleAll" - , "some" - , "even3" - , "stupidZero" - , "mutuallyRecursiveValues" - , "errorBinding" - , "some" - , "stupidZero" - , "recursiveTypeBind" - ] +test_prettyprintingReadable = + runTestNested ["plutus-ir", "test", "PlutusIR", "Core", "prettyprintingReadable"] $ + map + (goldenPirDoc prettyPirReadable pTerm) + [ "basic" + , "maybe" + , "letInLet" + , "letDep" + , "listMatch" + , "idleAll" + , "some" + , "even3" + , "stupidZero" + , "mutuallyRecursiveValues" + , "errorBinding" + , "some" + , "stupidZero" + , "recursiveTypeBind" + ] test_serialization :: TestTree -test_serialization = runTestNestedIn ["plutus-ir", "test", "PlutusIR", "Core"] $ - testNested "serialization" - $ map (goldenPir roundTripPirTerm pTerm) - [ "serializeBasic" - , "serializeMaybePirTerm" - , "serializeEvenOdd" - , "serializeListMatch" - ] +test_serialization = + runTestNested ["plutus-ir", "test", "PlutusIR", "Core", "serialization"] $ + map + (goldenPir roundTripPirTerm pTerm) + [ "serializeBasic" + , "serializeMaybePirTerm" + , "serializeEvenOdd" + , "serializeListMatch" + ] roundTripPirTerm :: Term TyName Name PLC.DefaultUni PLC.DefaultFun a diff --git a/plutus-core/plutus-ir/test/PlutusIR/Purity/Tests.hs b/plutus-core/plutus-ir/test/PlutusIR/Purity/Tests.hs index 6fbfe364824..e947317a266 100644 --- a/plutus-core/plutus-ir/test/PlutusIR/Purity/Tests.hs +++ b/plutus-core/plutus-ir/test/PlutusIR/Purity/Tests.hs @@ -41,11 +41,13 @@ dangerTerm = runQuote $ do pure $ Apply () (Apply () (Var () n) (Var () m)) undefined test_evalOrder :: TestTree -test_evalOrder = runTestNestedIn ["plutus-ir", "test", "PlutusIR"] $ testNested "Purity" - [ goldenEvalOrder "letFun" - , goldenEvalOrder "builtinAppUnsaturated" - , goldenEvalOrder "builtinAppSaturated" - , goldenEvalOrder "pureLet" - , goldenEvalOrder "nestedLets1" - , pure $ testCase "evalOrderLazy" $ 4 @=? length (unEvalOrder $ computeEvalOrderCoarse dangerTerm) - ] +test_evalOrder = + runTestNested ["plutus-ir", "test", "PlutusIR", "Purity"] + [ goldenEvalOrder "letFun" + , goldenEvalOrder "builtinAppUnsaturated" + , goldenEvalOrder "builtinAppSaturated" + , goldenEvalOrder "pureLet" + , goldenEvalOrder "nestedLets1" + , embed $ testCase "evalOrderLazy" $ + 4 @=? length (unEvalOrder $ computeEvalOrderCoarse dangerTerm) + ] diff --git a/plutus-core/plutus-ir/test/PlutusIR/Scoping/Tests.hs b/plutus-core/plutus-ir/test/PlutusIR/Scoping/Tests.hs index 9a10f6ece80..67b389cb744 100644 --- a/plutus-core/plutus-ir/test/PlutusIR/Scoping/Tests.hs +++ b/plutus-core/plutus-ir/test/PlutusIR/Scoping/Tests.hs @@ -41,7 +41,7 @@ test_names = testGroup "names" T.test_scopingGood "dead code elimination" genTerm T.BindingRemovalNotOk T.PrerenameYes $ removeDeadBindings def , T.test_scopingGood "constant folding" genTerm T.BindingRemovalNotOk T.PrerenameYes $ - pure . evaluateBuiltins False def defaultBuiltinCostModel + pure . evaluateBuiltins False def defaultBuiltinCostModelForTesting , -- At the moment the inliner does not preserve global uniqueness (contrary to what it -- promises) due to the lack of marking in it (or initial renaming of the entire program, -- which would perform marking too). diff --git a/plutus-core/plutus-ir/test/PlutusIR/Transform/Beta/Tests.hs b/plutus-core/plutus-ir/test/PlutusIR/Transform/Beta/Tests.hs index 17d72f900a7..c19a221d010 100644 --- a/plutus-core/plutus-ir/test/PlutusIR/Transform/Beta/Tests.hs +++ b/plutus-core/plutus-ir/test/PlutusIR/Transform/Beta/Tests.hs @@ -10,8 +10,8 @@ import Test.Tasty import Test.Tasty.Extras test_beta :: TestTree -test_beta = runTestNestedIn ["plutus-ir", "test", "PlutusIR", "Transform"] $ - testNested "Beta" $ +test_beta = + runTestNested ["plutus-ir", "test", "PlutusIR", "Transform", "Beta"] $ map (goldenPir (runQuote . runTestPass betaPassSC) pTerm) [ "lamapp" diff --git a/plutus-core/plutus-ir/test/PlutusIR/Transform/CaseOfCase/Tests.hs b/plutus-core/plutus-ir/test/PlutusIR/Transform/CaseOfCase/Tests.hs index 9732d9f4a3a..221f02c5cbb 100644 --- a/plutus-core/plutus-ir/test/PlutusIR/Transform/CaseOfCase/Tests.hs +++ b/plutus-core/plutus-ir/test/PlutusIR/Transform/CaseOfCase/Tests.hs @@ -12,8 +12,8 @@ import PlutusPrelude import Test.QuickCheck.Property (Property, withMaxSuccess) test_caseOfCase :: TestTree -test_caseOfCase = runTestNestedIn ["plutus-ir", "test", "PlutusIR", "Transform"] $ - testNested "CaseOfCase" $ +test_caseOfCase = + runTestNested ["plutus-ir", "test", "PlutusIR", "Transform", "CaseOfCase"] $ map (goldenPir (runQuote . runTestPass (\tc -> CaseOfCase.caseOfCasePassSC tc def True mempty)) pTerm) diff --git a/plutus-core/plutus-ir/test/PlutusIR/Transform/DeadCode/Tests.hs b/plutus-core/plutus-ir/test/PlutusIR/Transform/DeadCode/Tests.hs index 4b4e74cb0af..70b4fe7f9de 100644 --- a/plutus-core/plutus-ir/test/PlutusIR/Transform/DeadCode/Tests.hs +++ b/plutus-core/plutus-ir/test/PlutusIR/Transform/DeadCode/Tests.hs @@ -16,8 +16,8 @@ import Test.Tasty.QuickCheck test_deadCode :: TestTree -test_deadCode = runTestNestedIn ["plutus-ir", "test", "PlutusIR", "Transform"] $ - testNested "DeadCode" $ +test_deadCode = + runTestNested ["plutus-ir", "test", "PlutusIR", "Transform", "DeadCode"] $ map (goldenPir (runQuote . runTestPass (\tc -> removeDeadBindingsPassSC tc def)) pTerm) [ "typeLet" diff --git a/plutus-core/plutus-ir/test/PlutusIR/Transform/EvaluateBuiltins/Tests.hs b/plutus-core/plutus-ir/test/PlutusIR/Transform/EvaluateBuiltins/Tests.hs index 8d6aca9048d..da91258a806 100644 --- a/plutus-core/plutus-ir/test/PlutusIR/Transform/EvaluateBuiltins/Tests.hs +++ b/plutus-core/plutus-ir/test/PlutusIR/Transform/EvaluateBuiltins/Tests.hs @@ -14,8 +14,8 @@ import PlutusPrelude import Test.QuickCheck.Property (Property, withMaxSuccess) test_evaluateBuiltins :: TestTree -test_evaluateBuiltins = runTestNestedIn ["plutus-ir", "test", "PlutusIR", "Transform"] $ - testNested "EvaluateBuiltins" $ +test_evaluateBuiltins = + runTestNested ["plutus-ir", "test", "PlutusIR", "Transform", "EvaluateBuiltins"] $ conservative ++ nonConservative where conservative = diff --git a/plutus-core/plutus-ir/test/PlutusIR/Transform/Inline/Tests.hs b/plutus-core/plutus-ir/test/PlutusIR/Transform/Inline/Tests.hs index beb34587714..e90a4097458 100644 --- a/plutus-core/plutus-ir/test/PlutusIR/Transform/Inline/Tests.hs +++ b/plutus-core/plutus-ir/test/PlutusIR/Transform/Inline/Tests.hs @@ -15,8 +15,8 @@ import Test.Tasty (TestTree) -- | Tests of the inliner, include global uniqueness test. test_inline :: TestTree -test_inline = runTestNestedIn ["plutus-ir", "test", "PlutusIR", "Transform"] $ - testNested "Inline" $ +test_inline = + runTestNested ["plutus-ir", "test", "PlutusIR", "Transform", "Inline"] $ map (runTest withConstantInlining) [ "var" diff --git a/plutus-core/plutus-ir/test/PlutusIR/Transform/KnownCon/Tests.hs b/plutus-core/plutus-ir/test/PlutusIR/Transform/KnownCon/Tests.hs index afa0335080f..7eb7f7ac053 100644 --- a/plutus-core/plutus-ir/test/PlutusIR/Transform/KnownCon/Tests.hs +++ b/plutus-core/plutus-ir/test/PlutusIR/Transform/KnownCon/Tests.hs @@ -11,8 +11,8 @@ import PlutusIR.Transform.KnownCon qualified as KnownCon import Test.QuickCheck test_knownCon :: TestTree -test_knownCon = runTestNestedIn ["plutus-ir", "test", "PlutusIR", "Transform"] $ - testNested "KnownCon" $ +test_knownCon = + runTestNested ["plutus-ir", "test", "PlutusIR", "Transform", "KnownCon"] $ map (goldenPir (runQuote . runTestPass KnownCon.knownConPassSC) pTerm) [ "applicative" diff --git a/plutus-core/plutus-ir/test/PlutusIR/Transform/LetFloatIn/Tests.hs b/plutus-core/plutus-ir/test/PlutusIR/Transform/LetFloatIn/Tests.hs index 1ee11a89a51..cd75a35e967 100644 --- a/plutus-core/plutus-ir/test/PlutusIR/Transform/LetFloatIn/Tests.hs +++ b/plutus-core/plutus-ir/test/PlutusIR/Transform/LetFloatIn/Tests.hs @@ -18,8 +18,7 @@ import Test.QuickCheck.Property (Property, withMaxSuccess) test_letFloatInConservative :: TestTree test_letFloatInConservative = - runTestNestedIn ["plutus-ir", "test", "PlutusIR", "Transform", "LetFloatIn"] $ - testNested "conservative" $ + runTestNested ["plutus-ir", "test", "PlutusIR", "Transform", "LetFloatIn", "conservative"] $ map (goldenPir (runQuote . runTestPass testPass) pTerm) [ "avoid-floating-into-lam" @@ -32,8 +31,7 @@ test_letFloatInConservative = test_letFloatInRelaxed :: TestTree test_letFloatInRelaxed = - runTestNestedIn ["plutus-ir", "test", "PlutusIR", "Transform", "LetFloatIn"] $ - testNested "relaxed" $ + runTestNested ["plutus-ir", "test", "PlutusIR", "Transform", "LetFloatIn", "relaxed"] $ map (goldenPir (runQuote . runTestPass testPass) pTerm) [ "avoid-floating-into-RHS" diff --git a/plutus-core/plutus-ir/test/PlutusIR/Transform/LetFloatOut/Tests.hs b/plutus-core/plutus-ir/test/PlutusIR/Transform/LetFloatOut/Tests.hs index 7eefa7ad929..806f6616cb3 100644 --- a/plutus-core/plutus-ir/test/PlutusIR/Transform/LetFloatOut/Tests.hs +++ b/plutus-core/plutus-ir/test/PlutusIR/Transform/LetFloatOut/Tests.hs @@ -19,8 +19,8 @@ import PlutusPrelude import Test.QuickCheck.Property (Property, withMaxSuccess) test_letFloatOut :: TestTree -test_letFloatOut = runTestNestedIn ["plutus-ir", "test", "PlutusIR", "Transform"] $ - testNested "LetFloatOut" $ +test_letFloatOut = + runTestNested ["plutus-ir", "test", "PlutusIR", "Transform", "LetFloatOut"] $ map (goldenPir (runQuote . runTestPass testPass) pTerm) [ "letInLet" diff --git a/plutus-core/plutus-ir/test/PlutusIR/Transform/NonStrict/Tests.hs b/plutus-core/plutus-ir/test/PlutusIR/Transform/NonStrict/Tests.hs index e9574329bef..ead1b734693 100644 --- a/plutus-core/plutus-ir/test/PlutusIR/Transform/NonStrict/Tests.hs +++ b/plutus-core/plutus-ir/test/PlutusIR/Transform/NonStrict/Tests.hs @@ -12,8 +12,8 @@ import PlutusIR.Transform.Rename () import Test.QuickCheck test_nonStrict :: TestTree -test_nonStrict = runTestNestedIn ["plutus-ir", "test", "PlutusIR", "Transform"] $ - testNested "NonStrict" $ +test_nonStrict = + runTestNested ["plutus-ir", "test", "PlutusIR", "Transform", "NonStrict"] $ map (goldenPir (runQuote . runTestPass (\tc -> NonStrict.compileNonStrictBindingsPassSC tc False)) pTerm) diff --git a/plutus-core/plutus-ir/test/PlutusIR/Transform/RecSplit/Tests.hs b/plutus-core/plutus-ir/test/PlutusIR/Transform/RecSplit/Tests.hs index 02cc57ad0a5..57d46d0fd77 100644 --- a/plutus-core/plutus-ir/test/PlutusIR/Transform/RecSplit/Tests.hs +++ b/plutus-core/plutus-ir/test/PlutusIR/Transform/RecSplit/Tests.hs @@ -12,8 +12,8 @@ import PlutusIR.Transform.RecSplit import Test.Tasty.QuickCheck test_recSplit :: TestTree -test_recSplit = runTestNestedIn ["plutus-ir", "test", "PlutusIR", "Transform"] $ - testNested "RecSplit" $ +test_recSplit = + runTestNested ["plutus-ir", "test", "PlutusIR", "Transform", "RecSplit"] $ map (goldenPir (runQuote . runTestPass recSplitPass) pTerm) [ "truenonrec" diff --git a/plutus-core/plutus-ir/test/PlutusIR/Transform/Rename/Tests.hs b/plutus-core/plutus-ir/test/PlutusIR/Transform/Rename/Tests.hs index 5857f13358f..c767ecf4cca 100644 --- a/plutus-core/plutus-ir/test/PlutusIR/Transform/Rename/Tests.hs +++ b/plutus-core/plutus-ir/test/PlutusIR/Transform/Rename/Tests.hs @@ -13,8 +13,8 @@ import PlutusIR.Transform.Rename () import Test.Tasty.QuickCheck test_rename :: TestTree -test_rename = runTestNestedIn ["plutus-ir", "test", "PlutusIR", "Transform"] $ - testNested "Rename" $ +test_rename = + runTestNested ["plutus-ir", "test", "PlutusIR", "Transform", "Rename"] $ map (goldenPir (PLC.AttachPrettyConfig debugConfig . runQuote . runTestPass (const renamePass)) pTerm) diff --git a/plutus-core/plutus-ir/test/PlutusIR/Transform/RewriteRules/Tests.hs b/plutus-core/plutus-ir/test/PlutusIR/Transform/RewriteRules/Tests.hs index 0cdbfc797ca..a4afde2d2fc 100644 --- a/plutus-core/plutus-ir/test/PlutusIR/Transform/RewriteRules/Tests.hs +++ b/plutus-core/plutus-ir/test/PlutusIR/Transform/RewriteRules/Tests.hs @@ -13,25 +13,24 @@ import Test.QuickCheck import Test.Tasty test_rewriteRules :: TestTree -test_rewriteRules = runTestNestedIn ["plutus-ir/test/PlutusIR/Transform"] $ - testNested "RewriteRules" $ - (fmap - (goldenPir (runQuote . runTestPass (\tc -> rewritePassSC tc def)) pTerm) - [ "equalsInt.pir" -- this tests that the function works on equalInteger - , "divideInt.pir" -- this tests that the function excludes not commutative functions - , "multiplyInt.pir" -- this tests that the function works on multiplyInteger - , "let.pir" -- this tests that it works in the subterms - , "unConstrConstrDataFst.pir" - , "unConstrConstrDataSnd.pir" - ] - ) - ++ - (fmap - (goldenPirEvalTrace pTermAsProg) - [ "unConstrConstrDataFst.pir.eval" - ] - ) - +test_rewriteRules = + runTestNested ["plutus-ir", "test", "PlutusIR", "Transform", "RewriteRules"] $ + (fmap + (goldenPir (runQuote . runTestPass (\tc -> rewritePassSC tc def)) pTerm) + [ "equalsInt.pir" -- this tests that the function works on equalInteger + , "divideInt.pir" -- this tests that the function excludes not commutative functions + , "multiplyInt.pir" -- this tests that the function works on multiplyInteger + , "let.pir" -- this tests that it works in the subterms + , "unConstrConstrDataFst.pir" + , "unConstrConstrDataSnd.pir" + ] + ) + ++ + (fmap + (goldenPirEvalTrace pTermAsProg) + [ "unConstrConstrDataFst.pir.eval" + ] + ) where goldenPirEvalTrace = goldenPirM $ \ast -> ppCatch $ do -- we need traces to remain for checking the evaluation-order diff --git a/plutus-core/plutus-ir/test/PlutusIR/Transform/StrictLetRec/Tests.hs b/plutus-core/plutus-ir/test/PlutusIR/Transform/StrictLetRec/Tests.hs index 073126e3ce9..7c627737d51 100644 --- a/plutus-core/plutus-ir/test/PlutusIR/Transform/StrictLetRec/Tests.hs +++ b/plutus-core/plutus-ir/test/PlutusIR/Transform/StrictLetRec/Tests.hs @@ -5,42 +5,48 @@ module PlutusIR.Transform.StrictLetRec.Tests where import PlutusPrelude -import Control.Monad.Except (runExcept) -import Control.Monad.Reader (runReaderT) import PlutusCore.Default (someValue) import PlutusCore.MkPlc (constant) +import PlutusCore.Pretty (AsReadable (..)) import PlutusCore.Quote (runQuoteT) +import PlutusCore.Version (latestVersion) import PlutusIR.Compiler.Let (LetKind (RecTerms), compileLetsPassSC) import PlutusIR.Compiler.Provenance (noProvenance) +import PlutusIR.Core qualified as PIR import PlutusIR.Parser (pTerm) import PlutusIR.Pass.Test (runTestPass) import PlutusIR.Test (goldenPirM) -import PlutusIR.Transform.StrictLetRec.Tests.Lib (defaultCompilationCtx, +import PlutusIR.Transform.StrictLetRec.Tests.Lib (compilePirProgramOrFail, compileTplcProgramOrFail, + defaultCompilationCtx, evalPirProgramWithTracesOrFail, pirTermAsProgram, pirTermFromFile) +import UntypedPlutusCore qualified as UPLC +import UntypedPlutusCore.Evaluation.Machine.Cek (EvaluationResult (..)) + +import Control.Monad.Except (runExcept) +import Control.Monad.Reader (runReaderT) import System.FilePath.Posix (joinPath, (</>)) import Test.Tasty (TestTree) -import Test.Tasty.Extras (runTestNestedIn, testNested) +import Test.Tasty.Extras (embed, runTestNested, testNested) import Test.Tasty.HUnit (testCase, (@?=)) -import UntypedPlutusCore.Evaluation.Machine.Cek (EvaluationResult (..)) path :: [FilePath] path = ["plutus-ir", "test", "PlutusIR", "Transform"] test_letRec :: TestTree -test_letRec = runTestNestedIn path do - testNested - "StrictLetRec" +test_letRec = runTestNested path . pure $ testNested "StrictLetRec" [ let runCompilationM m = either (fail . show) pure do ctx <- defaultCompilationCtx runExcept . runQuoteT $ runReaderT m ctx - in - goldenPirM - (runCompilationM . runTestPass (`compileLetsPassSC` RecTerms)) - (const noProvenance <<$>> pTerm) - "strictLetRec" - , pure $ testCase "traces" do + dumpUplc pirTermBefore = do + pirTermAfter <- runCompilationM $ + fmap void . runTestPass (`compileLetsPassSC` RecTerms) $ noProvenance <$ pirTermBefore + tplcProg <- compilePirProgramOrFail $ PIR.Program () latestVersion pirTermAfter + uplcProg <- compileTplcProgramOrFail tplcProg + pure . AsReadable $ UPLC._progTerm uplcProg + in goldenPirM dumpUplc pTerm "strictLetRec" + , embed $ testCase "traces" do (result, traces) <- do pirTerm <- pirTermFromFile (joinPath path </> "StrictLetRec" </> "strictLetRec") evalPirProgramWithTracesOrFail (pirTermAsProgram (void pirTerm)) diff --git a/plutus-core/plutus-ir/test/PlutusIR/Transform/StrictLetRec/Tests/Lib.hs b/plutus-core/plutus-ir/test/PlutusIR/Transform/StrictLetRec/Tests/Lib.hs index f07c3210a2c..9c55f7426ee 100644 --- a/plutus-core/plutus-ir/test/PlutusIR/Transform/StrictLetRec/Tests/Lib.hs +++ b/plutus-core/plutus-ir/test/PlutusIR/Transform/StrictLetRec/Tests/Lib.hs @@ -16,8 +16,8 @@ import PlutusCore.Compiler qualified as TPLC import PlutusCore.Core qualified as TPLC import PlutusCore.Default (DefaultFun, DefaultUni) import PlutusCore.Evaluation.Machine.BuiltinCostModel (BuiltinCostModel) -import PlutusCore.Evaluation.Machine.ExBudgetingDefaults (defaultBuiltinCostModel, - defaultCekMachineCosts) +import PlutusCore.Evaluation.Machine.ExBudgetingDefaults (defaultBuiltinCostModelForTesting, + defaultCekMachineCostsForTesting) import PlutusCore.Evaluation.Machine.MachineParameters (CostModel (..), MachineParameters (..), mkMachineParameters) import PlutusCore.Parser qualified as PC @@ -29,8 +29,8 @@ import PlutusIR.Compiler qualified as PIR import PlutusIR.Core qualified as PIR import PlutusIR.Parser (pTerm) import UntypedPlutusCore.Core qualified as UPLC -import UntypedPlutusCore.Evaluation.Machine.Cek (CekValue, EvaluationResult (..), logEmitter, - unsafeEvaluateCek) +import UntypedPlutusCore.Evaluation.Machine.Cek (CekValue, EvaluationResult (..), evaluateCek, + logEmitter, unsafeToEvaluationResult) import UntypedPlutusCore.Evaluation.Machine.Cek.CekMachineCosts (CekMachineCosts) pirTermFromFile @@ -66,7 +66,7 @@ compilePirProgramOrFail pirProgram = do & runExceptT >>= \case Left (er :: PIR.Error DefaultUni DefaultFun (Provenance ())) -> fail $ show er - Right p -> pure (void p) + Right p -> pure (void p) compileTplcProgramOrFail :: (MonadFail m) @@ -83,10 +83,11 @@ evaluateUplcProgramWithTraces :: UPLC.Program Name DefaultUni DefaultFun () -> (EvaluationResult (UPLC.Term Name DefaultUni DefaultFun ()), [Text]) evaluateUplcProgramWithTraces uplcProg = - unsafeEvaluateCek logEmitter machineParameters (uplcProg ^. UPLC.progTerm) + first unsafeToEvaluationResult $ + evaluateCek logEmitter machineParameters (uplcProg ^. UPLC.progTerm) where costModel :: CostModel CekMachineCosts BuiltinCostModel = - CostModel defaultCekMachineCosts defaultBuiltinCostModel + CostModel defaultCekMachineCostsForTesting defaultBuiltinCostModelForTesting machineParameters :: MachineParameters CekMachineCosts DefaultFun (CekValue DefaultUni DefaultFun ()) = mkMachineParameters def costModel @@ -102,5 +103,5 @@ defaultCompilationCtx = do handlePirErrorByFailing :: (Pretty ann, MonadFail m) => Either (PIR.Error DefaultUni DefaultFun ann) a -> m a handlePirErrorByFailing = \case - Left e -> fail $ show e + Left e -> fail $ show e Right x -> pure x diff --git a/plutus-core/plutus-ir/test/PlutusIR/Transform/StrictLetRec/strictLetRec.golden b/plutus-core/plutus-ir/test/PlutusIR/Transform/StrictLetRec/strictLetRec.golden index d90d9f8a085..7d06755f761 100644 --- a/plutus-core/plutus-ir/test/PlutusIR/Transform/StrictLetRec/strictLetRec.golden +++ b/plutus-core/plutus-ir/test/PlutusIR/Transform/StrictLetRec/strictLetRec.golden @@ -1,154 +1 @@ -(let - (nonrec) - (termbind - (strict) - (vardecl - fix1 - (all a (type) (all b (type) (fun (fun (fun a b) (fun a b)) (fun a b)))) - ) - (abs - a - (type) - (abs - b - (type) - (lam - f - (fun (fun a b) (fun a b)) - [ - { - (abs - a - (type) - (lam - s - [ - (lam - a - (type) - (ifix - (lam - self - (fun (type) (type)) - (lam a (type) (fun [ self a ] a)) - ) - a - ) - ) - a - ] - [ (unwrap s) s ] - ) - ) - (fun a b) - } - (iwrap - (lam self (fun (type) (type)) (lam a (type) (fun [ self a ] a))) - (fun a b) - (lam - s - [ - (lam - a - (type) - (ifix - (lam - self - (fun (type) (type)) - (lam a (type) (fun [ self a ] a)) - ) - a - ) - ) - (fun a b) - ] - [ - f - (lam - x - a - [ - [ - { - (abs - a - (type) - (lam - s - [ - (lam - a - (type) - (ifix - (lam - self - (fun (type) (type)) - (lam a (type) (fun [ self a ] a)) - ) - a - ) - ) - a - ] - [ (unwrap s) s ] - ) - ) - (fun a b) - } - s - ] - x - ] - ) - ] - ) - ) - ] - ) - ) - ) - ) - [ - (lam - tup - (all r (type) (fun (fun (fun (con integer) (con integer)) r) r)) - (let - (nonrec) - (termbind - (strict) - (vardecl xxx (fun (con integer) (con integer))) - [ - { tup (fun (con integer) (con integer)) } - (lam arg_0 (fun (con integer) (con integer)) arg_0) - ] - ) - (con integer 1) - ) - ) - (abs - r - (type) - (lam - f - (fun (fun (con integer) (con integer)) r) - [ - f - [ - { { fix1 (con integer) } (con integer) } - (lam - xxx - (fun (con integer) (con integer)) - [ - [ - { (builtin trace) (fun (con integer) (con integer)) } - (con string "hello") - ] - (lam z (con integer) [ xxx z ]) - ] - ) - ] - ] - ) - ) - ] -) \ No newline at end of file +(\xxx -> 1) ((\s -> s s) (\s -> force trace "hello" (\z -> s s z))) \ No newline at end of file diff --git a/plutus-core/plutus-ir/test/PlutusIR/Transform/StrictifyBindings/Tests.hs b/plutus-core/plutus-ir/test/PlutusIR/Transform/StrictifyBindings/Tests.hs index fc2af546710..7869ccc9ab1 100644 --- a/plutus-core/plutus-ir/test/PlutusIR/Transform/StrictifyBindings/Tests.hs +++ b/plutus-core/plutus-ir/test/PlutusIR/Transform/StrictifyBindings/Tests.hs @@ -14,8 +14,8 @@ import PlutusPrelude import Test.QuickCheck.Property (Property, withMaxSuccess) test_strictifyBindings :: TestTree -test_strictifyBindings = runTestNestedIn ["plutus-ir", "test", "PlutusIR", "Transform"] $ - testNested "StrictifyBindings" $ +test_strictifyBindings = + runTestNested ["plutus-ir", "test", "PlutusIR", "Transform", "StrictifyBindings"] $ map (goldenPir (runIdentity . runTestPass (\tc -> strictifyBindingsPass tc def)) pTerm) [ "pure1" diff --git a/plutus-core/plutus-ir/test/PlutusIR/Transform/ThunkRecursions/Tests.hs b/plutus-core/plutus-ir/test/PlutusIR/Transform/ThunkRecursions/Tests.hs index 1b80679868c..021ed53e695 100644 --- a/plutus-core/plutus-ir/test/PlutusIR/Transform/ThunkRecursions/Tests.hs +++ b/plutus-core/plutus-ir/test/PlutusIR/Transform/ThunkRecursions/Tests.hs @@ -16,8 +16,8 @@ import PlutusPrelude import Test.QuickCheck.Property (Property, withMaxSuccess) test_thunkRecursions :: TestTree -test_thunkRecursions = runTestNestedIn ["plutus-ir", "test", "PlutusIR", "Transform"] $ - testNested "ThunkRecursions" $ +test_thunkRecursions = + runTestNested ["plutus-ir", "test", "PlutusIR", "Transform", "ThunkRecursions"] $ map (goldenPir (runIdentity . runTestPass (\tc -> thunkRecursionsPass tc def)) pTerm) [ "listFold" diff --git a/plutus-core/plutus-ir/test/PlutusIR/Transform/Unwrap/Tests.hs b/plutus-core/plutus-ir/test/PlutusIR/Transform/Unwrap/Tests.hs index 5c4aa3a31dd..265682b9961 100644 --- a/plutus-core/plutus-ir/test/PlutusIR/Transform/Unwrap/Tests.hs +++ b/plutus-core/plutus-ir/test/PlutusIR/Transform/Unwrap/Tests.hs @@ -12,8 +12,8 @@ import Data.Functor.Identity import Test.QuickCheck.Property (Property, withMaxSuccess) test_unwrap :: TestTree -test_unwrap = runTestNestedIn ["plutus-ir", "test", "PlutusIR", "Transform"] $ - testNested "Unwrap" $ +test_unwrap = + runTestNested ["plutus-ir", "test", "PlutusIR", "Transform", "Unwrap"] $ map (goldenPir (runIdentity . runTestPass unwrapCancelPass) pTerm) [ "unwrapWrap" diff --git a/plutus-core/plutus-ir/test/PlutusIR/TypeCheck/Tests.hs b/plutus-core/plutus-ir/test/PlutusIR/TypeCheck/Tests.hs index 0b3b22880a3..52ea41e0f64 100644 --- a/plutus-core/plutus-ir/test/PlutusIR/TypeCheck/Tests.hs +++ b/plutus-core/plutus-ir/test/PlutusIR/TypeCheck/Tests.hs @@ -8,42 +8,43 @@ import PlutusIR.Test import PlutusIR.Transform.Rename () test_types :: TestTree -test_types = runTestNestedIn ["plutus-ir", "test", "PlutusIR"] $ - testNested "TypeCheck" - $ map (goldenTypeFromPir topSrcSpan pTerm) - [ "letInLet" - ,"listMatch" - ,"maybe" - ,"ifError" - ,"mutuallyRecursiveTypes" - ,"mutuallyRecursiveValues" - ,"nonrec1" - ,"nonrec2" - ,"nonrec3" - ,"nonrec4" - ,"nonrec6" - ,"nonrec7" - ,"nonrec8" - ,"rec1" - ,"rec2" - ,"rec3" - ,"rec4" - ,"nonrecToRec" - ,"nonrecToNonrec" - ,"oldLength" - ,"strictValue" - ,"strictNonValue" - ,"strictNonValue2" - ,"strictNonValue3" - ,"strictValueNonValue" - ,"strictValueValue" - ,"strictNonValueDeep" - ,"even3Eval" - ,"sameNameDifferentEnv" - , "typeLet" - , "typeLetRec" - -- errrors - , "wrongDataConstrReturnType" - , "nonSelfRecursive" - , "typeLetWrong" - ] +test_types = + runTestNested ["plutus-ir", "test", "PlutusIR", "TypeCheck"] $ + map + (goldenTypeFromPir topSrcSpan pTerm) + [ "letInLet" + , "listMatch" + , "maybe" + , "ifError" + , "mutuallyRecursiveTypes" + , "mutuallyRecursiveValues" + , "nonrec1" + , "nonrec2" + , "nonrec3" + , "nonrec4" + , "nonrec6" + , "nonrec7" + , "nonrec8" + , "rec1" + , "rec2" + , "rec3" + , "rec4" + , "nonrecToRec" + , "nonrecToNonrec" + , "oldLength" + , "strictValue" + , "strictNonValue" + , "strictNonValue2" + , "strictNonValue3" + , "strictValueNonValue" + , "strictValueValue" + , "strictNonValueDeep" + , "even3Eval" + , "sameNameDifferentEnv" + , "typeLet" + , "typeLetRec" + -- errors + , "wrongDataConstrReturnType" + , "nonSelfRecursive" + , "typeLetWrong" + ] diff --git a/plutus-core/prelude/PlutusPrelude.hs b/plutus-core/prelude/PlutusPrelude.hs index f0353c63814..16f7182dac3 100644 --- a/plutus-core/prelude/PlutusPrelude.hs +++ b/plutus-core/prelude/PlutusPrelude.hs @@ -22,6 +22,8 @@ module PlutusPrelude , fromMaybe , guard , foldl' + , for_ + , traverse_ , fold , for , throw @@ -114,7 +116,7 @@ import Data.Char (toLower) import Data.Coerce (Coercible, coerce) import Data.Default.Class import Data.Either (fromRight, isLeft, isRight) -import Data.Foldable (fold, toList) +import Data.Foldable (fold, for_, toList, traverse_) import Data.Function (on) import Data.Functor (($>)) import Data.List (foldl') diff --git a/plutus-core/testlib/PlutusCore/Generators/Hedgehog/Test.hs b/plutus-core/testlib/PlutusCore/Generators/Hedgehog/Test.hs index 3c6921b1780..ab045c191d2 100644 --- a/plutus-core/testlib/PlutusCore/Generators/Hedgehog/Test.hs +++ b/plutus-core/testlib/PlutusCore/Generators/Hedgehog/Test.hs @@ -95,11 +95,11 @@ sampleProgramValueGolden folder name genTerm = do propEvaluate :: ( uni ~ DefaultUni, fun ~ DefaultFun , KnownTypeAst TyName uni a, MakeKnown (Term TyName Name uni fun ()) a - , PrettyPlc internal + , PrettyPlc structural ) => (Term TyName Name uni fun () -> Either - (EvaluationException user internal (Term TyName Name uni fun ())) + (EvaluationException operational structural (Term TyName Name uni fun ())) (Term TyName Name uni fun ())) -- ^ An evaluator. -> TermGen a -- ^ A term/value generator. diff --git a/plutus-core/testlib/PlutusCore/Generators/Hedgehog/TypeEvalCheck.hs b/plutus-core/testlib/PlutusCore/Generators/Hedgehog/TypeEvalCheck.hs index 45d585448d6..2df1a45e66d 100644 --- a/plutus-core/testlib/PlutusCore/Generators/Hedgehog/TypeEvalCheck.hs +++ b/plutus-core/testlib/PlutusCore/Generators/Hedgehog/TypeEvalCheck.hs @@ -94,11 +94,11 @@ type TypeEvalCheckM uni fun = Either (TypeEvalCheckError uni fun) typeEvalCheckBy :: ( uni ~ DefaultUni, fun ~ DefaultFun , KnownTypeAst TyName uni a, MakeKnown (Term TyName Name uni fun ()) a - , PrettyPlc internal + , PrettyPlc structural ) => (Term TyName Name uni fun () -> Either - (EvaluationException user internal (Term TyName Name uni fun ())) + (EvaluationException operational structural (Term TyName Name uni fun ())) (Term TyName Name uni fun ())) -- ^ An evaluator. -> TermOf (Term TyName Name uni fun ()) a @@ -127,7 +127,7 @@ unsafeTypeEvalCheck => TermOf (Term TyName Name uni fun ()) a -> TermOf (Term TyName Name uni fun ()) (EvaluationResult (Term TyName Name uni fun ())) unsafeTypeEvalCheck termOfTbv = do - let errOrRes = typeEvalCheckBy (evaluateCkNoEmit defaultBuiltinsRuntime) termOfTbv + let errOrRes = typeEvalCheckBy (evaluateCkNoEmit defaultBuiltinsRuntimeForTesting) termOfTbv case errOrRes of Left err -> error $ concat [ prettyPlcErrorString err diff --git a/plutus-core/testlib/PlutusCore/Generators/NEAT/Spec.hs b/plutus-core/testlib/PlutusCore/Generators/NEAT/Spec.hs index e3fc6fb1e6a..382fd8d8845 100644 --- a/plutus-core/testlib/PlutusCore/Generators/NEAT/Spec.hs +++ b/plutus-core/testlib/PlutusCore/Generators/NEAT/Spec.hs @@ -111,21 +111,21 @@ not exploited. -- handle a user error and turn it back into an error term handleError :: Type TyName DefaultUni () - -> U.ErrorWithCause (U.EvaluationError user internal) term - -> Either (U.ErrorWithCause (U.EvaluationError user internal) term) + -> U.ErrorWithCause (U.EvaluationError operational structural) term + -> Either (U.ErrorWithCause (U.EvaluationError operational structural) term) (Term TyName Name DefaultUni DefaultFun ()) handleError ty e = case U._ewcError e of - U.UserEvaluationError _ -> return (Error () ty) - U.InternalEvaluationError _ -> throwError e + U.OperationalEvaluationError _ -> return (Error () ty) + U.StructuralEvaluationError _ -> throwError e -- untyped version of `handleError` handleUError :: - U.ErrorWithCause (U.EvaluationError user internal) term - -> Either (U.ErrorWithCause (U.EvaluationError user internal) term) + U.ErrorWithCause (U.EvaluationError operational structural) term + -> Either (U.ErrorWithCause (U.EvaluationError operational structural) term) (U.Term Name DefaultUni DefaultFun ()) handleUError e = case U._ewcError e of - U.UserEvaluationError _ -> return (U.Error ()) - U.InternalEvaluationError _ -> throwError e + U.OperationalEvaluationError _ -> return (U.Error ()) + U.StructuralEvaluationError _ -> throwError e -- |Property: check if the type is preserved by evaluation. -- @@ -144,7 +144,7 @@ prop_typePreservation tyG tmG = do -- Check if the converted term, when evaluated by CK, still has the same type: tmCK <- withExceptT CkP $ liftEither $ - evaluateCkNoEmit defaultBuiltinsRuntime tm `catchError` handleError ty + evaluateCkNoEmit defaultBuiltinsRuntimeForTesting tm `catchError` handleError ty withExceptT TypeError $ checkType tcConfig () tmCK (Normalized ty) -- |Property: check if both the typed CK and untyped CEK machines produce the same output @@ -162,14 +162,14 @@ prop_agree_termEval tyG tmG = do -- run typed CK on input tmCk <- withExceptT CkP $ liftEither $ - evaluateCkNoEmit defaultBuiltinsRuntime tm `catchError` handleError ty + evaluateCkNoEmit defaultBuiltinsRuntimeForTesting tm `catchError` handleError ty -- erase CK output let tmUCk = eraseTerm tmCk -- run untyped CEK on erased input tmUCek <- withExceptT UCekP $ liftEither $ - U.evaluateCekNoEmit defaultCekParameters (eraseTerm tm) `catchError` handleUError + U.evaluateCekNoEmit defaultCekParametersForTesting (eraseTerm tm) `catchError` handleUError -- check if typed CK and untyped CEK give the same output modulo erasure unless (tmUCk == tmUCek) $ diff --git a/plutus-core/testlib/PlutusCore/Generators/QuickCheck/Unification.hs b/plutus-core/testlib/PlutusCore/Generators/QuickCheck/Unification.hs index 5fa9afc2940..6cf5107cfb7 100644 --- a/plutus-core/testlib/PlutusCore/Generators/QuickCheck/Unification.hs +++ b/plutus-core/testlib/PlutusCore/Generators/QuickCheck/Unification.hs @@ -17,7 +17,6 @@ import Control.Monad (when) import Control.Monad.Except (MonadError, throwError) import Control.Monad.Reader (ReaderT, ask, local, runReaderT) import Control.Monad.State.Strict (StateT, execStateT, get, put) -import Data.Foldable import Data.Map.Strict.Internal qualified as Map import Data.Set (Set) import Data.Set qualified as Set diff --git a/plutus-core/testlib/PlutusCore/Test.hs b/plutus-core/testlib/PlutusCore/Test.hs index 2a376051637..2aee9675ee1 100644 --- a/plutus-core/testlib/PlutusCore/Test.hs +++ b/plutus-core/testlib/PlutusCore/Test.hs @@ -193,7 +193,7 @@ runTPlc values = do (unsafeFromRight .* TPLC.applyProgram) ps liftEither . first toException . TPLC.extractEvaluationResult $ - TPLC.evaluateCkNoEmit TPLC.defaultBuiltinsRuntime t + TPLC.evaluateCkNoEmit TPLC.defaultBuiltinsRuntimeForTesting t -- | An evaluation failure plus the final budget and logs. data EvaluationExceptionWithLogsAndBudget err = @@ -226,7 +226,7 @@ runUPlcFull values = do ps <- traverse toUPlc values let (UPLC.Program _ _ t) = foldl1 (unsafeFromRight .* UPLC.applyProgram) ps (res, UPLC.CountingSt budget, logs) = - UPLC.runCek TPLC.defaultCekParameters UPLC.counting UPLC.logEmitter t + UPLC.runCek TPLC.defaultCekParametersForTesting UPLC.counting UPLC.logEmitter t case res of Left err -> throwError (SomeException $ EvaluationExceptionWithLogsAndBudget err budget logs) Right resT -> pure (resT, budget, logs) @@ -277,7 +277,7 @@ runUPlcProfile values = do ps <- traverse toUPlc values let (UPLC.Program _ _ t) = foldl1 (unsafeFromRight .* UPLC.applyProgram) ps (res, UPLC.CountingSt budget, logs) = - UPLC.runCek TPLC.defaultCekParameters UPLC.counting UPLC.logWithTimeEmitter t + UPLC.runCek TPLC.defaultCekParametersForTesting UPLC.counting UPLC.logWithTimeEmitter t case res of Left err -> throwError (SomeException $ EvaluationExceptionWithLogsAndBudget err budget logs) Right _ -> pure logs @@ -295,7 +295,7 @@ runUPlcProfile' values = do ps <- traverse toUPlc values let (UPLC.Program _ _ t) = foldl1 (unsafeFromRight .* UPLC.applyProgram) ps (res, UPLC.CountingSt _, logs) = - UPLC.runCek TPLC.defaultCekParameters UPLC.counting UPLC.logWithBudgetEmitter t + UPLC.runCek TPLC.defaultCekParametersForTesting UPLC.counting UPLC.logWithBudgetEmitter t case res of Left err -> throwError (SomeException err) Right _ -> pure logs diff --git a/plutus-core/testlib/PlutusIR/Test.hs b/plutus-core/testlib/PlutusIR/Test.hs index fe5ad055e70..b7422409eb3 100644 --- a/plutus-core/testlib/PlutusIR/Test.hs +++ b/plutus-core/testlib/PlutusIR/Test.hs @@ -21,7 +21,7 @@ import Test.Tasty.Extras import Control.Exception import Control.Lens hiding (op, transform) import Control.Monad.Except -import Control.Monad.Morph +import Control.Monad.Morph (hoist) import Control.Monad.Reader as Reader import PlutusCore qualified as PLC @@ -125,7 +125,7 @@ withGoldenFileM name op = do dir <- currentDir let testFile = dir </> name goldenFile = dir </> name ++ ".golden" - return $ goldenVsTextM name goldenFile (op =<< T.readFile testFile) + embed $ goldenVsTextM name goldenFile (op =<< T.readFile testFile) where currentDir = joinPath <$> ask diff --git a/plutus-core/testlib/Test/Tasty/Extras.hs b/plutus-core/testlib/Test/Tasty/Extras.hs index 2537a07416e..86e183241ee 100644 --- a/plutus-core/testlib/Test/Tasty/Extras.hs +++ b/plutus-core/testlib/Test/Tasty/Extras.hs @@ -1,10 +1,24 @@ +{-# LANGUAGE FlexibleInstances #-} +{-# LANGUAGE MultiParamTypeClasses #-} +{-# LANGUAGE TupleSections #-} +{-# LANGUAGE TypeFamilies #-} +{-# LANGUAGE TypeOperators #-} +{-# LANGUAGE TypeSynonymInstances #-} + module Test.Tasty.Extras - ( TestNested - , runTestNestedIn + ( Layer (..) + , embed + , nestWith + , TestNestedM (..) + , TestNested + , runTestNestedM + , testNestedNamedM + , testNestedM + , testNestedGhcM , runTestNested + , testNestedNamed , testNested , testNestedGhc - , runTestGroupNestedGhc , goldenVsText , goldenVsTextM , goldenVsDoc @@ -16,19 +30,20 @@ module Test.Tasty.Extras , makeVersionedFilePath ) where -import PlutusPrelude +import PlutusPrelude hiding (toList) +import Control.Monad.Free.Church (F (runF), MonadFree, liftF) import Control.Monad.Reader import Data.ByteString.Lazy qualified as BSL import Data.Text (Text) import Data.Text.Encoding (encodeUtf8) import Data.Version +import GHC.Exts import System.FilePath (joinPath, (</>)) import System.Info import Test.Tasty import Test.Tasty.Golden - -- | We use the GHC version number to create directories with names like `9.2` -- and `9.6` containing golden files whose contents depend on the GHC version. -- For consistency all such directories should be leaves in the directory @@ -50,31 +65,124 @@ ghcVersion = showVersion compilerVersion makeVersionedFilePath :: [FilePath] -> FilePath -> FilePath makeVersionedFilePath path file = joinPath path </> ghcVersion </> file --- | A 'TestTree' of tests under some name prefix. -type TestNested = Reader [FilePath] TestTree +{- | A monad allowing one to emit elements of type @a@. Semantically equivalent to +@Writer (DList a) r@, but: + +1. is faster, being based on the Church-encoded free monad +2. implements 'Monoid', so that all the "Data.Foldable" convenience is supported +3. has better ergonomics as it doesn't require the user to wrap @a@ values into 'DList's + +This type is also semantically equivalent to @Stream (Of a) Identity r@. + +Useful for monadically creating tree-like structures, for example the following + +> import Data.Tree +> yield = embed . pure +> main = putStrLn . drawTree . Node "a" . toList $ do +> yield "b" +> nestWith (Node "c") $ do +> yield "d" +> yield "e" +> yield "f" + +will produce + +> -a +> | +> +- b +> | +> +- c +> | | +> | +- d +> | | +> | `- e +> | +> `- f +-} +newtype Layer a r = Layer + { unLayer :: F ((,) a) r + } deriving newtype (Functor, Applicative, Monad, MonadFree ((,) a)) --- | Run a 'TestTree' of tests with a given name prefix. This doesn't actually --- run the tests: instead it runs a computation in the Reader monad. -runTestNestedIn :: [FilePath] -> TestNested -> TestTree -runTestNestedIn path test = runReader test path +instance unit ~ () => Semigroup (Layer a unit) where + (<>) = (*>) --- | Run a 'TestTree' of tests with an empty prefix. This doesn't actually run --- the tests: instead it runs a computation in the Reader monad. -runTestNested :: TestNested -> TestTree -runTestNested = runTestNestedIn [] +instance unit ~ () => Monoid (Layer a unit) where + mempty = pure () --- | Descend into a name prefix. -testNested :: FilePath -> [TestNested] -> TestNested -testNested folderName = - local (++ [folderName]) . fmap (testGroup folderName) . sequence +instance unit ~ () => IsList (Layer a unit) where + type Item (Layer a unit) = a + fromList = traverse_ embed + toList layer = runF (unLayer layer) mempty $ uncurry (:) --- | Like `testNested` but adds a subdirectory corresponding to the GHC version being used. -testNestedGhc :: FilePath -> [TestNested] -> TestNested -testNestedGhc folderName = testNested (folderName </> ghcVersion) +-- | Embed the given value into a 'Layer'-like type (either 'Layer' itself or a monad transformer +-- stack with 'Layer' at the bottom). +embed :: MonadFree ((,) a) m => a -> m () +embed x = liftF (x, ()) + +-- | Collapse the given 'Layer' into a single element by converting it into a list, applying the +-- given function to the result and 'embed'ding it back. +nestWith :: ([a] -> a) -> Layer a () -> Layer a () +nestWith f = embed . f . toList + +newtype TestNestedM r = TestNestedM + { unTestNestedM :: ReaderT [FilePath] (Layer TestTree) r + } deriving newtype + (Functor, Applicative, Monad, MonadReader [FilePath], MonadFree ((,) TestTree)) + +-- | A 'TestTree' of tests under some name prefix. +type TestNested = TestNestedM () + +instance unit ~ () => Semigroup (TestNestedM unit) where + (<>) = (*>) + +instance unit ~ () => Monoid (TestNestedM unit) where + mempty = pure () + +-- | Run a 'TestNested' computation to produce a 'TestTree' (without actually executing the tests). +runTestNestedM :: [String] -> TestNested -> TestTree +runTestNestedM [] _ = error "Path cannot be empty" +runTestNestedM path test = testGroup (last path) . toList $ runReaderT (unTestNestedM test) path + +-- | Descend into a folder. +testNestedNamedM + :: FilePath -- ^ The name of the folder. + -> String -- ^ The name of the test group to render in CLI. + -> TestNested + -> TestNested +testNestedNamedM folderName testName + = TestNestedM + . local (++ [folderName]) + . mapReaderT (nestWith $ testGroup testName) + . unTestNestedM + +-- | Descend into a folder for a 'TestNested' computation. +testNestedM :: FilePath -> TestNested -> TestNested +testNestedM folderName = testNestedNamedM folderName folderName + +-- | Like 'testNestedM' but adds a subdirectory corresponding to the GHC version being used. +testNestedGhcM :: TestNested -> TestNested +testNestedGhcM = testNestedM ghcVersion + +-- | Run a list of 'TestNested' computation to produce a 'TestTree' (without actually executing the +-- tests). +runTestNested :: [String] -> [TestNested] -> TestTree +runTestNested path = runTestNestedM path . fold + +-- | Descend into a folder for a list of tests. +testNestedNamed + :: FilePath -- ^ The name of the folder. + -> String -- ^ The name of the test group to render in CLI. + -> [TestNested] + -> TestNested +testNestedNamed folderName testName = testNestedNamedM folderName testName . fold + +-- | Descend into a folder for a list of 'TestNested' computations. +testNested :: FilePath -> [TestNested] -> TestNested +testNested folderName = testNestedM folderName . fold --- Create a TestTree which runs in the directory 'path/<ghc-version> -runTestGroupNestedGhc :: [FilePath] -> [TestNested] -> TestTree -runTestGroupNestedGhc path = runTestNested . testNestedGhc (joinPath path) +-- | Like 'testNested' but adds a subdirectory corresponding to the GHC version being used. +testNestedGhc :: [TestNested] -> TestNested +testNestedGhc = testNestedGhcM . fold -- | Check the contents of a file against a 'Text'. goldenVsText :: TestName -> FilePath -> Text -> TestTree @@ -84,7 +192,7 @@ goldenVsText name ref = goldenVsTextM name ref . pure goldenVsTextM :: TestName -> FilePath -> IO Text -> TestTree goldenVsTextM name ref val = goldenVsStringDiff name (\expected actual -> ["diff", "-u", expected, actual]) ref $ - BSL.fromStrict . encodeUtf8 <$> val + BSL.fromStrict . encodeUtf8 <$> val -- | Check the contents of a file against a 'Doc'. goldenVsDoc :: TestName -> FilePath -> Doc ann -> TestTree @@ -102,8 +210,7 @@ nestedGoldenVsText name ext = nestedGoldenVsTextM name ext . pure nestedGoldenVsTextM :: TestName -> FilePath -> IO Text -> TestNested nestedGoldenVsTextM name ext text = do path <- ask - -- TODO: make more generic - return $ goldenVsTextM name (foldr (</>) (name ++ ext ++ ".golden") path) text + embed $ goldenVsTextM name (foldr (</>) (name ++ ext ++ ".golden") path) text -- | Check the contents of a file under a name prefix against a 'Text'. nestedGoldenVsDoc :: TestName -> FilePath -> Doc ann -> TestNested diff --git a/plutus-core/untyped-plutus-core/src/UntypedPlutusCore/Core/Instance/Eq.hs b/plutus-core/untyped-plutus-core/src/UntypedPlutusCore/Core/Instance/Eq.hs index d90a9fb0994..64d617ad9d0 100644 --- a/plutus-core/untyped-plutus-core/src/UntypedPlutusCore/Core/Instance/Eq.hs +++ b/plutus-core/untyped-plutus-core/src/UntypedPlutusCore/Core/Instance/Eq.hs @@ -19,7 +19,6 @@ import PlutusCore.Rename.Monad import Universe -import Data.Foldable (for_) import Data.Hashable import Data.Vector qualified as V diff --git a/plutus-core/untyped-plutus-core/src/UntypedPlutusCore/Evaluation/Machine/Cek.hs b/plutus-core/untyped-plutus-core/src/UntypedPlutusCore/Evaluation/Machine/Cek.hs index ee43e07dc11..8593d87c31e 100644 --- a/plutus-core/untyped-plutus-core/src/UntypedPlutusCore/Evaluation/Machine/Cek.hs +++ b/plutus-core/untyped-plutus-core/src/UntypedPlutusCore/Evaluation/Machine/Cek.hs @@ -7,14 +7,11 @@ module UntypedPlutusCore.Evaluation.Machine.Cek runCek , runCekDeBruijn , runCekNoEmit - , unsafeRunCekNoEmit , evaluateCek , evaluateCekNoEmit - , unsafeEvaluateCek - , unsafeEvaluateCekNoEmit , EvaluationResult(..) , extractEvaluationResult - , unsafeExtractEvaluationResult + , unsafeToEvaluationResult -- * Errors , CekUserError(..) , ErrorWithCause(..) @@ -59,7 +56,6 @@ import UntypedPlutusCore.Evaluation.Machine.Cek.Internal import UntypedPlutusCore.Evaluation.Machine.CommonAPI qualified as Common import PlutusCore.Builtin -import PlutusCore.Evaluation.Machine.Exception import PlutusCore.Evaluation.Machine.MachineParameters import PlutusCore.Name.Unique @@ -88,18 +84,6 @@ runCekNoEmit -> (Either (CekEvaluationException Name uni fun) (Term Name uni fun ()), cost) runCekNoEmit = Common.runCekNoEmit runCekDeBruijn -{-| Unsafely evaluate a term using the CEK machine with logging disabled and keep track of costing. -May throw a 'CekMachineException'. -*THIS FUNCTION IS PARTIAL if the input term contains free variables* --} -unsafeRunCekNoEmit - :: ThrowableBuiltins uni fun - => MachineParameters CekMachineCosts fun (CekValue uni fun ann) - -> ExBudgetMode cost uni fun - -> Term Name uni fun ann - -> (EvaluationResult (Term Name uni fun ()), cost) -unsafeRunCekNoEmit = Common.unsafeRunCekNoEmit runCekDeBruijn - -- | Evaluate a term using the CEK machine with logging enabled. -- *THIS FUNCTION IS PARTIAL if the input term contains free variables* evaluateCek @@ -119,25 +103,6 @@ evaluateCekNoEmit -> Either (CekEvaluationException Name uni fun) (Term Name uni fun ()) evaluateCekNoEmit = Common.evaluateCekNoEmit runCekDeBruijn --- | Evaluate a term using the CEK machine with logging enabled. May throw a 'CekMachineException'. --- *THIS FUNCTION IS PARTIAL if the input term contains free variables* -unsafeEvaluateCek - :: ThrowableBuiltins uni fun - => EmitterMode uni fun - -> MachineParameters CekMachineCosts fun (CekValue uni fun ann) - -> Term Name uni fun ann - -> (EvaluationResult (Term Name uni fun ()), [Text]) -unsafeEvaluateCek = Common.unsafeEvaluateCek runCekDeBruijn - --- | Evaluate a term using the CEK machine with logging disabled. May throw a 'CekMachineException'. --- *THIS FUNCTION IS PARTIAL if the input term contains free variables* -unsafeEvaluateCekNoEmit - :: ThrowableBuiltins uni fun - => MachineParameters CekMachineCosts fun (CekValue uni fun ann) - -> Term Name uni fun ann - -> EvaluationResult (Term Name uni fun ()) -unsafeEvaluateCekNoEmit = Common.unsafeEvaluateCekNoEmit runCekDeBruijn - -- | Unlift a value using the CEK machine. -- *THIS FUNCTION IS PARTIAL if the input term contains free variables* readKnownCek diff --git a/plutus-core/untyped-plutus-core/src/UntypedPlutusCore/Evaluation/Machine/Cek/ExBudgetMode.hs b/plutus-core/untyped-plutus-core/src/UntypedPlutusCore/Evaluation/Machine/Cek/ExBudgetMode.hs index 0d376a47b02..a2f15197f96 100644 --- a/plutus-core/untyped-plutus-core/src/UntypedPlutusCore/Evaluation/Machine/Cek/ExBudgetMode.hs +++ b/plutus-core/untyped-plutus-core/src/UntypedPlutusCore/Evaluation/Machine/Cek/ExBudgetMode.hs @@ -144,7 +144,7 @@ restricting (ExRestrictingBudget initB@(ExBudget cpuInit memInit)) = ExBudgetMod when (cpuLeft' < 0 || memLeft' < 0) $ do let budgetLeft = ExBudget cpuLeft' memLeft' throwingWithCause _EvaluationError - (UserEvaluationError . CekOutOfExError $ ExRestrictingBudget budgetLeft) + (OperationalEvaluationError . CekOutOfExError $ ExRestrictingBudget budgetLeft) Nothing spender = CekBudgetSpender spend remaining = ExBudget <$> readCpu <*> readMem diff --git a/plutus-core/untyped-plutus-core/src/UntypedPlutusCore/Evaluation/Machine/Cek/Internal.hs b/plutus-core/untyped-plutus-core/src/UntypedPlutusCore/Evaluation/Machine/Cek/Internal.hs index fc755a41f2c..fed45bfdb13 100644 --- a/plutus-core/untyped-plutus-core/src/UntypedPlutusCore/Evaluation/Machine/Cek/Internal.hs +++ b/plutus-core/untyped-plutus-core/src/UntypedPlutusCore/Evaluation/Machine/Cek/Internal.hs @@ -48,6 +48,7 @@ module UntypedPlutusCore.Evaluation.Machine.Cek.Internal , StepKind(..) , ThrowableBuiltins , extractEvaluationResult + , unsafeToEvaluationResult , spendBudgetStreamCek , runCekDeBruijn , dischargeCekValue @@ -479,6 +480,9 @@ instance ThrowableBuiltins uni fun => MonadError (CekEvaluationException NamedDe instance AsEvaluationFailure CekUserError where _EvaluationFailure = _EvaluationFailureVia CekEvaluationFailure +instance AsUnliftingError CekUserError where + _UnliftingError = _UnliftingErrorVia CekEvaluationFailure + instance Pretty CekUserError where pretty (CekOutOfExError (ExRestrictingBudget res)) = cat diff --git a/plutus-core/untyped-plutus-core/src/UntypedPlutusCore/Evaluation/Machine/CommonAPI.hs b/plutus-core/untyped-plutus-core/src/UntypedPlutusCore/Evaluation/Machine/CommonAPI.hs index fa24c961b5c..a9c2bf023f8 100644 --- a/plutus-core/untyped-plutus-core/src/UntypedPlutusCore/Evaluation/Machine/CommonAPI.hs +++ b/plutus-core/untyped-plutus-core/src/UntypedPlutusCore/Evaluation/Machine/CommonAPI.hs @@ -11,14 +11,11 @@ module UntypedPlutusCore.Evaluation.Machine.CommonAPI runCek , runCekDeBruijn , runCekNoEmit - , unsafeRunCekNoEmit , evaluateCek , evaluateCekNoEmit - , unsafeEvaluateCek - , unsafeEvaluateCekNoEmit , EvaluationResult(..) , extractEvaluationResult - , unsafeExtractEvaluationResult + , unsafeToEvaluationResult -- * Errors , CekUserError(..) , ErrorWithCause(..) @@ -63,7 +60,6 @@ import UntypedPlutusCore.Evaluation.Machine.Cek.ExBudgetMode import UntypedPlutusCore.Evaluation.Machine.Cek.Internal import PlutusCore.Builtin -import PlutusCore.Evaluation.Machine.Exception import PlutusCore.Evaluation.Machine.MachineParameters import PlutusCore.Name.Unique import PlutusCore.Quote @@ -137,21 +133,6 @@ runCekNoEmit runner params mode = -- throw away the logs (\(res, cost, _logs) -> (res, cost)) . runCek runner params mode noEmitter -{-| Unsafely evaluate a term a machine with logging disabled and keep track of costing. -May throw a 'CekMachineException'. -*THIS FUNCTION IS PARTIAL if the input term contains free variables* --} -unsafeRunCekNoEmit - :: ThrowableBuiltins uni fun - => MachineRunner cost uni fun ann - -> MachineParameters CekMachineCosts fun (CekValue uni fun ann) - -> ExBudgetMode cost uni fun - -> Term Name uni fun ann - -> (EvaluationResult (Term Name uni fun ()), cost) -unsafeRunCekNoEmit runner params mode = - -- Don't use 'first': https://github.com/IntersectMBO/plutus/issues/3876 - (\(e, l) -> (unsafeExtractEvaluationResult e, l)) . runCekNoEmit runner params mode - -- | Evaluate a term using a machine with logging enabled. -- *THIS FUNCTION IS PARTIAL if the input term contains free variables* evaluateCek @@ -175,29 +156,6 @@ evaluateCekNoEmit -> Either (CekEvaluationException Name uni fun) (Term Name uni fun ()) evaluateCekNoEmit runner params = fst . runCekNoEmit runner params restrictingEnormous --- | Evaluate a term using a machine with logging enabled. May throw a 'CekMachineException'. --- *THIS FUNCTION IS PARTIAL if the input term contains free variables* -unsafeEvaluateCek - :: ThrowableBuiltins uni fun - => MachineRunner RestrictingSt uni fun ann - -> EmitterMode uni fun - -> MachineParameters CekMachineCosts fun (CekValue uni fun ann) - -> Term Name uni fun ann - -> (EvaluationResult (Term Name uni fun ()), [Text]) -unsafeEvaluateCek runner emitTime params = - -- Don't use 'first': https://github.com/IntersectMBO/plutus/issues/3876 - (\(e, l) -> (unsafeExtractEvaluationResult e, l)) . evaluateCek runner emitTime params - --- | Evaluate a term using a machine with logging disabled. May throw a 'CekMachineException'. --- *THIS FUNCTION IS PARTIAL if the input term contains free variables* -unsafeEvaluateCekNoEmit - :: ThrowableBuiltins uni fun - => MachineRunner RestrictingSt uni fun ann - -> MachineParameters CekMachineCosts fun (CekValue uni fun ann) - -> Term Name uni fun ann - -> EvaluationResult (Term Name uni fun ()) -unsafeEvaluateCekNoEmit runner params = unsafeExtractEvaluationResult . evaluateCekNoEmit runner params - -- | Unlift a value using a machine. -- *THIS FUNCTION IS PARTIAL if the input term contains free variables* readKnownCek diff --git a/plutus-core/untyped-plutus-core/src/UntypedPlutusCore/Evaluation/Machine/SteppableCek.hs b/plutus-core/untyped-plutus-core/src/UntypedPlutusCore/Evaluation/Machine/SteppableCek.hs index e81bf9ac973..9caacf82789 100644 --- a/plutus-core/untyped-plutus-core/src/UntypedPlutusCore/Evaluation/Machine/SteppableCek.hs +++ b/plutus-core/untyped-plutus-core/src/UntypedPlutusCore/Evaluation/Machine/SteppableCek.hs @@ -7,14 +7,11 @@ module UntypedPlutusCore.Evaluation.Machine.SteppableCek runCek , runCekDeBruijn , runCekNoEmit - , unsafeRunCekNoEmit , evaluateCek , evaluateCekNoEmit - , unsafeEvaluateCek - , unsafeEvaluateCekNoEmit , EvaluationResult(..) , extractEvaluationResult - , unsafeExtractEvaluationResult + , unsafeToEvaluationResult -- * Errors , CekUserError(..) , ErrorWithCause(..) @@ -57,7 +54,6 @@ import UntypedPlutusCore.Evaluation.Machine.CommonAPI qualified as Common import UntypedPlutusCore.Evaluation.Machine.SteppableCek.Internal as S import PlutusCore.Builtin -import PlutusCore.Evaluation.Machine.Exception import PlutusCore.Evaluation.Machine.MachineParameters import PlutusCore.Name.Unique @@ -87,19 +83,6 @@ runCekNoEmit -> (Either (CekEvaluationException Name uni fun) (Term Name uni fun ()), cost) runCekNoEmit = Common.runCekNoEmit S.runCekDeBruijn -{-| Unsafely evaluate a term using the Steppable CEK machine with logging disabled --- and keep track of costing. -May throw a 'CekMachineException'. -*THIS FUNCTION IS PARTIAL if the input term contains free variables* --} -unsafeRunCekNoEmit - :: ThrowableBuiltins uni fun - => MachineParameters CekMachineCosts fun (CekValue uni fun ann) - -> ExBudgetMode cost uni fun - -> Term Name uni fun ann - -> (EvaluationResult (Term Name uni fun ()), cost) -unsafeRunCekNoEmit = Common.unsafeRunCekNoEmit S.runCekDeBruijn - -- | Evaluate a term using the Steppable CEK machine with logging enabled. -- *THIS FUNCTION IS PARTIAL if the input term contains free variables* evaluateCek @@ -119,27 +102,6 @@ evaluateCekNoEmit -> Either (CekEvaluationException Name uni fun) (Term Name uni fun ()) evaluateCekNoEmit = Common.evaluateCekNoEmit S.runCekDeBruijn --- | Evaluate a term using the Steppable CEK machine with logging enabled. --- May throw a 'CekMachineException'. --- *THIS FUNCTION IS PARTIAL if the input term contains free variables* -unsafeEvaluateCek - :: ThrowableBuiltins uni fun - => EmitterMode uni fun - -> MachineParameters CekMachineCosts fun (CekValue uni fun ann) - -> Term Name uni fun ann - -> (EvaluationResult (Term Name uni fun ()), [Text]) -unsafeEvaluateCek = Common.unsafeEvaluateCek S.runCekDeBruijn - --- | Evaluate a term using the Steppable CEK machine with logging disabled. --- May throw a 'CekMachineException'. --- *THIS FUNCTION IS PARTIAL if the input term contains free variables* -unsafeEvaluateCekNoEmit - :: ThrowableBuiltins uni fun - => MachineParameters CekMachineCosts fun (CekValue uni fun ann) - -> Term Name uni fun ann - -> EvaluationResult (Term Name uni fun ()) -unsafeEvaluateCekNoEmit = Common.unsafeEvaluateCekNoEmit S.runCekDeBruijn - -- | Unlift a value using the Steppable CEK machine. -- *THIS FUNCTION IS PARTIAL if the input term contains free variables* readKnownCek diff --git a/plutus-core/untyped-plutus-core/test/Analysis/Spec.hs b/plutus-core/untyped-plutus-core/test/Analysis/Spec.hs index dd8e045dd4c..78b8efec252 100644 --- a/plutus-core/untyped-plutus-core/test/Analysis/Spec.hs +++ b/plutus-core/untyped-plutus-core/test/Analysis/Spec.hs @@ -49,9 +49,10 @@ letImpure = runQuote $ do (Apply () (Var () m) intConst) evalOrder :: TestTree -evalOrder = runTestNestedIn ["untyped-plutus-core", "test", "Analysis"] $ testNested "evalOrder" - [ goldenEvalOrder "letFun" letFun - , goldenEvalOrder "letImpure" letImpure - , pure $ testCase "evalOrderLazy" $ - 4 @=? length (unEvalOrder $ termEvaluationOrder def dangerTerm) - ] +evalOrder = + runTestNested ["untyped-plutus-core", "test", "Analysis", "evalOrder"] + [ goldenEvalOrder "letFun" letFun + , goldenEvalOrder "letImpure" letImpure + , embed . testCase "evalOrderLazy" $ + 4 @=? length (unEvalOrder $ termEvaluationOrder def dangerTerm) + ] diff --git a/plutus-core/untyped-plutus-core/test/DeBruijn/FlatNatWord.hs b/plutus-core/untyped-plutus-core/test/DeBruijn/FlatNatWord.hs index b95fbc41e85..b4165d57ff7 100644 --- a/plutus-core/untyped-plutus-core/test/DeBruijn/FlatNatWord.hs +++ b/plutus-core/untyped-plutus-core/test/DeBruijn/FlatNatWord.hs @@ -73,13 +73,14 @@ prop_OldVsNewIndex = testProperty "oldVsNew Index" $ property $ do Hedgehog.assert $ unflat @Index encoded `isCompatible` unflat @OldIndex encoded test_flatNatWord :: TestNested -test_flatNatWord = testNested "FlatNatWord" $ fmap pure - [ test_MinBound - , test_MaxBound - , prop_CompatInBounds - , prop_DecLarger - , prop_OldVsNewIndex - ] +test_flatNatWord = + testNested "FlatNatWord" $ map embed + [ test_MinBound + , test_MaxBound + , prop_CompatInBounds + , prop_DecLarger + , prop_OldVsNewIndex + ] -- * Old implementation of Flat Index copy-pasted and renamed to OldIndex diff --git a/plutus-core/untyped-plutus-core/test/DeBruijn/Scope.hs b/plutus-core/untyped-plutus-core/test/DeBruijn/Scope.hs index 1b17ef34857..f6b08829132 100644 --- a/plutus-core/untyped-plutus-core/test/DeBruijn/Scope.hs +++ b/plutus-core/untyped-plutus-core/test/DeBruijn/Scope.hs @@ -43,7 +43,7 @@ testsFail = ] test_scope :: TestNested -test_scope = testNested "Scope" $ pure . uncurry testCase <$> +test_scope = testNested "Scope" $ embed . uncurry testCase <$> (second testPasses <$> testsOk) <> (second testThrows <$> testsFail) where diff --git a/plutus-core/untyped-plutus-core/test/DeBruijn/Spec.hs b/plutus-core/untyped-plutus-core/test/DeBruijn/Spec.hs index f79266ccb81..9d3dc471891 100644 --- a/plutus-core/untyped-plutus-core/test/DeBruijn/Spec.hs +++ b/plutus-core/untyped-plutus-core/test/DeBruijn/Spec.hs @@ -1,4 +1,3 @@ -{-# LANGUAGE TypeFamilies #-} module DeBruijn.Spec (test_debruijn) where import DeBruijn.FlatNatWord (test_flatNatWord) @@ -8,9 +7,9 @@ import Test.Tasty import Test.Tasty.Extras test_debruijn :: TestTree -test_debruijn = runTestNestedIn ["untyped-plutus-core","test"] $ - testNested "DeBruijn" - [ test_undebruijnify - , test_scope - , test_flatNatWord - ] +test_debruijn = + runTestNested ["untyped-plutus-core", "test", "DeBruijn"] $ + [ test_undebruijnify + , test_scope + , test_flatNatWord + ] diff --git a/plutus-core/untyped-plutus-core/test/Evaluation/Builtins/BLS12_381/Utils.hs b/plutus-core/untyped-plutus-core/test/Evaluation/Builtins/BLS12_381/Utils.hs index d0c773c1632..bdc86314ba0 100644 --- a/plutus-core/untyped-plutus-core/test/Evaluation/Builtins/BLS12_381/Utils.hs +++ b/plutus-core/untyped-plutus-core/test/Evaluation/Builtins/BLS12_381/Utils.hs @@ -7,7 +7,7 @@ where import Evaluation.Builtins.Common import PlutusCore qualified as PLC -import PlutusCore.Evaluation.Machine.ExBudgetingDefaults (defaultBuiltinCostModel) +import PlutusCore.Evaluation.Machine.ExBudgetingDefaults (defaultBuiltinCostModelForTesting) import PlutusCore.MkPlc (builtin, mkConstant, mkIterAppNoAnn) import PlutusPrelude (def) import UntypedPlutusCore qualified as UPLC @@ -32,7 +32,7 @@ data CekResult = evalTerm :: PlcTerm -> CekResult evalTerm term = - case typecheckEvaluateCekNoEmit def defaultBuiltinCostModel term + case typecheckEvaluateCekNoEmit def defaultBuiltinCostModelForTesting term of Left e -> TypeCheckError e Right x -> case x of diff --git a/plutus-core/untyped-plutus-core/test/Evaluation/Builtins/Common.hs b/plutus-core/untyped-plutus-core/test/Evaluation/Builtins/Common.hs index 285059ed8f2..72bb806181a 100644 --- a/plutus-core/untyped-plutus-core/test/Evaluation/Builtins/Common.hs +++ b/plutus-core/untyped-plutus-core/test/Evaluation/Builtins/Common.hs @@ -3,8 +3,9 @@ {-# LANGUAGE TypeOperators #-} module Evaluation.Builtins.Common - ( unsafeEvaluateCek - , unsafeEvaluateCekNoEmit + ( unsafeToEvaluationResult + , evaluateCek + , evaluateCekNoEmit , readKnownCek , typecheckAnd , typecheckEvaluateCek @@ -27,6 +28,7 @@ import UntypedPlutusCore qualified as UPLC import UntypedPlutusCore.Evaluation.Machine.Cek import Control.Monad.Except +import Data.Bifunctor import Data.Text (Text) -- | Type check and evaluate a term. @@ -39,14 +41,15 @@ typecheckAnd UPLC.Term Name uni fun () -> a) -> CostingPart uni fun -> TPLC.Term TyName Name uni fun () -> m a typecheckAnd semvar action costingPart term = TPLC.runQuoteT $ do - -- Here we don't use `getDefTypeCheckConfig`, to cover the absurd case where - -- builtins can change their type according to their BuiltinSemanticsVariant + -- Here we don't use 'getDefTypeCheckConfig', to cover the absurd case where + -- builtins can change their type according to their 'BuiltinSemanticsVariant'. tcConfig <- TypeCheckConfig defKindCheckConfig <$> builtinMeaningsToTypes semvar () _ <- TPLC.inferType tcConfig term return . action runtime $ TPLC.eraseTerm term where runtime = mkMachineParameters semvar $ - CostModel defaultCekMachineCosts costingPart + -- FIXME: make sure we have the the correct cost model for the semantics variant. + CostModel defaultCekMachineCostsForTesting costingPart -- | Type check and evaluate a term, logging enabled. typecheckEvaluateCek @@ -57,7 +60,9 @@ typecheckEvaluateCek -> CostingPart uni fun -> TPLC.Term TyName Name uni fun () -> m (EvaluationResult (UPLC.Term Name uni fun ()), [Text]) -typecheckEvaluateCek semvar = typecheckAnd semvar $ unsafeEvaluateCek logEmitter +typecheckEvaluateCek semvar = + typecheckAnd semvar $ \params -> + first unsafeToEvaluationResult . evaluateCek logEmitter params -- | Type check and evaluate a term, logging disabled. typecheckEvaluateCekNoEmit @@ -68,7 +73,9 @@ typecheckEvaluateCekNoEmit -> CostingPart uni fun -> TPLC.Term TyName Name uni fun () -> m (EvaluationResult (UPLC.Term Name uni fun ())) -typecheckEvaluateCekNoEmit semvar = typecheckAnd semvar unsafeEvaluateCekNoEmit +typecheckEvaluateCekNoEmit semvar = + typecheckAnd semvar $ \params -> + unsafeToEvaluationResult . evaluateCekNoEmit params -- | Type check and convert a Plutus Core term to a Haskell value. typecheckReadKnownCek @@ -80,4 +87,5 @@ typecheckReadKnownCek -> CostingPart uni fun -> TPLC.Term TyName Name uni fun () -> m (Either (CekEvaluationException Name uni fun) a) -typecheckReadKnownCek semvar = typecheckAnd semvar readKnownCek +typecheckReadKnownCek semvar = + typecheckAnd semvar readKnownCek diff --git a/plutus-core/untyped-plutus-core/test/Evaluation/Builtins/Conversion.hs b/plutus-core/untyped-plutus-core/test/Evaluation/Builtins/Conversion.hs index ebf400278c4..ba5929d7ff1 100644 --- a/plutus-core/untyped-plutus-core/test/Evaluation/Builtins/Conversion.hs +++ b/plutus-core/untyped-plutus-core/test/Evaluation/Builtins/Conversion.hs @@ -22,7 +22,7 @@ module Evaluation.Builtins.Conversion ( import Evaluation.Builtins.Common (typecheckEvaluateCek) import PlutusCore qualified as PLC import PlutusCore.Bitwise.Convert (integerToByteStringMaximumOutputLength) -import PlutusCore.Evaluation.Machine.ExBudgetingDefaults (defaultBuiltinCostModel) +import PlutusCore.Evaluation.Machine.ExBudgetingDefaults (defaultBuiltinCostModelForTesting) import PlutusCore.MkPlc (builtin, mkConstant, mkIterAppNoAnn) import PlutusPrelude (Word8, def) import UntypedPlutusCore qualified as UPLC @@ -538,7 +538,7 @@ evaluateAndVerify :: PLC.Term UPLC.TyName UPLC.Name UPLC.DefaultUni UPLC.DefaultFun () -> PropertyT IO () evaluateAndVerify expected actual = - case typecheckEvaluateCek def defaultBuiltinCostModel actual of + case typecheckEvaluateCek def defaultBuiltinCostModelForTesting actual of Left x -> annotateShow x >> failure Right (res, logs) -> case res of PLC.EvaluationFailure -> annotateShow logs >> failure @@ -549,8 +549,8 @@ evaluateAndVerify2 :: PLC.Term UPLC.TyName UPLC.Name UPLC.DefaultUni UPLC.DefaultFun () -> PropertyT IO () evaluateAndVerify2 expected actual = - let expectedResult = typecheckEvaluateCek def defaultBuiltinCostModel expected - actualResult = typecheckEvaluateCek def defaultBuiltinCostModel actual + let expectedResult = typecheckEvaluateCek def defaultBuiltinCostModelForTesting expected + actualResult = typecheckEvaluateCek def defaultBuiltinCostModelForTesting actual in case (expectedResult, actualResult) of (Left err, _) -> annotateShow err >> failure (_, Left err) -> annotateShow err >> failure @@ -562,7 +562,7 @@ evaluateAndVerify2 expected actual = evaluateShouldFail :: PLC.Term UPLC.TyName UPLC.Name UPLC.DefaultUni UPLC.DefaultFun () -> IO () -evaluateShouldFail expr = case typecheckEvaluateCek def defaultBuiltinCostModel expr of +evaluateShouldFail expr = case typecheckEvaluateCek def defaultBuiltinCostModelForTesting expr of Left _ -> assertFailure "unexpectedly failed to typecheck" Right (result, _) -> case result of PLC.EvaluationFailure -> pure () @@ -573,7 +573,7 @@ evaluateAssertEqual :: PLC.Term UPLC.TyName UPLC.Name UPLC.DefaultUni UPLC.DefaultFun () -> IO () evaluateAssertEqual expected actual = - case typecheckEvaluateCek def defaultBuiltinCostModel actual of + case typecheckEvaluateCek def defaultBuiltinCostModelForTesting actual of Left _ -> assertFailure "unexpectedly failed to typecheck" Right (result, _) -> case result of PLC.EvaluationFailure -> assertFailure "unexpectedly failed to evaluate" diff --git a/plutus-core/untyped-plutus-core/test/Evaluation/Builtins/Definition.hs b/plutus-core/untyped-plutus-core/test/Evaluation/Builtins/Definition.hs index 1643b56d87d..68350a34645 100644 --- a/plutus-core/untyped-plutus-core/test/Evaluation/Builtins/Definition.hs +++ b/plutus-core/untyped-plutus-core/test/Evaluation/Builtins/Definition.hs @@ -40,21 +40,19 @@ import PlutusCore.StdLib.Data.ScottList qualified as Scott import PlutusCore.StdLib.Data.ScottUnit qualified as Scott import PlutusCore.StdLib.Data.Unit -import Evaluation.Builtins.BLS12_381 (test_BLS12_381) -import Evaluation.Builtins.Common -import Evaluation.Builtins.Conversion qualified as Conversion -import Evaluation.Builtins.Laws qualified as Laws -import Evaluation.Builtins.SignatureVerification (ecdsaSecp256k1Prop, ed25519_Variant0Prop, - ed25519_Variant1Prop, ed25519_Variant2Prop, - schnorrSecp256k1Prop) - - import Control.Exception import Data.ByteString (ByteString, pack) import Data.DList qualified as DList import Data.Proxy import Data.String (IsString (fromString)) import Data.Text (Text) +import Evaluation.Builtins.BLS12_381 (test_BLS12_381) +import Evaluation.Builtins.Common +import Evaluation.Builtins.Conversion qualified as Conversion +import Evaluation.Builtins.Laws qualified as Laws +import Evaluation.Builtins.SignatureVerification (ecdsaSecp256k1Prop, ed25519_VariantAProp, + ed25519_VariantBProp, ed25519_VariantCProp, + schnorrSecp256k1Prop) import Hedgehog hiding (Opaque, Size, Var) import Hedgehog.Gen qualified as Gen import Hedgehog.Range qualified as Range @@ -65,7 +63,19 @@ import Test.Tasty.HUnit type DefaultFunExt = Either DefaultFun ExtensionFun defaultBuiltinCostModelExt :: CostingPart DefaultUni DefaultFunExt -defaultBuiltinCostModelExt = (defaultBuiltinCostModel, ()) +defaultBuiltinCostModelExt = (defaultBuiltinCostModelForTesting, ()) + +{- FIXME: in this module there are many occurrences of things like + + typecheckEvaluateCekNoEmit def defaultBuiltinCostModelForTesting + + Here `def` is the default semantics variant defined in + PlutusCore.Default.Builtins. Currently that is equal to + `DefaultFunSemanticsVariantC`, and `defaultBuiltinCostModelForTesting` is the + cost model for the same variant. Can we couple these things together more + tightly so that it's guaranteed that the two things refer to the same + semantics variant? +-} -- | Check that the 'Factorial' builtin computes to the same thing as factorial defined in PLC -- itself. @@ -91,8 +101,10 @@ test_Const = tB = mkConstant () b text = toTypeAst @_ @_ @DefaultUni @Text Proxy runConst con = mkIterAppNoAnn (mkIterInstNoAnn con [text, bool]) [tC, tB] - lhs = typecheckReadKnownCek def defaultBuiltinCostModelExt $ runConst $ builtin () (Right Const) - rhs = typecheckReadKnownCek def defaultBuiltinCostModelExt $ runConst $ mapFun @DefaultFun Left Plc.const + lhs = typecheckReadKnownCek def defaultBuiltinCostModelExt $ + runConst $ builtin () (Right Const) + rhs = typecheckReadKnownCek def defaultBuiltinCostModelExt $ + runConst $ mapFun @DefaultFun Left Plc.const lhs === Right (Right c) lhs === rhs @@ -127,7 +139,8 @@ test_Id = . LamAbs () i integer . LamAbs () j integer $ Var () i - typecheckEvaluateCekNoEmit def defaultBuiltinCostModelExt term @?= Right (EvaluationSuccess oneU) + typecheckEvaluateCekNoEmit def defaultBuiltinCostModelExt term @?= + Right (EvaluationSuccess oneU) -- | Test that a polymorphic built-in function can have a higher-kinded type variable in its -- signature. @@ -142,7 +155,8 @@ test_IdFInteger = = apply () (mapFun Left Scott.sum) . apply () (tyInst () (builtin () $ Right IdFInteger) Scott.listTy) $ mkIterAppNoAnn (mapFun Left Scott.enumFromTo) [one, ten] - typecheckEvaluateCekNoEmit def defaultBuiltinCostModelExt term @?= Right (EvaluationSuccess res) + typecheckEvaluateCekNoEmit def defaultBuiltinCostModelExt term @?= + Right (EvaluationSuccess res) test_IdList :: TestTree test_IdList = @@ -160,7 +174,8 @@ test_IdList = . apply () (tyInst () (builtin () $ Right IdList) integer) $ mkIterAppNoAnn (mapFun Left Scott.enumFromTo) [one, ten] tyAct @?= tyExp - typecheckEvaluateCekNoEmit def defaultBuiltinCostModelExt term @?= Right (EvaluationSuccess res) + typecheckEvaluateCekNoEmit def defaultBuiltinCostModelExt term @?= + Right (EvaluationSuccess res) {- Note [Higher-rank built-in functions] We can't unlift a monomorphic function passed to a built-in function, let alone unlift a polymorphic @@ -196,7 +211,8 @@ test_IdRank2 = = apply () (mapFun Left Scott.sum) . tyInst () (apply () (tyInst () (builtin () $ Right IdRank2) Scott.listTy) Scott.nil) $ integer - typecheckEvaluateCekNoEmit def defaultBuiltinCostModelExt term @?= Right (EvaluationSuccess res) + typecheckEvaluateCekNoEmit def defaultBuiltinCostModelExt term @?= + Right (EvaluationSuccess res) -- | Test that a builtin can be applied to a non-constant term. test_ScottToMetaUnit :: TestTree @@ -206,10 +222,11 @@ test_ScottToMetaUnit = applyTerm = apply () (builtin () ScottToMetaUnit) -- @scottToMetaUnit Scott.unitval@ is well-typed and runs successfully. typecheckEvaluateCekNoEmit def () (applyTerm Scott.unitval) @?= Right res - let runtime = mkMachineParameters def $ CostModel defaultCekMachineCosts () + let runtime = mkMachineParameters def $ CostModel defaultCekMachineCostsForTesting () -- @scottToMetaUnit Scott.map@ is ill-typed, but still runs successfully, since the builtin -- doesn't look at the argument. - unsafeEvaluateCekNoEmit runtime (eraseTerm $ applyTerm Scott.map) @?= res + unsafeToEvaluationResult (evaluateCekNoEmit runtime (eraseTerm $ applyTerm Scott.map)) @?= + res -- | Test that an exception thrown in the builtin application code does not get caught in the CEK -- machine and blows in the caller face instead. Uses a one-argument built-in function. @@ -220,8 +237,10 @@ test_FailingSucc = apply () (builtin () $ Right FailingSucc) $ mkConstant @Integer @DefaultUni @DefaultFunExt () 0 typeErrOrEvalExcOrRes :: Either _ (Either BuiltinErrorCall _) <- - -- Here we rely on 'typecheckAnd' lazily running the action after type checking the term. - traverse (try . evaluate) $ typecheckEvaluateCek def defaultBuiltinCostModelExt term + -- Here we rely on 'typecheckAnd' lazily running the action after type checking the + -- term. + traverse (try . evaluate) $ + typecheckEvaluateCekNoEmit def defaultBuiltinCostModelExt term typeErrOrEvalExcOrRes @?= Right (Left BuiltinErrorCall) -- | Test that evaluating a PLC builtin application that is expensive enough to exceed the budget @@ -234,7 +253,8 @@ test_ExpensiveSucc = apply () (builtin () $ Right ExpensiveSucc) $ mkConstant @Integer @DefaultUni @DefaultFunExt () 0 typeErrOrEvalExcOrRes :: Either _ (Either BuiltinErrorCall _) <- - traverse (try . evaluate) $ typecheckEvaluateCekNoEmit def defaultBuiltinCostModelExt term + traverse (try . evaluate) $ + typecheckEvaluateCekNoEmit def defaultBuiltinCostModelExt term typeErrOrEvalExcOrRes @?= Right (Right EvaluationFailure) -- | Test that an exception thrown in the builtin application code does not get caught in the CEK @@ -248,8 +268,10 @@ test_FailingPlus = , mkConstant @Integer @DefaultUni () 1 ] typeErrOrEvalExcOrRes :: Either _ (Either BuiltinErrorCall _) <- - -- Here we rely on 'typecheckAnd' lazily running the action after type checking the term. - traverse (try . evaluate) $ typecheckEvaluateCek def defaultBuiltinCostModelExt term + -- Here we rely on 'typecheckAnd' lazily running the action after type checking the + -- term. + traverse (try . evaluate) $ + typecheckEvaluateCekNoEmit def defaultBuiltinCostModelExt term typeErrOrEvalExcOrRes @?= Right (Left BuiltinErrorCall) -- | Test that evaluating a PLC builtin application that is expensive enough to exceed the budget @@ -264,7 +286,8 @@ test_ExpensivePlus = , mkConstant @Integer @DefaultUni () 1 ] typeErrOrEvalExcOrRes :: Either _ (Either BuiltinErrorCall _) <- - traverse (try . evaluate) $ typecheckEvaluateCekNoEmit def defaultBuiltinCostModelExt term + traverse (try . evaluate) $ + typecheckEvaluateCekNoEmit def defaultBuiltinCostModelExt term typeErrOrEvalExcOrRes @?= Right (Right EvaluationFailure) -- | Test that @Null@, @Head@ and @Tail@ are enough to get pattern matching on built-in lists. @@ -279,7 +302,7 @@ test_BuiltinList = , mkConstant @Integer () 0 , mkConstant @[Integer] () xs ] - typecheckEvaluateCekNoEmit def defaultBuiltinCostModel term @?= Right (EvaluationSuccess res) + typecheckEvaluateCekNoEmit def defaultBuiltinCostModelForTesting term @?= Right (EvaluationSuccess res) -- | Test that right-folding a built-in list with built-in 'Cons' recreates that list. test_IdBuiltinList :: TestTree @@ -289,12 +312,14 @@ test_IdBuiltinList = xsTerm = mkConstant @[Integer] () [1..10] listOfInteger = mkTyBuiltin @_ @[Integer] () term - = mkIterAppNoAnn (mkIterInstNoAnn (mapFun Left Builtin.foldrList) [integer, listOfInteger]) + = mkIterAppNoAnn + (mkIterInstNoAnn (mapFun Left Builtin.foldrList) [integer, listOfInteger]) [ tyInst () (builtin () $ Left MkCons) integer , mkConstant @[Integer] () [] , xsTerm ] - typecheckEvaluateCekNoEmit def defaultBuiltinCostModelExt term @?= Right (EvaluationSuccess xsTerm) + typecheckEvaluateCekNoEmit def defaultBuiltinCostModelExt term @?= + Right (EvaluationSuccess xsTerm) test_BuiltinPair :: TestTree test_BuiltinPair = @@ -345,7 +370,8 @@ test_SwapEls = , mkConstant @Integer () 0 , mkConstant () xs ] - typecheckEvaluateCekNoEmit def defaultBuiltinCostModel term @?= Right (EvaluationSuccess res) + typecheckEvaluateCekNoEmit def defaultBuiltinCostModelForTesting term @?= + Right (EvaluationSuccess res) -- | Test that right-folding a built-in 'Data' with the constructors of 'Data' recreates the -- original value. @@ -363,7 +389,8 @@ test_IdBuiltinData = , emb BData , dTerm ] - typecheckEvaluateCekNoEmit def defaultBuiltinCostModelExt term @?= Right (EvaluationSuccess dTerm) + typecheckEvaluateCekNoEmit def defaultBuiltinCostModelExt term @?= + Right (EvaluationSuccess dTerm) -- | For testing how an evaluator instantiated at a particular 'ExBudgetMode' handles the -- 'TrackCosts' builtin. @@ -427,8 +454,8 @@ test_SerialiseDataImpossible = dataLoop = Apply () (Builtin () SerialiseData) $ mkConstant () loop where loop = List [loop] budgetMode = restricting . ExRestrictingBudget $ ExBudget 10000000000 10000000 - evalRestricting params = fst . unsafeRunCekNoEmit params budgetMode - typecheckAnd def evalRestricting defaultBuiltinCostModel dataLoop @?= + evalRestricting params = unsafeToEvaluationResult . fst . runCekNoEmit params budgetMode + typecheckAnd def evalRestricting defaultBuiltinCostModelForTesting dataLoop @?= Right EvaluationFailure -- | Test all integer related builtins @@ -513,9 +540,9 @@ test_List = testCase "List" $ do evalsL @[Integer] [1] MkCons integer [cons @Integer 1, cons @[Integer] []] evalsL @[Integer] [1,2] MkCons integer [cons @Integer 1, cons @[Integer] [2]] - Right (EvaluationSuccess true) @=? typecheckEvaluateCekNoEmit def defaultBuiltinCostModel (nullViaChooseList []) - Right (EvaluationSuccess false) @=? typecheckEvaluateCekNoEmit def defaultBuiltinCostModel (nullViaChooseList [1]) - Right (EvaluationSuccess false) @=? typecheckEvaluateCekNoEmit def defaultBuiltinCostModel (nullViaChooseList [1..10]) + Right (EvaluationSuccess true) @=? typecheckEvaluateCekNoEmit def defaultBuiltinCostModelForTesting (nullViaChooseList []) + Right (EvaluationSuccess false) @=? typecheckEvaluateCekNoEmit def defaultBuiltinCostModelForTesting (nullViaChooseList [1]) + Right (EvaluationSuccess false) @=? typecheckEvaluateCekNoEmit def defaultBuiltinCostModelForTesting (nullViaChooseList [1..10]) where evalsL :: DefaultUni `HasTermLevel` a => a -> DefaultFun -> Type TyName DefaultUni () -> [Term TyName Name DefaultUni DefaultFun ()] -> Assertion @@ -523,14 +550,14 @@ test_List = testCase "List" $ do let actualExp = mkIterAppNoAnn (tyInst () (builtin () b) tyArg) args in Right (EvaluationSuccess $ cons expectedVal) @=? - typecheckEvaluateCekNoEmit def defaultBuiltinCostModel actualExp + typecheckEvaluateCekNoEmit def defaultBuiltinCostModelForTesting actualExp failsL :: DefaultFun -> Type TyName DefaultUni () -> [Term TyName Name DefaultUni DefaultFun ()] -> Assertion failsL b tyArg args = let actualExp = mkIterAppNoAnn (tyInst () (builtin () b) tyArg) args in Right EvaluationFailure @=? - typecheckEvaluateCekNoEmit def defaultBuiltinCostModel actualExp + typecheckEvaluateCekNoEmit def defaultBuiltinCostModelForTesting actualExp -- the null function that utilizes the ChooseList builtin (through the caseList helper function) nullViaChooseList :: [Integer] -> Term TyName Name DefaultUni DefaultFun () @@ -611,7 +638,7 @@ test_Data = testCase "Data" $ do pure $ lamAbs () a1 (mkTyBuiltin @_ @ByteString ()) false ] - Right (EvaluationSuccess true) @=? typecheckEvaluateCekNoEmit def defaultBuiltinCostModel actualExp + Right (EvaluationSuccess true) @=? typecheckEvaluateCekNoEmit def defaultBuiltinCostModelForTesting actualExp -- | Test all cryptography-related builtins test_Crypto :: TestTree @@ -727,7 +754,7 @@ test_HashSize hashFun expectedNumBits = , mkIterAppNoAnn (builtin () LengthOfByteString) [mkIterAppNoAnn (builtin () hashFun) [cons @ByteString bs]] ] - typecheckEvaluateCekNoEmit def defaultBuiltinCostModel term === Right (EvaluationSuccess (cons @Integer expectedNumBits)) + typecheckEvaluateCekNoEmit def defaultBuiltinCostModelForTesting term === Right (EvaluationSuccess (cons @Integer expectedNumBits)) -- | Check that all hash functions return hashes with the correct number of bits test_HashSizes :: TestTree @@ -744,13 +771,13 @@ test_HashSizes = test_Other :: TestTree test_Other = testCase "Other" $ do let expr1 = mkIterAppNoAnn (tyInst () (builtin () ChooseUnit) bool) [unitval, true] - Right (EvaluationSuccess true) @=? typecheckEvaluateCekNoEmit def defaultBuiltinCostModel expr1 + Right (EvaluationSuccess true) @=? typecheckEvaluateCekNoEmit def defaultBuiltinCostModelForTesting expr1 let expr2 = mkIterAppNoAnn (tyInst () (builtin () IfThenElse) integer) [true, cons @Integer 1, cons @Integer 0] - Right (EvaluationSuccess $ cons @Integer 1) @=? typecheckEvaluateCekNoEmit def defaultBuiltinCostModel expr2 + Right (EvaluationSuccess $ cons @Integer 1) @=? typecheckEvaluateCekNoEmit def defaultBuiltinCostModelForTesting expr2 let expr3 = mkIterAppNoAnn (tyInst () (builtin () Trace) integer) [cons @Text "hello world", cons @Integer 1] - Right (EvaluationSuccess $ cons @Integer 1) @=? typecheckEvaluateCekNoEmit def defaultBuiltinCostModel expr3 + Right (EvaluationSuccess $ cons @Integer 1) @=? typecheckEvaluateCekNoEmit def defaultBuiltinCostModelForTesting expr3 -- | Check that 'ExtensionVersion' evaluates correctly. -- See Note [Builtin semantics variants] @@ -759,7 +786,7 @@ test_Version = testCase "Version" $ do let expr1 = apply () (builtin () $ Right ExtensionVersion) unitval Right (EvaluationSuccess $ cons @Integer 0) @=? - typecheckEvaluateCekNoEmit (PairV @DefaultFun def ExtensionFunSemanticsVariant0) defaultBuiltinCostModelExt expr1 + typecheckEvaluateCekNoEmit (PairV @DefaultFun def ExtensionFunSemanticsVariantX) defaultBuiltinCostModelExt expr1 Right (EvaluationSuccess $ cons @Integer 1) @=? typecheckEvaluateCekNoEmit (PairV @DefaultFun def def) defaultBuiltinCostModelExt expr1 @@ -774,11 +801,11 @@ test_ConsByteString = expr1 = mkIterAppNoAnn (builtin () (Left ConsByteString :: DefaultFunExt)) [cons @Integer asciiBangWrapped, cons @ByteString "hello world"] Right (EvaluationSuccess $ cons @ByteString "!hello world") @=? - typecheckEvaluateCekNoEmit (PairV DefaultFunSemanticsVariant0 def) defaultBuiltinCostModelExt expr1 + typecheckEvaluateCekNoEmit (PairV DefaultFunSemanticsVariantA def) defaultBuiltinCostModelExt expr1 Right (EvaluationSuccess $ cons @ByteString "!hello world") @=? - typecheckEvaluateCekNoEmit (PairV DefaultFunSemanticsVariant1 def) defaultBuiltinCostModelExt expr1 + typecheckEvaluateCekNoEmit (PairV DefaultFunSemanticsVariantB def) defaultBuiltinCostModelExt expr1 Right EvaluationFailure @=? typecheckEvaluateCekNoEmit - (PairV DefaultFunSemanticsVariant2 def) defaultBuiltinCostModelExt expr1 + (PairV DefaultFunSemanticsVariantC def) defaultBuiltinCostModelExt expr1 Right EvaluationFailure @=? typecheckEvaluateCekNoEmit def defaultBuiltinCostModelExt expr1 @@ -792,7 +819,7 @@ evals expectedVal b args = let actualExp = mkIterAppNoAnn (builtin () b) args in Right (EvaluationSuccess $ cons expectedVal) @=? - typecheckEvaluateCekNoEmit def defaultBuiltinCostModel actualExp + typecheckEvaluateCekNoEmit def defaultBuiltinCostModelForTesting actualExp -- shorthand fails :: DefaultFun -> [Term TyName Name DefaultUni DefaultFun ()] -> Assertion @@ -800,30 +827,30 @@ fails b args = let actualExp = mkIterAppNoAnn (builtin () b) args in Right EvaluationFailure @=? - typecheckEvaluateCekNoEmit def defaultBuiltinCostModel actualExp + typecheckEvaluateCekNoEmit def defaultBuiltinCostModelForTesting actualExp -- Test that the SECP256k1 builtins are behaving correctly test_SignatureVerification :: TestTree test_SignatureVerification = adjustOption (\x -> max x . HedgehogTestLimit . Just $ 8000) . testGroup "Signature verification" $ [ - testGroup "Ed25519 signatures (Variant0)" + testGroup "Ed25519 signatures (VariantA)" [ testPropertyNamed - "Ed25519_Variant0 verification behaves correctly on all inputs" - "ed25519_Variant0_correct" - . property $ ed25519_Variant0Prop + "Ed25519_VariantA verification behaves correctly on all inputs" + "ed25519_VariantA_correct" + . property $ ed25519_VariantAProp ], - testGroup "Ed25519 signatures (Variant1)" + testGroup "Ed25519 signatures (VariantB)" [ testPropertyNamed - "Ed25519_Variant1 verification behaves correctly on all inputs" - "ed25519_Variant1_correct" - . property $ ed25519_Variant1Prop + "Ed25519_VariantB verification behaves correctly on all inputs" + "ed25519_VariantB_correct" + . property $ ed25519_VariantBProp ], - testGroup "Ed25519 signatures (Variant2)" + testGroup "Ed25519 signatures (VariantC)" [ testPropertyNamed - "Ed25519_Variant2 verification behaves correctly on all inputs" - "ed25519_Variant2_correct" - . property $ ed25519_Variant2Prop + "Ed25519_VariantC verification behaves correctly on all inputs" + "ed25519_VariantC_correct" + . property $ ed25519_VariantCProp ], testGroup "Signatures on the SECP256k1 curve" [ testPropertyNamed diff --git a/plutus-core/untyped-plutus-core/test/Evaluation/Builtins/MakeRead.hs b/plutus-core/untyped-plutus-core/test/Evaluation/Builtins/MakeRead.hs index 2cd4672bab0..40a71e217d7 100644 --- a/plutus-core/untyped-plutus-core/test/Evaluation/Builtins/MakeRead.hs +++ b/plutus-core/untyped-plutus-core/test/Evaluation/Builtins/MakeRead.hs @@ -38,7 +38,8 @@ readMakeHetero => a -> EvaluationResult b readMakeHetero x = do xTerm <- makeKnownOrFail @_ @(TPLC.Term TyName Name DefaultUni DefaultFun ()) x - case extractEvaluationResult <$> typecheckReadKnownCek def TPLC.defaultBuiltinCostModel xTerm of + case extractEvaluationResult <$> typecheckReadKnownCek def + TPLC.defaultBuiltinCostModelForTesting xTerm of Left err -> error $ "Type error" ++ displayPlcCondensedErrorClassic err Right (Left err) -> error $ "Evaluation error: " ++ show err Right (Right res) -> res @@ -86,7 +87,8 @@ test_collectText = testPropertyNamed "collectText" "collectText" . property $ do , rest ] term = foldr step unitval (reverse strs) - strs' <- case typecheckEvaluateCek def TPLC.defaultBuiltinCostModel term of + -- FIXME: semantic variant? + strs' <- case typecheckEvaluateCek def TPLC.defaultBuiltinCostModelForTesting term of Left _ -> failure Right (EvaluationFailure, _) -> failure Right (EvaluationSuccess _, strs') -> return strs' diff --git a/plutus-core/untyped-plutus-core/test/Evaluation/Builtins/SignatureVerification.hs b/plutus-core/untyped-plutus-core/test/Evaluation/Builtins/SignatureVerification.hs index 3bd113cb378..8e5b00a94e8 100644 --- a/plutus-core/untyped-plutus-core/test/Evaluation/Builtins/SignatureVerification.hs +++ b/plutus-core/untyped-plutus-core/test/Evaluation/Builtins/SignatureVerification.hs @@ -10,9 +10,9 @@ module Evaluation.Builtins.SignatureVerification ( ecdsaSecp256k1Prop, - ed25519_Variant0Prop, - ed25519_Variant1Prop, - ed25519_Variant2Prop, + ed25519_VariantAProp, + ed25519_VariantBProp, + ed25519_VariantCProp, schnorrSecp256k1Prop, ) where @@ -76,14 +76,14 @@ ed25519Prop semvar = do cover 18 "happy path" . is (_Shouldn'tError . _AllGood) $ testCase runTestDataWith semvar testCase id VerifyEd25519Signature -ed25519_Variant0Prop :: PropertyT IO () -ed25519_Variant0Prop = ed25519Prop DefaultFunSemanticsVariant0 +ed25519_VariantAProp :: PropertyT IO () +ed25519_VariantAProp = ed25519Prop DefaultFunSemanticsVariantA -ed25519_Variant1Prop :: PropertyT IO () -ed25519_Variant1Prop = ed25519Prop DefaultFunSemanticsVariant1 +ed25519_VariantBProp :: PropertyT IO () +ed25519_VariantBProp = ed25519Prop DefaultFunSemanticsVariantB -ed25519_Variant2Prop :: PropertyT IO () -ed25519_Variant2Prop = ed25519Prop DefaultFunSemanticsVariant2 +ed25519_VariantCProp :: PropertyT IO () +ed25519_VariantCProp = ed25519Prop DefaultFunSemanticsVariantC -- Helpers @@ -101,7 +101,7 @@ runTestDataWith semvar testData f op = do mkConstant @ByteString () msg, mkConstant @ByteString () sig ] - let result = typecheckEvaluateCek semvar defaultBuiltinCostModel actualExp + let result = typecheckEvaluateCek semvar defaultBuiltinCostModelForTesting actualExp -- FIXME: semantic variant? case result of Left x -> annotateShow x >> failure Right (res, logs) -> do diff --git a/plutus-core/untyped-plutus-core/test/Evaluation/Debug.hs b/plutus-core/untyped-plutus-core/test/Evaluation/Debug.hs index f912f254cf3..9d17a2ed160 100644 --- a/plutus-core/untyped-plutus-core/test/Evaluation/Debug.hs +++ b/plutus-core/untyped-plutus-core/test/Evaluation/Debug.hs @@ -59,7 +59,8 @@ mock :: [Cmd Breakpoints] -- ^ commands to feed -> NTerm DefaultUni DefaultFun EmptyAnn -- ^ term to debug -> [String] -- ^ mocking output mock cmds t = runST $ unCekM $ do - (cekTrans,_) <- mkCekTrans defaultCekParameters restrictingEnormous noEmitter defaultSlippage + (cekTrans,_) <- mkCekTrans defaultCekParametersForTesting + restrictingEnormous noEmitter defaultSlippage execWriterT $ flip runReaderT cmds $ -- MAYBE: use cutoff or partialIterT to prevent runaway iterM (handle cekTrans) $ runDriverT t diff --git a/plutus-core/untyped-plutus-core/test/Evaluation/Debug/ex3.golden b/plutus-core/untyped-plutus-core/test/Evaluation/Debug/ex3.golden index bd65974e19d..569eea1d5ad 100644 --- a/plutus-core/untyped-plutus-core/test/Evaluation/Debug/ex3.golden +++ b/plutus-core/untyped-plutus-core/test/Evaluation/Debug/ex3.golden @@ -7,5 +7,5 @@ OldState: Computing NewState: Returning Driver is going to do a single step OldState: Returning NewState: Computing Driver is going to do a single step -OldState: Computing NewState is Error: An error has occurred: User error: +OldState: Computing NewState is Error: An error has occurred: The machine terminated because of an error, either from a built-in function or from an explicit use of 'error'. diff --git a/plutus-core/untyped-plutus-core/test/Evaluation/Debug/ex4.golden b/plutus-core/untyped-plutus-core/test/Evaluation/Debug/ex4.golden index 79a5ab7f1cf..a3e13d2a057 100644 --- a/plutus-core/untyped-plutus-core/test/Evaluation/Debug/ex4.golden +++ b/plutus-core/untyped-plutus-core/test/Evaluation/Debug/ex4.golden @@ -1,5 +1,5 @@ Driver is going to do a single step OldState: Starting NewState: Computing Driver is going to do a single step -OldState: Computing NewState is Error: An error has occurred: User error: +OldState: Computing NewState is Error: An error has occurred: The machine terminated because of an error, either from a built-in function or from an explicit use of 'error'. diff --git a/plutus-core/untyped-plutus-core/test/Evaluation/FreeVars.hs b/plutus-core/untyped-plutus-core/test/Evaluation/FreeVars.hs index 3bf3f2143d2..b38ecd8561b 100644 --- a/plutus-core/untyped-plutus-core/test/Evaluation/FreeVars.hs +++ b/plutus-core/untyped-plutus-core/test/Evaluation/FreeVars.hs @@ -40,7 +40,7 @@ testCekInternalFree = testGroup "cekInternal" $ fmap (uncurry testCase) ] where evalV = toFakeTerm - >>> runCekDeBruijn PLC.defaultCekParameters counting noEmitter + >>> runCekDeBruijn PLC.defaultCekParametersForTesting counting noEmitter >>> (\(res,_,_) -> res) eval = evalV diff --git a/plutus-core/untyped-plutus-core/test/Evaluation/Golden.hs b/plutus-core/untyped-plutus-core/test/Evaluation/Golden.hs index 46ff666fd25..7cbe242f97f 100644 --- a/plutus-core/untyped-plutus-core/test/Evaluation/Golden.hs +++ b/plutus-core/untyped-plutus-core/test/Evaluation/Golden.hs @@ -401,12 +401,12 @@ goldenVsEvaluatedCK :: String -> Term TyName Name DefaultUni DefaultFun () -> Te goldenVsEvaluatedCK name = goldenVsPretty ".plc.golden" name . bimap (fmap eraseTerm) eraseTerm - . evaluateCkNoEmit defaultBuiltinsRuntime + . evaluateCkNoEmit defaultBuiltinsRuntimeForTesting goldenVsEvaluatedCEK :: String -> Term TyName Name DefaultUni DefaultFun () -> TestTree goldenVsEvaluatedCEK name = goldenVsPretty ".uplc.golden" name - . evaluateCekNoEmit defaultCekParameters + . evaluateCekNoEmit defaultCekParametersForTesting . eraseTerm runTypecheck @@ -426,7 +426,7 @@ goldenVsTypecheckedEvaluatedCK name term = -- that the term is well-typed before checking that the type of the result is the -- one stored in the golden file (we could simply check the two types for equality, -- but since we're doing golden testing in this file, why not do it here as well). - case (runTypecheck term, evaluateCkNoEmit defaultBuiltinsRuntime term) of + case (runTypecheck term, evaluateCkNoEmit defaultBuiltinsRuntimeForTesting term) of (Right _, Right res) -> goldenVsTypechecked name res _ -> testGroup name [] diff --git a/plutus-core/untyped-plutus-core/test/Evaluation/Golden/caseNoBranch.plc.golden b/plutus-core/untyped-plutus-core/test/Evaluation/Golden/caseNoBranch.plc.golden index 1436661e809..e229d959ca8 100644 --- a/plutus-core/untyped-plutus-core/test/Evaluation/Golden/caseNoBranch.plc.golden +++ b/plutus-core/untyped-plutus-core/test/Evaluation/Golden/caseNoBranch.plc.golden @@ -1,3 +1,3 @@ -(Left An error has occurred: error: +(Left An error has occurred: Case expression missing the branch required by the scrutinee tag: 0 Caused by: (constr 0 (con integer 1))) \ No newline at end of file diff --git a/plutus-core/untyped-plutus-core/test/Evaluation/Golden/caseNoBranch.uplc.golden b/plutus-core/untyped-plutus-core/test/Evaluation/Golden/caseNoBranch.uplc.golden index 1436661e809..e229d959ca8 100644 --- a/plutus-core/untyped-plutus-core/test/Evaluation/Golden/caseNoBranch.uplc.golden +++ b/plutus-core/untyped-plutus-core/test/Evaluation/Golden/caseNoBranch.uplc.golden @@ -1,3 +1,3 @@ -(Left An error has occurred: error: +(Left An error has occurred: Case expression missing the branch required by the scrutinee tag: 0 Caused by: (constr 0 (con integer 1))) \ No newline at end of file diff --git a/plutus-core/untyped-plutus-core/test/Evaluation/Golden/caseNonTag.plc.golden b/plutus-core/untyped-plutus-core/test/Evaluation/Golden/caseNonTag.plc.golden index f48798f54d0..1bd7d1fbdda 100644 --- a/plutus-core/untyped-plutus-core/test/Evaluation/Golden/caseNonTag.plc.golden +++ b/plutus-core/untyped-plutus-core/test/Evaluation/Golden/caseNonTag.plc.golden @@ -1,3 +1,3 @@ -(Left An error has occurred: error: +(Left An error has occurred: A non-constructor value was scrutinized in a case expression Caused by: (con integer 1)) \ No newline at end of file diff --git a/plutus-core/untyped-plutus-core/test/Evaluation/Golden/caseNonTag.uplc.golden b/plutus-core/untyped-plutus-core/test/Evaluation/Golden/caseNonTag.uplc.golden index f48798f54d0..1bd7d1fbdda 100644 --- a/plutus-core/untyped-plutus-core/test/Evaluation/Golden/caseNonTag.uplc.golden +++ b/plutus-core/untyped-plutus-core/test/Evaluation/Golden/caseNonTag.uplc.golden @@ -1,3 +1,3 @@ -(Left An error has occurred: error: +(Left An error has occurred: A non-constructor value was scrutinized in a case expression Caused by: (con integer 1)) \ No newline at end of file diff --git a/plutus-core/untyped-plutus-core/test/Evaluation/Golden/diFullyApplied.plc.golden b/plutus-core/untyped-plutus-core/test/Evaluation/Golden/diFullyApplied.plc.golden index f177b6623f1..7f60668f62e 100644 --- a/plutus-core/untyped-plutus-core/test/Evaluation/Golden/diFullyApplied.plc.golden +++ b/plutus-core/untyped-plutus-core/test/Evaluation/Golden/diFullyApplied.plc.golden @@ -1,3 +1,3 @@ -(Left An error has occurred: User error: +(Left An error has occurred: The provided Plutus code called 'error'. Caused by: [ [ (builtin divideInteger) (con integer 1) ] (con integer 0) ]) \ No newline at end of file diff --git a/plutus-core/untyped-plutus-core/test/Evaluation/Golden/diFullyApplied.uplc.golden b/plutus-core/untyped-plutus-core/test/Evaluation/Golden/diFullyApplied.uplc.golden index 6ef7aa04f30..6388d69ceea 100644 --- a/plutus-core/untyped-plutus-core/test/Evaluation/Golden/diFullyApplied.uplc.golden +++ b/plutus-core/untyped-plutus-core/test/Evaluation/Golden/diFullyApplied.uplc.golden @@ -1,3 +1,3 @@ -(Left An error has occurred: User error: +(Left An error has occurred: The machine terminated because of an error, either from a built-in function or from an explicit use of 'error'. Caused by: [ [ (builtin divideInteger) (con integer 1) ] (con integer 0) ]) \ No newline at end of file diff --git a/plutus-core/untyped-plutus-core/test/Evaluation/Golden/iteAtIntegerAtInteger.plc.golden b/plutus-core/untyped-plutus-core/test/Evaluation/Golden/iteAtIntegerAtInteger.plc.golden index d3afe69b18d..8c9074010e3 100644 --- a/plutus-core/untyped-plutus-core/test/Evaluation/Golden/iteAtIntegerAtInteger.plc.golden +++ b/plutus-core/untyped-plutus-core/test/Evaluation/Golden/iteAtIntegerAtInteger.plc.golden @@ -1,3 +1,3 @@ -(Left An error has occurred: error: +(Left An error has occurred: A builtin expected a term argument, but something else was received Caused by: (force (force (builtin ifThenElse)))) \ No newline at end of file diff --git a/plutus-core/untyped-plutus-core/test/Evaluation/Golden/iteAtIntegerAtInteger.uplc.golden b/plutus-core/untyped-plutus-core/test/Evaluation/Golden/iteAtIntegerAtInteger.uplc.golden index d3afe69b18d..8c9074010e3 100644 --- a/plutus-core/untyped-plutus-core/test/Evaluation/Golden/iteAtIntegerAtInteger.uplc.golden +++ b/plutus-core/untyped-plutus-core/test/Evaluation/Golden/iteAtIntegerAtInteger.uplc.golden @@ -1,3 +1,3 @@ -(Left An error has occurred: error: +(Left An error has occurred: A builtin expected a term argument, but something else was received Caused by: (force (force (builtin ifThenElse)))) \ No newline at end of file diff --git a/plutus-core/untyped-plutus-core/test/Evaluation/Golden/iteAtIntegerWrongCondTypeSat.plc.golden b/plutus-core/untyped-plutus-core/test/Evaluation/Golden/iteAtIntegerWrongCondTypeSat.plc.golden index 0baa2734b4e..9cb5f80b598 100644 --- a/plutus-core/untyped-plutus-core/test/Evaluation/Golden/iteAtIntegerWrongCondTypeSat.plc.golden +++ b/plutus-core/untyped-plutus-core/test/Evaluation/Golden/iteAtIntegerWrongCondTypeSat.plc.golden @@ -1,4 +1,4 @@ -(Left An error has occurred: error: +(Left An error has occurred: Could not unlift a value: Type mismatch: expected: bool; actual: string Caused by: [ diff --git a/plutus-core/untyped-plutus-core/test/Evaluation/Golden/iteAtIntegerWrongCondTypeSat.uplc.golden b/plutus-core/untyped-plutus-core/test/Evaluation/Golden/iteAtIntegerWrongCondTypeSat.uplc.golden index 0baa2734b4e..9cb5f80b598 100644 --- a/plutus-core/untyped-plutus-core/test/Evaluation/Golden/iteAtIntegerWrongCondTypeSat.uplc.golden +++ b/plutus-core/untyped-plutus-core/test/Evaluation/Golden/iteAtIntegerWrongCondTypeSat.uplc.golden @@ -1,4 +1,4 @@ -(Left An error has occurred: error: +(Left An error has occurred: Could not unlift a value: Type mismatch: expected: bool; actual: string Caused by: [ diff --git a/plutus-core/untyped-plutus-core/test/Evaluation/Golden/iteTypeTermType.plc.golden b/plutus-core/untyped-plutus-core/test/Evaluation/Golden/iteTypeTermType.plc.golden index 1aeab826898..5db27720294 100644 --- a/plutus-core/untyped-plutus-core/test/Evaluation/Golden/iteTypeTermType.plc.golden +++ b/plutus-core/untyped-plutus-core/test/Evaluation/Golden/iteTypeTermType.plc.golden @@ -1,3 +1,3 @@ -(Left An error has occurred: error: +(Left An error has occurred: A builtin expected a term argument, but something else was received Caused by: (force [ (force (builtin ifThenElse)) (con bool True) ])) \ No newline at end of file diff --git a/plutus-core/untyped-plutus-core/test/Evaluation/Golden/iteTypeTermType.uplc.golden b/plutus-core/untyped-plutus-core/test/Evaluation/Golden/iteTypeTermType.uplc.golden index 1aeab826898..5db27720294 100644 --- a/plutus-core/untyped-plutus-core/test/Evaluation/Golden/iteTypeTermType.uplc.golden +++ b/plutus-core/untyped-plutus-core/test/Evaluation/Golden/iteTypeTermType.uplc.golden @@ -1,3 +1,3 @@ -(Left An error has occurred: error: +(Left An error has occurred: A builtin expected a term argument, but something else was received Caused by: (force [ (force (builtin ifThenElse)) (con bool True) ])) \ No newline at end of file diff --git a/plutus-core/untyped-plutus-core/test/Evaluation/Golden/iteUninstantiatedFullyApplied.plc.golden b/plutus-core/untyped-plutus-core/test/Evaluation/Golden/iteUninstantiatedFullyApplied.plc.golden index 8672ef77c8e..984aefc089d 100644 --- a/plutus-core/untyped-plutus-core/test/Evaluation/Golden/iteUninstantiatedFullyApplied.plc.golden +++ b/plutus-core/untyped-plutus-core/test/Evaluation/Golden/iteUninstantiatedFullyApplied.plc.golden @@ -1,3 +1,3 @@ -(Left An error has occurred: error: +(Left An error has occurred: A builtin received a term argument when something else was expected Caused by: [ (builtin ifThenElse) (con bool True) ]) \ No newline at end of file diff --git a/plutus-core/untyped-plutus-core/test/Evaluation/Golden/iteUninstantiatedFullyApplied.uplc.golden b/plutus-core/untyped-plutus-core/test/Evaluation/Golden/iteUninstantiatedFullyApplied.uplc.golden index 8672ef77c8e..984aefc089d 100644 --- a/plutus-core/untyped-plutus-core/test/Evaluation/Golden/iteUninstantiatedFullyApplied.uplc.golden +++ b/plutus-core/untyped-plutus-core/test/Evaluation/Golden/iteUninstantiatedFullyApplied.uplc.golden @@ -1,3 +1,3 @@ -(Left An error has occurred: error: +(Left An error has occurred: A builtin received a term argument when something else was expected Caused by: [ (builtin ifThenElse) (con bool True) ]) \ No newline at end of file diff --git a/plutus-core/untyped-plutus-core/test/Evaluation/Golden/iteUninstantiatedWithCond.plc.golden b/plutus-core/untyped-plutus-core/test/Evaluation/Golden/iteUninstantiatedWithCond.plc.golden index 8672ef77c8e..984aefc089d 100644 --- a/plutus-core/untyped-plutus-core/test/Evaluation/Golden/iteUninstantiatedWithCond.plc.golden +++ b/plutus-core/untyped-plutus-core/test/Evaluation/Golden/iteUninstantiatedWithCond.plc.golden @@ -1,3 +1,3 @@ -(Left An error has occurred: error: +(Left An error has occurred: A builtin received a term argument when something else was expected Caused by: [ (builtin ifThenElse) (con bool True) ]) \ No newline at end of file diff --git a/plutus-core/untyped-plutus-core/test/Evaluation/Golden/iteUninstantiatedWithCond.uplc.golden b/plutus-core/untyped-plutus-core/test/Evaluation/Golden/iteUninstantiatedWithCond.uplc.golden index 8672ef77c8e..984aefc089d 100644 --- a/plutus-core/untyped-plutus-core/test/Evaluation/Golden/iteUninstantiatedWithCond.uplc.golden +++ b/plutus-core/untyped-plutus-core/test/Evaluation/Golden/iteUninstantiatedWithCond.uplc.golden @@ -1,3 +1,3 @@ -(Left An error has occurred: error: +(Left An error has occurred: A builtin received a term argument when something else was expected Caused by: [ (builtin ifThenElse) (con bool True) ]) \ No newline at end of file diff --git a/plutus-core/untyped-plutus-core/test/Evaluation/Golden/mulInstError1.plc.golden b/plutus-core/untyped-plutus-core/test/Evaluation/Golden/mulInstError1.plc.golden index cbb14ee9289..c9322a9f0b0 100644 --- a/plutus-core/untyped-plutus-core/test/Evaluation/Golden/mulInstError1.plc.golden +++ b/plutus-core/untyped-plutus-core/test/Evaluation/Golden/mulInstError1.plc.golden @@ -1,3 +1,3 @@ -(Left An error has occurred: error: +(Left An error has occurred: A builtin expected a term argument, but something else was received Caused by: (force (builtin multiplyInteger))) \ No newline at end of file diff --git a/plutus-core/untyped-plutus-core/test/Evaluation/Golden/mulInstError1.uplc.golden b/plutus-core/untyped-plutus-core/test/Evaluation/Golden/mulInstError1.uplc.golden index cbb14ee9289..c9322a9f0b0 100644 --- a/plutus-core/untyped-plutus-core/test/Evaluation/Golden/mulInstError1.uplc.golden +++ b/plutus-core/untyped-plutus-core/test/Evaluation/Golden/mulInstError1.uplc.golden @@ -1,3 +1,3 @@ -(Left An error has occurred: error: +(Left An error has occurred: A builtin expected a term argument, but something else was received Caused by: (force (builtin multiplyInteger))) \ No newline at end of file diff --git a/plutus-core/untyped-plutus-core/test/Evaluation/Golden/mulInstError2.plc.golden b/plutus-core/untyped-plutus-core/test/Evaluation/Golden/mulInstError2.plc.golden index 5591ce3bdb2..e68a5566eed 100644 --- a/plutus-core/untyped-plutus-core/test/Evaluation/Golden/mulInstError2.plc.golden +++ b/plutus-core/untyped-plutus-core/test/Evaluation/Golden/mulInstError2.plc.golden @@ -1,3 +1,3 @@ -(Left An error has occurred: error: +(Left An error has occurred: A builtin expected a term argument, but something else was received Caused by: (force [ (builtin multiplyInteger) (con integer 11) ])) \ No newline at end of file diff --git a/plutus-core/untyped-plutus-core/test/Evaluation/Golden/mulInstError2.uplc.golden b/plutus-core/untyped-plutus-core/test/Evaluation/Golden/mulInstError2.uplc.golden index 5591ce3bdb2..e68a5566eed 100644 --- a/plutus-core/untyped-plutus-core/test/Evaluation/Golden/mulInstError2.uplc.golden +++ b/plutus-core/untyped-plutus-core/test/Evaluation/Golden/mulInstError2.uplc.golden @@ -1,3 +1,3 @@ -(Left An error has occurred: error: +(Left An error has occurred: A builtin expected a term argument, but something else was received Caused by: (force [ (builtin multiplyInteger) (con integer 11) ])) \ No newline at end of file diff --git a/plutus-core/untyped-plutus-core/test/Evaluation/Golden/mulInstError3.plc.golden b/plutus-core/untyped-plutus-core/test/Evaluation/Golden/mulInstError3.plc.golden index 2f90b39bb7f..bec5ef97c9d 100644 --- a/plutus-core/untyped-plutus-core/test/Evaluation/Golden/mulInstError3.plc.golden +++ b/plutus-core/untyped-plutus-core/test/Evaluation/Golden/mulInstError3.plc.golden @@ -1,3 +1,3 @@ -(Left An error has occurred: error: +(Left An error has occurred: Attempted to instantiate a non-polymorphic term. Caused by: (con integer 242)) \ No newline at end of file diff --git a/plutus-core/untyped-plutus-core/test/Evaluation/Golden/mulInstError3.uplc.golden b/plutus-core/untyped-plutus-core/test/Evaluation/Golden/mulInstError3.uplc.golden index 2f90b39bb7f..bec5ef97c9d 100644 --- a/plutus-core/untyped-plutus-core/test/Evaluation/Golden/mulInstError3.uplc.golden +++ b/plutus-core/untyped-plutus-core/test/Evaluation/Golden/mulInstError3.uplc.golden @@ -1,3 +1,3 @@ -(Left An error has occurred: error: +(Left An error has occurred: Attempted to instantiate a non-polymorphic term. Caused by: (con integer 242)) \ No newline at end of file diff --git a/plutus-core/untyped-plutus-core/test/Evaluation/Golden/polyErrorInst.plc.golden b/plutus-core/untyped-plutus-core/test/Evaluation/Golden/polyErrorInst.plc.golden index d9c90ef72de..faaf84c1554 100644 --- a/plutus-core/untyped-plutus-core/test/Evaluation/Golden/polyErrorInst.plc.golden +++ b/plutus-core/untyped-plutus-core/test/Evaluation/Golden/polyErrorInst.plc.golden @@ -1,2 +1,2 @@ -(Left An error has occurred: User error: +(Left An error has occurred: The provided Plutus code called 'error'.) \ No newline at end of file diff --git a/plutus-core/untyped-plutus-core/test/Evaluation/Golden/polyErrorInst.uplc.golden b/plutus-core/untyped-plutus-core/test/Evaluation/Golden/polyErrorInst.uplc.golden index fccaddb46c4..cc268b310d6 100644 --- a/plutus-core/untyped-plutus-core/test/Evaluation/Golden/polyErrorInst.uplc.golden +++ b/plutus-core/untyped-plutus-core/test/Evaluation/Golden/polyErrorInst.uplc.golden @@ -1,2 +1,2 @@ -(Left An error has occurred: User error: +(Left An error has occurred: The machine terminated because of an error, either from a built-in function or from an explicit use of 'error'.) \ No newline at end of file diff --git a/plutus-core/untyped-plutus-core/test/Evaluation/Machines.hs b/plutus-core/untyped-plutus-core/test/Evaluation/Machines.hs index f2d25e512bc..6174ac0326a 100644 --- a/plutus-core/untyped-plutus-core/test/Evaluation/Machines.hs +++ b/plutus-core/untyped-plutus-core/test/Evaluation/Machines.hs @@ -5,7 +5,6 @@ module Evaluation.Machines ( test_machines - --, test_memory , test_budget , test_tallying ) where @@ -41,16 +40,20 @@ import Test.Tasty.Golden import Test.Tasty.Hedgehog testMachine - :: (uni ~ DefaultUni, fun ~ DefaultFun, PrettyPlc internal) + :: (uni ~ DefaultUni, fun ~ DefaultFun, PrettyPlc structural) => String -> (Term Name uni fun () -> - Either (EvaluationException user internal (Term Name uni fun ())) (Term Name uni fun ())) + Either + (EvaluationException operational structural (Term Name uni fun ())) + (Term Name uni fun ())) -> TestTree testMachine machine eval = testGroup machine $ fromInterestingTermGens $ \name genTermOfTbv -> testPropertyNamed name (fromString name) . withTests 200 . property $ do TermOf term val <- forAllWith mempty genTermOfTbv - let resExp = eraseTerm <$> makeKnownOrFail @_ @(Plc.Term TyName Name DefaultUni DefaultFun ()) val + let resExp = + eraseTerm <$> + makeKnownOrFail @_ @(Plc.Term TyName Name DefaultUni DefaultFun ()) val case extractEvaluationResult . eval $ eraseTerm term of Left err -> fail $ show err Right resAct -> resAct === resExp @@ -58,8 +61,8 @@ testMachine machine eval = test_machines :: TestTree test_machines = testGroup "machines" - [ testMachine "CEK" $ Cek.evaluateCekNoEmit Plc.defaultCekParameters - , testMachine "SteppableCEK" $ SCek.evaluateCekNoEmit Plc.defaultCekParameters + [ testMachine "CEK" $ Cek.evaluateCekNoEmit Plc.defaultCekParametersForTesting + , testMachine "SteppableCEK" $ SCek.evaluateCekNoEmit Plc.defaultCekParametersForTesting ] testBudget @@ -73,7 +76,7 @@ testBudget runtime name term = name ".uplc" (render $ - prettyPlcReadableDef $ runCekNoEmit (MachineParameters Plc.defaultCekMachineCosts runtime) Cek.tallying term) + prettyPlcReadableDef $ runCekNoEmit (MachineParameters Plc.defaultCekMachineCostsForTesting runtime) Cek.tallying term) bunchOfFibs :: PlcFolderContents DefaultUni DefaultFun bunchOfFibs = FolderContents [treeFolderContents "Fib" $ map fibFile [1..3]] where @@ -119,19 +122,15 @@ test_budget :: TestTree test_budget -- Error diffs are very big = localOption (SizeCutoff 1000000) - . runTestNestedIn ["untyped-plutus-core", "test", "Evaluation", "Machines"] - . testNested "Budget" + . runTestNested ["untyped-plutus-core", "test", "Evaluation", "Machines", "Budget"] $ concat - [ folder Plc.defaultBuiltinsRuntime bunchOfFibs + [ folder Plc.defaultBuiltinsRuntimeForTesting bunchOfFibs , folder (toBuiltinsRuntime def ()) bunchOfIdNats - , folder Plc.defaultBuiltinsRuntime bunchOfIfThenElseNats + , folder Plc.defaultBuiltinsRuntimeForTesting bunchOfIfThenElseNats ] where folder runtime = - foldPlcFolderContents - testNested - (\name _ -> pure $ testGroup name []) - (\name -> testBudget runtime name . eraseTerm) + foldPlcFolderContents testNested mempty (\name -> testBudget runtime name . eraseTerm) testTallying :: TestName -> Term Name DefaultUni DefaultFun () -> TestNested testTallying name term = @@ -139,15 +138,12 @@ testTallying name term = name ".uplc" (render $ - prettyPlcReadableDef $ runCekNoEmit Plc.defaultCekParameters Cek.tallying term) + prettyPlcReadableDef $ runCekNoEmit Plc.defaultCekParametersForTesting Cek.tallying term) test_tallying :: TestTree test_tallying = -- Error diffs are very big localOption (SizeCutoff 1000000) - . runTestNestedIn ["untyped-plutus-core", "test", "Evaluation", "Machines"] - . testNested "Tallying" - . foldPlcFolderContents testNested - (\name _ -> pure $ testGroup name []) - (\name -> testTallying name . eraseTerm) + . runTestNested ["untyped-plutus-core", "test", "Evaluation", "Machines", "Tallying"] + . foldPlcFolderContents testNested mempty (\name -> testTallying name . eraseTerm) $ bunchOfFibs diff --git a/plutus-core/untyped-plutus-core/test/Evaluation/Machines/Budget/Fib/1.uplc.golden b/plutus-core/untyped-plutus-core/test/Evaluation/Machines/Budget/Fib/1.uplc.golden index be0b625bd90..6b20e1d289e 100644 --- a/plutus-core/untyped-plutus-core/test/Evaluation/Machines/Budget/Fib/1.uplc.golden +++ b/plutus-core/untyped-plutus-core/test/Evaluation/Machines/Budget/Fib/1.uplc.golden @@ -1,16 +1,16 @@ ( (Right 1) -, ({ tally: ({BStep BConst causes ({cpu: 69000 | mem: 300}) -| BStep BVar causes ({cpu: 207000 | mem: 900}) -| BStep BLamAbs causes ({cpu: 276000 | mem: 1200}) -| BStep BApply causes ({cpu: 345000 | mem: 1500}) -| BStep BDelay causes ({cpu: 92000 | mem: 400}) -| BStep BForce causes ({cpu: 115000 | mem: 500}) -| BStep BBuiltin causes ({cpu: 46000 | mem: 200}) +, ({ tally: ({BStep BConst causes ({cpu: 48000 | mem: 300}) +| BStep BVar causes ({cpu: 144000 | mem: 900}) +| BStep BLamAbs causes ({cpu: 192000 | mem: 1200}) +| BStep BApply causes ({cpu: 240000 | mem: 1500}) +| BStep BDelay causes ({cpu: 64000 | mem: 400}) +| BStep BForce causes ({cpu: 80000 | mem: 500}) +| BStep BBuiltin causes ({cpu: 32000 | mem: 200}) | BStep BConstr causes ({cpu: 0 | mem: 0}) | BStep BCase causes ({cpu: 0 | mem: 0}) -| BBuiltinApp LessThanEqualsInteger causes ({cpu: 205397 | mem: 1}) -| BBuiltinApp IfThenElse causes ({cpu: 80556 | mem: 1}) +| BBuiltinApp LessThanEqualsInteger causes ({cpu: 43837 | mem: 1}) +| BBuiltinApp IfThenElse causes ({cpu: 76049 | mem: 1}) | BStartup causes ({cpu: 100 | mem: 100})}) -| budget: ({cpu: 1436053 +| budget: ({cpu: 919986 | mem: 5102}) }) ) \ No newline at end of file diff --git a/plutus-core/untyped-plutus-core/test/Evaluation/Machines/Budget/Fib/2.uplc.golden b/plutus-core/untyped-plutus-core/test/Evaluation/Machines/Budget/Fib/2.uplc.golden index 13bda37cf11..3db175b89de 100644 --- a/plutus-core/untyped-plutus-core/test/Evaluation/Machines/Budget/Fib/2.uplc.golden +++ b/plutus-core/untyped-plutus-core/test/Evaluation/Machines/Budget/Fib/2.uplc.golden @@ -1,18 +1,18 @@ ( (Right 1) -, ({ tally: ({BStep BConst causes ({cpu: 207000 | mem: 900}) -| BStep BVar causes ({cpu: 736000 | mem: 3200}) -| BStep BLamAbs causes ({cpu: 644000 | mem: 2800}) -| BStep BApply causes ({cpu: 1127000 | mem: 4900}) -| BStep BDelay causes ({cpu: 184000 | mem: 800}) -| BStep BForce causes ({cpu: 253000 | mem: 1100}) -| BStep BBuiltin causes ({cpu: 207000 | mem: 900}) +, ({ tally: ({BStep BConst causes ({cpu: 144000 | mem: 900}) +| BStep BVar causes ({cpu: 512000 | mem: 3200}) +| BStep BLamAbs causes ({cpu: 448000 | mem: 2800}) +| BStep BApply causes ({cpu: 784000 | mem: 4900}) +| BStep BDelay causes ({cpu: 128000 | mem: 800}) +| BStep BForce causes ({cpu: 176000 | mem: 1100}) +| BStep BBuiltin causes ({cpu: 144000 | mem: 900}) | BStep BConstr causes ({cpu: 0 | mem: 0}) | BStep BCase causes ({cpu: 0 | mem: 0}) -| BBuiltinApp AddInteger causes ({cpu: 206477 | mem: 2}) -| BBuiltinApp SubtractInteger causes ({cpu: 412954 | mem: 4}) -| BBuiltinApp LessThanEqualsInteger causes ({cpu: 616191 | mem: 3}) -| BBuiltinApp IfThenElse causes ({cpu: 241668 | mem: 3}) +| BBuiltinApp AddInteger causes ({cpu: 101208 | mem: 2}) +| BBuiltinApp SubtractInteger causes ({cpu: 202416 | mem: 4}) +| BBuiltinApp LessThanEqualsInteger causes ({cpu: 131511 | mem: 3}) +| BBuiltinApp IfThenElse causes ({cpu: 228147 | mem: 3}) | BStartup causes ({cpu: 100 | mem: 100})}) -| budget: ({cpu: 4835390 +| budget: ({cpu: 2999382 | mem: 14712}) }) ) \ No newline at end of file diff --git a/plutus-core/untyped-plutus-core/test/Evaluation/Machines/Budget/Fib/3.uplc.golden b/plutus-core/untyped-plutus-core/test/Evaluation/Machines/Budget/Fib/3.uplc.golden index 5d721a8a2d9..54f617fc22c 100644 --- a/plutus-core/untyped-plutus-core/test/Evaluation/Machines/Budget/Fib/3.uplc.golden +++ b/plutus-core/untyped-plutus-core/test/Evaluation/Machines/Budget/Fib/3.uplc.golden @@ -1,18 +1,18 @@ ( (Right 2) -, ({ tally: ({BStep BConst causes ({cpu: 345000 | mem: 1500}) -| BStep BVar causes ({cpu: 1265000 | mem: 5500}) -| BStep BLamAbs causes ({cpu: 1012000 | mem: 4400}) -| BStep BApply causes ({cpu: 1909000 | mem: 8300}) -| BStep BDelay causes ({cpu: 276000 | mem: 1200}) -| BStep BForce causes ({cpu: 391000 | mem: 1700}) -| BStep BBuiltin causes ({cpu: 368000 | mem: 1600}) +, ({ tally: ({BStep BConst causes ({cpu: 240000 | mem: 1500}) +| BStep BVar causes ({cpu: 880000 | mem: 5500}) +| BStep BLamAbs causes ({cpu: 704000 | mem: 4400}) +| BStep BApply causes ({cpu: 1328000 | mem: 8300}) +| BStep BDelay causes ({cpu: 192000 | mem: 1200}) +| BStep BForce causes ({cpu: 272000 | mem: 1700}) +| BStep BBuiltin causes ({cpu: 256000 | mem: 1600}) | BStep BConstr causes ({cpu: 0 | mem: 0}) | BStep BCase causes ({cpu: 0 | mem: 0}) -| BBuiltinApp AddInteger causes ({cpu: 412954 | mem: 4}) -| BBuiltinApp SubtractInteger causes ({cpu: 825908 | mem: 8}) -| BBuiltinApp LessThanEqualsInteger causes ({cpu: 1026985 | mem: 5}) -| BBuiltinApp IfThenElse causes ({cpu: 402780 | mem: 5}) +| BBuiltinApp AddInteger causes ({cpu: 202416 | mem: 4}) +| BBuiltinApp SubtractInteger causes ({cpu: 404832 | mem: 8}) +| BBuiltinApp LessThanEqualsInteger causes ({cpu: 219185 | mem: 5}) +| BBuiltinApp IfThenElse causes ({cpu: 380245 | mem: 5}) | BStartup causes ({cpu: 100 | mem: 100})}) -| budget: ({cpu: 8234727 +| budget: ({cpu: 5078778 | mem: 24322}) }) ) \ No newline at end of file diff --git a/plutus-core/untyped-plutus-core/test/Evaluation/Machines/Budget/IdNat/0.uplc.golden b/plutus-core/untyped-plutus-core/test/Evaluation/Machines/Budget/IdNat/0.uplc.golden index 738b4ecd797..9f4e4813c90 100644 --- a/plutus-core/untyped-plutus-core/test/Evaluation/Machines/Budget/IdNat/0.uplc.golden +++ b/plutus-core/untyped-plutus-core/test/Evaluation/Machines/Budget/IdNat/0.uplc.golden @@ -43,15 +43,15 @@ f -> z))))))))))))))))))))))) , ({ tally: ({BStep BConst causes ({cpu: 0 | mem: 0}) -| BStep BVar causes ({cpu: 3128000 | mem: 13600}) -| BStep BLamAbs causes ({cpu: 2116000 | mem: 9200}) -| BStep BApply causes ({cpu: 2737000 | mem: 11900}) -| BStep BDelay causes ({cpu: 828000 | mem: 3600}) -| BStep BForce causes ({cpu: 575000 | mem: 2500}) +| BStep BVar causes ({cpu: 2176000 | mem: 13600}) +| BStep BLamAbs causes ({cpu: 1472000 | mem: 9200}) +| BStep BApply causes ({cpu: 1904000 | mem: 11900}) +| BStep BDelay causes ({cpu: 576000 | mem: 3600}) +| BStep BForce causes ({cpu: 400000 | mem: 2500}) | BStep BBuiltin causes ({cpu: 0 | mem: 0}) | BStep BConstr causes ({cpu: 0 | mem: 0}) | BStep BCase causes ({cpu: 0 | mem: 0}) | BStartup causes ({cpu: 100 | mem: 100})}) -| budget: ({cpu: 9384100 +| budget: ({cpu: 6528100 | mem: 40900}) }) ) \ No newline at end of file diff --git a/plutus-core/untyped-plutus-core/test/Evaluation/Machines/Budget/IdNat/3.uplc.golden b/plutus-core/untyped-plutus-core/test/Evaluation/Machines/Budget/IdNat/3.uplc.golden index 34fd704d084..c90e1999121 100644 --- a/plutus-core/untyped-plutus-core/test/Evaluation/Machines/Budget/IdNat/3.uplc.golden +++ b/plutus-core/untyped-plutus-core/test/Evaluation/Machines/Budget/IdNat/3.uplc.golden @@ -43,16 +43,16 @@ f -> z))))))))))))))))))))))) , ({ tally: ({BStep BConst causes ({cpu: 0 | mem: 0}) -| BStep BVar causes ({cpu: 3128000 | mem: 13600}) -| BStep BLamAbs causes ({cpu: 2116000 | mem: 9200}) -| BStep BApply causes ({cpu: 2806000 | mem: 12200}) -| BStep BDelay causes ({cpu: 828000 | mem: 3600}) -| BStep BForce causes ({cpu: 644000 | mem: 2800}) -| BStep BBuiltin causes ({cpu: 69000 | mem: 300}) +| BStep BVar causes ({cpu: 2176000 | mem: 13600}) +| BStep BLamAbs causes ({cpu: 1472000 | mem: 9200}) +| BStep BApply causes ({cpu: 1952000 | mem: 12200}) +| BStep BDelay causes ({cpu: 576000 | mem: 3600}) +| BStep BForce causes ({cpu: 448000 | mem: 2800}) +| BStep BBuiltin causes ({cpu: 48000 | mem: 300}) | BStep BConstr causes ({cpu: 0 | mem: 0}) | BStep BCase causes ({cpu: 0 | mem: 0}) | BBuiltinApp Id causes ({cpu: 0 | mem: 0}) | BStartup causes ({cpu: 100 | mem: 100})}) -| budget: ({cpu: 9591100 +| budget: ({cpu: 6672100 | mem: 41800}) }) ) \ No newline at end of file diff --git a/plutus-core/untyped-plutus-core/test/Evaluation/Machines/Budget/IdNat/6.uplc.golden b/plutus-core/untyped-plutus-core/test/Evaluation/Machines/Budget/IdNat/6.uplc.golden index 692a06e0b50..36c0cb0fc75 100644 --- a/plutus-core/untyped-plutus-core/test/Evaluation/Machines/Budget/IdNat/6.uplc.golden +++ b/plutus-core/untyped-plutus-core/test/Evaluation/Machines/Budget/IdNat/6.uplc.golden @@ -43,16 +43,16 @@ f -> z))))))))))))))))))))))) , ({ tally: ({BStep BConst causes ({cpu: 0 | mem: 0}) -| BStep BVar causes ({cpu: 3128000 | mem: 13600}) -| BStep BLamAbs causes ({cpu: 2116000 | mem: 9200}) -| BStep BApply causes ({cpu: 2875000 | mem: 12500}) -| BStep BDelay causes ({cpu: 828000 | mem: 3600}) -| BStep BForce causes ({cpu: 713000 | mem: 3100}) -| BStep BBuiltin causes ({cpu: 138000 | mem: 600}) +| BStep BVar causes ({cpu: 2176000 | mem: 13600}) +| BStep BLamAbs causes ({cpu: 1472000 | mem: 9200}) +| BStep BApply causes ({cpu: 2000000 | mem: 12500}) +| BStep BDelay causes ({cpu: 576000 | mem: 3600}) +| BStep BForce causes ({cpu: 496000 | mem: 3100}) +| BStep BBuiltin causes ({cpu: 96000 | mem: 600}) | BStep BConstr causes ({cpu: 0 | mem: 0}) | BStep BCase causes ({cpu: 0 | mem: 0}) | BBuiltinApp Id causes ({cpu: 0 | mem: 0}) | BStartup causes ({cpu: 100 | mem: 100})}) -| budget: ({cpu: 9798100 +| budget: ({cpu: 6816100 | mem: 42700}) }) ) \ No newline at end of file diff --git a/plutus-core/untyped-plutus-core/test/Evaluation/Machines/Budget/IdNat/9.uplc.golden b/plutus-core/untyped-plutus-core/test/Evaluation/Machines/Budget/IdNat/9.uplc.golden index fa6e95d8884..f69f6bbde9c 100644 --- a/plutus-core/untyped-plutus-core/test/Evaluation/Machines/Budget/IdNat/9.uplc.golden +++ b/plutus-core/untyped-plutus-core/test/Evaluation/Machines/Budget/IdNat/9.uplc.golden @@ -43,16 +43,16 @@ f -> z))))))))))))))))))))))) , ({ tally: ({BStep BConst causes ({cpu: 0 | mem: 0}) -| BStep BVar causes ({cpu: 3128000 | mem: 13600}) -| BStep BLamAbs causes ({cpu: 2116000 | mem: 9200}) -| BStep BApply causes ({cpu: 2944000 | mem: 12800}) -| BStep BDelay causes ({cpu: 828000 | mem: 3600}) -| BStep BForce causes ({cpu: 782000 | mem: 3400}) -| BStep BBuiltin causes ({cpu: 207000 | mem: 900}) +| BStep BVar causes ({cpu: 2176000 | mem: 13600}) +| BStep BLamAbs causes ({cpu: 1472000 | mem: 9200}) +| BStep BApply causes ({cpu: 2048000 | mem: 12800}) +| BStep BDelay causes ({cpu: 576000 | mem: 3600}) +| BStep BForce causes ({cpu: 544000 | mem: 3400}) +| BStep BBuiltin causes ({cpu: 144000 | mem: 900}) | BStep BConstr causes ({cpu: 0 | mem: 0}) | BStep BCase causes ({cpu: 0 | mem: 0}) | BBuiltinApp Id causes ({cpu: 0 | mem: 0}) | BStartup causes ({cpu: 100 | mem: 100})}) -| budget: ({cpu: 10005100 +| budget: ({cpu: 6960100 | mem: 43600}) }) ) \ No newline at end of file diff --git a/plutus-core/untyped-plutus-core/test/Evaluation/Machines/Budget/IfThenElse/0.uplc.golden b/plutus-core/untyped-plutus-core/test/Evaluation/Machines/Budget/IfThenElse/0.uplc.golden index 738b4ecd797..9f4e4813c90 100644 --- a/plutus-core/untyped-plutus-core/test/Evaluation/Machines/Budget/IfThenElse/0.uplc.golden +++ b/plutus-core/untyped-plutus-core/test/Evaluation/Machines/Budget/IfThenElse/0.uplc.golden @@ -43,15 +43,15 @@ f -> z))))))))))))))))))))))) , ({ tally: ({BStep BConst causes ({cpu: 0 | mem: 0}) -| BStep BVar causes ({cpu: 3128000 | mem: 13600}) -| BStep BLamAbs causes ({cpu: 2116000 | mem: 9200}) -| BStep BApply causes ({cpu: 2737000 | mem: 11900}) -| BStep BDelay causes ({cpu: 828000 | mem: 3600}) -| BStep BForce causes ({cpu: 575000 | mem: 2500}) +| BStep BVar causes ({cpu: 2176000 | mem: 13600}) +| BStep BLamAbs causes ({cpu: 1472000 | mem: 9200}) +| BStep BApply causes ({cpu: 1904000 | mem: 11900}) +| BStep BDelay causes ({cpu: 576000 | mem: 3600}) +| BStep BForce causes ({cpu: 400000 | mem: 2500}) | BStep BBuiltin causes ({cpu: 0 | mem: 0}) | BStep BConstr causes ({cpu: 0 | mem: 0}) | BStep BCase causes ({cpu: 0 | mem: 0}) | BStartup causes ({cpu: 100 | mem: 100})}) -| budget: ({cpu: 9384100 +| budget: ({cpu: 6528100 | mem: 40900}) }) ) \ No newline at end of file diff --git a/plutus-core/untyped-plutus-core/test/Evaluation/Machines/Budget/IfThenElse/1.uplc.golden b/plutus-core/untyped-plutus-core/test/Evaluation/Machines/Budget/IfThenElse/1.uplc.golden index b5408a72457..62195414fac 100644 --- a/plutus-core/untyped-plutus-core/test/Evaluation/Machines/Budget/IfThenElse/1.uplc.golden +++ b/plutus-core/untyped-plutus-core/test/Evaluation/Machines/Budget/IfThenElse/1.uplc.golden @@ -42,17 +42,17 @@ (\z f -> z))))))))))))))))))))))) -, ({ tally: ({BStep BConst causes ({cpu: 23000 | mem: 100}) -| BStep BVar causes ({cpu: 3220000 | mem: 14000}) -| BStep BLamAbs causes ({cpu: 2346000 | mem: 10200}) -| BStep BApply causes ({cpu: 2967000 | mem: 12900}) -| BStep BDelay causes ({cpu: 943000 | mem: 4100}) -| BStep BForce causes ({cpu: 690000 | mem: 3000}) -| BStep BBuiltin causes ({cpu: 23000 | mem: 100}) +, ({ tally: ({BStep BConst causes ({cpu: 16000 | mem: 100}) +| BStep BVar causes ({cpu: 2240000 | mem: 14000}) +| BStep BLamAbs causes ({cpu: 1632000 | mem: 10200}) +| BStep BApply causes ({cpu: 2064000 | mem: 12900}) +| BStep BDelay causes ({cpu: 656000 | mem: 4100}) +| BStep BForce causes ({cpu: 480000 | mem: 3000}) +| BStep BBuiltin causes ({cpu: 16000 | mem: 100}) | BStep BConstr causes ({cpu: 0 | mem: 0}) | BStep BCase causes ({cpu: 0 | mem: 0}) -| BBuiltinApp IfThenElse causes ({cpu: 80556 | mem: 1}) +| BBuiltinApp IfThenElse causes ({cpu: 76049 | mem: 1}) | BStartup causes ({cpu: 100 | mem: 100})}) -| budget: ({cpu: 10292656 +| budget: ({cpu: 7180149 | mem: 44501}) }) ) \ No newline at end of file diff --git a/plutus-core/untyped-plutus-core/test/Evaluation/Machines/Budget/IfThenElse/2.uplc.golden b/plutus-core/untyped-plutus-core/test/Evaluation/Machines/Budget/IfThenElse/2.uplc.golden index 9a537edf83f..3f4f55a1f16 100644 --- a/plutus-core/untyped-plutus-core/test/Evaluation/Machines/Budget/IfThenElse/2.uplc.golden +++ b/plutus-core/untyped-plutus-core/test/Evaluation/Machines/Budget/IfThenElse/2.uplc.golden @@ -42,17 +42,17 @@ (\z f -> z))))))))))))))))))))))) -, ({ tally: ({BStep BConst causes ({cpu: 46000 | mem: 200}) -| BStep BVar causes ({cpu: 3243000 | mem: 14100}) -| BStep BLamAbs causes ({cpu: 2392000 | mem: 10400}) -| BStep BApply causes ({cpu: 3059000 | mem: 13300}) -| BStep BDelay causes ({cpu: 943000 | mem: 4100}) -| BStep BForce causes ({cpu: 713000 | mem: 3100}) -| BStep BBuiltin causes ({cpu: 46000 | mem: 200}) +, ({ tally: ({BStep BConst causes ({cpu: 32000 | mem: 200}) +| BStep BVar causes ({cpu: 2256000 | mem: 14100}) +| BStep BLamAbs causes ({cpu: 1664000 | mem: 10400}) +| BStep BApply causes ({cpu: 2128000 | mem: 13300}) +| BStep BDelay causes ({cpu: 656000 | mem: 4100}) +| BStep BForce causes ({cpu: 496000 | mem: 3100}) +| BStep BBuiltin causes ({cpu: 32000 | mem: 200}) | BStep BConstr causes ({cpu: 0 | mem: 0}) | BStep BCase causes ({cpu: 0 | mem: 0}) -| BBuiltinApp IfThenElse causes ({cpu: 161112 | mem: 2}) +| BBuiltinApp IfThenElse causes ({cpu: 152098 | mem: 2}) | BStartup causes ({cpu: 100 | mem: 100})}) -| budget: ({cpu: 10603212 +| budget: ({cpu: 7416198 | mem: 45502}) }) ) \ No newline at end of file diff --git a/plutus-core/untyped-plutus-core/test/Evaluation/Machines/Budget/IfThenElse/3.uplc.golden b/plutus-core/untyped-plutus-core/test/Evaluation/Machines/Budget/IfThenElse/3.uplc.golden index 792212d6215..69feff17298 100644 --- a/plutus-core/untyped-plutus-core/test/Evaluation/Machines/Budget/IfThenElse/3.uplc.golden +++ b/plutus-core/untyped-plutus-core/test/Evaluation/Machines/Budget/IfThenElse/3.uplc.golden @@ -42,17 +42,17 @@ (\z f -> z))))))))))))))))))))))) -, ({ tally: ({BStep BConst causes ({cpu: 69000 | mem: 300}) -| BStep BVar causes ({cpu: 3266000 | mem: 14200}) -| BStep BLamAbs causes ({cpu: 2438000 | mem: 10600}) -| BStep BApply causes ({cpu: 3151000 | mem: 13700}) -| BStep BDelay causes ({cpu: 943000 | mem: 4100}) -| BStep BForce causes ({cpu: 736000 | mem: 3200}) -| BStep BBuiltin causes ({cpu: 69000 | mem: 300}) +, ({ tally: ({BStep BConst causes ({cpu: 48000 | mem: 300}) +| BStep BVar causes ({cpu: 2272000 | mem: 14200}) +| BStep BLamAbs causes ({cpu: 1696000 | mem: 10600}) +| BStep BApply causes ({cpu: 2192000 | mem: 13700}) +| BStep BDelay causes ({cpu: 656000 | mem: 4100}) +| BStep BForce causes ({cpu: 512000 | mem: 3200}) +| BStep BBuiltin causes ({cpu: 48000 | mem: 300}) | BStep BConstr causes ({cpu: 0 | mem: 0}) | BStep BCase causes ({cpu: 0 | mem: 0}) -| BBuiltinApp IfThenElse causes ({cpu: 241668 | mem: 3}) +| BBuiltinApp IfThenElse causes ({cpu: 228147 | mem: 3}) | BStartup causes ({cpu: 100 | mem: 100})}) -| budget: ({cpu: 10913768 +| budget: ({cpu: 7652247 | mem: 46503}) }) ) \ No newline at end of file diff --git a/plutus-core/untyped-plutus-core/test/Evaluation/Machines/Budget/IfThenElse/4.uplc.golden b/plutus-core/untyped-plutus-core/test/Evaluation/Machines/Budget/IfThenElse/4.uplc.golden index a0c77fe8e84..387b492343b 100644 --- a/plutus-core/untyped-plutus-core/test/Evaluation/Machines/Budget/IfThenElse/4.uplc.golden +++ b/plutus-core/untyped-plutus-core/test/Evaluation/Machines/Budget/IfThenElse/4.uplc.golden @@ -42,17 +42,17 @@ (\z f -> z))))))))))))))))))))))) -, ({ tally: ({BStep BConst causes ({cpu: 92000 | mem: 400}) -| BStep BVar causes ({cpu: 3289000 | mem: 14300}) -| BStep BLamAbs causes ({cpu: 2484000 | mem: 10800}) -| BStep BApply causes ({cpu: 3243000 | mem: 14100}) -| BStep BDelay causes ({cpu: 943000 | mem: 4100}) -| BStep BForce causes ({cpu: 759000 | mem: 3300}) -| BStep BBuiltin causes ({cpu: 92000 | mem: 400}) +, ({ tally: ({BStep BConst causes ({cpu: 64000 | mem: 400}) +| BStep BVar causes ({cpu: 2288000 | mem: 14300}) +| BStep BLamAbs causes ({cpu: 1728000 | mem: 10800}) +| BStep BApply causes ({cpu: 2256000 | mem: 14100}) +| BStep BDelay causes ({cpu: 656000 | mem: 4100}) +| BStep BForce causes ({cpu: 528000 | mem: 3300}) +| BStep BBuiltin causes ({cpu: 64000 | mem: 400}) | BStep BConstr causes ({cpu: 0 | mem: 0}) | BStep BCase causes ({cpu: 0 | mem: 0}) -| BBuiltinApp IfThenElse causes ({cpu: 322224 | mem: 4}) +| BBuiltinApp IfThenElse causes ({cpu: 304196 | mem: 4}) | BStartup causes ({cpu: 100 | mem: 100})}) -| budget: ({cpu: 11224324 +| budget: ({cpu: 7888296 | mem: 47504}) }) ) \ No newline at end of file diff --git a/plutus-core/untyped-plutus-core/test/Evaluation/Machines/Budget/IfThenElse/5.uplc.golden b/plutus-core/untyped-plutus-core/test/Evaluation/Machines/Budget/IfThenElse/5.uplc.golden index 247b8e9c1c6..5c1148a0a87 100644 --- a/plutus-core/untyped-plutus-core/test/Evaluation/Machines/Budget/IfThenElse/5.uplc.golden +++ b/plutus-core/untyped-plutus-core/test/Evaluation/Machines/Budget/IfThenElse/5.uplc.golden @@ -42,17 +42,17 @@ (\z f -> z))))))))))))))))))))))) -, ({ tally: ({BStep BConst causes ({cpu: 115000 | mem: 500}) -| BStep BVar causes ({cpu: 3312000 | mem: 14400}) -| BStep BLamAbs causes ({cpu: 2530000 | mem: 11000}) -| BStep BApply causes ({cpu: 3335000 | mem: 14500}) -| BStep BDelay causes ({cpu: 943000 | mem: 4100}) -| BStep BForce causes ({cpu: 782000 | mem: 3400}) -| BStep BBuiltin causes ({cpu: 115000 | mem: 500}) +, ({ tally: ({BStep BConst causes ({cpu: 80000 | mem: 500}) +| BStep BVar causes ({cpu: 2304000 | mem: 14400}) +| BStep BLamAbs causes ({cpu: 1760000 | mem: 11000}) +| BStep BApply causes ({cpu: 2320000 | mem: 14500}) +| BStep BDelay causes ({cpu: 656000 | mem: 4100}) +| BStep BForce causes ({cpu: 544000 | mem: 3400}) +| BStep BBuiltin causes ({cpu: 80000 | mem: 500}) | BStep BConstr causes ({cpu: 0 | mem: 0}) | BStep BCase causes ({cpu: 0 | mem: 0}) -| BBuiltinApp IfThenElse causes ({cpu: 402780 | mem: 5}) +| BBuiltinApp IfThenElse causes ({cpu: 380245 | mem: 5}) | BStartup causes ({cpu: 100 | mem: 100})}) -| budget: ({cpu: 11534880 +| budget: ({cpu: 8124345 | mem: 48505}) }) ) \ No newline at end of file diff --git a/plutus-core/untyped-plutus-core/test/Evaluation/Machines/Tallying/Fib/1.uplc.golden b/plutus-core/untyped-plutus-core/test/Evaluation/Machines/Tallying/Fib/1.uplc.golden index be0b625bd90..6b20e1d289e 100644 --- a/plutus-core/untyped-plutus-core/test/Evaluation/Machines/Tallying/Fib/1.uplc.golden +++ b/plutus-core/untyped-plutus-core/test/Evaluation/Machines/Tallying/Fib/1.uplc.golden @@ -1,16 +1,16 @@ ( (Right 1) -, ({ tally: ({BStep BConst causes ({cpu: 69000 | mem: 300}) -| BStep BVar causes ({cpu: 207000 | mem: 900}) -| BStep BLamAbs causes ({cpu: 276000 | mem: 1200}) -| BStep BApply causes ({cpu: 345000 | mem: 1500}) -| BStep BDelay causes ({cpu: 92000 | mem: 400}) -| BStep BForce causes ({cpu: 115000 | mem: 500}) -| BStep BBuiltin causes ({cpu: 46000 | mem: 200}) +, ({ tally: ({BStep BConst causes ({cpu: 48000 | mem: 300}) +| BStep BVar causes ({cpu: 144000 | mem: 900}) +| BStep BLamAbs causes ({cpu: 192000 | mem: 1200}) +| BStep BApply causes ({cpu: 240000 | mem: 1500}) +| BStep BDelay causes ({cpu: 64000 | mem: 400}) +| BStep BForce causes ({cpu: 80000 | mem: 500}) +| BStep BBuiltin causes ({cpu: 32000 | mem: 200}) | BStep BConstr causes ({cpu: 0 | mem: 0}) | BStep BCase causes ({cpu: 0 | mem: 0}) -| BBuiltinApp LessThanEqualsInteger causes ({cpu: 205397 | mem: 1}) -| BBuiltinApp IfThenElse causes ({cpu: 80556 | mem: 1}) +| BBuiltinApp LessThanEqualsInteger causes ({cpu: 43837 | mem: 1}) +| BBuiltinApp IfThenElse causes ({cpu: 76049 | mem: 1}) | BStartup causes ({cpu: 100 | mem: 100})}) -| budget: ({cpu: 1436053 +| budget: ({cpu: 919986 | mem: 5102}) }) ) \ No newline at end of file diff --git a/plutus-core/untyped-plutus-core/test/Evaluation/Machines/Tallying/Fib/2.uplc.golden b/plutus-core/untyped-plutus-core/test/Evaluation/Machines/Tallying/Fib/2.uplc.golden index 13bda37cf11..3db175b89de 100644 --- a/plutus-core/untyped-plutus-core/test/Evaluation/Machines/Tallying/Fib/2.uplc.golden +++ b/plutus-core/untyped-plutus-core/test/Evaluation/Machines/Tallying/Fib/2.uplc.golden @@ -1,18 +1,18 @@ ( (Right 1) -, ({ tally: ({BStep BConst causes ({cpu: 207000 | mem: 900}) -| BStep BVar causes ({cpu: 736000 | mem: 3200}) -| BStep BLamAbs causes ({cpu: 644000 | mem: 2800}) -| BStep BApply causes ({cpu: 1127000 | mem: 4900}) -| BStep BDelay causes ({cpu: 184000 | mem: 800}) -| BStep BForce causes ({cpu: 253000 | mem: 1100}) -| BStep BBuiltin causes ({cpu: 207000 | mem: 900}) +, ({ tally: ({BStep BConst causes ({cpu: 144000 | mem: 900}) +| BStep BVar causes ({cpu: 512000 | mem: 3200}) +| BStep BLamAbs causes ({cpu: 448000 | mem: 2800}) +| BStep BApply causes ({cpu: 784000 | mem: 4900}) +| BStep BDelay causes ({cpu: 128000 | mem: 800}) +| BStep BForce causes ({cpu: 176000 | mem: 1100}) +| BStep BBuiltin causes ({cpu: 144000 | mem: 900}) | BStep BConstr causes ({cpu: 0 | mem: 0}) | BStep BCase causes ({cpu: 0 | mem: 0}) -| BBuiltinApp AddInteger causes ({cpu: 206477 | mem: 2}) -| BBuiltinApp SubtractInteger causes ({cpu: 412954 | mem: 4}) -| BBuiltinApp LessThanEqualsInteger causes ({cpu: 616191 | mem: 3}) -| BBuiltinApp IfThenElse causes ({cpu: 241668 | mem: 3}) +| BBuiltinApp AddInteger causes ({cpu: 101208 | mem: 2}) +| BBuiltinApp SubtractInteger causes ({cpu: 202416 | mem: 4}) +| BBuiltinApp LessThanEqualsInteger causes ({cpu: 131511 | mem: 3}) +| BBuiltinApp IfThenElse causes ({cpu: 228147 | mem: 3}) | BStartup causes ({cpu: 100 | mem: 100})}) -| budget: ({cpu: 4835390 +| budget: ({cpu: 2999382 | mem: 14712}) }) ) \ No newline at end of file diff --git a/plutus-core/untyped-plutus-core/test/Evaluation/Machines/Tallying/Fib/3.uplc.golden b/plutus-core/untyped-plutus-core/test/Evaluation/Machines/Tallying/Fib/3.uplc.golden index 5d721a8a2d9..54f617fc22c 100644 --- a/plutus-core/untyped-plutus-core/test/Evaluation/Machines/Tallying/Fib/3.uplc.golden +++ b/plutus-core/untyped-plutus-core/test/Evaluation/Machines/Tallying/Fib/3.uplc.golden @@ -1,18 +1,18 @@ ( (Right 2) -, ({ tally: ({BStep BConst causes ({cpu: 345000 | mem: 1500}) -| BStep BVar causes ({cpu: 1265000 | mem: 5500}) -| BStep BLamAbs causes ({cpu: 1012000 | mem: 4400}) -| BStep BApply causes ({cpu: 1909000 | mem: 8300}) -| BStep BDelay causes ({cpu: 276000 | mem: 1200}) -| BStep BForce causes ({cpu: 391000 | mem: 1700}) -| BStep BBuiltin causes ({cpu: 368000 | mem: 1600}) +, ({ tally: ({BStep BConst causes ({cpu: 240000 | mem: 1500}) +| BStep BVar causes ({cpu: 880000 | mem: 5500}) +| BStep BLamAbs causes ({cpu: 704000 | mem: 4400}) +| BStep BApply causes ({cpu: 1328000 | mem: 8300}) +| BStep BDelay causes ({cpu: 192000 | mem: 1200}) +| BStep BForce causes ({cpu: 272000 | mem: 1700}) +| BStep BBuiltin causes ({cpu: 256000 | mem: 1600}) | BStep BConstr causes ({cpu: 0 | mem: 0}) | BStep BCase causes ({cpu: 0 | mem: 0}) -| BBuiltinApp AddInteger causes ({cpu: 412954 | mem: 4}) -| BBuiltinApp SubtractInteger causes ({cpu: 825908 | mem: 8}) -| BBuiltinApp LessThanEqualsInteger causes ({cpu: 1026985 | mem: 5}) -| BBuiltinApp IfThenElse causes ({cpu: 402780 | mem: 5}) +| BBuiltinApp AddInteger causes ({cpu: 202416 | mem: 4}) +| BBuiltinApp SubtractInteger causes ({cpu: 404832 | mem: 8}) +| BBuiltinApp LessThanEqualsInteger causes ({cpu: 219185 | mem: 5}) +| BBuiltinApp IfThenElse causes ({cpu: 380245 | mem: 5}) | BStartup causes ({cpu: 100 | mem: 100})}) -| budget: ({cpu: 8234727 +| budget: ({cpu: 5078778 | mem: 24322}) }) ) \ No newline at end of file diff --git a/plutus-core/untyped-plutus-core/test/Evaluation/Regressions.hs b/plutus-core/untyped-plutus-core/test/Evaluation/Regressions.hs index 1139c2c761a..8cc85cf32ca 100644 --- a/plutus-core/untyped-plutus-core/test/Evaluation/Regressions.hs +++ b/plutus-core/untyped-plutus-core/test/Evaluation/Regressions.hs @@ -13,7 +13,7 @@ import Evaluation.Builtins.Common (typecheckEvaluateCek) import GHC.Exts (fromListN) import PlutusCore (DefaultFun (VerifySchnorrSecp256k1Signature), EvaluationResult (EvaluationFailure)) -import PlutusCore.Evaluation.Machine.ExBudgetingDefaults (defaultBuiltinCostModel) +import PlutusCore.Evaluation.Machine.ExBudgetingDefaults (defaultBuiltinCostModelForTesting) import PlutusCore.MkPlc (builtin, mkConstant, mkIterAppNoAnn) import PlutusPrelude import Test.Tasty (TestTree, testGroup) @@ -31,7 +31,7 @@ schnorrVerifyRegressions = mkConstant @ByteString () message, mkConstant @ByteString () signature ] - let result = typecheckEvaluateCek def defaultBuiltinCostModel comp + let result = typecheckEvaluateCek def defaultBuiltinCostModelForTesting comp case result of Left _ -> assertFailure "Failed to type check unexpectedly" Right (res, _) -> assertEqual "" EvaluationFailure res diff --git a/plutus-core/untyped-plutus-core/test/Transform/CaseOfCase/Test.hs b/plutus-core/untyped-plutus-core/test/Transform/CaseOfCase/Test.hs index 21ba8f2f45b..3e18bc27bb0 100644 --- a/plutus-core/untyped-plutus-core/test/Transform/CaseOfCase/Test.hs +++ b/plutus-core/untyped-plutus-core/test/Transform/CaseOfCase/Test.hs @@ -9,8 +9,8 @@ import Data.Text.Encoding (encodeUtf8) import Data.Vector qualified as V import PlutusCore qualified as PLC import PlutusCore.Evaluation.Machine.BuiltinCostModel (BuiltinCostModel) -import PlutusCore.Evaluation.Machine.ExBudgetingDefaults (defaultBuiltinCostModel, - defaultCekMachineCosts) +import PlutusCore.Evaluation.Machine.ExBudgetingDefaults (defaultBuiltinCostModelForTesting, + defaultCekMachineCostsForTesting) import PlutusCore.Evaluation.Machine.MachineParameters (CostModel (..), MachineParameters, mkMachineParameters) import PlutusCore.MkPlc (mkConstant, mkIterApp) @@ -23,7 +23,7 @@ import Test.Tasty.HUnit (testCase, (@?=)) import UntypedPlutusCore (DefaultFun, DefaultUni, Name, Term (..)) import UntypedPlutusCore.Core qualified as UPLC import UntypedPlutusCore.Evaluation.Machine.Cek (CekMachineCosts, CekValue, EvaluationResult (..), - noEmitter, unsafeEvaluateCek) + evaluateCek, noEmitter, unsafeToEvaluationResult) import UntypedPlutusCore.Transform.CaseOfCase (caseOfCase) test_caseOfCase :: TestTree @@ -119,13 +119,13 @@ testCaseOfCaseWithError = evaluateUplc :: UPLC.Term Name DefaultUni DefaultFun () -> EvaluationResult (UPLC.Term Name DefaultUni DefaultFun ()) -evaluateUplc = fst <$> unsafeEvaluateCek noEmitter machineParameters +evaluateUplc = unsafeToEvaluationResult . fst <$> evaluateCek noEmitter machineParameters where costModel :: CostModel CekMachineCosts BuiltinCostModel = - CostModel defaultCekMachineCosts defaultBuiltinCostModel + CostModel defaultCekMachineCostsForTesting defaultBuiltinCostModelForTesting machineParameters :: MachineParameters CekMachineCosts DefaultFun (CekValue DefaultUni DefaultFun ()) = - mkMachineParameters def costModel + mkMachineParameters def costModel -- TODO: proper semantic variant. What should def be? goldenVsSimplified :: String -> Term Name PLC.DefaultUni PLC.DefaultFun () -> TestTree goldenVsSimplified name = diff --git a/plutus-ledger-api/CHANGELOG.md b/plutus-ledger-api/CHANGELOG.md index 47b1b479dd5..16f5f444d3e 100644 --- a/plutus-ledger-api/CHANGELOG.md +++ b/plutus-ledger-api/CHANGELOG.md @@ -1,4 +1,29 @@ +<a id='changelog-1.29.0.0'></a> +# 1.29.0.0 — 2024-06-04 + +## Added + +- A new cost model for PlutusV3. + +## Changed + +- The `ScriptContext` type for Plutus V3 is modified to contain an optional datum for + spending scripts, in the `scriptContextScriptInfo` field. The redeemer is now also + part of `ScriptContext`. As a result, all Plutus V3 scripts, regardless of the purpose, + take a single argument: `ScriptContext`. +- Datum is now optional for Plutus V3 spending scripts. + +- We now have configurable cost models which allow different costs for different Plutus language versions and protocol versions. +- The `mkEvaluationContext` functions in `plutus-ledger-api` (which provide + version-dependent on-chain configuration of the Plutus Core evaluator) now + select appropriate cost models as well. + +- `evaluateScriptRestricting` and `evaluateScriptCounting` now require Plutus V3 + scripts to return `BuiltinUnit`, otherwise the evaluation is considered to + have failed, and a `InvalidReturnValue` error is thrown. There is no such + requirement on Plutus V1 and V2 scripts. + <a id='changelog-1.27.0.0'></a> # 1.27.0.0 — 2024-04-30 diff --git a/plutus-ledger-api/plutus-ledger-api.cabal b/plutus-ledger-api/plutus-ledger-api.cabal index 79896e53347..416fce508d9 100644 --- a/plutus-ledger-api/plutus-ledger-api.cabal +++ b/plutus-ledger-api/plutus-ledger-api.cabal @@ -1,6 +1,6 @@ cabal-version: 3.0 name: plutus-ledger-api -version: 1.28.0.0 +version: 1.29.0.0 license: Apache-2.0 license-files: LICENSE @@ -100,8 +100,8 @@ library , lens , mtl , nothunks - , plutus-core ^>=1.28 - , plutus-tx ^>=1.28 + , plutus-core ^>=1.29 + , plutus-tx ^>=1.29 , prettyprinter , serialise , tagged @@ -128,9 +128,9 @@ library plutus-ledger-api-testlib , base64-bytestring , bytestring , containers - , plutus-core:{plutus-core, plutus-core-testlib} ^>=1.28 - , plutus-ledger-api ^>=1.28 - , plutus-tx ^>=1.28 + , plutus-core:{plutus-core, plutus-core-testlib} ^>=1.29 + , plutus-ledger-api ^>=1.29 + , plutus-tx ^>=1.29 , prettyprinter , PyF >=0.11.1.0 , QuickCheck @@ -163,9 +163,9 @@ test-suite plutus-ledger-api-test , lens , mtl , nothunks - , plutus-core:{plutus-core, plutus-core-testlib} ^>=1.28 - , plutus-ledger-api:{plutus-ledger-api, plutus-ledger-api-testlib} ^>=1.28 - , plutus-tx:{plutus-tx, plutus-tx-testlib} ^>=1.28 + , plutus-core:{plutus-core, plutus-core-testlib} ^>=1.29 + , plutus-ledger-api:{plutus-ledger-api, plutus-ledger-api-testlib} ^>=1.29 + , plutus-tx:{plutus-tx, plutus-tx-testlib} ^>=1.29 , prettyprinter , serialise , tasty @@ -185,17 +185,22 @@ test-suite plutus-ledger-api-plugin-test ghc-options: -threaded -rtsopts -with-rtsopts=-N other-modules: Spec.Budget + Spec.ReturnUnit.V1 + Spec.ReturnUnit.V2 + Spec.ReturnUnit.V3 Spec.Value build-depends: - , base >=4.9 && <5 + , base >=4.9 && <5 , containers - , plutus-core:{plutus-core, plutus-core-testlib} ^>=1.28 - , plutus-ledger-api ^>=1.28 - , plutus-tx-plugin ^>=1.28 - , plutus-tx:{plutus-tx, plutus-tx-testlib} ^>=1.28 + , mtl + , plutus-core:{plutus-core, plutus-core-testlib} ^>=1.29 + , plutus-ledger-api:{plutus-ledger-api, plutus-ledger-api-testlib} ^>=1.29 + , plutus-tx-plugin ^>=1.29 + , plutus-tx:{plutus-tx, plutus-tx-testlib} ^>=1.29 , prettyprinter , tasty + , tasty-hunit -- This is a nightly test, so it is an executable instead of test-suite to avoid -- running this in CI. @@ -211,8 +216,8 @@ executable test-onchain-evaluation , extra , filepath , mtl - , plutus-core ^>=1.28 - , plutus-ledger-api:{plutus-ledger-api, plutus-ledger-api-testlib} ^>=1.28 + , plutus-core ^>=1.29 + , plutus-ledger-api:{plutus-ledger-api, plutus-ledger-api-testlib} ^>=1.29 , serialise , tasty , tasty-hunit @@ -231,9 +236,9 @@ executable analyse-script-events , filepath , lens , mtl - , plutus-core ^>=1.28 - , plutus-ledger-api:{plutus-ledger-api, plutus-ledger-api-testlib} ^>=1.28 - , plutus-tx ^>=1.28 + , plutus-core ^>=1.29 + , plutus-ledger-api:{plutus-ledger-api, plutus-ledger-api-testlib} ^>=1.29 + , plutus-tx ^>=1.29 , primitive , serialise diff --git a/plutus-ledger-api/src/PlutusLedgerApi/Common/Eval.hs b/plutus-ledger-api/src/PlutusLedgerApi/Common/Eval.hs index 9517e8465c0..ff2c7fe9d49 100644 --- a/plutus-ledger-api/src/PlutusLedgerApi/Common/Eval.hs +++ b/plutus-ledger-api/src/PlutusLedgerApi/Common/Eval.hs @@ -22,6 +22,7 @@ module PlutusLedgerApi.Common.Eval ) where import PlutusCore +import PlutusCore.Builtin (readKnown) import PlutusCore.Data as Plutus import PlutusCore.Default import PlutusCore.Evaluation.Machine.CostModelInterface as Plutus @@ -53,6 +54,7 @@ data EvaluationError = | CodecError !ScriptDecodeError -- ^ A deserialisation error -- TODO: make this error more informative when we have more information about what went wrong | CostModelParameterMismatch -- ^ An error indicating that the cost model parameters didn't match what we expected + | InvalidReturnValue -- ^ The script evaluated to a value that is not a valid return value. deriving stock (Show, Eq) makeClassyPrisms ''EvaluationError @@ -64,6 +66,10 @@ instance Pretty EvaluationError where pretty (DeBruijnError e) = pretty e pretty (CodecError e) = pretty e pretty CostModelParameterMismatch = "Cost model parameters were not as we expected" + pretty InvalidReturnValue = + "The evaluation finished but the result value is not valid. " + <> "Plutus V3 scripts must return BuiltinUnit. " + <> "Returning any other value is considered a failure." -- | A simple toggle indicating whether or not we should accumulate logs during script execution. data VerboseMode = @@ -178,7 +184,7 @@ mkDynEvaluationContext ll semVars toSemVar newCMP = -- FIXME: remove this function assertWellFormedCostModelParams :: MonadError CostModelApplyError m => Plutus.CostModelParams -> m () -assertWellFormedCostModelParams = void . Plutus.applyCostModelParams Plutus.defaultCekCostModel +assertWellFormedCostModelParams = void . Plutus.applyCostModelParams Plutus.defaultCekCostModelForTesting -- | Evaluate a fully-applied term using the CEK machine. Useful for mimicking the behaviour of the -- on-chain evaluator. @@ -226,8 +232,7 @@ evaluateScriptRestricting ll pv verbose ectx budget p args = swap $ runWriter @L appliedTerm <- mkTermToEvaluate ll pv p args let (res, UPLC.RestrictingSt (ExRestrictingBudget final), logs) = evaluateTerm (UPLC.restricting $ ExRestrictingBudget budget) pv verbose ectx appliedTerm - tell logs - liftEither $ first CekError $ void res + processLogsAndErrors ll logs res pure (budget `minusExBudget` final) {-| Evaluates a script, returning the minimum budget that the script would need @@ -249,10 +254,36 @@ evaluateScriptCounting ll pv verbose ectx p args = swap $ runWriter @LogOutput $ appliedTerm <- mkTermToEvaluate ll pv p args let (res, UPLC.CountingSt final, logs) = evaluateTerm UPLC.counting pv verbose ectx appliedTerm - tell logs - liftEither $ first CekError $ void res + processLogsAndErrors ll logs res pure final +processLogsAndErrors :: + forall m. + (MonadError EvaluationError m, MonadWriter LogOutput m) => + PlutusLedgerLanguage -> + LogOutput -> + Either + (UPLC.CekEvaluationException NamedDeBruijn DefaultUni DefaultFun) + (UPLC.Term UPLC.NamedDeBruijn DefaultUni DefaultFun ()) -> + m () +processLogsAndErrors ll logs res = do + tell logs + case res of + Left e -> throwError (CekError e) + Right v -> unless (isResultValid ll v) (throwError InvalidReturnValue) +{-# INLINE processLogsAndErrors #-} + +isResultValid :: + PlutusLedgerLanguage -> + UPLC.Term UPLC.NamedDeBruijn DefaultUni DefaultFun () -> + Bool +isResultValid ll res = ll == PlutusV1 || ll == PlutusV2 || isBuiltinUnit res + where + isBuiltinUnit t = case readKnown t of + Right () -> True + _ -> False +{-# INLINE isResultValid #-} + {- Note [Checking the Plutus Core language version] Since long ago this check has been in `mkTermToEvaluate`, which makes it a phase 2 failure. But this is really far too strict: we can check when deserializing, so it can be a phase 1 diff --git a/plutus-ledger-api/src/PlutusLedgerApi/Common/ProtocolVersions.hs b/plutus-ledger-api/src/PlutusLedgerApi/Common/ProtocolVersions.hs index 158c57fde4a..4f65758f315 100644 --- a/plutus-ledger-api/src/PlutusLedgerApi/Common/ProtocolVersions.hs +++ b/plutus-ledger-api/src/PlutusLedgerApi/Common/ProtocolVersions.hs @@ -107,13 +107,13 @@ Here's a table specifying the mapping in full: pv pre-Conway post-Conway ll -1 0 1 -2 0 1 -3 2 2 +1 A B +2 A B +3 C C I.e. for example -- post-Conway 'PlutusV1' corresponds to 'DefaultFunSemanticsVariant1' -- pre-Conway 'PlutusV2' corresponds to 'DefaultFunSemanticsVariant0' -- post-Conway 'PlutusV3' corresponds to 'DefaultFunSemanticsVariant2' +- post-Conway 'PlutusV1' corresponds to 'DefaultFunSemanticsVariantB' +- pre-Conway 'PlutusV2' corresponds to 'DefaultFunSemanticsVariantA' +- post-Conway 'PlutusV3' corresponds to 'DefaultFunSemanticsVariantC' -} diff --git a/plutus-ledger-api/src/PlutusLedgerApi/V1/EvaluationContext.hs b/plutus-ledger-api/src/PlutusLedgerApi/V1/EvaluationContext.hs index 6cb246a2b00..d85c80899c2 100644 --- a/plutus-ledger-api/src/PlutusLedgerApi/V1/EvaluationContext.hs +++ b/plutus-ledger-api/src/PlutusLedgerApi/V1/EvaluationContext.hs @@ -13,7 +13,7 @@ import PlutusLedgerApi.Common import PlutusLedgerApi.Common.Versions (conwayPV) import PlutusLedgerApi.V1.ParamName as V1 -import PlutusCore.Default (BuiltinSemanticsVariant (DefaultFunSemanticsVariant0, DefaultFunSemanticsVariant1)) +import PlutusCore.Default (BuiltinSemanticsVariant (DefaultFunSemanticsVariantA, DefaultFunSemanticsVariantB)) import Control.Monad import Control.Monad.Except @@ -40,8 +40,8 @@ mkEvaluationContext = >=> pure . toCostModelParams >=> mkDynEvaluationContext PlutusV1 - [DefaultFunSemanticsVariant0, DefaultFunSemanticsVariant1] + [DefaultFunSemanticsVariantA, DefaultFunSemanticsVariantB] -- See Note [Mapping of protocol versions and ledger languages to semantics variants]. (\pv -> if pv < conwayPV - then DefaultFunSemanticsVariant0 - else DefaultFunSemanticsVariant1) + then DefaultFunSemanticsVariantA + else DefaultFunSemanticsVariantB) diff --git a/plutus-ledger-api/src/PlutusLedgerApi/V2/EvaluationContext.hs b/plutus-ledger-api/src/PlutusLedgerApi/V2/EvaluationContext.hs index 339c4be4872..e2a27f4db53 100644 --- a/plutus-ledger-api/src/PlutusLedgerApi/V2/EvaluationContext.hs +++ b/plutus-ledger-api/src/PlutusLedgerApi/V2/EvaluationContext.hs @@ -13,7 +13,7 @@ import PlutusLedgerApi.Common import PlutusLedgerApi.Common.Versions (conwayPV) import PlutusLedgerApi.V2.ParamName as V2 -import PlutusCore.Default (BuiltinSemanticsVariant (DefaultFunSemanticsVariant0, DefaultFunSemanticsVariant1)) +import PlutusCore.Default (BuiltinSemanticsVariant (DefaultFunSemanticsVariantA, DefaultFunSemanticsVariantB)) import Control.Monad import Control.Monad.Except @@ -40,8 +40,8 @@ mkEvaluationContext = >=> pure . toCostModelParams >=> mkDynEvaluationContext PlutusV2 - [DefaultFunSemanticsVariant0, DefaultFunSemanticsVariant1] + [DefaultFunSemanticsVariantA, DefaultFunSemanticsVariantB] -- See Note [Mapping of protocol versions and ledger languages to semantics variants]. (\pv -> if pv < conwayPV - then DefaultFunSemanticsVariant0 - else DefaultFunSemanticsVariant1) + then DefaultFunSemanticsVariantA + else DefaultFunSemanticsVariantB) diff --git a/plutus-ledger-api/src/PlutusLedgerApi/V2/ParamName.hs b/plutus-ledger-api/src/PlutusLedgerApi/V2/ParamName.hs index 292ea06f506..1f6ef6f5610 100644 --- a/plutus-ledger-api/src/PlutusLedgerApi/V2/ParamName.hs +++ b/plutus-ledger-api/src/PlutusLedgerApi/V2/ParamName.hs @@ -190,5 +190,15 @@ data ParamName = | VerifySchnorrSecp256k1Signature'cpu'arguments'intercept | VerifySchnorrSecp256k1Signature'cpu'arguments'slope | VerifySchnorrSecp256k1Signature'memory'arguments + | IntegerToByteString'cpu'arguments'c0 + | IntegerToByteString'cpu'arguments'c1 + | IntegerToByteString'cpu'arguments'c2 + | IntegerToByteString'memory'arguments'intercept + | IntegerToByteString'memory'arguments'slope + | ByteStringToInteger'cpu'arguments'c0 + | ByteStringToInteger'cpu'arguments'c1 + | ByteStringToInteger'cpu'arguments'c2 + | ByteStringToInteger'memory'arguments'intercept + | ByteStringToInteger'memory'arguments'slope deriving stock (Eq, Ord, Enum, Ix, Bounded, Generic) deriving IsParamName via (GenericParamName ParamName) diff --git a/plutus-ledger-api/src/PlutusLedgerApi/V3.hs b/plutus-ledger-api/src/PlutusLedgerApi/V3.hs index d6249a9e8d9..d6d8b707ec8 100644 --- a/plutus-ledger-api/src/PlutusLedgerApi/V3.hs +++ b/plutus-ledger-api/src/PlutusLedgerApi/V3.hs @@ -56,6 +56,7 @@ module PlutusLedgerApi.V3 ( -- * Context types ScriptContext (..), ScriptPurpose (..), + ScriptInfo (..), -- ** Supporting types used in the context types @@ -192,10 +193,11 @@ evaluateScriptCounting :: EvaluationContext -> -- | The script to evaluate ScriptForEvaluation -> - -- | The arguments to the script - [PLC.Data] -> + -- | The @ScriptContext@ argument to the script + PLC.Data -> (LogOutput, Either EvaluationError ExBudget) -evaluateScriptCounting = Common.evaluateScriptCounting thisLedgerLanguage +evaluateScriptCounting mpv verbose ec s arg = + Common.evaluateScriptCounting thisLedgerLanguage mpv verbose ec s [arg] {- | Evaluates a script, with a cost model and a budget that restricts how many resources it can use according to the cost model. Also returns the budget that @@ -215,7 +217,8 @@ evaluateScriptRestricting :: ExBudget -> -- | The script to evaluate ScriptForEvaluation -> - -- | The arguments to the script - [PLC.Data] -> + -- | The @ScriptContext@ argument to the script + PLC.Data -> (LogOutput, Either EvaluationError ExBudget) -evaluateScriptRestricting = Common.evaluateScriptRestricting thisLedgerLanguage +evaluateScriptRestricting mpv verbose ec budget s arg = + Common.evaluateScriptRestricting thisLedgerLanguage mpv verbose ec budget s [arg] diff --git a/plutus-ledger-api/src/PlutusLedgerApi/V3/Contexts.hs b/plutus-ledger-api/src/PlutusLedgerApi/V3/Contexts.hs index 0dcb713cd33..ef33d3796cf 100644 --- a/plutus-ledger-api/src/PlutusLedgerApi/V3/Contexts.hs +++ b/plutus-ledger-api/src/PlutusLedgerApi/V3/Contexts.hs @@ -29,6 +29,7 @@ module PlutusLedgerApi.V3.Contexts , GovernanceAction (..) , ProposalProcedure (..) , ScriptPurpose (..) + , ScriptInfo (..) , TxInInfo (..) , TxInfo (..) , ScriptContext (..) @@ -366,6 +367,7 @@ instance PlutusTx.Eq ProposalProcedure where PlutusTx.&& b PlutusTx.== b' PlutusTx.&& c PlutusTx.== c' +-- | A `ScriptPurpose` uniquely identifies a Plutus script within a transaction. data ScriptPurpose = Minting V2.CurrencySymbol | Spending V3.TxOutRef @@ -398,6 +400,39 @@ instance PlutusTx.Eq ScriptPurpose where a PlutusTx.== a' PlutusTx.&& b PlutusTx.== b' _ == _ = Haskell.False +-- | Like `ScriptPurpose` but with an optional datum for spending scripts. +data ScriptInfo + = MintingScript V2.CurrencySymbol + | SpendingScript V3.TxOutRef (Haskell.Maybe V2.Datum) + | RewardingScript V2.Credential + | CertifyingScript + Haskell.Integer + -- ^ 0-based index of the given `TxCert` in `txInfoTxCerts` + TxCert + | VotingScript Voter + | ProposingScript + Haskell.Integer + -- ^ 0-based index of the given `ProposalProcedure` in `txInfoProposalProcedures` + ProposalProcedure + deriving stock (Generic, Haskell.Show, Haskell.Eq) + deriving (Pretty) via (PrettyShow ScriptInfo) + +instance PlutusTx.Eq ScriptInfo where + {-# INLINEABLE (==) #-} + MintingScript a == MintingScript a' = + a PlutusTx.== a' + SpendingScript a b== SpendingScript a' b' = + a PlutusTx.== a' PlutusTx.&& b PlutusTx.== b' + RewardingScript a == RewardingScript a' = + a PlutusTx.== a' + CertifyingScript a b == CertifyingScript a' b' = + a PlutusTx.== a' PlutusTx.&& b PlutusTx.== b' + VotingScript a == VotingScript a' = + a PlutusTx.== a' + ProposingScript a b == ProposingScript a' b' = + a PlutusTx.== a' PlutusTx.&& b PlutusTx.== b' + _ == _ = Haskell.False + -- | An input of a pending transaction. data TxInInfo = TxInInfo { txInInfoOutRef :: V3.TxOutRef @@ -482,24 +517,27 @@ instance PlutusTx.Eq TxInfo where -- | The context that the currently-executing script can access. data ScriptContext = ScriptContext - { scriptContextTxInfo :: TxInfo + { scriptContextTxInfo :: TxInfo -- ^ information about the transaction the currently-executing script is included in - , scriptContextPurpose :: ScriptPurpose - -- ^ the purpose of the currently-executing script + , scriptContextRedeemer :: V2.Redeemer + -- ^ Redeemer for the currently-executing script + , scriptContextScriptInfo :: ScriptInfo + -- ^ the purpose of the currently-executing script, along with information associated + -- with the purpose } deriving stock (Generic, Haskell.Eq, Haskell.Show) instance Pretty ScriptContext where pretty ScriptContext{..} = vsep - [ "Purpose:" <+> pretty scriptContextPurpose + [ "ScriptInfo:" <+> pretty scriptContextScriptInfo , nest 2 (vsep ["TxInfo:", pretty scriptContextTxInfo]) ] instance PlutusTx.Eq ScriptContext where {-# INLINEABLE (==) #-} - ScriptContext a b == ScriptContext a' b' = - a PlutusTx.== a' PlutusTx.&& b PlutusTx.== b' + ScriptContext a b c == ScriptContext a' b' c' = + a PlutusTx.== a' PlutusTx.&& b PlutusTx.== b' PlutusTx.&& c PlutusTx.== c' {-# INLINEABLE findOwnInput #-} @@ -508,7 +546,7 @@ findOwnInput :: ScriptContext -> Haskell.Maybe TxInInfo findOwnInput ScriptContext { scriptContextTxInfo = TxInfo{txInfoInputs} - , scriptContextPurpose = Spending txOutRef + , scriptContextScriptInfo = SpendingScript txOutRef _ } = PlutusTx.find (\TxInInfo{txInInfoOutRef} -> txInInfoOutRef PlutusTx.== txOutRef) @@ -616,7 +654,7 @@ valueProduced = PlutusTx.foldMap V2.txOutValue PlutusTx.. txInfoOutputs -- | The 'CurrencySymbol' of the current validator script. ownCurrencySymbol :: ScriptContext -> V2.CurrencySymbol -ownCurrencySymbol ScriptContext{scriptContextPurpose = Minting cs} = cs +ownCurrencySymbol ScriptContext{scriptContextScriptInfo = MintingScript cs} = cs ownCurrencySymbol _ = -- "Can't get currency symbol of the current validator script" PlutusTx.traceError "Lh" @@ -726,6 +764,17 @@ PlutusTx.makeIsDataIndexed , ('Proposing, 5) ] +PlutusTx.makeLift ''ScriptInfo +PlutusTx.makeIsDataIndexed + ''ScriptInfo + [ ('MintingScript, 0) + , ('SpendingScript, 1) + , ('RewardingScript, 2) + , ('CertifyingScript, 3) + , ('VotingScript, 4) + , ('ProposingScript, 5) + ] + PlutusTx.makeLift ''TxInInfo PlutusTx.makeIsDataIndexed ''TxInInfo [('TxInInfo, 0)] diff --git a/plutus-ledger-api/src/PlutusLedgerApi/V3/EvaluationContext.hs b/plutus-ledger-api/src/PlutusLedgerApi/V3/EvaluationContext.hs index a7ba8f24089..fa74ee7222e 100644 --- a/plutus-ledger-api/src/PlutusLedgerApi/V3/EvaluationContext.hs +++ b/plutus-ledger-api/src/PlutusLedgerApi/V3/EvaluationContext.hs @@ -11,7 +11,7 @@ module PlutusLedgerApi.V3.EvaluationContext import PlutusLedgerApi.Common import PlutusLedgerApi.V3.ParamName as V3 -import PlutusCore.Default (BuiltinSemanticsVariant (DefaultFunSemanticsVariant2)) +import PlutusCore.Default (BuiltinSemanticsVariant (DefaultFunSemanticsVariantC)) import Control.Monad import Control.Monad.Except @@ -38,6 +38,6 @@ mkEvaluationContext = >=> pure . toCostModelParams >=> mkDynEvaluationContext PlutusV3 - [DefaultFunSemanticsVariant2] + [DefaultFunSemanticsVariantC] -- See Note [Mapping of protocol versions and ledger languages to semantics variants]. - (const DefaultFunSemanticsVariant2) + (const DefaultFunSemanticsVariantC) diff --git a/plutus-ledger-api/src/PlutusLedgerApi/V3/ParamName.hs b/plutus-ledger-api/src/PlutusLedgerApi/V3/ParamName.hs index 9deda39345e..68186fd1c59 100644 --- a/plutus-ledger-api/src/PlutusLedgerApi/V3/ParamName.hs +++ b/plutus-ledger-api/src/PlutusLedgerApi/V3/ParamName.hs @@ -65,8 +65,13 @@ data ParamName = | DecodeUtf8'memory'arguments'intercept | DecodeUtf8'memory'arguments'slope | DivideInteger'cpu'arguments'constant - | DivideInteger'cpu'arguments'model'arguments'intercept - | DivideInteger'cpu'arguments'model'arguments'slope + | DivideInteger'cpu'arguments'model'arguments'c00 + | DivideInteger'cpu'arguments'model'arguments'c01 + | DivideInteger'cpu'arguments'model'arguments'c02 + | DivideInteger'cpu'arguments'model'arguments'c10 + | DivideInteger'cpu'arguments'model'arguments'c11 + | DivideInteger'cpu'arguments'model'arguments'c20 + | DivideInteger'cpu'arguments'model'arguments'minimum | DivideInteger'memory'arguments'intercept | DivideInteger'memory'arguments'minimum | DivideInteger'memory'arguments'slope @@ -75,8 +80,8 @@ data ParamName = | EncodeUtf8'memory'arguments'intercept | EncodeUtf8'memory'arguments'slope | EqualsByteString'cpu'arguments'constant - | EqualsByteString'cpu'arguments'intercept -- TODO: this should change in the PlutusV3 cost model - | EqualsByteString'cpu'arguments'slope -- TODO: this should change in the PlutusV3 cost model + | EqualsByteString'cpu'arguments'intercept + | EqualsByteString'cpu'arguments'slope | EqualsByteString'memory'arguments | EqualsData'cpu'arguments'intercept | EqualsData'cpu'arguments'slope @@ -85,8 +90,8 @@ data ParamName = | EqualsInteger'cpu'arguments'slope | EqualsInteger'memory'arguments | EqualsString'cpu'arguments'constant - | EqualsString'cpu'arguments'intercept -- TODO: this should change in the PlutusV3 cost model - | EqualsString'cpu'arguments'slope -- TODO: this should change in the PlutusV3 cost model + | EqualsString'cpu'arguments'intercept + | EqualsString'cpu'arguments'slope | EqualsString'memory'arguments | FstPair'cpu'arguments | FstPair'memory'arguments @@ -125,10 +130,14 @@ data ParamName = | MkPairData'cpu'arguments | MkPairData'memory'arguments | ModInteger'cpu'arguments'constant - | ModInteger'cpu'arguments'model'arguments'intercept - | ModInteger'cpu'arguments'model'arguments'slope + | ModInteger'cpu'arguments'model'arguments'c00 + | ModInteger'cpu'arguments'model'arguments'c01 + | ModInteger'cpu'arguments'model'arguments'c02 + | ModInteger'cpu'arguments'model'arguments'c10 + | ModInteger'cpu'arguments'model'arguments'c11 + | ModInteger'cpu'arguments'model'arguments'c20 + | ModInteger'cpu'arguments'model'arguments'minimum | ModInteger'memory'arguments'intercept - | ModInteger'memory'arguments'minimum | ModInteger'memory'arguments'slope | MultiplyInteger'cpu'arguments'intercept | MultiplyInteger'cpu'arguments'slope @@ -137,16 +146,25 @@ data ParamName = | NullList'cpu'arguments | NullList'memory'arguments | QuotientInteger'cpu'arguments'constant - | QuotientInteger'cpu'arguments'model'arguments'intercept - | QuotientInteger'cpu'arguments'model'arguments'slope + | QuotientInteger'cpu'arguments'model'arguments'c00 + | QuotientInteger'cpu'arguments'model'arguments'c01 + | QuotientInteger'cpu'arguments'model'arguments'c02 + | QuotientInteger'cpu'arguments'model'arguments'c10 + | QuotientInteger'cpu'arguments'model'arguments'c11 + | QuotientInteger'cpu'arguments'model'arguments'c20 + | QuotientInteger'cpu'arguments'model'arguments'minimum | QuotientInteger'memory'arguments'intercept | QuotientInteger'memory'arguments'minimum | QuotientInteger'memory'arguments'slope | RemainderInteger'cpu'arguments'constant - | RemainderInteger'cpu'arguments'model'arguments'intercept - | RemainderInteger'cpu'arguments'model'arguments'slope + | RemainderInteger'cpu'arguments'model'arguments'c00 + | RemainderInteger'cpu'arguments'model'arguments'c01 + | RemainderInteger'cpu'arguments'model'arguments'c02 + | RemainderInteger'cpu'arguments'model'arguments'c10 + | RemainderInteger'cpu'arguments'model'arguments'c11 + | RemainderInteger'cpu'arguments'model'arguments'c20 + | RemainderInteger'cpu'arguments'model'arguments'minimum | RemainderInteger'memory'arguments'intercept - | RemainderInteger'memory'arguments'minimum | RemainderInteger'memory'arguments'slope | SerialiseData'cpu'arguments'intercept | SerialiseData'cpu'arguments'slope diff --git a/plutus-ledger-api/test-plugin/Spec.hs b/plutus-ledger-api/test-plugin/Spec.hs index 7ab2b296a3a..d38230a8c9d 100644 --- a/plutus-ledger-api/test-plugin/Spec.hs +++ b/plutus-ledger-api/test-plugin/Spec.hs @@ -1,6 +1,9 @@ module Main where import Spec.Budget qualified +import Spec.ReturnUnit.V1 qualified +import Spec.ReturnUnit.V2 qualified +import Spec.ReturnUnit.V3 qualified import Spec.Value qualified import Test.Tasty @@ -12,4 +15,7 @@ tests :: TestTree tests = testGroup "plutus-ledger-api-plugin-test" [ Spec.Budget.tests , Spec.Value.test_EqValue + , Spec.ReturnUnit.V1.tests + , Spec.ReturnUnit.V2.tests + , Spec.ReturnUnit.V3.tests ] diff --git a/plutus-ledger-api/test-plugin/Spec/Budget.hs b/plutus-ledger-api/test-plugin/Spec/Budget.hs index f2393bf912f..f0376041e84 100644 --- a/plutus-ledger-api/test-plugin/Spec/Budget.hs +++ b/plutus-ledger-api/test-plugin/Spec/Budget.hs @@ -27,8 +27,7 @@ import PlutusTx.TH (compile) tests :: TestTree tests = - runTestNestedIn ["test-plugin", "Spec"] $ - testNestedGhc "Budget" $ + runTestNested ["test-plugin", "Spec", "Budget"] . pure . testNestedGhc $ [ goldenPirReadable "gt" compiledGt , goldenPirReadable "currencySymbolValueOf" compiledCurrencySymbolValueOf ] diff --git a/plutus-ledger-api/test-plugin/Spec/Budget/9.6/currencySymbolValueOf.budget.golden b/plutus-ledger-api/test-plugin/Spec/Budget/9.6/currencySymbolValueOf.budget.golden index 8c175a71ce5..87a575e74ec 100644 --- a/plutus-ledger-api/test-plugin/Spec/Budget/9.6/currencySymbolValueOf.budget.golden +++ b/plutus-ledger-api/test-plugin/Spec/Budget/9.6/currencySymbolValueOf.budget.golden @@ -1,2 +1,2 @@ -({cpu: 26667308 +({cpu: 17688858 | mem: 102924}) \ No newline at end of file diff --git a/plutus-ledger-api/test-plugin/Spec/Budget/9.6/geq1.budget.golden b/plutus-ledger-api/test-plugin/Spec/Budget/9.6/geq1.budget.golden index fbc99e8891c..aed73a28336 100644 --- a/plutus-ledger-api/test-plugin/Spec/Budget/9.6/geq1.budget.golden +++ b/plutus-ledger-api/test-plugin/Spec/Budget/9.6/geq1.budget.golden @@ -1,2 +1,2 @@ -({cpu: 234326645 +({cpu: 151674685 | mem: 870930}) \ No newline at end of file diff --git a/plutus-ledger-api/test-plugin/Spec/Budget/9.6/geq2.budget.golden b/plutus-ledger-api/test-plugin/Spec/Budget/9.6/geq2.budget.golden index 67e5e13474b..0db1285d454 100644 --- a/plutus-ledger-api/test-plugin/Spec/Budget/9.6/geq2.budget.golden +++ b/plutus-ledger-api/test-plugin/Spec/Budget/9.6/geq2.budget.golden @@ -1,2 +1,2 @@ -({cpu: 252364563 +({cpu: 163635949 | mem: 941642}) \ No newline at end of file diff --git a/plutus-ledger-api/test-plugin/Spec/Budget/9.6/geq3.budget.golden b/plutus-ledger-api/test-plugin/Spec/Budget/9.6/geq3.budget.golden index 79c844bb19c..99595ce64d3 100644 --- a/plutus-ledger-api/test-plugin/Spec/Budget/9.6/geq3.budget.golden +++ b/plutus-ledger-api/test-plugin/Spec/Budget/9.6/geq3.budget.golden @@ -1,2 +1,2 @@ -({cpu: 259518378 +({cpu: 168210644 | mem: 966452}) \ No newline at end of file diff --git a/plutus-ledger-api/test-plugin/Spec/Budget/9.6/geq4.budget.golden b/plutus-ledger-api/test-plugin/Spec/Budget/9.6/geq4.budget.golden index a4859762d63..06b82b4a379 100644 --- a/plutus-ledger-api/test-plugin/Spec/Budget/9.6/geq4.budget.golden +++ b/plutus-ledger-api/test-plugin/Spec/Budget/9.6/geq4.budget.golden @@ -1,2 +1,2 @@ -({cpu: 226781114 +({cpu: 146764728 | mem: 844320}) \ No newline at end of file diff --git a/plutus-ledger-api/test-plugin/Spec/Budget/9.6/geq5.budget.golden b/plutus-ledger-api/test-plugin/Spec/Budget/9.6/geq5.budget.golden index c1e0fd3cbf1..a9d958ac149 100644 --- a/plutus-ledger-api/test-plugin/Spec/Budget/9.6/geq5.budget.golden +++ b/plutus-ledger-api/test-plugin/Spec/Budget/9.6/geq5.budget.golden @@ -1,2 +1,2 @@ -({cpu: 241557781 +({cpu: 156320779 | mem: 897238}) \ No newline at end of file diff --git a/plutus-ledger-api/test-plugin/Spec/Budget/9.6/gt1.budget.golden b/plutus-ledger-api/test-plugin/Spec/Budget/9.6/gt1.budget.golden index f67a1c6e314..d9105739705 100644 --- a/plutus-ledger-api/test-plugin/Spec/Budget/9.6/gt1.budget.golden +++ b/plutus-ledger-api/test-plugin/Spec/Budget/9.6/gt1.budget.golden @@ -1,2 +1,2 @@ -({cpu: 288270800 +({cpu: 186080115 | mem: 1060800}) \ No newline at end of file diff --git a/plutus-ledger-api/test-plugin/Spec/Budget/9.6/gt2.budget.golden b/plutus-ledger-api/test-plugin/Spec/Budget/9.6/gt2.budget.golden index 81ba1512a7f..0d2c3651d94 100644 --- a/plutus-ledger-api/test-plugin/Spec/Budget/9.6/gt2.budget.golden +++ b/plutus-ledger-api/test-plugin/Spec/Budget/9.6/gt2.budget.golden @@ -1,2 +1,2 @@ -({cpu: 249788563 +({cpu: 161843949 | mem: 930442}) \ No newline at end of file diff --git a/plutus-ledger-api/test-plugin/Spec/Budget/9.6/gt3.budget.golden b/plutus-ledger-api/test-plugin/Spec/Budget/9.6/gt3.budget.golden index b398fdb37cd..2677552d9bc 100644 --- a/plutus-ledger-api/test-plugin/Spec/Budget/9.6/gt3.budget.golden +++ b/plutus-ledger-api/test-plugin/Spec/Budget/9.6/gt3.budget.golden @@ -1,2 +1,2 @@ -({cpu: 313683022 +({cpu: 202696456 | mem: 1156024}) \ No newline at end of file diff --git a/plutus-ledger-api/test-plugin/Spec/Budget/9.6/gt4.budget.golden b/plutus-ledger-api/test-plugin/Spec/Budget/9.6/gt4.budget.golden index 31dcbc2b36e..93bce2ee7a0 100644 --- a/plutus-ledger-api/test-plugin/Spec/Budget/9.6/gt4.budget.golden +++ b/plutus-ledger-api/test-plugin/Spec/Budget/9.6/gt4.budget.golden @@ -1,2 +1,2 @@ -({cpu: 225861114 +({cpu: 146124728 | mem: 840320}) \ No newline at end of file diff --git a/plutus-ledger-api/test-plugin/Spec/Budget/9.6/gt5.budget.golden b/plutus-ledger-api/test-plugin/Spec/Budget/9.6/gt5.budget.golden index f3e6f2f6460..b57416cba67 100644 --- a/plutus-ledger-api/test-plugin/Spec/Budget/9.6/gt5.budget.golden +++ b/plutus-ledger-api/test-plugin/Spec/Budget/9.6/gt5.budget.golden @@ -1,2 +1,2 @@ -({cpu: 266270723 +({cpu: 172089718 | mem: 984270}) \ No newline at end of file diff --git a/plutus-ledger-api/test-plugin/Spec/ReturnUnit/V1.hs b/plutus-ledger-api/test-plugin/Spec/ReturnUnit/V1.hs new file mode 100644 index 00000000000..619727868b8 --- /dev/null +++ b/plutus-ledger-api/test-plugin/Spec/ReturnUnit/V1.hs @@ -0,0 +1,87 @@ +{-# LANGUAGE BangPatterns #-} +{-# LANGUAGE DataKinds #-} +{-# LANGUAGE GADTs #-} +{-# LANGUAGE LambdaCase #-} +{-# LANGUAGE MultiParamTypeClasses #-} +{-# LANGUAGE NegativeLiterals #-} +{-# LANGUAGE OverloadedStrings #-} +{-# LANGUAGE PatternSynonyms #-} +{-# LANGUAGE TemplateHaskell #-} +{-# LANGUAGE ViewPatterns #-} +{-# OPTIONS_GHC -fplugin-opt PlutusTx.Plugin:target-version=1.0.0 #-} + +module Spec.ReturnUnit.V1 where + +import PlutusLedgerApi.Common.Versions +import PlutusLedgerApi.Test.V1.EvaluationContext qualified as V1 +import PlutusLedgerApi.V1 as V1 +import PlutusPrelude +import PlutusTx.Builtins qualified as PlutusTx +import PlutusTx.Code +import PlutusTx.IsData qualified as PlutusTx +import PlutusTx.Prelude (BuiltinUnit, check) +import PlutusTx.TH (compile) + +import Test.Tasty (TestName, TestTree, testGroup) +import Test.Tasty.HUnit + +import Control.Monad.Writer + +tests :: TestTree +tests = + testGroup + "Plutus V1 validators may evaluate to any value" + [ expectSuccess "should succeed" good (I 1) + , expectSuccess "returns Bool" returnsBool (I 1) + , expectSuccess "too many parameters" tooManyParameters (I 1) + ] + +evalCtx :: V1.EvaluationContext +evalCtx = + fst . unsafeFromRight . runWriterT . V1.mkEvaluationContext $ + fmap snd V1.costModelParamsForTesting + +expectSuccess :: + forall a. + TestName -> + CompiledCode (BuiltinData -> a) -> + -- | Script argument + Data -> + TestTree +expectSuccess name code arg = testCase name $ case res of + Left _ -> assertFailure "fails" + Right _ -> pure () + where + sScript = serialiseCompiledCode code + script = either (error . show) id $ V1.deserialiseScript conwayPV sScript + (_, res) = V1.evaluateScriptCounting conwayPV V1.Quiet evalCtx script [arg] + +good :: CompiledCode (BuiltinData -> BuiltinUnit) +good = + $$( compile + [|| + \d -> + let n = PlutusTx.unsafeFromBuiltinData d + in check (PlutusTx.greaterThanInteger n 0) + ||] + ) + +returnsBool :: CompiledCode (BuiltinData -> Bool) +returnsBool = + $$( compile + [|| + \d -> + let n = PlutusTx.unsafeFromBuiltinData d + in PlutusTx.greaterThanInteger n 0 + ||] + ) + +tooManyParameters :: CompiledCode (BuiltinData -> BuiltinData -> BuiltinUnit) +tooManyParameters = + $$( compile + [|| + \d _ -> + let n = PlutusTx.unsafeFromBuiltinData d + in check (PlutusTx.greaterThanInteger n 0) + ||] + ) diff --git a/plutus-ledger-api/test-plugin/Spec/ReturnUnit/V2.hs b/plutus-ledger-api/test-plugin/Spec/ReturnUnit/V2.hs new file mode 100644 index 00000000000..a86aaa5a9f5 --- /dev/null +++ b/plutus-ledger-api/test-plugin/Spec/ReturnUnit/V2.hs @@ -0,0 +1,87 @@ +{-# LANGUAGE BangPatterns #-} +{-# LANGUAGE DataKinds #-} +{-# LANGUAGE GADTs #-} +{-# LANGUAGE LambdaCase #-} +{-# LANGUAGE MultiParamTypeClasses #-} +{-# LANGUAGE NegativeLiterals #-} +{-# LANGUAGE OverloadedStrings #-} +{-# LANGUAGE PatternSynonyms #-} +{-# LANGUAGE TemplateHaskell #-} +{-# LANGUAGE ViewPatterns #-} +{-# OPTIONS_GHC -fplugin-opt PlutusTx.Plugin:target-version=1.0.0 #-} + +module Spec.ReturnUnit.V2 where + +import PlutusLedgerApi.Common.Versions +import PlutusLedgerApi.Test.V2.EvaluationContext qualified as V2 +import PlutusLedgerApi.V2 as V2 +import PlutusPrelude +import PlutusTx.Builtins qualified as PlutusTx +import PlutusTx.Code +import PlutusTx.IsData qualified as PlutusTx +import PlutusTx.Prelude (BuiltinUnit, check) +import PlutusTx.TH (compile) + +import Test.Tasty (TestName, TestTree, testGroup) +import Test.Tasty.HUnit + +import Control.Monad.Writer + +tests :: TestTree +tests = + testGroup + "Plutus V2 validators may evaluate to any value" + [ expectSuccess "should succeed" good (I 1) + , expectSuccess "returns Bool" returnsBool (I 1) + , expectSuccess "too many parameters" tooManyParameters (I 1) + ] + +evalCtx :: V2.EvaluationContext +evalCtx = + fst . unsafeFromRight . runWriterT . V2.mkEvaluationContext $ + fmap snd V2.costModelParamsForTesting + +expectSuccess :: + forall a. + TestName -> + CompiledCode (BuiltinData -> a) -> + -- | Script argument + Data -> + TestTree +expectSuccess name code arg = testCase name $ case res of + Left _ -> assertFailure "fails" + Right _ -> pure () + where + sScript = serialiseCompiledCode code + script = either (error . show) id $ V2.deserialiseScript conwayPV sScript + (_, res) = V2.evaluateScriptCounting conwayPV V2.Quiet evalCtx script [arg] + +good :: CompiledCode (BuiltinData -> BuiltinUnit) +good = + $$( compile + [|| + \d -> + let n = PlutusTx.unsafeFromBuiltinData d + in check (PlutusTx.greaterThanInteger n 0) + ||] + ) + +returnsBool :: CompiledCode (BuiltinData -> Bool) +returnsBool = + $$( compile + [|| + \d -> + let n = PlutusTx.unsafeFromBuiltinData d + in PlutusTx.greaterThanInteger n 0 + ||] + ) + +tooManyParameters :: CompiledCode (BuiltinData -> BuiltinData -> BuiltinUnit) +tooManyParameters = + $$( compile + [|| + \d _ -> + let n = PlutusTx.unsafeFromBuiltinData d + in check (PlutusTx.greaterThanInteger n 0) + ||] + ) diff --git a/plutus-ledger-api/test-plugin/Spec/ReturnUnit/V3.hs b/plutus-ledger-api/test-plugin/Spec/ReturnUnit/V3.hs new file mode 100644 index 00000000000..6572db090ef --- /dev/null +++ b/plutus-ledger-api/test-plugin/Spec/ReturnUnit/V3.hs @@ -0,0 +1,102 @@ +{-# LANGUAGE BangPatterns #-} +{-# LANGUAGE DataKinds #-} +{-# LANGUAGE GADTs #-} +{-# LANGUAGE LambdaCase #-} +{-# LANGUAGE MultiParamTypeClasses #-} +{-# LANGUAGE NegativeLiterals #-} +{-# LANGUAGE OverloadedStrings #-} +{-# LANGUAGE PatternSynonyms #-} +{-# LANGUAGE TemplateHaskell #-} +{-# LANGUAGE ViewPatterns #-} + +module Spec.ReturnUnit.V3 where + +import PlutusLedgerApi.Common.Versions +import PlutusLedgerApi.Test.V3.EvaluationContext qualified as V3 +import PlutusLedgerApi.V3 as V3 +import PlutusPrelude +import PlutusTx.Builtins qualified as PlutusTx +import PlutusTx.Code +import PlutusTx.IsData qualified as PlutusTx +import PlutusTx.Prelude (BuiltinUnit, check) +import PlutusTx.TH (compile) + +import Test.Tasty (TestName, TestTree, testGroup) +import Test.Tasty.HUnit + +import Control.Monad.Writer + +tests :: TestTree +tests = + testGroup + "Plutus V3 validators must evaluate to BuiltinUnit" + [ expectSuccess "should succeed" good (I 1) + , expectFailure "returns Bool" returnsBool (I 1) + , expectFailure "too many parameters" tooManyParameters (I 1) + ] + +evalCtx :: V3.EvaluationContext +evalCtx = + fst . unsafeFromRight . runWriterT . V3.mkEvaluationContext $ + fmap snd V3.costModelParamsForTesting + +expectSuccess :: + forall a. + TestName -> + CompiledCode (BuiltinData -> a) -> + -- | Script argument + Data -> + TestTree +expectSuccess name code arg = testCase name $ case res of + Left _ -> assertFailure "fails" + Right _ -> pure () + where + sScript = serialiseCompiledCode code + script = either (error . show) id $ V3.deserialiseScript conwayPV sScript + (_, res) = V3.evaluateScriptCounting conwayPV V3.Quiet evalCtx script arg + +expectFailure :: + forall a. + TestName -> + CompiledCode (BuiltinData -> a) -> + -- | Script argument + Data -> + TestTree +expectFailure name code arg = testCase name $ case res of + Left InvalidReturnValue -> pure () + Left _ -> assertFailure "evaluation failed for a different reason" + Right _ -> assertFailure "evaluation succeeded" + where + sScript = serialiseCompiledCode code + script = either (error . show) id $ V3.deserialiseScript conwayPV sScript + (_, res) = V3.evaluateScriptCounting conwayPV V3.Quiet evalCtx script arg + +good :: CompiledCode (BuiltinData -> BuiltinUnit) +good = + $$( compile + [|| + \d -> + let n = PlutusTx.unsafeFromBuiltinData d + in check (PlutusTx.greaterThanInteger n 0) + ||] + ) + +returnsBool :: CompiledCode (BuiltinData -> Bool) +returnsBool = + $$( compile + [|| + \d -> + let n = PlutusTx.unsafeFromBuiltinData d + in PlutusTx.greaterThanInteger n 0 + ||] + ) + +tooManyParameters :: CompiledCode (BuiltinData -> BuiltinData -> BuiltinUnit) +tooManyParameters = + $$( compile + [|| + \d _ -> + let n = PlutusTx.unsafeFromBuiltinData d + in check (PlutusTx.greaterThanInteger n 0) + ||] + ) diff --git a/plutus-ledger-api/test-plugin/Spec/Value.hs b/plutus-ledger-api/test-plugin/Spec/Value.hs index 45a66451fe9..05c692e4c46 100644 --- a/plutus-ledger-api/test-plugin/Spec/Value.hs +++ b/plutus-ledger-api/test-plugin/Spec/Value.hs @@ -160,7 +160,7 @@ eqValueCode valueCode1 valueCode2 = (res, cost) where $$(compile [|| \value1 value2 -> toOpaque ((value1 :: Value) == value2) ||]) `unsafeApplyCode` valueCode1 `unsafeApplyCode` valueCode2 (errOrRes, cost) - = PLC.runCekNoEmit PLC.defaultCekParameters PLC.counting + = PLC.runCekNoEmit PLC.defaultCekParametersForTesting PLC.counting . PLC.runQuote . PLC.unDeBruijnTermWith (Haskell.error "Free variable") . PLC._progTerm @@ -223,8 +223,7 @@ test_EqCurrencyList name currencyLists = test_EqValue :: TestTree test_EqValue = - runTestNestedIn ["test-plugin", "Spec"] $ - testNestedGhc "Value" - [ test_EqCurrencyList "Short" currencyListOptions - , test_EqCurrencyList "Long" currencyLongListOptions - ] + runTestNested ["test-plugin", "Spec", "Value"] . pure . testNestedGhc $ + [ test_EqCurrencyList "Short" currencyListOptions + , test_EqCurrencyList "Long" currencyLongListOptions + ] diff --git a/plutus-ledger-api/test-plugin/Spec/Value/9.6/Long.stat.golden b/plutus-ledger-api/test-plugin/Spec/Value/9.6/Long.stat.golden index 54bd15a6640..eb83b17f321 100644 --- a/plutus-ledger-api/test-plugin/Spec/Value/9.6/Long.stat.golden +++ b/plutus-ledger-api/test-plugin/Spec/Value/9.6/Long.stat.golden @@ -1,15 +1,15 @@ -({cpu: 3007736773 | mem: 11157042}) -({cpu: 712988980 | mem: 3097504}) -({cpu: 2101129911 | mem: 7793754}) -({cpu: 587638980 | mem: 2552504}) -({cpu: 2101129911 | mem: 7793754}) -({cpu: 462012980 | mem: 2006304}) -({cpu: 1194523049 | mem: 4430466}) -({cpu: 462150980 | mem: 2006904}) -({cpu: 2101129911 | mem: 7793754}) -({cpu: 462012980 | mem: 2006304}) -({cpu: 1194523049 | mem: 4430466}) -({cpu: 336662980 | mem: 1461304}) -({cpu: 1194523049 | mem: 4430466}) -({cpu: 211036980 | mem: 915104}) -({cpu: 287916187 | mem: 1067178}) \ No newline at end of file +({cpu: 1961256408 | mem: 11157042}) +({cpu: 495818067 | mem: 3097504}) +({cpu: 1370121026 | mem: 7793754}) +({cpu: 408618067 | mem: 2552504}) +({cpu: 1370121026 | mem: 7793754}) +({cpu: 321226067 | mem: 2006304}) +({cpu: 778985644 | mem: 4430466}) +({cpu: 321322067 | mem: 2006904}) +({cpu: 1370121026 | mem: 7793754}) +({cpu: 321226067 | mem: 2006304}) +({cpu: 778985644 | mem: 4430466}) +({cpu: 234026067 | mem: 1461304}) +({cpu: 778985644 | mem: 4430466}) +({cpu: 146634067 | mem: 915104}) +({cpu: 187850262 | mem: 1067178}) \ No newline at end of file diff --git a/plutus-ledger-api/test-plugin/Spec/Value/9.6/Short.stat.golden b/plutus-ledger-api/test-plugin/Spec/Value/9.6/Short.stat.golden index 18d7c710757..f3ea5733721 100644 --- a/plutus-ledger-api/test-plugin/Spec/Value/9.6/Short.stat.golden +++ b/plutus-ledger-api/test-plugin/Spec/Value/9.6/Short.stat.golden @@ -1,21 +1,21 @@ -({cpu: 4370100 | mem: 19100}) -({cpu: 5888100 | mem: 25700}) -({cpu: 8301491 | mem: 34902}) -({cpu: 10016980 | mem: 41104}) -({cpu: 12016371 | mem: 48506}) -({cpu: 14260860 | mem: 57008}) -({cpu: 19387076 | mem: 76712}) -({cpu: 20506174 | mem: 81612}) -({cpu: 23042467 | mem: 91314}) -({cpu: 19324850 | mem: 77610}) -({cpu: 34128486 | mem: 133124}) -({cpu: 20816294 | mem: 85508}) -({cpu: 48929385 | mem: 188538}) -({cpu: 58404649 | mem: 221950}) -({cpu: 67450806 | mem: 257556}) -({cpu: 77432070 | mem: 293168}) -({cpu: 89687541 | mem: 340178}) -({cpu: 94462030 | mem: 359680}) -({cpu: 115639590 | mem: 436404}) -({cpu: 89068795 | mem: 361540}) -({cpu: 287916187 | mem: 1067178}) \ No newline at end of file +({cpu: 3040100 | mem: 19100}) +({cpu: 4096100 | mem: 25700}) +({cpu: 5673685 | mem: 34902}) +({cpu: 6794067 | mem: 41104}) +({cpu: 8083652 | mem: 48506}) +({cpu: 9572034 | mem: 57008}) +({cpu: 12935470 | mem: 76712}) +({cpu: 13742267 | mem: 81612}) +({cpu: 15377055 | mem: 91314}) +({cpu: 12968897 | mem: 77610}) +({cpu: 22639106 | mem: 133124}) +({cpu: 14132300 | mem: 85508}) +({cpu: 32311124 | mem: 188538}) +({cpu: 38415440 | mem: 221950}) +({cpu: 44396567 | mem: 257556}) +({cpu: 50852883 | mem: 293168}) +({cpu: 58892243 | mem: 340178}) +({cpu: 62140625 | mem: 359680}) +({cpu: 75798152 | mem: 436404}) +({cpu: 60172401 | mem: 361540}) +({cpu: 187850262 | mem: 1067178}) \ No newline at end of file diff --git a/plutus-ledger-api/test/Spec.hs b/plutus-ledger-api/test/Spec.hs index dba560ad665..8e312a47b30 100644 --- a/plutus-ledger-api/test/Spec.hs +++ b/plutus-ledger-api/test/Spec.hs @@ -61,7 +61,7 @@ availableBuiltins = testCase "builtins are available after Alonzo" $ integerToByteStringExceedsBudget :: TestTree integerToByteStringExceedsBudget = testCase "integerToByteString should exceed budget" $ let script = either (error . show) id $ V3.deserialiseScript conwayPV integerToByteStringFunction - (_, res) = V3.evaluateScriptCounting conwayPV V3.Quiet v3_evalCtxTooFewParams script [] + (_, res) = V3.evaluateScriptCounting conwayPV V3.Quiet v3_evalCtxTooFewParams script (I 1) in case res of Left _ -> assertFailure "fails" Right (ExBudget cpu _mem) -> assertBool "did not exceed budget" (cpu >= fromIntegral (maxBound :: Int64)) diff --git a/plutus-ledger-api/test/Spec/CostModelParams.hs b/plutus-ledger-api/test/Spec/CostModelParams.hs index 6cff19826ac..7298c0d8a1c 100644 --- a/plutus-ledger-api/test/Spec/CostModelParams.hs +++ b/plutus-ledger-api/test/Spec/CostModelParams.hs @@ -3,12 +3,10 @@ {-# LANGUAGE TypeApplications #-} module Spec.CostModelParams where -import PlutusCore.Evaluation.Machine.ExBudgetingDefaults (defaultCostModelParams) +import PlutusCore.Evaluation.Machine.ExBudgetingDefaults (defaultCostModelParamsForTesting) import PlutusLedgerApi.Common -import PlutusLedgerApi.Test.V1.EvaluationContext qualified as V1 -import PlutusLedgerApi.Test.V2.EvaluationContext qualified as V2 import PlutusLedgerApi.Test.V3.EvaluationContext qualified as V3 import PlutusLedgerApi.V1 as V1 import PlutusLedgerApi.V2 as V2 @@ -29,11 +27,8 @@ tests = "costModelParams" [ testCase "length" $ do 166 @=? length v1_ParamNames - 166 @=? length V1.costModelParamsForTesting - 175 @=? length v2_ParamNames - 175 @=? length V2.costModelParamsForTesting - 233 @=? length v3_ParamNames - 233 @=? length V3.costModelParamsForTesting + 185 @=? length v2_ParamNames + 251 @=? length v3_ParamNames , testCase "tripping paramname" $ do for_ v1_ParamNames $ \ p -> assertBool "tripping v1 cm params failed" $ Just p == readParamName (showParamName p) @@ -42,7 +37,7 @@ tests = for_ v3_ParamNames $ \ p -> assertBool "tripping v3 cm params failed" $ Just p == readParamName (showParamName p) , testCase "default values costmodelparamsfortesting" $ do - defaultCostModelParams @=? Just (toCostModelParams V3.costModelParamsForTesting) + defaultCostModelParamsForTesting @=? Just (toCostModelParams V3.costModelParamsForTesting) , testCase "context length" $ do let costValuesForTesting = fmap snd V3.costModelParamsForTesting -- the `costModelParamsForTesting` reflects only the latest version (V3), so this should succeed because the lengths match @@ -54,8 +49,14 @@ tests = , testCase "cost model parameters" $ do -- v1 is missing some cost model parameters because new builtins are added in v2 assertBool "v1 params is not a proper subset of v2 params" $ v1_ParamNames `paramProperSubset` v2_ParamNames - -- v2 is missing some cost model parameters because new builtins and term constructors are added in v3 - assertBool "v2 params is not a proper subset of v3 params" $ v2_ParamNames `paramProperSubset` v3_ParamNames + -- v1/v2 and v3 cost models are not comparable because we added new builtins in v3 but also + -- removed some superseded cost model parameters. + assertBool "v1 params and v3 params are comparable" $ + not (v1_ParamNames `paramSubset` v3_ParamNames) + && not (v3_ParamNames `paramSubset` v1_ParamNames) + assertBool "v2 params and v3 params are comparable" $ + not (v2_ParamNames `paramSubset` v3_ParamNames) + && not (v3_ParamNames `paramSubset` v2_ParamNames) ] where hasWarnMoreParams :: Int -> Int -> Either a (b, [CostModelApplyWarn]) -> Bool @@ -66,6 +67,9 @@ tests = paramProperSubset pA pB = Set.fromList (showParamName <$> pA) `Set.isProperSubsetOf` Set.fromList (showParamName <$> pB) + paramSubset pA pB = + Set.fromList (showParamName <$> pA) `Set.isSubsetOf` Set.fromList (showParamName <$> pB) + v1_ParamNames = enumerate @V1.ParamName v2_ParamNames = enumerate @V2.ParamName v3_ParamNames = enumerate @V3.ParamName diff --git a/plutus-ledger-api/test/Spec/Eval.hs b/plutus-ledger-api/test/Spec/Eval.hs index 42871a0fca4..c16cb6251f4 100644 --- a/plutus-ledger-api/test/Spec/Eval.hs +++ b/plutus-ledger-api/test/Spec/Eval.hs @@ -26,7 +26,6 @@ import UntypedPlutusCore.Test.DeBruijn.Good import Control.Exception (evaluate) import Control.Monad.Extra (whenJust) import Control.Monad.Writer -import Data.Foldable (for_) import Data.Int (Int64) import Data.Map qualified as Map import Data.Maybe (fromJust) @@ -71,22 +70,25 @@ testWith str evalFn = testGroup str $ fmap (uncurry testCase) ,("const0var0", evalFn (const0 @@ [unitval, fun0var0]) @?= False) -- fails at scopechecking ,("iteLazy0" , evalFn iteLazy0 @?= False) -- fails at scopechecking ,("iteStrict0", evalFn iteStrict0 @?= False) -- fails at scopechecking - ,("illITELazy", evalFn illITELazy @?= True) -- a type error that the machine cannot catch - ,("illITEStrict", evalFn illITEStrict @?= True) -- a type error that the machine cannot catch - ,("illAdd", evalFn illAdd @?= False) -- type error is caught by the machine - ,("illOverAppBuiltin", evalFn illOverAppBuiltin @?= False) -- type error is caught by the machine - ,("illOverAppFun", evalFn illOverAppFun @?= False) -- type error is caught by the machine +-- ,("illITELazy", evalFn illITELazy @?= True) -- a type error that the machine cannot catch +-- ,("illITEStrict", evalFn illITEStrict @?= True) -- a type error that the machine cannot catch +-- ,("illAdd", evalFn illAdd @?= False) -- type error is caught by the machine +-- ,("illOverAppBuiltin", evalFn illOverAppBuiltin @?= False) -- type error is caught by the machine +-- ,("illOverAppFun", evalFn illOverAppFun @?= False) -- type error is caught by the machine ] +{- ** FIXME: this is broken with the new cost model setup + testUnlifting :: TestTree testUnlifting = testCase "check unlifting behaviour changes in Vasil" $ do -- Before Vasil the behavior of this would return `False`, but since the behavior was never -- exercised on chain, it was safe to be switched to the new behavior (jedi mind trick). evalAPI alonzoPV illPartialBuiltin @?= True evalAPI vasilPV illPartialBuiltin @?= True +-} costParams :: [Int64] -costParams = Map.elems (fromJust defaultCostModelParams) +costParams = Map.elems (fromJust defaultCostModelParamsForTesting) lengthParamNamesV :: PlutusLedgerLanguage -> Int lengthParamNamesV PlutusV1 = length $ enumerate @V1.ParamName @@ -126,7 +128,8 @@ evaluationContextNoThunks = tests :: TestTree tests = testGroup "eval" [ testAPI - , testUnlifting +-- , testUnlifting , evaluationContextCacheIsComplete , evaluationContextNoThunks ] + diff --git a/plutus-ledger-api/test/Spec/Versions.hs b/plutus-ledger-api/test/Spec/Versions.hs index 2a6888385a8..61b180ea852 100644 --- a/plutus-ledger-api/test/Spec/Versions.hs +++ b/plutus-ledger-api/test/Spec/Versions.hs @@ -21,7 +21,6 @@ import PlutusLedgerApi.V3 qualified as V3 import Data.ByteString qualified as BS import Data.ByteString.Short qualified as BSS import Data.Either -import Data.Foldable (for_) import Data.Map qualified as Map import Data.Set qualified as Set import Test.Tasty diff --git a/plutus-ledger-api/testlib/PlutusLedgerApi/Test/Examples.hs b/plutus-ledger-api/testlib/PlutusLedgerApi/Test/Examples.hs index c0174ebddc2..de12bcba2b7 100644 --- a/plutus-ledger-api/testlib/PlutusLedgerApi/Test/Examples.hs +++ b/plutus-ledger-api/testlib/PlutusLedgerApi/Test/Examples.hs @@ -53,11 +53,17 @@ saltFunction salt b0 = serialiseUPLC $ UPLC.Program () version body integerToByteStringFunction :: SerialisedScript integerToByteStringFunction = serialiseUPLC $ UPLC.Program () PLC.plcVersion110 body - where - body = - PLC.mkIterAppNoAnn - (UPLC.Builtin () PLC.IntegerToByteString) - [ PLC.mkConstant @Bool () False - , PLC.mkConstant @Integer () 5 - , PLC.mkConstant @Integer () 1 - ] + where + body = + -- This is run as a Plutus V3 script, so it must return BuiltinUnit + UPLC.LamAbs () (UPLC.DeBruijn 0) $ + UPLC.Apply + () + (UPLC.LamAbs () (UPLC.DeBruijn 0) (PLC.mkConstant () ())) + ( PLC.mkIterAppNoAnn + (UPLC.Builtin () PLC.IntegerToByteString) + [ PLC.mkConstant @Bool () False + , PLC.mkConstant @Integer () 5 + , PLC.mkConstant @Integer () 1 + ] + ) diff --git a/plutus-ledger-api/testlib/PlutusLedgerApi/Test/V2/EvaluationContext.hs b/plutus-ledger-api/testlib/PlutusLedgerApi/Test/V2/EvaluationContext.hs index a95463039cd..932486ee8d3 100644 --- a/plutus-ledger-api/testlib/PlutusLedgerApi/Test/V2/EvaluationContext.hs +++ b/plutus-ledger-api/testlib/PlutusLedgerApi/Test/V2/EvaluationContext.hs @@ -9,6 +9,7 @@ module PlutusLedgerApi.Test.V2.EvaluationContext ) where import PlutusCore.Evaluation.Machine.BuiltinCostModel +import PlutusCore.Evaluation.Machine.ExBudgetingDefaults import PlutusCore.Evaluation.Machine.MachineParameters import PlutusLedgerApi.Test.Common.EvaluationContext as Common import PlutusLedgerApi.Test.V3.EvaluationContext qualified as V3 @@ -27,7 +28,7 @@ costModelParamsForTesting = Map.toList $ fromJust $ -- | The PlutusV2 "cost model" is constructed by the v3 "cost model", by clearing v3 introductions. mCostModel :: MCostModel -mCostModel = V3.mCostModel +mCostModel = toMCostModel defaultCekCostModelForTestingB & machineCostModel %~ V3.clearMachineCostModel & builtinCostModel @@ -52,4 +53,6 @@ clearBuiltinCostModel r = r { paramSerialiseData = mempty , paramVerifyEcdsaSecp256k1Signature = mempty , paramVerifySchnorrSecp256k1Signature = mempty + , paramIntegerToByteString = mempty + , paramByteStringToInteger = mempty } diff --git a/plutus-ledger-api/testlib/PlutusLedgerApi/Test/V3/EvaluationContext.hs b/plutus-ledger-api/testlib/PlutusLedgerApi/Test/V3/EvaluationContext.hs index e4e7e74c3ed..ff71a2c514e 100644 --- a/plutus-ledger-api/testlib/PlutusLedgerApi/Test/V3/EvaluationContext.hs +++ b/plutus-ledger-api/testlib/PlutusLedgerApi/Test/V3/EvaluationContext.hs @@ -27,7 +27,7 @@ costModelParamsForTesting = Map.toList $ fromJust $ mCostModel :: MCostModel mCostModel = -- nothing to clear because v4 does not exist (yet). - toMCostModel defaultCekCostModel + toMCostModel defaultCekCostModelForTesting {- | Assign to `mempty` those CEK constructs that @PlutusV3@ introduces (indirectly by introducing a ledger language version with those CEK constructs). @@ -67,6 +67,4 @@ clearBuiltinCostModel r = r , paramBls12_381_finalVerify = mempty , paramKeccak_256 = mempty , paramBlake2b_224 = mempty - , paramIntegerToByteString = mempty - , paramByteStringToInteger = mempty } diff --git a/plutus-metatheory/plutus-metatheory.cabal b/plutus-metatheory/plutus-metatheory.cabal index 93911cf4d2c..23cf6cf68d1 100644 --- a/plutus-metatheory/plutus-metatheory.cabal +++ b/plutus-metatheory/plutus-metatheory.cabal @@ -63,7 +63,7 @@ library , megaparsec , memory , optparse-applicative - , plutus-core:{plutus-core, plutus-core-execlib} ^>=1.28 + , plutus-core:{plutus-core, plutus-core-execlib} ^>=1.29 , process , text , transformers @@ -548,8 +548,8 @@ executable plc-agda test-suite test1 import: lang build-tool-depends: - , plutus-core:plc ^>=1.28 - , plutus-core:uplc ^>=1.28 + , plutus-core:plc ^>=1.29 + , plutus-core:uplc ^>=1.29 hs-source-dirs: test build-depends: @@ -564,8 +564,8 @@ test-suite test1 test-suite test2 import: lang build-tool-depends: - , plutus-core:plc ^>=1.28 - , plutus-core:uplc ^>=1.28 + , plutus-core:plc ^>=1.29 + , plutus-core:uplc ^>=1.29 hs-source-dirs: test type: detailed-0.9 @@ -590,7 +590,7 @@ test-suite test3 , base , lazy-search , mtl - , plutus-core:{plutus-core, plutus-core-testlib} ^>=1.28 + , plutus-core:{plutus-core, plutus-core-testlib} ^>=1.29 , plutus-metatheory , size-based , Stream diff --git a/plutus-metatheory/src/Cost/Model.lagda.md b/plutus-metatheory/src/Cost/Model.lagda.md index 4af0668ea3d..b557032b724 100644 --- a/plutus-metatheory/src/Cost/Model.lagda.md +++ b/plutus-metatheory/src/Cost/Model.lagda.md @@ -28,7 +28,7 @@ open import Relation.Binary.PropositionalEquality using (refl) open import Utils using (List;_×_;[];_∷_;_,_;length) open import Data.Vec using (Vec;[];_∷_;sum;foldr;lookup;map) open import Cost.Base -open import Cost.Raw renaming (mkLinearFunction to mkLF; mkQuadraticFunction to mkQF) +open import Cost.Raw renaming (mkLinearFunction to mkLF; mkOneVariableQuadraticFunction to mkQF1; mkTwoVariableQuadraticFunction to mkQF2) open import Cost.Size using () renaming (defaultValueMeasure to sizeOf) open import Builtin using (Builtin;arity;builtinList;showBuiltin;decBuiltin) open import Builtin.Signature using (_⊢♯) @@ -62,7 +62,9 @@ data CostingModel : ℕ → Set where -- Any number of arguments constantCost : ∀{n} → CostingNat → CostingModel n linearCostIn : ∀{n} → Fin n → Intercept → Slope → CostingModel n - quadraticCostIn : ∀{n} → Fin n → CostingNat → CostingNat → CostingNat → CostingModel n + quadraticCostIn1 : ∀{n} → Fin n → CostingNat → CostingNat → CostingNat → CostingModel n + quadraticCostIn2 : ∀{n} → Fin n → Fin n → CostingNat → CostingNat → CostingNat → CostingNat + → CostingNat → CostingNat → CostingNat → CostingModel n -- take the cost literally if it is a positive integer, or else, use the provided model. literalCostIn : ∀{n} → Fin n → CostingModel n → CostingModel n addedSizes : ∀{n} → Intercept → Slope → CostingModel n @@ -107,7 +109,12 @@ Given a model and the sizes of the arguments we can compute a cost. runModel : ∀{n} → CostingModel n → Vec Value n → CostingNat runModel (constantCost x) _ = x runModel (linearCostIn n i s) xs = i + s * sizeOf (lookup xs n) -runModel (quadraticCostIn n c0 c1 c2) xs = let x = sizeOf (lookup xs n) in c0 + c1 * x + c2 * x * x +runModel (quadraticCostIn1 n c0 c1 c2) xs = let x = sizeOf (lookup xs n) in c0 + c1 * x + c2 * x * x +runModel (quadraticCostIn2 m n min c00 c10 c01 c20 c11 c02) xs = + let x = sizeOf (lookup xs m) + y = sizeOf (lookup xs n) + r = c00 + c10 * x + c01 * y + c20 * x * x + c11 * x * y + c02 * y * y + in min ⊔ r runModel (addedSizes i s) xs = i + s * (sum (map sizeOf xs)) runModel (multipliedSizes i s) xs = i + s * (prod (map sizeOf xs)) runModel (minSize i s) xs = i + s * minimum (map sizeOf xs) @@ -157,9 +164,11 @@ convertRawModel {suc n} (MinSize (mkLF intercept slope)) = just (minSize interce convertRawModel {suc n} (MaxSize (mkLF intercept slope)) = just (maxSize intercept slope) convertRawModel {suc n} (LinearInX (mkLF intercept slope)) = just (linearCostIn zero intercept slope) convertRawModel {suc (suc n)} (LinearInY (mkLF intercept slope)) = just (linearCostIn (suc zero) intercept slope) -convertRawModel {suc (suc n)} (QuadraticInY (mkQF c0 c1 c2)) = just (quadraticCostIn (suc zero) c0 c1 c2) +convertRawModel {suc (suc n)} (QuadraticInY (mkQF1 c0 c1 c2)) = just (quadraticCostIn1 (suc zero) c0 c1 c2) convertRawModel {suc (suc (suc n))}(LinearInZ (mkLF intercept slope)) = just (linearCostIn (suc (suc zero)) intercept slope) -convertRawModel {suc (suc (suc n))} (QuadraticInZ (mkQF c0 c1 c2)) = just (quadraticCostIn (suc (suc zero)) c0 c1 c2) +convertRawModel {suc (suc (suc n))} (QuadraticInZ (mkQF1 c0 c1 c2)) = just (quadraticCostIn1 (suc (suc zero)) c0 c1 c2) +convertRawModel {suc (suc n)} (QuadraticInXAndY (mkQF2 minVal c00 c10 c01 c20 c11 c02)) = + just (quadraticCostIn2 zero (suc zero) minVal c00 c10 c01 c20 c11 c02) convertRawModel {suc (suc (suc n))} (LiteralInYOrLinearInZ (mkLF intercept slope)) = just (literalCostIn (suc zero) (linearCostIn (suc (suc zero)) intercept slope)) convertRawModel {2} (SubtractedSizes (mkLF intercept slope) c) = just (twoArgumentsSubtractedSizes intercept slope c) diff --git a/plutus-metatheory/src/Cost/Raw.lagda.md b/plutus-metatheory/src/Cost/Raw.lagda.md index 8c2074a957e..94892f352dc 100644 --- a/plutus-metatheory/src/Cost/Raw.lagda.md +++ b/plutus-metatheory/src/Cost/Raw.lagda.md @@ -23,7 +23,7 @@ open import Utils {-# FOREIGN GHC import Data.Functor.Identity (Identity, runIdentity) #-} {-# FOREIGN GHC import PlutusCore.Evaluation.Machine.ExBudget (ExBudget(..)) #-} {-# FOREIGN GHC import PlutusCore.Evaluation.Machine.ExMemory (ExCPU(..), ExMemory(..)) #-} -{-# FOREIGN GHC import PlutusCore.Evaluation.Machine.ExBudgetingDefaults (defaultCekMachineCosts) #-} +{-# FOREIGN GHC import PlutusCore.Evaluation.Machine.ExBudgetingDefaults (defaultCekMachineCostsForTesting) #-} {-# FOREIGN GHC import UntypedPlutusCore.Evaluation.Machine.Cek.CekMachineCosts (CekMachineCostsBase(..)) #-} postulate HCekMachineCosts : Set @@ -62,7 +62,7 @@ postulate getMemoryCost : HExBudget → CostingNat -- postulate defaultHCekMachineCosts : HCekMachineCosts --- {-# COMPILE GHC defaultHCekMachineCosts = defaultCekMachineCosts #-} +-- {-# COMPILE GHC defaultHCekMachineCosts = defaultCekMachineCostsForTesting #-} ``` ## Interface with Builtin model from JSON @@ -78,14 +78,27 @@ record LinearFunction : Set where {-# COMPILE GHC LinearFunction = data LinearFunction(LinearFunction) #-} -record QuadraticFunction : Set where - constructor mkQuadraticFunction +record OneVariableQuadraticFunction : Set where + constructor mkOneVariableQuadraticFunction field coeff0 : CostingNat coeff1 : CostingNat coeff2 : CostingNat -{-# COMPILE GHC QuadraticFunction = data QuadraticFunction(QuadraticFunction) #-} +{-# COMPILE GHC OneVariableQuadraticFunction = data OneVariableQuadraticFunction(OneVariableQuadraticFunction) #-} + +record TwoVariableQuadraticFunction : Set where + constructor mkTwoVariableQuadraticFunction + field + minimum : CostingNat + coeff00 : CostingNat + coeff10 : CostingNat + coeff01 : CostingNat + coeff20 : CostingNat + coeff11 : CostingNat + coeff02 : CostingNat + +{-# COMPILE GHC TwoVariableQuadraticFunction = data TwoVariableQuadraticFunction(TwoVariableQuadraticFunction) #-} data RawModel : Set where ConstantCost : CostingNat → RawModel @@ -97,8 +110,9 @@ data RawModel : Set where LinearInY : LinearFunction → RawModel LinearInZ : LinearFunction → RawModel LiteralInYOrLinearInZ : LinearFunction → RawModel - QuadraticInY : QuadraticFunction → RawModel - QuadraticInZ : QuadraticFunction → RawModel + QuadraticInY : OneVariableQuadraticFunction → RawModel + QuadraticInZ : OneVariableQuadraticFunction → RawModel + QuadraticInXAndY : TwoVariableQuadraticFunction → RawModel SubtractedSizes : LinearFunction → CostingNat → RawModel ConstAboveDiagonal : CostingNat → RawModel → RawModel ConstBelowDiagonal : CostingNat → RawModel → RawModel @@ -107,8 +121,8 @@ data RawModel : Set where {-# COMPILE GHC RawModel = data Model (ConstantCost | AddedSizes | MultipliedSizes | MinSize | MaxSize | LinearInX | LinearInY | LinearInZ | LiteralInYOrLinearInZ | QuadraticInY | QuadraticInZ | - SubtractedSizes | ConstAboveDiagonal | ConstBelowDiagonal | - ConstOffDiagonal) #-} + QuadraticInXAndY | SubtractedSizes | ConstAboveDiagonal | + ConstBelowDiagonal | ConstOffDiagonal) #-} record CpuAndMemoryModel : Set where constructor mkCpuAndMemoryModel diff --git a/plutus-metatheory/src/Opts.hs b/plutus-metatheory/src/Opts.hs index a658a6e2b87..283d8034de6 100644 --- a/plutus-metatheory/src/Opts.hs +++ b/plutus-metatheory/src/Opts.hs @@ -16,7 +16,7 @@ import PlutusCore.Executable.Parsers import System.Exit (exitFailure) import System.IO (stderr) -import PlutusCore.Evaluation.Machine.ExBudgetingDefaults (defaultCekMachineCosts) +import PlutusCore.Evaluation.Machine.ExBudgetingDefaults (defaultCekMachineCostsForTesting) import PlutusCore.Evaluation.Machine.SimpleBuiltinCostModel import UntypedPlutusCore.Evaluation.Machine.Cek.CekMachineCosts (CekMachineCosts) @@ -87,7 +87,7 @@ commands = hsubparser ( type CostModel = (CekMachineCosts , BuiltinCostMap) addJSONParameters :: Command a -> Command CostModel -addJSONParameters = fmap (const (defaultCekMachineCosts, defaultSimpleBuiltinCostModel)) +addJSONParameters = fmap (const (defaultCekMachineCostsForTesting, defaultSimpleBuiltinCostModel)) execP :: IO (Command CostModel) execP = addJSONParameters <$> execParser (info (commands <**> helper) diff --git a/plutus-metatheory/test/TestNEAT.hs b/plutus-metatheory/test/TestNEAT.hs index bf7b0c53c1f..ea817745c53 100644 --- a/plutus-metatheory/test/TestNEAT.hs +++ b/plutus-metatheory/test/TestNEAT.hs @@ -104,7 +104,7 @@ prop_Term tyG tmG = do -- 2. run production CK against metatheory CK tmPlcCK <- withExceptT CkP $ liftEither $ - evaluateCkNoEmit defaultBuiltinsRuntime tm `catchError` handleError ty + evaluateCkNoEmit defaultBuiltinsRuntimeForTesting tm `catchError` handleError ty tmCK <- withExceptT (const $ Ctrex (CtrexTermEvaluationFail "0" tyG tmG)) $ liftEither $ runTCKAgda tmDB tmCKN <- withExceptT FVErrorP $ unDeBruijnTerm tmCK @@ -147,6 +147,6 @@ prop_Term tyG tmG = do -- 4. run prod untyped CEK against meta untyped CEK tmU''' <- withExceptT UCekP $ liftEither $ - U.evaluateCekNoEmit defaultCekParameters tmU'' `catchError` handleUError + U.evaluateCekNoEmit defaultCekParametersForTesting tmU'' `catchError` handleUError unless (tmU' == tmU''') $ throwCtrex (CtrexUntypedTermEvaluationMismatch tyG tmG [("meta U" , tmU'),("prod U" , tmU'')]) diff --git a/plutus-tx-plugin/plutus-tx-plugin.cabal b/plutus-tx-plugin/plutus-tx-plugin.cabal index 2ebff4e86e2..6b5280f7744 100644 --- a/plutus-tx-plugin/plutus-tx-plugin.cabal +++ b/plutus-tx-plugin/plutus-tx-plugin.cabal @@ -1,6 +1,6 @@ cabal-version: 3.0 name: plutus-tx-plugin -version: 1.28.0.0 +version: 1.29.0.0 license: Apache-2.0 license-files: LICENSE @@ -83,8 +83,8 @@ library , flat ^>=0.6 , lens , mtl - , plutus-core:{plutus-core, plutus-ir} ^>=1.28 - , plutus-tx ^>=1.28 + , plutus-core:{plutus-core, plutus-ir} ^>=1.29 + , plutus-tx ^>=1.29 , prettyprinter , PyF >=0.11.1.0 , template-haskell @@ -109,7 +109,7 @@ executable gen-plugin-opts-doc , containers , lens , optparse-applicative - , plutus-tx-plugin ^>=1.28 + , plutus-tx-plugin ^>=1.29 , prettyprinter , PyF >=0.11.1.0 , text @@ -128,6 +128,7 @@ test-suite plutus-tx-plugin-tests other-modules: AsData.Budget.Spec AsData.Budget.Types + AssocMap.Spec Blueprint.Tests Blueprint.Tests.Lib Blueprint.Tests.Lib.AsData.Blueprint @@ -154,6 +155,7 @@ test-suite plutus-tx-plugin-tests Plugin.NoTrace.Lib Plugin.NoTrace.Spec Plugin.NoTrace.WithoutTraces + Plugin.NoTrace.WithPreservedLogging Plugin.NoTrace.WithTraces Plugin.Optimization.Spec Plugin.Patterns.Spec @@ -182,9 +184,10 @@ test-suite plutus-tx-plugin-tests , hedgehog , lens , mtl - , plutus-core:{plutus-core, plutus-core-testlib} ^>=1.28 - , plutus-tx-plugin ^>=1.28 - , plutus-tx:{plutus-tx, plutus-tx-testlib} ^>=1.28 + , plutus-core:{plutus-core, plutus-core-testlib} ^>=1.29 + , plutus-tx-plugin ^>=1.29 + , plutus-tx-test-util + , plutus-tx:{plutus-tx, plutus-tx-testlib} ^>=1.29 , serialise , tasty , tasty-golden @@ -192,6 +195,7 @@ test-suite plutus-tx-plugin-tests , tasty-hunit , template-haskell , text + , these default-extensions: Strict ghc-options: -threaded -rtsopts -with-rtsopts=-N @@ -212,9 +216,9 @@ test-suite size hs-source-dirs: test/size build-depends: , base >=4.9 && <5.0 - , plutus-core:{plutus-core, plutus-core-testlib} ^>=1.28 - , plutus-tx-plugin ^>=1.28 - , plutus-tx:{plutus-tx, plutus-tx-testlib} ^>=1.28 + , plutus-core:{plutus-core, plutus-core-testlib} ^>=1.29 + , plutus-tx-plugin ^>=1.29 + , plutus-tx:{plutus-tx, plutus-tx-testlib} ^>=1.29 , tagged , tasty diff --git a/plutus-tx-plugin/src/PlutusTx/Compiler/Builtins.hs b/plutus-tx-plugin/src/PlutusTx/Compiler/Builtins.hs index 5219ad7bc9e..93b0ff92866 100644 --- a/plutus-tx-plugin/src/PlutusTx/Compiler/Builtins.hs +++ b/plutus-tx-plugin/src/PlutusTx/Compiler/Builtins.hs @@ -49,11 +49,10 @@ import Language.Haskell.TH.Syntax qualified as TH import Control.Monad.Reader (asks) import Data.ByteString qualified as BS -import Data.Foldable (for_) import Data.Functor import Data.Proxy import Data.Text (Text) -import PlutusPrelude (enumerate) +import PlutusPrelude (enumerate, for_) {- Note [Mapping builtins] We want the user to be able to call the Plutus builtins as normal Haskell functions. diff --git a/plutus-tx-plugin/src/PlutusTx/Compiler/Expr.hs b/plutus-tx-plugin/src/PlutusTx/Compiler/Expr.hs index f8f4b8459ea..61d50b7c0a0 100644 --- a/plutus-tx-plugin/src/PlutusTx/Compiler/Expr.hs +++ b/plutus-tx-plugin/src/PlutusTx/Compiler/Expr.hs @@ -120,7 +120,7 @@ compileLiteral :: m (PIRTerm uni fun) compileLiteral = \case -- Just accept any kind of number literal, we'll complain about types we don't support elsewhere - (GHC.LitNumber _ i) -> pure $ PIR.embed $ PLC.mkConstant annMayInline i + (GHC.LitNumber _ i) -> pure $ PIR.embedTerm $ PLC.mkConstant annMayInline i GHC.LitString _ -> throwPlain $ UnsupportedError "Literal string (maybe you need to use OverloadedStrings)" GHC.LitChar _ -> throwPlain $ UnsupportedError "Literal char" GHC.LitFloat _ -> throwPlain $ UnsupportedError "Literal float" diff --git a/plutus-tx-plugin/test/AsData/Budget/9.6/onlyUseFirstField-budget.budget.golden b/plutus-tx-plugin/test/AsData/Budget/9.6/onlyUseFirstField-budget.budget.golden index 93472485ec1..80fcd653557 100644 --- a/plutus-tx-plugin/test/AsData/Budget/9.6/onlyUseFirstField-budget.budget.golden +++ b/plutus-tx-plugin/test/AsData/Budget/9.6/onlyUseFirstField-budget.budget.golden @@ -1,2 +1,2 @@ -({cpu: 2798622 +({cpu: 2377522 | mem: 8550}) \ No newline at end of file diff --git a/plutus-tx-plugin/test/AsData/Budget/9.6/patternMatching-budget.budget.golden b/plutus-tx-plugin/test/AsData/Budget/9.6/patternMatching-budget.budget.golden index 69c27a04457..542195af9f6 100644 --- a/plutus-tx-plugin/test/AsData/Budget/9.6/patternMatching-budget.budget.golden +++ b/plutus-tx-plugin/test/AsData/Budget/9.6/patternMatching-budget.budget.golden @@ -1,2 +1,2 @@ -({cpu: 8547795 +({cpu: 5749488 | mem: 21176}) \ No newline at end of file diff --git a/plutus-tx-plugin/test/AsData/Budget/9.6/recordFields-budget-manual.budget.golden b/plutus-tx-plugin/test/AsData/Budget/9.6/recordFields-budget-manual.budget.golden index e5ba4bf6d0e..824333ee094 100644 --- a/plutus-tx-plugin/test/AsData/Budget/9.6/recordFields-budget-manual.budget.golden +++ b/plutus-tx-plugin/test/AsData/Budget/9.6/recordFields-budget-manual.budget.golden @@ -1,2 +1,2 @@ -({cpu: 10464601 +({cpu: 7269599 | mem: 24274}) \ No newline at end of file diff --git a/plutus-tx-plugin/test/AsData/Budget/9.6/recordFields-budget.budget.golden b/plutus-tx-plugin/test/AsData/Budget/9.6/recordFields-budget.budget.golden index b1afa13b600..b24fc9187b8 100644 --- a/plutus-tx-plugin/test/AsData/Budget/9.6/recordFields-budget.budget.golden +++ b/plutus-tx-plugin/test/AsData/Budget/9.6/recordFields-budget.budget.golden @@ -1,2 +1,2 @@ -({cpu: 16713361 +({cpu: 12721754 | mem: 45526}) \ No newline at end of file diff --git a/plutus-tx-plugin/test/AsData/Budget/Spec.hs b/plutus-tx-plugin/test/AsData/Budget/Spec.hs index f17e22b94c2..d1041a54c47 100644 --- a/plutus-tx-plugin/test/AsData/Budget/Spec.hs +++ b/plutus-tx-plugin/test/AsData/Budget/Spec.hs @@ -20,8 +20,7 @@ import AsData.Budget.Types tests :: TestNested tests = - testNestedGhc - ("AsData" </> "Budget") + testNested ("AsData" </> "Budget") . pure $ testNestedGhc [ goldenPirReadable "onlyUseFirstField" onlyUseFirstField , goldenUPlcReadable "onlyUseFirstField" onlyUseFirstField , goldenEvalCekCatch "onlyUseFirstField" [onlyUseFirstField `unsafeApplyCode` inp] diff --git a/plutus-tx-plugin/test/AssocMap/Spec.hs b/plutus-tx-plugin/test/AssocMap/Spec.hs new file mode 100644 index 00000000000..2f3982ccf84 --- /dev/null +++ b/plutus-tx-plugin/test/AssocMap/Spec.hs @@ -0,0 +1,806 @@ +{-# LANGUAGE BangPatterns #-} +{-# LANGUAGE DataKinds #-} +{-# LANGUAGE FlexibleContexts #-} +{-# LANGUAGE LambdaCase #-} +{-# LANGUAGE MultiParamTypeClasses #-} +{-# LANGUAGE NegativeLiterals #-} +{-# LANGUAGE OverloadedStrings #-} +{-# LANGUAGE PatternSynonyms #-} +{-# LANGUAGE TemplateHaskell #-} +{-# LANGUAGE UndecidableInstances #-} +{-# LANGUAGE ViewPatterns #-} +{-# OPTIONS_GHC -fplugin-opt PlutusTx.Plugin:context-level=0 #-} +{-# OPTIONS_GHC -fplugin-opt PlutusTx.Plugin:defer-errors #-} +{-# LANGUAGE FlexibleInstances #-} +{-# LANGUAGE MonoLocalBinds #-} + +module AssocMap.Spec where + +import Test.Tasty.Extras + +import Data.List (nubBy, sort) +import Data.Map.Strict qualified as Map +import Data.These qualified as Haskell +import Hedgehog (Gen, MonadTest, Property, Range, forAll, property, (===)) +import Hedgehog.Gen qualified as Gen +import Hedgehog.Range qualified as Range +import PlutusTx.AssocMap qualified as AssocMap +import PlutusTx.Builtins qualified as PlutusTx +import PlutusTx.Code +import PlutusTx.Data.AssocMap qualified as Data.AssocMap +import PlutusTx.IsData () +import PlutusTx.IsData qualified as P +import PlutusTx.Lift (liftCodeDef, makeLift) +import PlutusTx.List qualified as PlutusTx +import PlutusTx.Prelude qualified as PlutusTx +import PlutusTx.Show qualified as PlutusTx +import PlutusTx.Test +import PlutusTx.Test.Util.Compiled (cekResultMatchesHaskellValue, compiledCodeToTerm, + unsafeRunTermCek) +import PlutusTx.TH (compile) +import PlutusTx.These (These (..), these) +import Test.Tasty (TestTree, testGroup) +import Test.Tasty.Hedgehog (testProperty) + + +-- | Test the performance and interaction between 'insert', 'delete' and 'lookup'. +map1 :: + CompiledCode + ( Integer -> + ( Maybe PlutusTx.BuiltinByteString + , Maybe PlutusTx.BuiltinByteString + , Maybe PlutusTx.BuiltinByteString + , Maybe PlutusTx.BuiltinByteString + , Maybe PlutusTx.BuiltinByteString + ) + ) +map1 = + $$( compile + [|| + \n -> + let m :: Data.AssocMap.Map Integer PlutusTx.BuiltinByteString + m = + foldr + (\i -> + Data.AssocMap.insert + (n PlutusTx.+ i) + (PlutusTx.encodeUtf8 (PlutusTx.show i)) + ) + (Data.AssocMap.singleton n "0") + (PlutusTx.enumFromTo 1 10) + m' = Data.AssocMap.delete (n PlutusTx.+ 5) m + in ( Data.AssocMap.lookup n m + , Data.AssocMap.lookup (n PlutusTx.+ 5) m + , Data.AssocMap.lookup (n PlutusTx.+ 10) m + , Data.AssocMap.lookup (n PlutusTx.+ 20) m + , Data.AssocMap.lookup (n PlutusTx.+ 5) m' + ) + ||] + ) + +-- | Test that 'unionWith' is implemented correctly. Due to the nature of 'Map k v', +-- some type errors are only caught when running the PlutusTx compiler on code which uses +-- 'unionWith'. +map2 :: CompiledCode (Integer -> [(Integer, PlutusTx.BuiltinString)]) +map2 = + $$( compile + [|| + \n -> + let m1 = + Data.AssocMap.unsafeFromList + [ (n PlutusTx.+ 1, "one") + , (n PlutusTx.+ 2, "two") + , (n PlutusTx.+ 3, "three") + , (n PlutusTx.+ 4, "four") + , (n PlutusTx.+ 5, "five") + ] + m2 = + Data.AssocMap.unsafeFromList + [ (n PlutusTx.+ 3, "THREE") + , (n PlutusTx.+ 4, "FOUR") + , (n PlutusTx.+ 6, "SIX") + , (n PlutusTx.+ 7, "SEVEN") + ] + m = Data.AssocMap.unionWith PlutusTx.appendByteString m1 m2 + in PlutusTx.fmap (\(k, v) -> (k, PlutusTx.decodeUtf8 v)) (Data.AssocMap.toList m) + ||] + ) + +-- | Similar to map2, but uses 'union' instead of 'unionWith'. Evaluating 'map3' and 'map2' +-- should yield the same result. +map3 :: CompiledCode (Integer -> [(Integer, PlutusTx.BuiltinString)]) +map3 = + $$( compile + [|| + \n -> + let m1 = + Data.AssocMap.unsafeFromList + [ (n PlutusTx.+ 1, "one") + , (n PlutusTx.+ 2, "two") + , (n PlutusTx.+ 3, "three") + , (n PlutusTx.+ 4, "four") + , (n PlutusTx.+ 5, "five") + ] + m2 = + Data.AssocMap.unsafeFromList + [ (n PlutusTx.+ 3, "THREE") + , (n PlutusTx.+ 4, "FOUR") + , (n PlutusTx.+ 6, "SIX") + , (n PlutusTx.+ 7, "SEVEN") + ] + m = Data.AssocMap.union m1 m2 + f = these id id PlutusTx.appendByteString + in PlutusTx.fmap (\(k, v) -> (k, PlutusTx.decodeUtf8 (f v))) (Data.AssocMap.toList m) + ||] + ) + +lookupProgram :: CompiledCode (Integer -> AssocMap.Map Integer Integer -> Maybe Integer) +lookupProgram = $$(compile [|| AssocMap.lookup ||]) + +dataLookupProgram :: CompiledCode (Integer -> Data.AssocMap.Map Integer Integer -> Maybe Integer) +dataLookupProgram = $$(compile [|| Data.AssocMap.lookup ||]) + +memberProgram :: CompiledCode (Integer -> AssocMap.Map Integer Integer -> Bool) +memberProgram = $$(compile [|| AssocMap.member ||]) + +dataMemberProgram :: CompiledCode (Integer -> Data.AssocMap.Map Integer Integer -> Bool) +dataMemberProgram = $$(compile [|| Data.AssocMap.member ||]) + +insertProgram + :: CompiledCode + ( Integer + -> Integer + -> AssocMap.Map Integer Integer + -> [(Integer, Integer)] + ) +insertProgram = + $$(compile + [|| \k v m -> + PlutusTx.sort $ AssocMap.toList $ AssocMap.insert k v m + ||]) + +dataInsertProgram + :: CompiledCode + ( Integer + -> Integer + -> Data.AssocMap.Map Integer Integer + -> [(Integer, Integer)] + ) +dataInsertProgram = + $$(compile + [|| \k v m -> + PlutusTx.sort $ Data.AssocMap.toList $ Data.AssocMap.insert k v m + ||]) + +deleteProgram + :: CompiledCode + ( Integer + -> AssocMap.Map Integer Integer + -> [(Integer, Integer)] + ) +deleteProgram = + $$(compile + [|| \k m -> + PlutusTx.sort $ AssocMap.toList $ AssocMap.delete k m + ||]) + +dataDeleteProgram + :: CompiledCode + ( Integer + -> Data.AssocMap.Map Integer Integer + -> [(Integer, Integer)] + ) +dataDeleteProgram = + $$(compile + [|| \k m -> + PlutusTx.sort $ Data.AssocMap.toList $ Data.AssocMap.delete k m + ||]) + +allProgram + :: CompiledCode + ( Integer + -> AssocMap.Map Integer Integer + -> Bool + ) +allProgram = + $$(compile [|| \num m -> AssocMap.all (\x -> x PlutusTx.< num) m ||]) + +dataAllProgram + :: CompiledCode + ( Integer + -> Data.AssocMap.Map Integer Integer + -> Bool + ) +dataAllProgram = + $$(compile [|| \num m -> Data.AssocMap.all (\x -> x PlutusTx.< num) m ||]) + +dataAnyProgram + :: CompiledCode + ( Integer + -> Data.AssocMap.Map Integer Integer + -> Bool + ) +dataAnyProgram = + $$(compile [|| \num m -> Data.AssocMap.any (\x -> x PlutusTx.< num) m ||]) + +keysProgram + :: CompiledCode + ( AssocMap.Map Integer Integer + -> [Integer] + ) +keysProgram = + $$(compile [|| AssocMap.keys ||]) + +dataNoDuplicateKeysProgram + :: CompiledCode + ( Data.AssocMap.Map Integer Integer + -> Bool + ) +dataNoDuplicateKeysProgram = + $$(compile [|| Data.AssocMap.noDuplicateKeys ||]) + +unionProgram + :: CompiledCode + ( AssocMap.Map Integer Integer + -> AssocMap.Map Integer Integer + -> [(Integer, These Integer Integer)] + ) +unionProgram = + $$(compile + [|| \m1 m2 -> + PlutusTx.sort $ AssocMap.toList $ AssocMap.union m1 m2 + ||]) + +dataUnionProgram + :: CompiledCode + ( Data.AssocMap.Map Integer Integer + -> Data.AssocMap.Map Integer Integer + -> [(Integer, These Integer Integer)] + ) +dataUnionProgram = + $$(compile + [|| \m1 m2 -> + PlutusTx.sort $ Data.AssocMap.toList $ Data.AssocMap.union m1 m2 + ||]) + +unionWithProgram + :: CompiledCode + ( AssocMap.Map Integer Integer + -> AssocMap.Map Integer Integer + -> [(Integer, Integer)] + ) +unionWithProgram = + $$(compile + [|| \m1 m2 -> + PlutusTx.sort $ AssocMap.toList $ AssocMap.unionWith (\x _ -> x) m1 m2 + ||]) + +dataUnionWithProgram + :: CompiledCode + ( Data.AssocMap.Map Integer Integer + -> Data.AssocMap.Map Integer Integer + -> [(Integer, Integer)] + ) +dataUnionWithProgram = + $$(compile + [|| \m1 m2 -> + PlutusTx.sort $ Data.AssocMap.toList $ Data.AssocMap.unionWith (\x _ -> x) m1 m2 + ||]) + +encodedDataAssocMap + :: CompiledCode + ( Data.AssocMap.Map Integer Integer + -> PlutusTx.BuiltinData + ) +encodedDataAssocMap = $$(compile [|| P.toBuiltinData ||]) + +encodedAssocMap + :: CompiledCode + ( AssocMap.Map Integer Integer + -> PlutusTx.BuiltinData + ) +encodedAssocMap = $$(compile [|| P.toBuiltinData ||]) + +mDecodedDataAssocMap + :: CompiledCode + ( Data.AssocMap.Map Integer Integer + -> PlutusTx.Maybe [(Integer, Integer)] + ) +mDecodedDataAssocMap = + $$(compile + [|| fmap (PlutusTx.sort . Data.AssocMap.toList) . P.fromBuiltinData . P.toBuiltinData + ||]) + +mDecodedAssocMap + :: CompiledCode + ( AssocMap.Map Integer Integer + -> PlutusTx.Maybe [(Integer, Integer)] + ) +mDecodedAssocMap = + $$(compile + [|| fmap (PlutusTx.sort . AssocMap.toList) . P.fromBuiltinData . P.toBuiltinData + ||]) + +decodedDataAssocMap + :: CompiledCode + ( Data.AssocMap.Map Integer Integer + -> [(Integer, Integer)] + ) +decodedDataAssocMap = + $$(compile + [|| PlutusTx.sort . Data.AssocMap.toList . P.unsafeFromBuiltinData . P.toBuiltinData + ||]) + +decodedAssocMap + :: CompiledCode + ( AssocMap.Map Integer Integer + -> [(Integer, Integer)] + ) +decodedAssocMap = + $$(compile + [|| PlutusTx.sort . AssocMap.toList . P.unsafeFromBuiltinData . P.toBuiltinData + ||]) + +-- | The semantics of PlutusTx maps and their operations. +-- The 'PlutusTx' implementations maps ('Data.AssocMap.Map' and 'AssocMap.Map') +-- are checked against the semantics to ensure correctness. +newtype AssocMapS k v = AssocMapS [(k, v)] + deriving stock (Show, Eq) + +semanticsToAssocMap :: AssocMapS k v -> AssocMap.Map k v +semanticsToAssocMap = AssocMap.unsafeFromList . toListS + +semanticsToDataAssocMap + :: (P.ToData k, P.ToData v) + => AssocMapS k v -> Data.AssocMap.Map k v +semanticsToDataAssocMap = Data.AssocMap.unsafeFromList . toListS + +assocMapToSemantics :: AssocMap.Map k v -> AssocMapS k v +assocMapToSemantics = unsafeFromListS . AssocMap.toList + +dataAssocMapToSemantics + :: (P.UnsafeFromData k, P.UnsafeFromData v) + => Data.AssocMap.Map k v -> AssocMapS k v +dataAssocMapToSemantics = unsafeFromListS . Data.AssocMap.toList + +nullS :: AssocMapS k v -> Bool +nullS (AssocMapS l) = null l + +sortS :: (Ord k, Ord v) => AssocMapS k v -> AssocMapS k v +sortS (AssocMapS l) = AssocMapS $ sort l + +toListS :: AssocMapS k v -> [(k, v)] +toListS (AssocMapS l) = l + +unsafeFromListS :: [(k, v)] -> AssocMapS k v +unsafeFromListS = AssocMapS + +safeFromListS :: Ord k => [(k, v)] -> AssocMapS k v +safeFromListS = AssocMapS . Map.toList . Map.fromList + +lookupS :: Integer -> AssocMapS Integer Integer -> Maybe Integer +lookupS k (AssocMapS l) = Map.lookup k . Map.fromList $ l + +memberS :: Integer -> AssocMapS Integer Integer -> Bool +memberS k (AssocMapS l) = Map.member k . Map.fromList $ l + +insertS :: Integer -> Integer -> AssocMapS Integer Integer -> AssocMapS Integer Integer +insertS k v (AssocMapS l) = + AssocMapS . Map.toList . Map.insert k v . Map.fromList $ l + +deleteS :: Integer -> AssocMapS Integer Integer -> AssocMapS Integer Integer +deleteS k (AssocMapS l) = + AssocMapS . Map.toList . Map.delete k . Map.fromList $ l + +allS :: (Integer -> Bool) -> AssocMapS Integer Integer -> Bool +allS p (AssocMapS l) = all (p . snd) l + +anyS :: (Integer -> Bool) -> AssocMapS Integer Integer -> Bool +anyS p (AssocMapS l) = any (p . snd) l + +keysS :: AssocMapS Integer Integer -> [Integer] +keysS (AssocMapS l) = map fst l + +noDuplicateKeysS :: AssocMapS Integer Integer -> Bool +noDuplicateKeysS (AssocMapS l) = + length l == length (nubBy (\(k1, _) (k2, _) -> k1 == k2) l) + +mapS :: (a -> b) -> AssocMapS k a -> AssocMapS k b +mapS f (AssocMapS l) = AssocMapS $ map (\(k, v) -> (k, f v)) l + +makeLift ''AssocMapS + +-- | The semantics of 'union' is based on the 'AssocMap' implementation. +-- The code is duplicated here to avoid any issues if the 'AssocMap' implementation changes. +unionS + :: AssocMapS Integer Integer + -> AssocMapS Integer Integer + -> AssocMapS Integer (Haskell.These Integer Integer) +unionS (AssocMapS ls) (AssocMapS rs) = + let + f a b' = case b' of + Nothing -> Haskell.This a + Just b -> Haskell.These a b + + ls' = fmap (\(c, i) -> (c, f i (lookupS c (AssocMapS rs)))) ls + + -- Keeps only those keys which don't appear in the left map. + rs' = filter (\(c, _) -> not (any (\(c', _) -> c' == c) ls)) rs + + rs'' = fmap (fmap Haskell.That) rs' + in + AssocMapS (ls' ++ rs'') + +haskellToPlutusThese :: Haskell.These a b -> These a b +haskellToPlutusThese = \case + Haskell.This a -> This a + Haskell.That b -> That b + Haskell.These a b -> These a b + +unionWithS + :: (Integer -> Integer -> Integer) + -> AssocMapS Integer Integer + -> AssocMapS Integer Integer + -> AssocMapS Integer Integer +unionWithS merge (AssocMapS ls) (AssocMapS rs) = + AssocMapS + . Map.toList + $ Map.unionWith merge (Map.fromList ls) (Map.fromList rs) + +genAssocMapS :: Gen (AssocMapS Integer Integer) +genAssocMapS = + AssocMapS . Map.toList <$> Gen.map rangeLength genPair + where + genPair :: Gen (Integer, Integer) + genPair = do + (,) <$> Gen.integral rangeElem <*> Gen.integral rangeElem + +genUnsafeAssocMapS :: Gen (AssocMapS Integer Integer) +genUnsafeAssocMapS = do + AssocMapS <$> Gen.list rangeLength genPair + where + genPair :: Gen (Integer, Integer) + genPair = do + (,) <$> Gen.integral rangeElem <*> Gen.integral rangeElem + +-- | The 'Equivalence' class is used to define an equivalence relation +-- between `AssocMapS` and the 'PlutusTx' implementations. +class Equivalence l where + (~~) :: + ( MonadTest m + , Show k + , Show v + , Ord k + , Ord v + , P.UnsafeFromData k + , P.UnsafeFromData v + ) => AssocMapS k v -> l k v -> m () + +-- | An `AssocMap.Map` is equivalent to an `AssocMapS` if they have the same elements. +instance Equivalence AssocMap.Map where + assocMapS ~~ assocMap = + sortS assocMapS === sortS (assocMapToSemantics assocMap) + +-- | An `Data.AssocMap.Map` is equivalent to an `AssocMapS` if they have the same elements. +instance Equivalence Data.AssocMap.Map where + assocMapS ~~ dataAssocMap = + sortS assocMapS === sortS (dataAssocMapToSemantics dataAssocMap) + +rangeElem :: Range Integer +rangeElem = Range.linear 0 100 + +rangeLength :: Range Int +rangeLength = Range.linear 0 100 + +safeFromListSpec :: Property +safeFromListSpec = property $ do + assocMapS <- forAll genAssocMapS + let assocMap = AssocMap.safeFromList . toListS $ assocMapS + dataAssocMap = Data.AssocMap.safeFromList . toListS $ assocMapS + assocMapS ~~ assocMap + assocMapS ~~ dataAssocMap + +unsafeFromListSpec :: Property +unsafeFromListSpec = property $ do + assocMapS <- forAll genAssocMapS + let assocMap = AssocMap.unsafeFromList . toListS $ assocMapS + dataAssocMap = Data.AssocMap.unsafeFromList . toListS $ assocMapS + assocMapS ~~ assocMap + assocMapS ~~ dataAssocMap + +lookupSpec :: Property +lookupSpec = property $ do + assocMapS <- forAll genAssocMapS + key <- forAll $ Gen.integral rangeElem + let assocMap = semanticsToAssocMap assocMapS + dataAssocMap = semanticsToDataAssocMap assocMapS + expected = lookupS key assocMapS + cekResultMatchesHaskellValue + ( compiledCodeToTerm + $ lookupProgram + `unsafeApplyCode` (liftCodeDef key) + `unsafeApplyCode` (liftCodeDef assocMap) + ) + (===) + expected + cekResultMatchesHaskellValue + ( compiledCodeToTerm + $ dataLookupProgram + `unsafeApplyCode` (liftCodeDef key) + `unsafeApplyCode` (liftCodeDef dataAssocMap) + ) + (===) + expected + +memberSpec :: Property +memberSpec = property $ do + assocMapS <- forAll genAssocMapS + key <- forAll $ Gen.integral rangeElem + let assocMap = semanticsToAssocMap assocMapS + dataAssocMap = semanticsToDataAssocMap assocMapS + expected = memberS key assocMapS + cekResultMatchesHaskellValue + ( compiledCodeToTerm + $ memberProgram + `unsafeApplyCode` (liftCodeDef key) + `unsafeApplyCode` (liftCodeDef assocMap) + ) + (===) + expected + cekResultMatchesHaskellValue + ( compiledCodeToTerm + $ dataMemberProgram + `unsafeApplyCode` (liftCodeDef key) + `unsafeApplyCode` (liftCodeDef dataAssocMap) + ) + (===) + expected + +insertSpec :: Property +insertSpec = property $ do + assocMapS <- forAll genAssocMapS + key <- forAll $ Gen.integral rangeElem + value <- forAll $ Gen.integral rangeElem + let assocMap = semanticsToAssocMap assocMapS + dataAssocMap = semanticsToDataAssocMap assocMapS + expected = sortS $ insertS key value assocMapS + cekResultMatchesHaskellValue + ( compiledCodeToTerm + $ insertProgram + `unsafeApplyCode` (liftCodeDef key) + `unsafeApplyCode` (liftCodeDef value) + `unsafeApplyCode` (liftCodeDef assocMap) + ) + (===) + expected + cekResultMatchesHaskellValue + ( compiledCodeToTerm + $ dataInsertProgram + `unsafeApplyCode` (liftCodeDef key) + `unsafeApplyCode` (liftCodeDef value) + `unsafeApplyCode` (liftCodeDef dataAssocMap) + ) + (===) + expected + +deleteSpec :: Property +deleteSpec = property $ do + assocMapS <- forAll genAssocMapS + key <- forAll $ Gen.integral rangeElem + let assocMap = semanticsToAssocMap assocMapS + dataAssocMap = semanticsToDataAssocMap assocMapS + expected = sortS $ deleteS key assocMapS + cekResultMatchesHaskellValue + ( compiledCodeToTerm + $ deleteProgram + `unsafeApplyCode` (liftCodeDef key) + `unsafeApplyCode` (liftCodeDef assocMap) + ) + (===) + expected + cekResultMatchesHaskellValue + ( compiledCodeToTerm + $ dataDeleteProgram + `unsafeApplyCode` (liftCodeDef key) + `unsafeApplyCode` (liftCodeDef dataAssocMap) + ) + (===) + expected + +allSpec :: Property +allSpec = property $ do + assocMapS <- forAll genAssocMapS + num <- forAll $ Gen.integral rangeElem + let assocMap = semanticsToAssocMap assocMapS + dataAssocMap = semanticsToDataAssocMap assocMapS + expected = allS (< num) assocMapS + cekResultMatchesHaskellValue + ( compiledCodeToTerm + $ allProgram + `unsafeApplyCode` (liftCodeDef num) + `unsafeApplyCode` (liftCodeDef assocMap) + ) + (===) + expected + cekResultMatchesHaskellValue + ( compiledCodeToTerm + $ dataAllProgram + `unsafeApplyCode` (liftCodeDef num) + `unsafeApplyCode` (liftCodeDef dataAssocMap) + ) + (===) + expected + +anySpec :: Property +anySpec = property $ do + assocMapS <- forAll genAssocMapS + num <- forAll $ Gen.integral rangeElem + let dataAssocMap = semanticsToDataAssocMap assocMapS + expected = anyS (< num) assocMapS + cekResultMatchesHaskellValue + ( compiledCodeToTerm + $ dataAnyProgram + `unsafeApplyCode` (liftCodeDef num) + `unsafeApplyCode` (liftCodeDef dataAssocMap) + ) + (===) + expected + +keysSpec :: Property +keysSpec = property $ do + assocMapS <- forAll genAssocMapS + let assocMap = semanticsToAssocMap assocMapS + expected = keysS assocMapS + cekResultMatchesHaskellValue + ( compiledCodeToTerm + $ keysProgram + `unsafeApplyCode` (liftCodeDef assocMap) + ) + (===) + expected + +noDuplicateKeysSpec :: Property +noDuplicateKeysSpec = property $ do + assocMapS <- forAll genAssocMapS + let dataAssocMap = semanticsToDataAssocMap assocMapS + expected = noDuplicateKeysS assocMapS + cekResultMatchesHaskellValue + ( compiledCodeToTerm + $ dataNoDuplicateKeysProgram + `unsafeApplyCode` (liftCodeDef dataAssocMap) + ) + (===) + expected + +unionSpec :: Property +unionSpec = property $ do + -- resizing the generator for performance + assocMapS1 <- forAll (Gen.resize 20 genAssocMapS) + assocMapS2 <- forAll (Gen.resize 20 genAssocMapS) + let assocMap1 = semanticsToAssocMap assocMapS1 + assocMap2 = semanticsToAssocMap assocMapS2 + dataAssocMap1 = semanticsToDataAssocMap assocMapS1 + dataAssocMap2 = semanticsToDataAssocMap assocMapS2 + expected = mapS haskellToPlutusThese $ sortS $ unionS assocMapS1 assocMapS2 + cekResultMatchesHaskellValue + ( compiledCodeToTerm + $ unionProgram + `unsafeApplyCode` (liftCodeDef assocMap1) + `unsafeApplyCode` (liftCodeDef assocMap2) + ) + (===) + expected + cekResultMatchesHaskellValue + ( compiledCodeToTerm + $ dataUnionProgram + `unsafeApplyCode` (liftCodeDef dataAssocMap1) + `unsafeApplyCode` (liftCodeDef dataAssocMap2) + ) + (===) + expected + +unionWithSpec :: Property +unionWithSpec = property $ do + -- resizing the generator for performance + assocMapS1 <- forAll (Gen.resize 20 genAssocMapS) + assocMapS2 <- forAll (Gen.resize 20 genAssocMapS) + let assocMap1 = semanticsToAssocMap assocMapS1 + assocMap2 = semanticsToAssocMap assocMapS2 + dataAssocMap1 = semanticsToDataAssocMap assocMapS1 + dataAssocMap2 = semanticsToDataAssocMap assocMapS2 + merge i1 _ = i1 + expected = unionWithS merge assocMapS1 assocMapS2 + cekResultMatchesHaskellValue + ( compiledCodeToTerm + $ unionWithProgram + `unsafeApplyCode` (liftCodeDef assocMap1) + `unsafeApplyCode` (liftCodeDef assocMap2) + ) + (===) + expected + cekResultMatchesHaskellValue + ( compiledCodeToTerm + $ dataUnionWithProgram + `unsafeApplyCode` (liftCodeDef dataAssocMap1) + `unsafeApplyCode` (liftCodeDef dataAssocMap2) + ) + (===) + expected + +builtinDataEncodingSpec :: Property +builtinDataEncodingSpec = property $ do + assocMapS <- forAll genAssocMapS + let assocMap = semanticsToAssocMap assocMapS + dataAssocMap = semanticsToDataAssocMap assocMapS + unsafeRunTermCek + ( compiledCodeToTerm + $ encodedDataAssocMap `unsafeApplyCode` (liftCodeDef dataAssocMap) + ) + === + unsafeRunTermCek + ( compiledCodeToTerm + $ encodedAssocMap `unsafeApplyCode` (liftCodeDef assocMap) + ) + cekResultMatchesHaskellValue + ( compiledCodeToTerm + $ mDecodedAssocMap + `unsafeApplyCode` (liftCodeDef assocMap) + ) + (===) + (Just assocMapS) + cekResultMatchesHaskellValue + ( compiledCodeToTerm + $ mDecodedDataAssocMap + `unsafeApplyCode` (liftCodeDef dataAssocMap) + ) + (===) + (Just assocMapS) + cekResultMatchesHaskellValue + ( compiledCodeToTerm + $ decodedAssocMap + `unsafeApplyCode` (liftCodeDef assocMap) + ) + (===) + assocMapS + cekResultMatchesHaskellValue + ( compiledCodeToTerm + $ decodedDataAssocMap + `unsafeApplyCode` (liftCodeDef dataAssocMap) + ) + (===) + assocMapS + +goldenTests :: TestNested +goldenTests = + testNested "Budget" . pure $ testNestedGhc + [ goldenPirReadable "map1" map1 + , goldenUPlcReadable "map1" map1 + , goldenEvalCekCatch "map1" $ [map1 `unsafeApplyCode` (liftCodeDef 100)] + , goldenBudget "map1-budget" $ map1 `unsafeApplyCode` (liftCodeDef 100) + , goldenPirReadable "map2" map2 + , goldenUPlcReadable "map2" map2 + , goldenEvalCekCatch "map2" $ [map2 `unsafeApplyCode` (liftCodeDef 100)] + , goldenBudget "map2-budget" $ map2 `unsafeApplyCode` (liftCodeDef 100) + , goldenPirReadable "map3" map2 + , goldenUPlcReadable "map3" map2 + , goldenEvalCekCatch "map3" $ [map2 `unsafeApplyCode` (liftCodeDef 100)] + , goldenBudget "map3-budget" $ map2 `unsafeApplyCode` (liftCodeDef 100) + ] + +propertyTests :: TestTree +propertyTests = + testGroup "Map property tests" + [ testProperty "safeFromList" safeFromListSpec + , testProperty "unsafeFromList" unsafeFromListSpec + , testProperty "lookup" lookupSpec + , testProperty "member" memberSpec + , testProperty "insert" insertSpec + , testProperty "all" allSpec + , testProperty "any" anySpec + , testProperty "keys" keysSpec + , testProperty "noDuplicateKeys" noDuplicateKeysSpec + , testProperty "delete" deleteSpec + , testProperty "union" unionSpec + , testProperty "unionWith" unionWithSpec + , testProperty "builtinDataEncoding" builtinDataEncodingSpec + ] diff --git a/plutus-tx-plugin/test/Blueprint/Tests/Lib.hs b/plutus-tx-plugin/test/Blueprint/Tests/Lib.hs index 8965828178a..21c609e72bb 100644 --- a/plutus-tx-plugin/test/Blueprint/Tests/Lib.hs +++ b/plutus-tx-plugin/test/Blueprint/Tests/Lib.hs @@ -44,7 +44,7 @@ import PlutusTx.TH qualified as PlutusTx import Prelude import System.FilePath ((</>)) import Test.Tasty (TestName) -import Test.Tasty.Extras (TestNested) +import Test.Tasty.Extras (TestNested, embed) import Test.Tasty.Golden (goldenVsFile) import UntypedPlutusCore qualified as UPLC @@ -172,4 +172,4 @@ goldenJson name cb = do goldenPath <- asks $ foldr (</>) name let actual = goldenPath ++ ".actual.json" let golden = goldenPath ++ ".golden.json" - pure $ goldenVsFile name golden actual (cb actual) + embed $ goldenVsFile name golden actual (cb actual) diff --git a/plutus-tx-plugin/test/Budget/9.6/allCheap.budget.golden b/plutus-tx-plugin/test/Budget/9.6/allCheap.budget.golden index 6c64859412e..85d86df088d 100644 --- a/plutus-tx-plugin/test/Budget/9.6/allCheap.budget.golden +++ b/plutus-tx-plugin/test/Budget/9.6/allCheap.budget.golden @@ -1,2 +1,2 @@ -({cpu: 1413053 +({cpu: 903986 | mem: 5002}) \ No newline at end of file diff --git a/plutus-tx-plugin/test/Budget/9.6/allEmptyList.budget.golden b/plutus-tx-plugin/test/Budget/9.6/allEmptyList.budget.golden index 0a92a40c58e..258148cc9b3 100644 --- a/plutus-tx-plugin/test/Budget/9.6/allEmptyList.budget.golden +++ b/plutus-tx-plugin/test/Budget/9.6/allEmptyList.budget.golden @@ -1,2 +1,2 @@ -({cpu: 322100 +({cpu: 224100 | mem: 1500}) \ No newline at end of file diff --git a/plutus-tx-plugin/test/Budget/9.6/allExpensive.budget.golden b/plutus-tx-plugin/test/Budget/9.6/allExpensive.budget.golden index a5e21890473..526a15a25b9 100644 --- a/plutus-tx-plugin/test/Budget/9.6/allExpensive.budget.golden +++ b/plutus-tx-plugin/test/Budget/9.6/allExpensive.budget.golden @@ -1,2 +1,2 @@ -({cpu: 9391630 +({cpu: 5742960 | mem: 28520}) \ No newline at end of file diff --git a/plutus-tx-plugin/test/Budget/9.6/andCheap.budget.golden b/plutus-tx-plugin/test/Budget/9.6/andCheap.budget.golden index 5ec81710095..e39875df9fc 100644 --- a/plutus-tx-plugin/test/Budget/9.6/andCheap.budget.golden +++ b/plutus-tx-plugin/test/Budget/9.6/andCheap.budget.golden @@ -1,2 +1,2 @@ -({cpu: 920100 +({cpu: 640100 | mem: 4100}) \ No newline at end of file diff --git a/plutus-tx-plugin/test/Budget/9.6/andExpensive.budget.golden b/plutus-tx-plugin/test/Budget/9.6/andExpensive.budget.golden index b3b0725f6dd..3d610c2a12c 100644 --- a/plutus-tx-plugin/test/Budget/9.6/andExpensive.budget.golden +++ b/plutus-tx-plugin/test/Budget/9.6/andExpensive.budget.golden @@ -1,2 +1,2 @@ -({cpu: 4462100 +({cpu: 3104100 | mem: 19500}) \ No newline at end of file diff --git a/plutus-tx-plugin/test/Budget/9.6/andWithGHCOpts.budget.golden b/plutus-tx-plugin/test/Budget/9.6/andWithGHCOpts.budget.golden index d9b4732361c..47c1ddda041 100644 --- a/plutus-tx-plugin/test/Budget/9.6/andWithGHCOpts.budget.golden +++ b/plutus-tx-plugin/test/Budget/9.6/andWithGHCOpts.budget.golden @@ -1,2 +1,2 @@ -({cpu: 750063 +({cpu: 441439 | mem: 2102}) \ No newline at end of file diff --git a/plutus-tx-plugin/test/Budget/9.6/andWithLocal.budget.golden b/plutus-tx-plugin/test/Budget/9.6/andWithLocal.budget.golden index 057dce64a64..b6e6df83b49 100644 --- a/plutus-tx-plugin/test/Budget/9.6/andWithLocal.budget.golden +++ b/plutus-tx-plugin/test/Budget/9.6/andWithLocal.budget.golden @@ -1,2 +1,2 @@ -({cpu: 1003063 +({cpu: 617439 | mem: 3202}) \ No newline at end of file diff --git a/plutus-tx-plugin/test/Budget/9.6/andWithoutGHCOpts.budget.golden b/plutus-tx-plugin/test/Budget/9.6/andWithoutGHCOpts.budget.golden index e2a4b08fcd4..f857d53e9e1 100644 --- a/plutus-tx-plugin/test/Budget/9.6/andWithoutGHCOpts.budget.golden +++ b/plutus-tx-plugin/test/Budget/9.6/andWithoutGHCOpts.budget.golden @@ -1,2 +1,2 @@ -({cpu: 796063 +({cpu: 473439 | mem: 2302}) \ No newline at end of file diff --git a/plutus-tx-plugin/test/Budget/9.6/anyCheap.budget.golden b/plutus-tx-plugin/test/Budget/9.6/anyCheap.budget.golden index 6c64859412e..85d86df088d 100644 --- a/plutus-tx-plugin/test/Budget/9.6/anyCheap.budget.golden +++ b/plutus-tx-plugin/test/Budget/9.6/anyCheap.budget.golden @@ -1,2 +1,2 @@ -({cpu: 1413053 +({cpu: 903986 | mem: 5002}) \ No newline at end of file diff --git a/plutus-tx-plugin/test/Budget/9.6/anyEmptyList.budget.golden b/plutus-tx-plugin/test/Budget/9.6/anyEmptyList.budget.golden index 0a92a40c58e..258148cc9b3 100644 --- a/plutus-tx-plugin/test/Budget/9.6/anyEmptyList.budget.golden +++ b/plutus-tx-plugin/test/Budget/9.6/anyEmptyList.budget.golden @@ -1,2 +1,2 @@ -({cpu: 322100 +({cpu: 224100 | mem: 1500}) \ No newline at end of file diff --git a/plutus-tx-plugin/test/Budget/9.6/anyExpensive.budget.golden b/plutus-tx-plugin/test/Budget/9.6/anyExpensive.budget.golden index a5e21890473..526a15a25b9 100644 --- a/plutus-tx-plugin/test/Budget/9.6/anyExpensive.budget.golden +++ b/plutus-tx-plugin/test/Budget/9.6/anyExpensive.budget.golden @@ -1,2 +1,2 @@ -({cpu: 9391630 +({cpu: 5742960 | mem: 28520}) \ No newline at end of file diff --git a/plutus-tx-plugin/test/Budget/9.6/applicative.budget.golden b/plutus-tx-plugin/test/Budget/9.6/applicative.budget.golden index fab24a441d1..559585c6f74 100644 --- a/plutus-tx-plugin/test/Budget/9.6/applicative.budget.golden +++ b/plutus-tx-plugin/test/Budget/9.6/applicative.budget.golden @@ -1,2 +1,2 @@ -({cpu: 344577 +({cpu: 197308 | mem: 702}) \ No newline at end of file diff --git a/plutus-tx-plugin/test/Budget/9.6/builtinListIndexing.budget.golden b/plutus-tx-plugin/test/Budget/9.6/builtinListIndexing.budget.golden index 0ad82f19258..920479c5faf 100644 --- a/plutus-tx-plugin/test/Budget/9.6/builtinListIndexing.budget.golden +++ b/plutus-tx-plugin/test/Budget/9.6/builtinListIndexing.budget.golden @@ -1,2 +1,2 @@ -({cpu: 11720376 +({cpu: 8209207 | mem: 32730}) \ No newline at end of file diff --git a/plutus-tx-plugin/test/Budget/9.6/constAccL.budget.golden b/plutus-tx-plugin/test/Budget/9.6/constAccL.budget.golden index e1405548765..42dfd3569c1 100644 --- a/plutus-tx-plugin/test/Budget/9.6/constAccL.budget.golden +++ b/plutus-tx-plugin/test/Budget/9.6/constAccL.budget.golden @@ -1,2 +1,2 @@ -({cpu: 1690096053 +({cpu: 1054173986 | mem: 5210102}) \ No newline at end of file diff --git a/plutus-tx-plugin/test/Budget/9.6/constAccR.budget.golden b/plutus-tx-plugin/test/Budget/9.6/constAccR.budget.golden index 03979537236..4b724f6c439 100644 --- a/plutus-tx-plugin/test/Budget/9.6/constAccR.budget.golden +++ b/plutus-tx-plugin/test/Budget/9.6/constAccR.budget.golden @@ -1,2 +1,2 @@ -({cpu: 1620889053 +({cpu: 1006029986 | mem: 4909202}) \ No newline at end of file diff --git a/plutus-tx-plugin/test/Budget/9.6/constElL.budget.golden b/plutus-tx-plugin/test/Budget/9.6/constElL.budget.golden index e1405548765..42dfd3569c1 100644 --- a/plutus-tx-plugin/test/Budget/9.6/constElL.budget.golden +++ b/plutus-tx-plugin/test/Budget/9.6/constElL.budget.golden @@ -1,2 +1,2 @@ -({cpu: 1690096053 +({cpu: 1054173986 | mem: 5210102}) \ No newline at end of file diff --git a/plutus-tx-plugin/test/Budget/9.6/constElR.budget.golden b/plutus-tx-plugin/test/Budget/9.6/constElR.budget.golden index 71ba021ec10..086729adf3d 100644 --- a/plutus-tx-plugin/test/Budget/9.6/constElR.budget.golden +++ b/plutus-tx-plugin/test/Budget/9.6/constElR.budget.golden @@ -1,2 +1,2 @@ -({cpu: 1689889053 +({cpu: 1054029986 | mem: 5209202}) \ No newline at end of file diff --git a/plutus-tx-plugin/test/Budget/9.6/elemCheap.budget.golden b/plutus-tx-plugin/test/Budget/9.6/elemCheap.budget.golden index 57c7ffa916e..cb45f064b14 100644 --- a/plutus-tx-plugin/test/Budget/9.6/elemCheap.budget.golden +++ b/plutus-tx-plugin/test/Budget/9.6/elemCheap.budget.golden @@ -1,2 +1,2 @@ -({cpu: 1416589 +({cpu: 912482 | mem: 5002}) \ No newline at end of file diff --git a/plutus-tx-plugin/test/Budget/9.6/elemExpensive.budget.golden b/plutus-tx-plugin/test/Budget/9.6/elemExpensive.budget.golden index 8f4792e4c33..edabfe7b7cf 100644 --- a/plutus-tx-plugin/test/Budget/9.6/elemExpensive.budget.golden +++ b/plutus-tx-plugin/test/Budget/9.6/elemExpensive.budget.golden @@ -1,2 +1,2 @@ -({cpu: 9426990 +({cpu: 5827920 | mem: 28520}) \ No newline at end of file diff --git a/plutus-tx-plugin/test/Budget/9.6/filter.budget.golden b/plutus-tx-plugin/test/Budget/9.6/filter.budget.golden index a0a062a93b8..2c019d4ab71 100644 --- a/plutus-tx-plugin/test/Budget/9.6/filter.budget.golden +++ b/plutus-tx-plugin/test/Budget/9.6/filter.budget.golden @@ -1,2 +1,2 @@ -({cpu: 15801590 +({cpu: 8427220 | mem: 36530}) \ No newline at end of file diff --git a/plutus-tx-plugin/test/Budget/9.6/findCheap.budget.golden b/plutus-tx-plugin/test/Budget/9.6/findCheap.budget.golden index 31169e1cf87..1add9747c7e 100644 --- a/plutus-tx-plugin/test/Budget/9.6/findCheap.budget.golden +++ b/plutus-tx-plugin/test/Budget/9.6/findCheap.budget.golden @@ -1,2 +1,2 @@ -({cpu: 1436053 +({cpu: 919986 | mem: 5102}) \ No newline at end of file diff --git a/plutus-tx-plugin/test/Budget/9.6/findEmptyList.budget.golden b/plutus-tx-plugin/test/Budget/9.6/findEmptyList.budget.golden index 0a92a40c58e..258148cc9b3 100644 --- a/plutus-tx-plugin/test/Budget/9.6/findEmptyList.budget.golden +++ b/plutus-tx-plugin/test/Budget/9.6/findEmptyList.budget.golden @@ -1,2 +1,2 @@ -({cpu: 322100 +({cpu: 224100 | mem: 1500}) \ No newline at end of file diff --git a/plutus-tx-plugin/test/Budget/9.6/findExpensive.budget.golden b/plutus-tx-plugin/test/Budget/9.6/findExpensive.budget.golden index a5e21890473..526a15a25b9 100644 --- a/plutus-tx-plugin/test/Budget/9.6/findExpensive.budget.golden +++ b/plutus-tx-plugin/test/Budget/9.6/findExpensive.budget.golden @@ -1,2 +1,2 @@ -({cpu: 9391630 +({cpu: 5742960 | mem: 28520}) \ No newline at end of file diff --git a/plutus-tx-plugin/test/Budget/9.6/findIndexCheap.budget.golden b/plutus-tx-plugin/test/Budget/9.6/findIndexCheap.budget.golden index 21d7c74658e..46d7d63bd02 100644 --- a/plutus-tx-plugin/test/Budget/9.6/findIndexCheap.budget.golden +++ b/plutus-tx-plugin/test/Budget/9.6/findIndexCheap.budget.golden @@ -1,2 +1,2 @@ -({cpu: 1505053 +({cpu: 967986 | mem: 5402}) \ No newline at end of file diff --git a/plutus-tx-plugin/test/Budget/9.6/findIndexEmptyList.budget.golden b/plutus-tx-plugin/test/Budget/9.6/findIndexEmptyList.budget.golden index e54a90205c3..f801b7f3733 100644 --- a/plutus-tx-plugin/test/Budget/9.6/findIndexEmptyList.budget.golden +++ b/plutus-tx-plugin/test/Budget/9.6/findIndexEmptyList.budget.golden @@ -1,2 +1,2 @@ -({cpu: 391100 +({cpu: 272100 | mem: 1800}) \ No newline at end of file diff --git a/plutus-tx-plugin/test/Budget/9.6/findIndexExpensive.budget.golden b/plutus-tx-plugin/test/Budget/9.6/findIndexExpensive.budget.golden index 9259248d720..e3855cfba62 100644 --- a/plutus-tx-plugin/test/Budget/9.6/findIndexExpensive.budget.golden +++ b/plutus-tx-plugin/test/Budget/9.6/findIndexExpensive.budget.golden @@ -1,2 +1,2 @@ -({cpu: 13825400 +({cpu: 8403040 | mem: 38840}) \ No newline at end of file diff --git a/plutus-tx-plugin/test/Budget/9.6/gte0.budget.golden b/plutus-tx-plugin/test/Budget/9.6/gte0.budget.golden index 4cd78c6cabe..41ed362a016 100644 --- a/plutus-tx-plugin/test/Budget/9.6/gte0.budget.golden +++ b/plutus-tx-plugin/test/Budget/9.6/gte0.budget.golden @@ -1,2 +1,2 @@ -({cpu: 2209852053 +({cpu: 1335368986 | mem: 6211202}) \ No newline at end of file diff --git a/plutus-tx-plugin/test/Budget/9.6/ifThenElse1.budget.golden b/plutus-tx-plugin/test/Budget/9.6/ifThenElse1.budget.golden index c5fb80b1cd0..d9531fb66be 100644 --- a/plutus-tx-plugin/test/Budget/9.6/ifThenElse1.budget.golden +++ b/plutus-tx-plugin/test/Budget/9.6/ifThenElse1.budget.golden @@ -1,2 +1,2 @@ -({cpu: 23100 +({cpu: 16100 | mem: 200}) \ No newline at end of file diff --git a/plutus-tx-plugin/test/Budget/9.6/ifThenElse2.budget.golden b/plutus-tx-plugin/test/Budget/9.6/ifThenElse2.budget.golden index c5fb80b1cd0..d9531fb66be 100644 --- a/plutus-tx-plugin/test/Budget/9.6/ifThenElse2.budget.golden +++ b/plutus-tx-plugin/test/Budget/9.6/ifThenElse2.budget.golden @@ -1,2 +1,2 @@ -({cpu: 23100 +({cpu: 16100 | mem: 200}) \ No newline at end of file diff --git a/plutus-tx-plugin/test/Budget/9.6/listIndexing.budget.golden b/plutus-tx-plugin/test/Budget/9.6/listIndexing.budget.golden index d40f47bf8e1..8cdd5770be9 100644 --- a/plutus-tx-plugin/test/Budget/9.6/listIndexing.budget.golden +++ b/plutus-tx-plugin/test/Budget/9.6/listIndexing.budget.golden @@ -1,2 +1,2 @@ -({cpu: 10267419 +({cpu: 6492432 | mem: 32722}) \ No newline at end of file diff --git a/plutus-tx-plugin/test/Budget/9.6/lte0.budget.golden b/plutus-tx-plugin/test/Budget/9.6/lte0.budget.golden index b77a9f288b3..cf418646bd0 100644 --- a/plutus-tx-plugin/test/Budget/9.6/lte0.budget.golden +++ b/plutus-tx-plugin/test/Budget/9.6/lte0.budget.golden @@ -1,2 +1,2 @@ -({cpu: 2205842053 +({cpu: 1333915986 | mem: 6211202}) \ No newline at end of file diff --git a/plutus-tx-plugin/test/Budget/9.6/map1-budget.budget.golden b/plutus-tx-plugin/test/Budget/9.6/map1-budget.budget.golden new file mode 100644 index 00000000000..b568cd6b113 --- /dev/null +++ b/plutus-tx-plugin/test/Budget/9.6/map1-budget.budget.golden @@ -0,0 +1,2 @@ +({cpu: 306174770 +| mem: 869909}) \ No newline at end of file diff --git a/plutus-tx-plugin/test/Budget/9.6/map1.eval.golden b/plutus-tx-plugin/test/Budget/9.6/map1.eval.golden new file mode 100644 index 00000000000..2976eddf5c9 --- /dev/null +++ b/plutus-tx-plugin/test/Budget/9.6/map1.eval.golden @@ -0,0 +1,8 @@ +(constr + 0 + (constr 0 (con bytestring #30)) + (constr 0 (con bytestring #35)) + (constr 0 (con bytestring #3130)) + (constr 1) + (constr 1) +) \ No newline at end of file diff --git a/plutus-tx-plugin/test/Budget/9.6/map1.pir.golden b/plutus-tx-plugin/test/Budget/9.6/map1.pir.golden new file mode 100644 index 00000000000..dc42876c182 --- /dev/null +++ b/plutus-tx-plugin/test/Budget/9.6/map1.pir.golden @@ -0,0 +1,404 @@ +letrec + data (List :: * -> *) a | List_match where + Nil : List a + Cons : a -> List a -> List a +in +letrec + !`$fEnumBool_$cenumFromTo` : integer -> integer -> List integer + = \(x : integer) (lim : integer) -> + ifThenElse + {all dead. List integer} + (lessThanEqualsInteger x lim) + (/\dead -> + Cons {integer} x (`$fEnumBool_$cenumFromTo` (addInteger 1 x) lim)) + (/\dead -> Nil {integer}) + {all dead. dead} +in +letrec + !go : List integer -> integer -> List integer + = \(acc : List integer) (n : integer) -> + let + !x : integer = quotientInteger n 10 + in + ifThenElse + {all dead. List integer} + (equalsInteger 0 x) + (/\dead -> Cons {integer} (remainderInteger n 10) acc) + (/\dead -> go (Cons {integer} (remainderInteger n 10) acc) x) + {all dead. dead} +in +letrec + !go : + List integer -> List string -> List string + = \(ds : List integer) -> + List_match + {integer} + ds + {all dead. List string -> List string} + (/\dead -> \(x : List string) -> x) + (\(x : integer) + (xs : List integer) -> + /\dead -> + let + !acc : List string -> List string = go xs + in + \(eta : List string) -> + Cons + {string} + (ifThenElse + {all dead. string} + (equalsInteger 0 x) + (/\dead -> "0") + (/\dead -> + ifThenElse + {all dead. string} + (equalsInteger 1 x) + (/\dead -> "1") + (/\dead -> + ifThenElse + {all dead. string} + (equalsInteger 2 x) + (/\dead -> "2") + (/\dead -> + ifThenElse + {all dead. string} + (equalsInteger 3 x) + (/\dead -> "3") + (/\dead -> + ifThenElse + {all dead. string} + (equalsInteger 4 x) + (/\dead -> "4") + (/\dead -> + ifThenElse + {all dead. string} + (equalsInteger 5 x) + (/\dead -> "5") + (/\dead -> + ifThenElse + {all dead. string} + (equalsInteger 6 x) + (/\dead -> "6") + (/\dead -> + ifThenElse + {all dead. string} + (equalsInteger 7 x) + (/\dead -> "7") + (/\dead -> + ifThenElse + {all dead. string} + (equalsInteger + 8 + x) + (/\dead -> "8") + (/\dead -> + ifThenElse + {string} + (equalsInteger + 9 + x) + "9" + "<invalid digit>") + {all dead. dead}) + {all dead. dead}) + {all dead. dead}) + {all dead. dead}) + {all dead. dead}) + {all dead. dead}) + {all dead. dead}) + {all dead. dead}) + {all dead. dead}) + (acc eta)) + {all dead. dead} +in +letrec + !`$fShowBuiltinByteString_$cshowsPrec` : + integer -> integer -> List string -> List string + = \(p : integer) (n : integer) -> + ifThenElse + {all dead. List string -> List string} + (lessThanInteger n 0) + (/\dead -> + \(eta : List string) -> + Cons + {string} + "-" + (`$fShowBuiltinByteString_$cshowsPrec` + p + (subtractInteger 0 n) + eta)) + (/\dead -> go (go (Nil {integer}) n)) + {all dead. dead} +in +let + data (Tuple5 :: * -> * -> * -> * -> * -> *) a b c d e | Tuple5_match where + Tuple5 : a -> b -> c -> d -> e -> Tuple5 a b c d e + data (Tuple2 :: * -> * -> *) a b | Tuple2_match where + Tuple2 : a -> b -> Tuple2 a b +in +letrec + !go : all a. integer -> List a -> Tuple2 (List a) (List a) + = /\a -> + \(ds : integer) (ds : List a) -> + List_match + {a} + ds + {all dead. Tuple2 (List a) (List a)} + (/\dead -> Tuple2 {List a} {List a} (Nil {a}) (Nil {a})) + (\(y : a) (ys : List a) -> + /\dead -> + ifThenElse + {all dead. Tuple2 (List a) (List a)} + (equalsInteger 1 ds) + (/\dead -> + Tuple2 + {List a} + {List a} + ((let + a = List a + in + \(c : a -> a -> a) (n : a) -> c y n) + (\(ds : a) (ds : List a) -> Cons {a} ds ds) + (Nil {a})) + ys) + (/\dead -> + Tuple2_match + {List a} + {List a} + (go {a} (subtractInteger ds 1) ys) + {Tuple2 (List a) (List a)} + (\(zs : List a) (ws : List a) -> + Tuple2 {List a} {List a} (Cons {a} y zs) ws)) + {all dead. dead}) + {all dead. dead} +in +letrec + !go : List string -> integer + = \(ds : List string) -> + List_match + {string} + ds + {all dead. integer} + (/\dead -> 0) + (\(x : string) (xs : List string) -> /\dead -> addInteger 1 (go xs)) + {all dead. dead} +in +letrec + !concatBuiltinStrings : List string -> string + = \(ds : List string) -> + List_match + {string} + ds + {string} + "" + (\(x : string) (ds : List string) -> + List_match + {string} + ds + {all dead. string} + (/\dead -> x) + (\(ipv : string) (ipv : List string) -> + /\dead -> + Tuple2_match + {List string} + {List string} + (let + !n : integer = divideInteger (go ds) 2 + in + ifThenElse + {all dead. Tuple2 (List string) (List string)} + (lessThanEqualsInteger n 0) + (/\dead -> + Tuple2 {List string} {List string} (Nil {string}) ds) + (/\dead -> go {string} n ds) + {all dead. dead}) + {string} + (\(ipv : List string) (ipv : List string) -> + appendString + (concatBuiltinStrings ipv) + (concatBuiltinStrings ipv))) + {all dead. dead}) +in +let + data Unit | Unit_match where + Unit : Unit + data (Maybe :: * -> *) a | Maybe_match where + Just : a -> Maybe a + Nothing : Maybe a + !lookup : + all k a. + (\a -> a -> data) k -> + (\a -> data -> a) a -> + k -> + (\k a -> list (pair data data)) k a -> + Maybe a + = /\k a -> + \(`$dToData` : (\a -> a -> data) k) + (`$dUnsafeFromData` : (\a -> data -> a) a) + (ds : k) + (ds : (\k a -> list (pair data data)) k a) -> + Maybe_match + {data} + (let + !k : data = `$dToData` ds + in + letrec + !go : list (pair data data) -> Maybe data + = \(xs : list (pair data data)) -> + chooseList + {pair data data} + {Unit -> Maybe data} + xs + (\(ds : Unit) -> Nothing {data}) + (\(ds : Unit) -> + let + !hd : pair data data = headList {pair data data} xs + in + ifThenElse + {all dead. Maybe data} + (equalsData k (fstPair {data} {data} hd)) + (/\dead -> + let + !ds : list (pair data data) + = tailList {pair data data} xs + in + Just {data} (sndPair {data} {data} hd)) + (/\dead -> go (tailList {pair data data} xs)) + {all dead. dead}) + Unit + in + go ds) + {all dead. Maybe a} + (\(a : data) -> /\dead -> Just {a} (`$dUnsafeFromData` a)) + (/\dead -> Nothing {a}) + {all dead. dead} + data Bool | Bool_match where + True : Bool + False : Bool +in +\(n : integer) -> + let + !nt : list (pair data data) + = (let + b = (\k a -> list (pair data data)) integer bytestring + in + \(k : integer -> b -> b) (z : b) -> + letrec + !go : List integer -> b + = \(ds : List integer) -> + List_match + {integer} + ds + {all dead. b} + (/\dead -> z) + (\(y : integer) (ys : List integer) -> + /\dead -> k y (go ys)) + {all dead. dead} + in + \(eta : List integer) -> go eta) + (\(i : integer) -> + let + !ds : integer = addInteger n i + !ds : bytestring + = encodeUtf8 + (concatBuiltinStrings + (`$fShowBuiltinByteString_$cshowsPrec` + 0 + i + (Nil {string}))) + in + \(ds : (\k a -> list (pair data data)) integer bytestring) -> + let + !k : data = iData ds + !a : data = bData ds + in + letrec + !go : list (pair data data) -> list (pair data data) + = \(xs : list (pair data data)) -> + chooseList + {pair data data} + {Unit -> list (pair data data)} + xs + (\(ds : Unit) -> + mkCons {pair data data} (mkPairData k a) []) + (\(ds : Unit) -> + let + !hd : pair data data + = headList {pair data data} xs + !tl : list (pair data data) + = tailList {pair data data} xs + in + ifThenElse + {all dead. list (pair data data)} + (equalsData k (fstPair {data} {data} hd)) + (/\dead -> + mkCons {pair data data} (mkPairData k a) tl) + (/\dead -> mkCons {pair data data} hd (go tl)) + {all dead. dead}) + Unit + in + go ds) + (mkCons {pair data data} (mkPairData (iData n) (B #30)) []) + (`$fEnumBool_$cenumFromTo` 1 10) + !nt : list (pair data data) + = let + !k : data = iData (addInteger 5 n) + in + letrec + !go : list (pair data data) -> list (pair data data) + = \(xs : list (pair data data)) -> + chooseList + {pair data data} + {Unit -> list (pair data data)} + xs + (\(ds : Unit) -> []) + (\(ds : Unit) -> + let + !hd : pair data data = headList {pair data data} xs + !tl : list (pair data data) = tailList {pair data data} xs + in + ifThenElse + {all dead. list (pair data data)} + (equalsData k (fstPair {data} {data} hd)) + (/\dead -> tl) + (/\dead -> mkCons {pair data data} hd (go tl)) + {all dead. dead}) + Unit + in + go nt + in + Tuple5 + {Maybe bytestring} + {Maybe bytestring} + {Maybe bytestring} + {Maybe bytestring} + {Maybe bytestring} + (lookup {integer} {bytestring} (\(i : integer) -> iData i) unBData n nt) + (lookup + {integer} + {bytestring} + (\(i : integer) -> iData i) + unBData + (addInteger 5 n) + nt) + (lookup + {integer} + {bytestring} + (\(i : integer) -> iData i) + unBData + (addInteger 10 n) + nt) + (lookup + {integer} + {bytestring} + (\(i : integer) -> iData i) + unBData + (addInteger 20 n) + nt) + (lookup + {integer} + {bytestring} + (\(i : integer) -> iData i) + unBData + (addInteger 5 n) + nt) \ No newline at end of file diff --git a/plutus-tx-plugin/test/Budget/9.6/map1.uplc.golden b/plutus-tx-plugin/test/Budget/9.6/map1.uplc.golden new file mode 100644 index 00000000000..9553f47f06b --- /dev/null +++ b/plutus-tx-plugin/test/Budget/9.6/map1.uplc.golden @@ -0,0 +1,412 @@ +program + 1.1.0 + ((\fix1 -> + (\`$fEnumBool_$cenumFromTo` -> + (\go -> + (\go -> + (\`$fShowBuiltinByteString_$cshowsPrec` -> + (\go -> + (\go -> + (\concatBuiltinStrings + n -> + (\nt -> + (\cse -> + (\nt -> + (\lookup -> + constr 0 + [ (lookup (\i -> iData i) unBData n nt) + , (lookup + (\i -> iData i) + unBData + cse + nt) + , (lookup + (\i -> iData i) + unBData + (addInteger 10 n) + nt) + , (lookup + (\i -> iData i) + unBData + (addInteger 20 n) + nt) + , (lookup + (\i -> iData i) + unBData + cse + nt) ]) + (\`$dToData` + `$dUnsafeFromData` + ds + ds -> + force + (case + ((\k -> + fix1 + (\go + xs -> + force + (force chooseList) + xs + (\ds -> constr 1 []) + (\ds -> + (\hd -> + force + (force + ifThenElse + (equalsData + k + (force + (force + fstPair) + hd)) + (delay + ((\ds -> + constr 0 + [ (force + (force + sndPair) + hd) ]) + (force + tailList + xs))) + (delay + (go + (force + tailList + xs))))) + (force headList + xs)) + (constr 0 [])) + ds) + (`$dToData` ds)) + [ (\a -> + delay + (constr 0 + [ (`$dUnsafeFromData` + a) ])) + , (delay (constr 1 [])) ]))) + ((\k -> + fix1 + (\go xs -> + force (force chooseList) + xs + (\ds -> []) + (\ds -> + (\hd -> + (\tl -> + force + (force ifThenElse + (equalsData + k + (force + (force + fstPair) + hd)) + (delay tl) + (delay + (force mkCons + hd + (go tl))))) + (force tailList xs)) + (force headList xs)) + (constr 0 [])) + nt) + (iData cse))) + (addInteger 5 n)) + ((\z -> + (\go eta -> + go eta) + (fix1 + (\go + ds -> + force + (case + ds + [ (delay z) + , (\y + ys -> + delay + ((\ds -> + (\ds + ds -> + (\k -> + (\a -> + fix1 + (\go + xs -> + force + (force + chooseList) + xs + (\ds -> + force + mkCons + (mkPairData + k + a) + [ ]) + (\ds -> + (\hd -> + (\tl -> + force + (force + ifThenElse + (equalsData + k + (force + (force + fstPair) + hd)) + (delay + (force + mkCons + (mkPairData + k + a) + tl)) + (delay + (force + mkCons + hd + (go + tl))))) + (force + tailList + xs)) + (force + headList + xs)) + (constr 0 + [])) + ds) + (bData ds)) + (iData ds)) + (encodeUtf8 + (concatBuiltinStrings + (`$fShowBuiltinByteString_$cshowsPrec` + 0 + y + (constr 0 + []))))) + (addInteger n y) + (go ys))) ])))) + (force mkCons (mkPairData (iData n) (B #30)) []) + (`$fEnumBool_$cenumFromTo` 1 10))) + (fix1 + (\concatBuiltinStrings + ds -> + case + ds + [ "" + , (\x + ds -> + force + (case + ds + [ (delay x) + , (\ipv + ipv -> + delay + (case + ((\n -> + force + (force + ifThenElse + (lessThanEqualsInteger + n + 0) + (delay + (constr 0 + [ (constr 0 + []) + , ds ])) + (delay + (force go + n + ds)))) + (divideInteger + (go ds) + 2)) + [ (\ipv + ipv -> + appendString + (concatBuiltinStrings + ipv) + (concatBuiltinStrings + ipv)) ])) ])) ]))) + (fix1 + (\go ds -> + force + (case + ds + [ (delay 0) + , (\x xs -> + delay (addInteger 1 (go xs))) ])))) + (fix1 + (\go + arg -> + delay + (\ds + ds -> + force + (case + ds + [ (delay + (constr 0 + [(constr 0 []), (constr 0 [])])) + , (\y + ys -> + delay + (force + (force + ifThenElse + (equalsInteger 1 ds) + (delay + (constr 0 + [ (constr 1 + [y, (constr 0 [])]) + , ys ])) + (delay + (case + (force + (go (delay (\x -> x))) + (subtractInteger ds 1) + ys) + [ (\zs + ws -> + constr 0 + [ (constr 1 + [y, zs]) + , ws ]) ]))))) ]))) + (delay (\x -> x)))) + (fix1 + (\`$fShowBuiltinByteString_$cshowsPrec` p n -> + force + (force ifThenElse + (lessThanInteger n 0) + (delay + (\eta -> + constr 1 + [ "-" + , (`$fShowBuiltinByteString_$cshowsPrec` + p + (subtractInteger 0 n) + eta) ])) + (delay (go (go (constr 0 []) n))))))) + (fix1 + (\go + ds -> + force + (case + ds + [ (delay (\x -> x)) + , (\x + xs -> + delay + ((\acc + eta -> + constr 1 + [ (force + (force + ifThenElse + (equalsInteger 0 x) + (delay "0") + (delay + (force + (force + ifThenElse + (equalsInteger 1 x) + (delay "1") + (delay + (force + (force + ifThenElse + (equalsInteger + 2 + x) + (delay "2") + (delay + (force + (force + ifThenElse + (equalsInteger + 3 + x) + (delay + "3") + (delay + (force + (force + ifThenElse + (equalsInteger + 4 + x) + (delay + "4") + (delay + (force + (force + ifThenElse + (equalsInteger + 5 + x) + (delay + "5") + (delay + (force + (force + ifThenElse + (equalsInteger + 6 + x) + (delay + "6") + (delay + (force + (force + ifThenElse + (equalsInteger + 7 + x) + (delay + "7") + (delay + (force + (force + ifThenElse + (equalsInteger + 8 + x) + (delay + "8") + (delay + (force + ifThenElse + (equalsInteger + 9 + x) + "9" + "<invalid digit>")))))))))))))))))))))))))))) + , (acc eta) ]) + (go xs))) ])))) + (fix1 + (\go acc n -> + (\x -> + force + (force ifThenElse + (equalsInteger 0 x) + (delay (constr 1 [(remainderInteger n 10), acc])) + (delay + (go (constr 1 [(remainderInteger n 10), acc]) x)))) + (quotientInteger n 10)))) + (fix1 + (\`$fEnumBool_$cenumFromTo` x lim -> + force + (force ifThenElse + (lessThanEqualsInteger x lim) + (delay + (constr 1 + [x, (`$fEnumBool_$cenumFromTo` (addInteger 1 x) lim)])) + (delay (constr 0 [])))))) + (\f -> (\s -> s s) (\s -> f (\x -> s s x)))) \ No newline at end of file diff --git a/plutus-tx-plugin/test/Budget/9.6/map2-budget.budget.golden b/plutus-tx-plugin/test/Budget/9.6/map2-budget.budget.golden new file mode 100644 index 00000000000..8efce7611c2 --- /dev/null +++ b/plutus-tx-plugin/test/Budget/9.6/map2-budget.budget.golden @@ -0,0 +1,2 @@ +({cpu: 126454952 +| mem: 394122}) \ No newline at end of file diff --git a/plutus-tx-plugin/test/Budget/9.6/map2.eval.golden b/plutus-tx-plugin/test/Budget/9.6/map2.eval.golden new file mode 100644 index 00000000000..e8e3b12565c --- /dev/null +++ b/plutus-tx-plugin/test/Budget/9.6/map2.eval.golden @@ -0,0 +1,27 @@ +(constr + 1 + (constr 0 (con integer 105) (con string "five")) + (constr + 1 + (constr 0 (con integer 104) (con string "fourFOUR")) + (constr + 1 + (constr 0 (con integer 103) (con string "threeTHREE")) + (constr + 1 + (constr 0 (con integer 102) (con string "two")) + (constr + 1 + (constr 0 (con integer 101) (con string "one")) + (constr + 1 + (constr 0 (con integer 106) (con string "SIX")) + (constr + 1 (constr 0 (con integer 107) (con string "SEVEN")) (constr 0) + ) + ) + ) + ) + ) + ) +) \ No newline at end of file diff --git a/plutus-tx-plugin/test/Budget/9.6/map2.pir.golden b/plutus-tx-plugin/test/Budget/9.6/map2.pir.golden new file mode 100644 index 00000000000..c735c68c517 --- /dev/null +++ b/plutus-tx-plugin/test/Budget/9.6/map2.pir.golden @@ -0,0 +1,338 @@ +let + data Unit | Unit_match where + Unit : Unit + data (Tuple2 :: * -> * -> *) a b | Tuple2_match where + Tuple2 : a -> b -> Tuple2 a b +in +letrec + data (List :: * -> *) a | List_match where + Nil : List a + Cons : a -> List a -> List a +in +letrec + !go : list (pair data data) -> List (Tuple2 integer bytestring) + = \(xs : list (pair data data)) -> + chooseList + {pair data data} + {Unit -> List (Tuple2 integer bytestring)} + xs + (\(ds : Unit) -> Nil {Tuple2 integer bytestring}) + (\(ds : Unit) -> + let + !hd : pair data data = headList {pair data data} xs + !tl : list (pair data data) = tailList {pair data data} xs + in + Cons + {Tuple2 integer bytestring} + (Tuple2 + {integer} + {bytestring} + (unIData (fstPair {data} {data} hd)) + (unBData (sndPair {data} {data} hd))) + (go tl)) + Unit +in +letrec + !go : list (pair data data) -> list (pair data data) -> list (pair data data) + = \(acc : list (pair data data)) (xs : list (pair data data)) -> + chooseList + {pair data data} + {Unit -> list (pair data data)} + xs + (\(ds : Unit) -> acc) + (\(ds : Unit) -> + go + (mkCons {pair data data} (headList {pair data data} xs) acc) + (tailList {pair data data} xs)) + Unit +in +let + data (Maybe :: * -> *) a | Maybe_match where + Just : a -> Maybe a + Nothing : Maybe a + data Bool | Bool_match where + True : Bool + False : Bool +in +letrec + !goList : List (Tuple2 data data) -> list (pair data data) + = \(ds : List (Tuple2 data data)) -> + List_match + {Tuple2 data data} + ds + {all dead. list (pair data data)} + (/\dead -> []) + (\(d : Tuple2 data data) (ds : List (Tuple2 data data)) -> + /\dead -> + mkCons + {pair data data} + (Tuple2_match + {data} + {data} + d + {pair data data} + (\(d : data) (d : data) -> mkPairData d d)) + (goList ds)) + {all dead. dead} +in +let + !unsafeFromList : + all k a. + (\a -> a -> data) k -> + (\a -> a -> data) a -> + List (Tuple2 k a) -> + (\k a -> list (pair data data)) k a + = /\k a -> + \(`$dToData` : (\a -> a -> data) k) + (`$dToData` : (\a -> a -> data) a) -> + letrec + !go : List (Tuple2 k a) -> List (Tuple2 data data) + = \(ds : List (Tuple2 k a)) -> + List_match + {Tuple2 k a} + ds + {all dead. List (Tuple2 data data)} + (/\dead -> Nil {Tuple2 data data}) + (\(x : Tuple2 k a) (xs : List (Tuple2 k a)) -> + /\dead -> + Cons + {Tuple2 data data} + (Tuple2_match + {k} + {a} + x + {Tuple2 data data} + (\(k : k) (a : a) -> + Tuple2 + {data} + {data} + (`$dToData` k) + (`$dToData` a))) + (go xs)) + {all dead. dead} + in + \(eta : List (Tuple2 k a)) -> + let + !eta : List (Tuple2 data data) = go eta + in + goList eta +in +\(n : integer) -> + let + !nt : list (pair data data) + = unsafeFromList + {integer} + {bytestring} + (\(i : integer) -> iData i) + bData + ((let + a = Tuple2 integer bytestring + in + \(g : all b. (a -> b -> b) -> b -> b) -> + g {List a} (\(ds : a) (ds : List a) -> Cons {a} ds ds) (Nil {a})) + (/\a -> + \(c : Tuple2 integer bytestring -> a -> a) (n : a) -> + c + (Tuple2 {integer} {bytestring} (addInteger 3 n) #5448524545) + (c + (Tuple2 + {integer} + {bytestring} + (addInteger 4 n) + #464f5552) + (c + (Tuple2 + {integer} + {bytestring} + (addInteger 6 n) + #534958) + (c + (Tuple2 + {integer} + {bytestring} + (addInteger 7 n) + #534556454e) + n))))) + in + letrec + !go : list (pair data data) -> list (pair data data) + = \(xs : list (pair data data)) -> + chooseList + {pair data data} + {Unit -> list (pair data data)} + xs + (\(ds : Unit) -> []) + (\(ds : Unit) -> + let + !hd : pair data data = headList {pair data data} xs + !tl : list (pair data data) = tailList {pair data data} xs + !v' : data = sndPair {data} {data} hd + !k' : data = fstPair {data} {data} hd + in + letrec + !go : list (pair data data) -> Maybe data + = \(xs : list (pair data data)) -> + chooseList + {pair data data} + {Unit -> Maybe data} + xs + (\(ds : Unit) -> Nothing {data}) + (\(ds : Unit) -> + let + !hd : pair data data + = headList {pair data data} xs + in + ifThenElse + {all dead. Maybe data} + (equalsData k' (fstPair {data} {data} hd)) + (/\dead -> + let + !ds : list (pair data data) + = tailList {pair data data} xs + in + Just {data} (sndPair {data} {data} hd)) + (/\dead -> go (tailList {pair data data} xs)) + {all dead. dead}) + Unit + in + Maybe_match + {data} + (go nt) + {all dead. list (pair data data)} + (\(r : data) -> + /\dead -> + mkCons + {pair data data} + (mkPairData + k' + (bData (appendByteString (unBData v') (unBData r)))) + (go tl)) + (/\dead -> mkCons {pair data data} (mkPairData k' v') (go tl)) + {all dead. dead}) + Unit + in + let + !nt : list (pair data data) + = unsafeFromList + {integer} + {bytestring} + (\(i : integer) -> iData i) + bData + ((let + a = Tuple2 integer bytestring + in + \(g : all b. (a -> b -> b) -> b -> b) -> + g {List a} (\(ds : a) (ds : List a) -> Cons {a} ds ds) (Nil {a})) + (/\a -> + \(c : Tuple2 integer bytestring -> a -> a) (n : a) -> + c + (Tuple2 {integer} {bytestring} (addInteger 1 n) #6f6e65) + (c + (Tuple2 {integer} {bytestring} (addInteger 2 n) #74776f) + (c + (Tuple2 + {integer} + {bytestring} + (addInteger 3 n) + #7468726565) + (c + (Tuple2 + {integer} + {bytestring} + (addInteger 4 n) + #666f7572) + (c + (Tuple2 + {integer} + {bytestring} + (addInteger 5 n) + #66697665) + n)))))) + in + letrec + !go : list (pair data data) -> list (pair data data) + = \(xs : list (pair data data)) -> + chooseList + {pair data data} + {Unit -> list (pair data data)} + xs + (\(ds : Unit) -> []) + (\(ds : Unit) -> + let + !hd : pair data data = headList {pair data data} xs + !tl' : list (pair data data) + = go (tailList {pair data data} xs) + in + Bool_match + (let + !k : data = fstPair {data} {data} hd + in + letrec + !go : list (pair data data) -> Bool + = \(xs : list (pair data data)) -> + chooseList + {pair data data} + {Unit -> Bool} + xs + (\(ds : Unit) -> False) + (\(ds : Unit) -> + ifThenElse + {all dead. Bool} + (equalsData + k + (fstPair + {data} + {data} + (headList {pair data data} xs))) + (/\dead -> + let + !ds : list (pair data data) + = tailList {pair data data} xs + in + True) + (/\dead -> go (tailList {pair data data} xs)) + {all dead. dead}) + Unit + in + go nt) + {all dead. list (pair data data)} + (/\dead -> tl') + (/\dead -> mkCons {pair data data} hd tl') + {all dead. dead}) + Unit + in + let + !nt : list (pair data data) + = let + !rs' : list (pair data data) = go nt + !ls' : list (pair data data) = go nt + in + go rs' ls' + in + (let + a = Tuple2 integer bytestring + in + /\b -> + \(f : a -> b) -> + letrec + !go : List a -> List b + = \(ds : List a) -> + List_match + {a} + ds + {all dead. List b} + (/\dead -> Nil {b}) + (\(x : a) (xs : List a) -> /\dead -> Cons {b} (f x) (go xs)) + {all dead. dead} + in + \(eta : List a) -> go eta) + {Tuple2 integer string} + (\(ds : Tuple2 integer bytestring) -> + Tuple2_match + {integer} + {bytestring} + ds + {Tuple2 integer string} + (\(k : integer) (v : bytestring) -> + Tuple2 {integer} {string} k (decodeUtf8 v))) + (go nt) \ No newline at end of file diff --git a/plutus-tx-plugin/test/Budget/9.6/map2.uplc.golden b/plutus-tx-plugin/test/Budget/9.6/map2.uplc.golden new file mode 100644 index 00000000000..f1bf99b0f21 --- /dev/null +++ b/plutus-tx-plugin/test/Budget/9.6/map2.uplc.golden @@ -0,0 +1,272 @@ +program + 1.1.0 + ((\fix1 -> + (\go -> + (\go -> + (\goList + n -> + (\unsafeFromList -> + (\cse -> + (\cse -> + (\nt -> + (\go -> + (\nt -> + (\nt -> + fix1 + (\go + ds -> + force + (case + ds + [ (delay (constr 0 [])) + , (\x + xs -> + delay + (constr 1 + [ (case + x + [ (\k + v -> + constr 0 + [ k + , (decodeUtf8 + v) ]) ]) + , (go xs) ])) ])) + (go nt)) + ((\rs' -> + (\ls' -> go rs' ls') (go nt)) + (fix1 + (\go + xs -> + force + (force chooseList) + xs + (\ds -> []) + (\ds -> + (\hd -> + (\tl' -> + force + (case + ((\k -> + fix1 + (\go + xs -> + force + (force + chooseList) + xs + (\ds -> + constr 1 + []) + (\ds -> + force + (force + ifThenElse + (equalsData + k + (force + (force + fstPair) + (force + headList + xs))) + (delay + ((\ds -> + constr 0 + [ ]) + (force + tailList + xs))) + (delay + (go + (force + tailList + xs))))) + (constr 0 + [])) + nt) + (force + (force + fstPair) + hd)) + [ (delay tl') + , (delay + (force mkCons + hd + tl')) ])) + (go (force tailList xs))) + (force headList xs)) + (constr 0 [])) + nt))) + (unsafeFromList + (\i -> iData i) + bData + (constr 1 + [ (constr 0 [(addInteger 1 n), #6f6e65]) + , (constr 1 + [ (constr 0 + [(addInteger 2 n), #74776f]) + , (constr 1 + [ (constr 0 [cse, #7468726565]) + , (constr 1 + [ (constr 0 + [cse, #666f7572]) + , (constr 1 + [ (constr 0 + [ (addInteger + 5 + n) + , #66697665 ]) + , (constr 0 + [ ]) ]) ]) ]) ]) ]))) + (fix1 + (\go + xs -> + force + (force chooseList) + xs + (\ds -> []) + (\ds -> + (\hd -> + (\tl -> + (\v' -> + (\k' -> + force + (case + (fix1 + (\go + xs -> + force + (force + chooseList) + xs + (\ds -> + constr 1 []) + (\ds -> + (\hd -> + force + (force + ifThenElse + (equalsData + k' + (force + (force + fstPair) + hd)) + (delay + ((\ds -> + constr 0 + [ (force + (force + sndPair) + hd) ]) + (force + tailList + xs))) + (delay + (go + (force + tailList + xs))))) + (force + headList + xs)) + (constr 0 [])) + nt) + [ (\r -> + delay + (force + mkCons + (mkPairData + k' + (bData + (appendByteString + (unBData + v') + (unBData + r)))) + (go tl))) + , (delay + (force mkCons + (mkPairData + k' + v') + (go tl))) ])) + (force (force fstPair) hd)) + (force (force sndPair) hd)) + (force tailList xs)) + (force headList xs)) + (constr 0 [])))) + (unsafeFromList + (\i -> iData i) + bData + (constr 1 + [ (constr 0 [cse, #5448524545]) + , (constr 1 + [ (constr 0 [cse, #464f5552]) + , (constr 1 + [ (constr 0 + [(addInteger 6 n), #534958]) + , (constr 1 + [ (constr 0 + [ (addInteger 7 n) + , #534556454e ]) + , (constr 0 []) ]) ]) ]) ]))) + (addInteger 4 n)) + (addInteger 3 n)) + (\`$dToData` `$dToData` -> + (\go eta -> goList (go eta)) + (fix1 + (\go ds -> + force + (case + ds + [ (delay (constr 0 [])) + , (\x xs -> + delay + (constr 1 + [ (case + x + [ (\k a -> + constr 0 + [ (`$dToData` k) + , (`$dToData` a) ]) ]) + , (go xs) ])) ]))))) + (fix1 + (\goList ds -> + force + (case + ds + [ (delay []) + , (\d ds -> + delay + (force mkCons + (case d [(\d d -> mkPairData d d)]) + (goList ds))) ])))) + (fix1 + (\go acc xs -> + force (force chooseList) + xs + (\ds -> acc) + (\ds -> + go + (force mkCons (force headList xs) acc) + (force tailList xs)) + (constr 0 [])))) + (fix1 + (\go xs -> + force (force chooseList) + xs + (\ds -> constr 0 []) + (\ds -> + (\hd -> + (\tl -> + constr 1 + [ (constr 0 + [ (unIData (force (force fstPair) hd)) + , (unBData (force (force sndPair) hd)) ]) + , (go tl) ]) + (force tailList xs)) + (force headList xs)) + (constr 0 [])))) + (\f -> (\s -> s s) (\s -> f (\x -> s s x)))) \ No newline at end of file diff --git a/plutus-tx-plugin/test/Budget/9.6/map3-budget.budget.golden b/plutus-tx-plugin/test/Budget/9.6/map3-budget.budget.golden new file mode 100644 index 00000000000..8efce7611c2 --- /dev/null +++ b/plutus-tx-plugin/test/Budget/9.6/map3-budget.budget.golden @@ -0,0 +1,2 @@ +({cpu: 126454952 +| mem: 394122}) \ No newline at end of file diff --git a/plutus-tx-plugin/test/Budget/9.6/map3.eval.golden b/plutus-tx-plugin/test/Budget/9.6/map3.eval.golden new file mode 100644 index 00000000000..e8e3b12565c --- /dev/null +++ b/plutus-tx-plugin/test/Budget/9.6/map3.eval.golden @@ -0,0 +1,27 @@ +(constr + 1 + (constr 0 (con integer 105) (con string "five")) + (constr + 1 + (constr 0 (con integer 104) (con string "fourFOUR")) + (constr + 1 + (constr 0 (con integer 103) (con string "threeTHREE")) + (constr + 1 + (constr 0 (con integer 102) (con string "two")) + (constr + 1 + (constr 0 (con integer 101) (con string "one")) + (constr + 1 + (constr 0 (con integer 106) (con string "SIX")) + (constr + 1 (constr 0 (con integer 107) (con string "SEVEN")) (constr 0) + ) + ) + ) + ) + ) + ) +) \ No newline at end of file diff --git a/plutus-tx-plugin/test/Budget/9.6/map3.pir.golden b/plutus-tx-plugin/test/Budget/9.6/map3.pir.golden new file mode 100644 index 00000000000..c735c68c517 --- /dev/null +++ b/plutus-tx-plugin/test/Budget/9.6/map3.pir.golden @@ -0,0 +1,338 @@ +let + data Unit | Unit_match where + Unit : Unit + data (Tuple2 :: * -> * -> *) a b | Tuple2_match where + Tuple2 : a -> b -> Tuple2 a b +in +letrec + data (List :: * -> *) a | List_match where + Nil : List a + Cons : a -> List a -> List a +in +letrec + !go : list (pair data data) -> List (Tuple2 integer bytestring) + = \(xs : list (pair data data)) -> + chooseList + {pair data data} + {Unit -> List (Tuple2 integer bytestring)} + xs + (\(ds : Unit) -> Nil {Tuple2 integer bytestring}) + (\(ds : Unit) -> + let + !hd : pair data data = headList {pair data data} xs + !tl : list (pair data data) = tailList {pair data data} xs + in + Cons + {Tuple2 integer bytestring} + (Tuple2 + {integer} + {bytestring} + (unIData (fstPair {data} {data} hd)) + (unBData (sndPair {data} {data} hd))) + (go tl)) + Unit +in +letrec + !go : list (pair data data) -> list (pair data data) -> list (pair data data) + = \(acc : list (pair data data)) (xs : list (pair data data)) -> + chooseList + {pair data data} + {Unit -> list (pair data data)} + xs + (\(ds : Unit) -> acc) + (\(ds : Unit) -> + go + (mkCons {pair data data} (headList {pair data data} xs) acc) + (tailList {pair data data} xs)) + Unit +in +let + data (Maybe :: * -> *) a | Maybe_match where + Just : a -> Maybe a + Nothing : Maybe a + data Bool | Bool_match where + True : Bool + False : Bool +in +letrec + !goList : List (Tuple2 data data) -> list (pair data data) + = \(ds : List (Tuple2 data data)) -> + List_match + {Tuple2 data data} + ds + {all dead. list (pair data data)} + (/\dead -> []) + (\(d : Tuple2 data data) (ds : List (Tuple2 data data)) -> + /\dead -> + mkCons + {pair data data} + (Tuple2_match + {data} + {data} + d + {pair data data} + (\(d : data) (d : data) -> mkPairData d d)) + (goList ds)) + {all dead. dead} +in +let + !unsafeFromList : + all k a. + (\a -> a -> data) k -> + (\a -> a -> data) a -> + List (Tuple2 k a) -> + (\k a -> list (pair data data)) k a + = /\k a -> + \(`$dToData` : (\a -> a -> data) k) + (`$dToData` : (\a -> a -> data) a) -> + letrec + !go : List (Tuple2 k a) -> List (Tuple2 data data) + = \(ds : List (Tuple2 k a)) -> + List_match + {Tuple2 k a} + ds + {all dead. List (Tuple2 data data)} + (/\dead -> Nil {Tuple2 data data}) + (\(x : Tuple2 k a) (xs : List (Tuple2 k a)) -> + /\dead -> + Cons + {Tuple2 data data} + (Tuple2_match + {k} + {a} + x + {Tuple2 data data} + (\(k : k) (a : a) -> + Tuple2 + {data} + {data} + (`$dToData` k) + (`$dToData` a))) + (go xs)) + {all dead. dead} + in + \(eta : List (Tuple2 k a)) -> + let + !eta : List (Tuple2 data data) = go eta + in + goList eta +in +\(n : integer) -> + let + !nt : list (pair data data) + = unsafeFromList + {integer} + {bytestring} + (\(i : integer) -> iData i) + bData + ((let + a = Tuple2 integer bytestring + in + \(g : all b. (a -> b -> b) -> b -> b) -> + g {List a} (\(ds : a) (ds : List a) -> Cons {a} ds ds) (Nil {a})) + (/\a -> + \(c : Tuple2 integer bytestring -> a -> a) (n : a) -> + c + (Tuple2 {integer} {bytestring} (addInteger 3 n) #5448524545) + (c + (Tuple2 + {integer} + {bytestring} + (addInteger 4 n) + #464f5552) + (c + (Tuple2 + {integer} + {bytestring} + (addInteger 6 n) + #534958) + (c + (Tuple2 + {integer} + {bytestring} + (addInteger 7 n) + #534556454e) + n))))) + in + letrec + !go : list (pair data data) -> list (pair data data) + = \(xs : list (pair data data)) -> + chooseList + {pair data data} + {Unit -> list (pair data data)} + xs + (\(ds : Unit) -> []) + (\(ds : Unit) -> + let + !hd : pair data data = headList {pair data data} xs + !tl : list (pair data data) = tailList {pair data data} xs + !v' : data = sndPair {data} {data} hd + !k' : data = fstPair {data} {data} hd + in + letrec + !go : list (pair data data) -> Maybe data + = \(xs : list (pair data data)) -> + chooseList + {pair data data} + {Unit -> Maybe data} + xs + (\(ds : Unit) -> Nothing {data}) + (\(ds : Unit) -> + let + !hd : pair data data + = headList {pair data data} xs + in + ifThenElse + {all dead. Maybe data} + (equalsData k' (fstPair {data} {data} hd)) + (/\dead -> + let + !ds : list (pair data data) + = tailList {pair data data} xs + in + Just {data} (sndPair {data} {data} hd)) + (/\dead -> go (tailList {pair data data} xs)) + {all dead. dead}) + Unit + in + Maybe_match + {data} + (go nt) + {all dead. list (pair data data)} + (\(r : data) -> + /\dead -> + mkCons + {pair data data} + (mkPairData + k' + (bData (appendByteString (unBData v') (unBData r)))) + (go tl)) + (/\dead -> mkCons {pair data data} (mkPairData k' v') (go tl)) + {all dead. dead}) + Unit + in + let + !nt : list (pair data data) + = unsafeFromList + {integer} + {bytestring} + (\(i : integer) -> iData i) + bData + ((let + a = Tuple2 integer bytestring + in + \(g : all b. (a -> b -> b) -> b -> b) -> + g {List a} (\(ds : a) (ds : List a) -> Cons {a} ds ds) (Nil {a})) + (/\a -> + \(c : Tuple2 integer bytestring -> a -> a) (n : a) -> + c + (Tuple2 {integer} {bytestring} (addInteger 1 n) #6f6e65) + (c + (Tuple2 {integer} {bytestring} (addInteger 2 n) #74776f) + (c + (Tuple2 + {integer} + {bytestring} + (addInteger 3 n) + #7468726565) + (c + (Tuple2 + {integer} + {bytestring} + (addInteger 4 n) + #666f7572) + (c + (Tuple2 + {integer} + {bytestring} + (addInteger 5 n) + #66697665) + n)))))) + in + letrec + !go : list (pair data data) -> list (pair data data) + = \(xs : list (pair data data)) -> + chooseList + {pair data data} + {Unit -> list (pair data data)} + xs + (\(ds : Unit) -> []) + (\(ds : Unit) -> + let + !hd : pair data data = headList {pair data data} xs + !tl' : list (pair data data) + = go (tailList {pair data data} xs) + in + Bool_match + (let + !k : data = fstPair {data} {data} hd + in + letrec + !go : list (pair data data) -> Bool + = \(xs : list (pair data data)) -> + chooseList + {pair data data} + {Unit -> Bool} + xs + (\(ds : Unit) -> False) + (\(ds : Unit) -> + ifThenElse + {all dead. Bool} + (equalsData + k + (fstPair + {data} + {data} + (headList {pair data data} xs))) + (/\dead -> + let + !ds : list (pair data data) + = tailList {pair data data} xs + in + True) + (/\dead -> go (tailList {pair data data} xs)) + {all dead. dead}) + Unit + in + go nt) + {all dead. list (pair data data)} + (/\dead -> tl') + (/\dead -> mkCons {pair data data} hd tl') + {all dead. dead}) + Unit + in + let + !nt : list (pair data data) + = let + !rs' : list (pair data data) = go nt + !ls' : list (pair data data) = go nt + in + go rs' ls' + in + (let + a = Tuple2 integer bytestring + in + /\b -> + \(f : a -> b) -> + letrec + !go : List a -> List b + = \(ds : List a) -> + List_match + {a} + ds + {all dead. List b} + (/\dead -> Nil {b}) + (\(x : a) (xs : List a) -> /\dead -> Cons {b} (f x) (go xs)) + {all dead. dead} + in + \(eta : List a) -> go eta) + {Tuple2 integer string} + (\(ds : Tuple2 integer bytestring) -> + Tuple2_match + {integer} + {bytestring} + ds + {Tuple2 integer string} + (\(k : integer) (v : bytestring) -> + Tuple2 {integer} {string} k (decodeUtf8 v))) + (go nt) \ No newline at end of file diff --git a/plutus-tx-plugin/test/Budget/9.6/map3.uplc.golden b/plutus-tx-plugin/test/Budget/9.6/map3.uplc.golden new file mode 100644 index 00000000000..f1bf99b0f21 --- /dev/null +++ b/plutus-tx-plugin/test/Budget/9.6/map3.uplc.golden @@ -0,0 +1,272 @@ +program + 1.1.0 + ((\fix1 -> + (\go -> + (\go -> + (\goList + n -> + (\unsafeFromList -> + (\cse -> + (\cse -> + (\nt -> + (\go -> + (\nt -> + (\nt -> + fix1 + (\go + ds -> + force + (case + ds + [ (delay (constr 0 [])) + , (\x + xs -> + delay + (constr 1 + [ (case + x + [ (\k + v -> + constr 0 + [ k + , (decodeUtf8 + v) ]) ]) + , (go xs) ])) ])) + (go nt)) + ((\rs' -> + (\ls' -> go rs' ls') (go nt)) + (fix1 + (\go + xs -> + force + (force chooseList) + xs + (\ds -> []) + (\ds -> + (\hd -> + (\tl' -> + force + (case + ((\k -> + fix1 + (\go + xs -> + force + (force + chooseList) + xs + (\ds -> + constr 1 + []) + (\ds -> + force + (force + ifThenElse + (equalsData + k + (force + (force + fstPair) + (force + headList + xs))) + (delay + ((\ds -> + constr 0 + [ ]) + (force + tailList + xs))) + (delay + (go + (force + tailList + xs))))) + (constr 0 + [])) + nt) + (force + (force + fstPair) + hd)) + [ (delay tl') + , (delay + (force mkCons + hd + tl')) ])) + (go (force tailList xs))) + (force headList xs)) + (constr 0 [])) + nt))) + (unsafeFromList + (\i -> iData i) + bData + (constr 1 + [ (constr 0 [(addInteger 1 n), #6f6e65]) + , (constr 1 + [ (constr 0 + [(addInteger 2 n), #74776f]) + , (constr 1 + [ (constr 0 [cse, #7468726565]) + , (constr 1 + [ (constr 0 + [cse, #666f7572]) + , (constr 1 + [ (constr 0 + [ (addInteger + 5 + n) + , #66697665 ]) + , (constr 0 + [ ]) ]) ]) ]) ]) ]))) + (fix1 + (\go + xs -> + force + (force chooseList) + xs + (\ds -> []) + (\ds -> + (\hd -> + (\tl -> + (\v' -> + (\k' -> + force + (case + (fix1 + (\go + xs -> + force + (force + chooseList) + xs + (\ds -> + constr 1 []) + (\ds -> + (\hd -> + force + (force + ifThenElse + (equalsData + k' + (force + (force + fstPair) + hd)) + (delay + ((\ds -> + constr 0 + [ (force + (force + sndPair) + hd) ]) + (force + tailList + xs))) + (delay + (go + (force + tailList + xs))))) + (force + headList + xs)) + (constr 0 [])) + nt) + [ (\r -> + delay + (force + mkCons + (mkPairData + k' + (bData + (appendByteString + (unBData + v') + (unBData + r)))) + (go tl))) + , (delay + (force mkCons + (mkPairData + k' + v') + (go tl))) ])) + (force (force fstPair) hd)) + (force (force sndPair) hd)) + (force tailList xs)) + (force headList xs)) + (constr 0 [])))) + (unsafeFromList + (\i -> iData i) + bData + (constr 1 + [ (constr 0 [cse, #5448524545]) + , (constr 1 + [ (constr 0 [cse, #464f5552]) + , (constr 1 + [ (constr 0 + [(addInteger 6 n), #534958]) + , (constr 1 + [ (constr 0 + [ (addInteger 7 n) + , #534556454e ]) + , (constr 0 []) ]) ]) ]) ]))) + (addInteger 4 n)) + (addInteger 3 n)) + (\`$dToData` `$dToData` -> + (\go eta -> goList (go eta)) + (fix1 + (\go ds -> + force + (case + ds + [ (delay (constr 0 [])) + , (\x xs -> + delay + (constr 1 + [ (case + x + [ (\k a -> + constr 0 + [ (`$dToData` k) + , (`$dToData` a) ]) ]) + , (go xs) ])) ]))))) + (fix1 + (\goList ds -> + force + (case + ds + [ (delay []) + , (\d ds -> + delay + (force mkCons + (case d [(\d d -> mkPairData d d)]) + (goList ds))) ])))) + (fix1 + (\go acc xs -> + force (force chooseList) + xs + (\ds -> acc) + (\ds -> + go + (force mkCons (force headList xs) acc) + (force tailList xs)) + (constr 0 [])))) + (fix1 + (\go xs -> + force (force chooseList) + xs + (\ds -> constr 0 []) + (\ds -> + (\hd -> + (\tl -> + constr 1 + [ (constr 0 + [ (unIData (force (force fstPair) hd)) + , (unBData (force (force sndPair) hd)) ]) + , (go tl) ]) + (force tailList xs)) + (force headList xs)) + (constr 0 [])))) + (\f -> (\s -> s s) (\s -> f (\x -> s s x)))) \ No newline at end of file diff --git a/plutus-tx-plugin/test/Budget/9.6/matchAsDataE.budget.golden b/plutus-tx-plugin/test/Budget/9.6/matchAsDataE.budget.golden index bb54d4abb93..f28b13d54b5 100644 --- a/plutus-tx-plugin/test/Budget/9.6/matchAsDataE.budget.golden +++ b/plutus-tx-plugin/test/Budget/9.6/matchAsDataE.budget.golden @@ -1,2 +1,2 @@ -({cpu: 1518258 +({cpu: 1196851 | mem: 4362}) \ No newline at end of file diff --git a/plutus-tx-plugin/test/Budget/9.6/monadicDo.budget.golden b/plutus-tx-plugin/test/Budget/9.6/monadicDo.budget.golden index 23ef23ceedf..6b185eae48d 100644 --- a/plutus-tx-plugin/test/Budget/9.6/monadicDo.budget.golden +++ b/plutus-tx-plugin/test/Budget/9.6/monadicDo.budget.golden @@ -1,2 +1,2 @@ -({cpu: 1103577 +({cpu: 725308 | mem: 4002}) \ No newline at end of file diff --git a/plutus-tx-plugin/test/Budget/9.6/not-not.budget.golden b/plutus-tx-plugin/test/Budget/9.6/not-not.budget.golden index 9f91c184b82..0ce381cab4a 100644 --- a/plutus-tx-plugin/test/Budget/9.6/not-not.budget.golden +++ b/plutus-tx-plugin/test/Budget/9.6/not-not.budget.golden @@ -1,2 +1,2 @@ -({cpu: 773063 +({cpu: 457439 | mem: 2202}) \ No newline at end of file diff --git a/plutus-tx-plugin/test/Budget/9.6/notElemCheap.budget.golden b/plutus-tx-plugin/test/Budget/9.6/notElemCheap.budget.golden index 57c7ffa916e..cb45f064b14 100644 --- a/plutus-tx-plugin/test/Budget/9.6/notElemCheap.budget.golden +++ b/plutus-tx-plugin/test/Budget/9.6/notElemCheap.budget.golden @@ -1,2 +1,2 @@ -({cpu: 1416589 +({cpu: 912482 | mem: 5002}) \ No newline at end of file diff --git a/plutus-tx-plugin/test/Budget/9.6/notElemExpensive.budget.golden b/plutus-tx-plugin/test/Budget/9.6/notElemExpensive.budget.golden index 8f4792e4c33..edabfe7b7cf 100644 --- a/plutus-tx-plugin/test/Budget/9.6/notElemExpensive.budget.golden +++ b/plutus-tx-plugin/test/Budget/9.6/notElemExpensive.budget.golden @@ -1,2 +1,2 @@ -({cpu: 9426990 +({cpu: 5827920 | mem: 28520}) \ No newline at end of file diff --git a/plutus-tx-plugin/test/Budget/9.6/null.budget.golden b/plutus-tx-plugin/test/Budget/9.6/null.budget.golden index c5fb80b1cd0..d9531fb66be 100644 --- a/plutus-tx-plugin/test/Budget/9.6/null.budget.golden +++ b/plutus-tx-plugin/test/Budget/9.6/null.budget.golden @@ -1,2 +1,2 @@ -({cpu: 23100 +({cpu: 16100 | mem: 200}) \ No newline at end of file diff --git a/plutus-tx-plugin/test/Budget/9.6/orCheap.budget.golden b/plutus-tx-plugin/test/Budget/9.6/orCheap.budget.golden index 5ec81710095..e39875df9fc 100644 --- a/plutus-tx-plugin/test/Budget/9.6/orCheap.budget.golden +++ b/plutus-tx-plugin/test/Budget/9.6/orCheap.budget.golden @@ -1,2 +1,2 @@ -({cpu: 920100 +({cpu: 640100 | mem: 4100}) \ No newline at end of file diff --git a/plutus-tx-plugin/test/Budget/9.6/orExpensive.budget.golden b/plutus-tx-plugin/test/Budget/9.6/orExpensive.budget.golden index b3b0725f6dd..3d610c2a12c 100644 --- a/plutus-tx-plugin/test/Budget/9.6/orExpensive.budget.golden +++ b/plutus-tx-plugin/test/Budget/9.6/orExpensive.budget.golden @@ -1,2 +1,2 @@ -({cpu: 4462100 +({cpu: 3104100 | mem: 19500}) \ No newline at end of file diff --git a/plutus-tx-plugin/test/Budget/9.6/patternMatch.budget.golden b/plutus-tx-plugin/test/Budget/9.6/patternMatch.budget.golden index d0d58f03406..9aec697a86c 100644 --- a/plutus-tx-plugin/test/Budget/9.6/patternMatch.budget.golden +++ b/plutus-tx-plugin/test/Budget/9.6/patternMatch.budget.golden @@ -1,2 +1,2 @@ -({cpu: 46100 +({cpu: 32100 | mem: 300}) \ No newline at end of file diff --git a/plutus-tx-plugin/test/Budget/9.6/recursiveGte0.budget.golden b/plutus-tx-plugin/test/Budget/9.6/recursiveGte0.budget.golden index ff91608e40d..12fd3b7cfd8 100644 --- a/plutus-tx-plugin/test/Budget/9.6/recursiveGte0.budget.golden +++ b/plutus-tx-plugin/test/Budget/9.6/recursiveGte0.budget.golden @@ -1,2 +1,2 @@ -({cpu: 2509243053 +({cpu: 1543640986 | mem: 7512902}) \ No newline at end of file diff --git a/plutus-tx-plugin/test/Budget/9.6/recursiveLte0.budget.golden b/plutus-tx-plugin/test/Budget/9.6/recursiveLte0.budget.golden index 5c34d0d7b5e..fd3bed6d9fe 100644 --- a/plutus-tx-plugin/test/Budget/9.6/recursiveLte0.budget.golden +++ b/plutus-tx-plugin/test/Budget/9.6/recursiveLte0.budget.golden @@ -1,2 +1,2 @@ -({cpu: 2505233053 +({cpu: 1542187986 | mem: 7512902}) \ No newline at end of file diff --git a/plutus-tx-plugin/test/Budget/9.6/show.budget.golden b/plutus-tx-plugin/test/Budget/9.6/show.budget.golden index e4bc84b7bbc..c0890929b59 100644 --- a/plutus-tx-plugin/test/Budget/9.6/show.budget.golden +++ b/plutus-tx-plugin/test/Budget/9.6/show.budget.golden @@ -1,2 +1,2 @@ -({cpu: 2550026779 +({cpu: 1562896718 | mem: 7105190}) \ No newline at end of file diff --git a/plutus-tx-plugin/test/Budget/9.6/sum.budget.golden b/plutus-tx-plugin/test/Budget/9.6/sum.budget.golden index bbfc1476b95..88a83179671 100644 --- a/plutus-tx-plugin/test/Budget/9.6/sum.budget.golden +++ b/plutus-tx-plugin/test/Budget/9.6/sum.budget.golden @@ -1,2 +1,2 @@ -({cpu: 8481870 +({cpu: 5476180 | mem: 28020}) \ No newline at end of file diff --git a/plutus-tx-plugin/test/Budget/9.6/sumL.budget.golden b/plutus-tx-plugin/test/Budget/9.6/sumL.budget.golden index eb12c370cea..1e44a00a2bc 100644 --- a/plutus-tx-plugin/test/Budget/9.6/sumL.budget.golden +++ b/plutus-tx-plugin/test/Budget/9.6/sumL.budget.golden @@ -1,2 +1,2 @@ -({cpu: 2057642053 +({cpu: 1267429986 | mem: 5912402}) \ No newline at end of file diff --git a/plutus-tx-plugin/test/Budget/9.6/sumR.budget.golden b/plutus-tx-plugin/test/Budget/9.6/sumR.budget.golden index f6709ce84f7..a4ed7891bfe 100644 --- a/plutus-tx-plugin/test/Budget/9.6/sumR.budget.golden +++ b/plutus-tx-plugin/test/Budget/9.6/sumR.budget.golden @@ -1,2 +1,2 @@ -({cpu: 1988435053 +({cpu: 1219285986 | mem: 5611502}) \ No newline at end of file diff --git a/plutus-tx-plugin/test/Budget/9.6/toFromData.budget.golden b/plutus-tx-plugin/test/Budget/9.6/toFromData.budget.golden index 4fd0955fdac..3af9e945fba 100644 --- a/plutus-tx-plugin/test/Budget/9.6/toFromData.budget.golden +++ b/plutus-tx-plugin/test/Budget/9.6/toFromData.budget.golden @@ -1,2 +1,2 @@ -({cpu: 10528181 +({cpu: 7980913 | mem: 28440}) \ No newline at end of file diff --git a/plutus-tx-plugin/test/Budget/Spec.hs b/plutus-tx-plugin/test/Budget/Spec.hs index b9200ed45c8..34868950752 100644 --- a/plutus-tx-plugin/test/Budget/Spec.hs +++ b/plutus-tx-plugin/test/Budget/Spec.hs @@ -19,7 +19,7 @@ import Test.Tasty.Extras import Budget.WithGHCOptimisations qualified as WithGHCOptTest import Budget.WithoutGHCOptimisations qualified as WithoutGHCOptTest import PlutusTx.AsData qualified as AsData -import PlutusTx.Builtins qualified as PlutusTx +import PlutusTx.Builtins qualified as PlutusTx hiding (null) import PlutusTx.Builtins.Internal qualified as BI import PlutusTx.Code import PlutusTx.IsData qualified as IsData @@ -36,8 +36,8 @@ AsData.asData [d| makeLift ''MaybeD tests :: TestNested -tests = testNestedGhc "Budget" [ - goldenBudget "sum" compiledSum +tests = testNested "Budget" . pure $ testNestedGhc + [ goldenBudget "sum" compiledSum , goldenUPlcReadable "sum" compiledSum , goldenPirReadable "sum" compiledSum , goldenEvalCekCatch "sum" [compiledSum] diff --git a/plutus-tx-plugin/test/IntegerLiterals/NoStrict/NegativeLiterals/Spec.hs b/plutus-tx-plugin/test/IntegerLiterals/NoStrict/NegativeLiterals/Spec.hs index 90a328e54b1..f18db70247e 100644 --- a/plutus-tx-plugin/test/IntegerLiterals/NoStrict/NegativeLiterals/Spec.hs +++ b/plutus-tx-plugin/test/IntegerLiterals/NoStrict/NegativeLiterals/Spec.hs @@ -20,7 +20,7 @@ import PlutusTx.TH (compile) import Test.Tasty.Extras tests :: TestNested -tests = testNestedGhc "IntegerLiterals" +tests = testNested "IntegerLiterals" . pure $ testNestedGhc [ goldenPir "integerLiterals-NoStrict-NegativeLiterals" integerLiterals ] diff --git a/plutus-tx-plugin/test/IntegerLiterals/NoStrict/NoNegativeLiterals/Spec.hs b/plutus-tx-plugin/test/IntegerLiterals/NoStrict/NoNegativeLiterals/Spec.hs index 9928b6f0607..131ced5b40a 100644 --- a/plutus-tx-plugin/test/IntegerLiterals/NoStrict/NoNegativeLiterals/Spec.hs +++ b/plutus-tx-plugin/test/IntegerLiterals/NoStrict/NoNegativeLiterals/Spec.hs @@ -19,7 +19,7 @@ import PlutusTx.TH (compile) import Test.Tasty.Extras tests :: TestNested -tests = testNestedGhc "IntegerLiterals" +tests = testNested "IntegerLiterals" . pure $ testNestedGhc [ goldenPir "integerLiterals-NoStrict-NoNegativeLiterals" integerLiterals ] diff --git a/plutus-tx-plugin/test/IntegerLiterals/Strict/NegativeLiterals/Spec.hs b/plutus-tx-plugin/test/IntegerLiterals/Strict/NegativeLiterals/Spec.hs index c38f8a80ddd..027974207dc 100644 --- a/plutus-tx-plugin/test/IntegerLiterals/Strict/NegativeLiterals/Spec.hs +++ b/plutus-tx-plugin/test/IntegerLiterals/Strict/NegativeLiterals/Spec.hs @@ -20,7 +20,7 @@ import PlutusTx.TH (compile) import Test.Tasty.Extras tests :: TestNested -tests = testNestedGhc "IntegerLiterals" +tests = testNested "IntegerLiterals" . pure $ testNestedGhc [ goldenPir "integerLiterals-Strict-NegativeLiterals" integerLiterals ] diff --git a/plutus-tx-plugin/test/IntegerLiterals/Strict/NoNegativeLiterals/Spec.hs b/plutus-tx-plugin/test/IntegerLiterals/Strict/NoNegativeLiterals/Spec.hs index 9476f8c94ed..ac458116d06 100644 --- a/plutus-tx-plugin/test/IntegerLiterals/Strict/NoNegativeLiterals/Spec.hs +++ b/plutus-tx-plugin/test/IntegerLiterals/Strict/NoNegativeLiterals/Spec.hs @@ -19,7 +19,7 @@ import PlutusTx.TH (compile) import Test.Tasty.Extras tests :: TestNested -tests = testNestedGhc "IntegerLiterals" +tests = testNested "IntegerLiterals" . pure $ testNestedGhc [ goldenPir "integerLiterals-Strict-NoNegativeLiterals" integerLiterals ] diff --git a/plutus-tx-plugin/test/IsData/Spec.hs b/plutus-tx-plugin/test/IsData/Spec.hs index 9bd5f538b95..2cd9edab9ac 100644 --- a/plutus-tx-plugin/test/IsData/Spec.hs +++ b/plutus-tx-plugin/test/IsData/Spec.hs @@ -112,8 +112,8 @@ fieldAccessor :: CompiledCode (RecordConstructor Integer -> Integer) fieldAccessor = plc (Proxy @"fieldAccessor") (\r -> x r) tests :: TestNested -tests = testNestedGhc "IsData" [ - goldenUEval "int" [plc (Proxy @"int") (isDataRoundtrip (1::Integer))] +tests = testNested "IsData" . pure $ testNestedGhc + [ goldenUEval "int" [plc (Proxy @"int") (isDataRoundtrip (1::Integer))] , goldenUEval "tuple" [plc (Proxy @"tuple") (isDataRoundtrip (1::Integer, 2::Integer))] , goldenUEval "tupleInterop" [ getPlcNoAnn (plc (Proxy @"tupleInterop") (\(d :: P.BuiltinData) -> case IsData.fromBuiltinData d of { Just t -> t P.== (1::Integer, 2::Integer); Nothing -> False})) diff --git a/plutus-tx-plugin/test/Lib.hs b/plutus-tx-plugin/test/Lib.hs index 4e04b11a3a2..66210e22cda 100644 --- a/plutus-tx-plugin/test/Lib.hs +++ b/plutus-tx-plugin/test/Lib.hs @@ -42,7 +42,7 @@ runPlcCek values = do ps <- traverse toUPlc values let p = foldl1 (unsafeFromRight .* UPLC.applyProgram) ps - fromRightM (throwError . SomeException) $ evaluateCekNoEmit PLC.defaultCekParameters (p ^. UPLC.progTerm) + fromRightM (throwError . SomeException) $ evaluateCekNoEmit PLC.defaultCekParametersForTesting (p ^. UPLC.progTerm) runPlcCekTrace :: ToUPlc a PLC.DefaultUni PLC.DefaultFun => @@ -52,7 +52,7 @@ runPlcCekTrace values = do ps <- traverse toUPlc values let p = foldl1 (unsafeFromRight .* UPLC.applyProgram) ps - let (result, TallyingSt tally _, logOut) = runCek PLC.defaultCekParameters tallying logEmitter (p ^. UPLC.progTerm) + let (result, TallyingSt tally _, logOut) = runCek PLC.defaultCekParametersForTesting tallying logEmitter (p ^. UPLC.progTerm) res <- fromRightM (throwError . SomeException) result pure (logOut, tally, res) diff --git a/plutus-tx-plugin/test/Lift/Spec.hs b/plutus-tx-plugin/test/Lift/Spec.hs index 1f888f9695b..39f97e079b1 100644 --- a/plutus-tx-plugin/test/Lift/Spec.hs +++ b/plutus-tx-plugin/test/Lift/Spec.hs @@ -47,8 +47,8 @@ data SynExample = SynExample { unSE :: Syn } Lift.makeLift ''SynExample tests :: TestNested -tests = testNestedGhc "Lift" [ - goldenUPlc "int" (snd (Lift.liftProgramDef (1::Integer))) +tests = testNested "Lift" . pure $ testNestedGhc + [ goldenUPlc "int" (snd (Lift.liftProgramDef (1::Integer))) , goldenUPlc "tuple" (snd (Lift.liftProgramDef (1::Integer, 2::Integer))) , goldenUPlc "mono" (snd (Lift.liftProgramDef (Mono2 2))) , goldenUEval "monoInterop" [ getPlcNoAnn monoCase, snd (Lift.liftProgramDef (Mono1 1 2)) ] diff --git a/plutus-tx-plugin/test/Optimization/Spec.hs b/plutus-tx-plugin/test/Optimization/Spec.hs index 3a79790867a..d579ca7f591 100644 --- a/plutus-tx-plugin/test/Optimization/Spec.hs +++ b/plutus-tx-plugin/test/Optimization/Spec.hs @@ -34,8 +34,8 @@ AsData.asData [d| -- This can be interesting to make sure that important optimizations fire, including -- ones that run on UPLC. tests :: TestNested -tests = testNestedGhc "Optimization" [ - goldenUPlc "maybeFun" maybeFun +tests = testNested "Optimization" . pure $ testNestedGhc + [ goldenUPlc "maybeFun" maybeFun , goldenPirReadable "matchAsData" matchAsData , goldenPirReadable "unsafeDeconstructData" unsafeDeconstructData ] diff --git a/plutus-tx-plugin/test/Plugin/Basic/9.6/ifOptEval.eval.golden b/plutus-tx-plugin/test/Plugin/Basic/9.6/ifOptEval.eval.golden index 64d9a1489c9..8f62cdc8e64 100644 --- a/plutus-tx-plugin/test/Plugin/Basic/9.6/ifOptEval.eval.golden +++ b/plutus-tx-plugin/test/Plugin/Basic/9.6/ifOptEval.eval.golden @@ -1,6 +1,6 @@ -An error has occurred: User error: +An error has occurred: The machine terminated because of an error, either from a built-in function or from an explicit use of 'error'. Caused by: (divideInteger 1 0) -Final budget: ({cpu: 453560 +Final budget: ({cpu: 132030 | mem: 101}) Logs: \ No newline at end of file diff --git a/plutus-tx-plugin/test/Plugin/Basic/Spec.hs b/plutus-tx-plugin/test/Plugin/Basic/Spec.hs index a753ec8b7b2..8b674e0f56c 100644 --- a/plutus-tx-plugin/test/Plugin/Basic/Spec.hs +++ b/plutus-tx-plugin/test/Plugin/Basic/Spec.hs @@ -25,12 +25,11 @@ import PlutusTx.Prelude qualified as P import PlutusTx.Test (goldenPir, goldenUPlc) import Data.Proxy (Proxy (..)) -import Test.Tasty.Extras (TestNested, testNestedGhc) +import Test.Tasty.Extras (TestNested, testNested, testNestedGhc) basic :: TestNested basic = - testNestedGhc - "Basic" + testNested "Basic" . pure $ testNestedGhc [ goldenPir "monoId" monoId , goldenPir "monoK" monoK , goldenPir "letFun" letFun diff --git a/plutus-tx-plugin/test/Plugin/Coverage/Spec.hs b/plutus-tx-plugin/test/Plugin/Coverage/Spec.hs index 24dc93cabae..b8c4051e318 100644 --- a/plutus-tx-plugin/test/Plugin/Coverage/Spec.hs +++ b/plutus-tx-plugin/test/Plugin/Coverage/Spec.hs @@ -49,8 +49,8 @@ boolQualifiedDisappears :: CompiledCode (() -> Bool) boolQualifiedDisappears = plc (Proxy @"boolQualifiedDisappears") (\ () -> Haskell.True) coverage :: TestNested -coverage = testNestedGhc "Coverage" - [ pure $ testGroup "Application heads and line coverage" +coverage = testNested "Coverage" . pure $ testNestedGhc + [ embed $ testGroup "Application heads and line coverage" [ mkTests "noBool" noBool Set.empty [31] , mkTests "boolTrueFalse" boolTrueFalse (Set.singleton "&&") [34] , mkTests "boolOtherFunction" boolOtherFunction (Set.fromList ["&&", "=="]) [37, 41, 42, 43] diff --git a/plutus-tx-plugin/test/Plugin/Data/Spec.hs b/plutus-tx-plugin/test/Plugin/Data/Spec.hs index cc3a1f9a1fd..f52ab917410 100644 --- a/plutus-tx-plugin/test/Plugin/Data/Spec.hs +++ b/plutus-tx-plugin/test/Plugin/Data/Spec.hs @@ -30,8 +30,8 @@ import PlutusTx.Test import Data.Proxy datat :: TestNested -datat = testNestedGhc "Data" [ - monoData +datat = testNested "Data" . pure . testNestedGhc $ + [ monoData , polyData , newtypes , recursiveTypes diff --git a/plutus-tx-plugin/test/Plugin/Debug/9.6/fib.pir.golden b/plutus-tx-plugin/test/Plugin/Debug/9.6/fib.pir.golden index cd570b0445c..45afefbea79 100644 --- a/plutus-tx-plugin/test/Plugin/Debug/9.6/fib.pir.golden +++ b/plutus-tx-plugin/test/Plugin/Debug/9.6/fib.pir.golden @@ -296,151 +296,151 @@ n (con { no-src-span } integer) (let - { test/Plugin/Debug/Spec.hs:47:15-56:72 } + { test/Plugin/Debug/Spec.hs:46:15-55:72 } (nonrec) (termbind - { test/Plugin/Debug/Spec.hs:47:15-56:72 } + { test/Plugin/Debug/Spec.hs:46:15-55:72 } (strict) (vardecl - { test/Plugin/Debug/Spec.hs:47:15-56:72 } + { test/Plugin/Debug/Spec.hs:46:15-55:72 } n - (con { test/Plugin/Debug/Spec.hs:47:15-56:72 } integer) + (con { test/Plugin/Debug/Spec.hs:46:15-55:72 } integer) ) - { test/Plugin/Debug/Spec.hs:47:15-56:72 } n + { test/Plugin/Debug/Spec.hs:46:15-55:72 } n ) { - { test/Plugin/Debug/Spec.hs:47:15-56:72, test/Plugin/Debug/Spec.hs:48:17-56:72 } + { test/Plugin/Debug/Spec.hs:46:15-55:72, test/Plugin/Debug/Spec.hs:47:17-55:72 } [ - { test/Plugin/Debug/Spec.hs:47:15-56:72, test/Plugin/Debug/Spec.hs:48:17-56:72 } + { test/Plugin/Debug/Spec.hs:46:15-55:72, test/Plugin/Debug/Spec.hs:47:17-55:72 } [ - { test/Plugin/Debug/Spec.hs:47:15-56:72, test/Plugin/Debug/Spec.hs:48:17-56:72 } + { test/Plugin/Debug/Spec.hs:46:15-55:72, test/Plugin/Debug/Spec.hs:47:17-55:72 } { - { test/Plugin/Debug/Spec.hs:47:15-56:72, test/Plugin/Debug/Spec.hs:48:17-56:72 } + { test/Plugin/Debug/Spec.hs:46:15-55:72, test/Plugin/Debug/Spec.hs:47:17-55:72 } [ - { test/Plugin/Debug/Spec.hs:47:15-56:72, test/Plugin/Debug/Spec.hs:48:17-56:72 } - { test/Plugin/Debug/Spec.hs:47:15-56:72, test/Plugin/Debug/Spec.hs:48:17-56:72 } + { test/Plugin/Debug/Spec.hs:46:15-55:72, test/Plugin/Debug/Spec.hs:47:17-55:72 } + { test/Plugin/Debug/Spec.hs:46:15-55:72, test/Plugin/Debug/Spec.hs:47:17-55:72 } Bool_match [ - { test/Plugin/Debug/Spec.hs:47:15-56:72, test/Plugin/Debug/Spec.hs:48:17-56:72 } + { test/Plugin/Debug/Spec.hs:46:15-55:72, test/Plugin/Debug/Spec.hs:47:17-55:72 } [ - { test/Plugin/Debug/Spec.hs:47:15-56:72, test/Plugin/Debug/Spec.hs:48:17-56:72 } - { test/Plugin/Debug/Spec.hs:47:15-56:72, test/Plugin/Debug/Spec.hs:48:17-56:72 } + { test/Plugin/Debug/Spec.hs:46:15-55:72, test/Plugin/Debug/Spec.hs:47:17-55:72 } + { test/Plugin/Debug/Spec.hs:46:15-55:72, test/Plugin/Debug/Spec.hs:47:17-55:72 } equalsInteger - { test/Plugin/Debug/Spec.hs:47:15-56:72, test/Plugin/Debug/Spec.hs:48:17-56:72, test/Plugin/Debug/Spec.hs:48:43-48:43 } + { test/Plugin/Debug/Spec.hs:46:15-55:72, test/Plugin/Debug/Spec.hs:47:17-55:72, test/Plugin/Debug/Spec.hs:47:43-47:43 } n ] (con - { test/Plugin/Debug/Spec.hs:47:15-56:72, test/Plugin/Debug/Spec.hs:48:17-56:72, test/Plugin/Debug/Spec.hs:48:45-48:45 } + { test/Plugin/Debug/Spec.hs:46:15-55:72, test/Plugin/Debug/Spec.hs:47:17-55:72, test/Plugin/Debug/Spec.hs:47:45-47:45 } integer 0 ) ] ] (all - { test/Plugin/Debug/Spec.hs:47:15-56:72, test/Plugin/Debug/Spec.hs:48:17-56:72 } + { test/Plugin/Debug/Spec.hs:46:15-55:72, test/Plugin/Debug/Spec.hs:47:17-55:72 } dead - ({ test/Plugin/Debug/Spec.hs:47:15-56:72, test/Plugin/Debug/Spec.hs:48:17-56:72 } + ({ test/Plugin/Debug/Spec.hs:46:15-55:72, test/Plugin/Debug/Spec.hs:47:17-55:72 } type) (con - { test/Plugin/Debug/Spec.hs:47:15-56:72, test/Plugin/Debug/Spec.hs:48:17-56:72 } + { test/Plugin/Debug/Spec.hs:46:15-55:72, test/Plugin/Debug/Spec.hs:47:17-55:72 } integer ) ) } (abs - { test/Plugin/Debug/Spec.hs:47:15-56:72, test/Plugin/Debug/Spec.hs:48:17-56:72 } + { test/Plugin/Debug/Spec.hs:46:15-55:72, test/Plugin/Debug/Spec.hs:47:17-55:72 } dead - ({ test/Plugin/Debug/Spec.hs:47:15-56:72, test/Plugin/Debug/Spec.hs:48:17-56:72 } + ({ test/Plugin/Debug/Spec.hs:46:15-55:72, test/Plugin/Debug/Spec.hs:47:17-55:72 } type) (con - { test/Plugin/Debug/Spec.hs:47:15-56:72, test/Plugin/Debug/Spec.hs:48:17-56:72, test/Plugin/Debug/Spec.hs:49:26-49:26 } + { test/Plugin/Debug/Spec.hs:46:15-55:72, test/Plugin/Debug/Spec.hs:47:17-55:72, test/Plugin/Debug/Spec.hs:48:26-48:26 } integer 0 ) ) ] (abs - { test/Plugin/Debug/Spec.hs:47:15-56:72, test/Plugin/Debug/Spec.hs:48:17-56:72 } + { test/Plugin/Debug/Spec.hs:46:15-55:72, test/Plugin/Debug/Spec.hs:47:17-55:72 } dead - ({ test/Plugin/Debug/Spec.hs:47:15-56:72, test/Plugin/Debug/Spec.hs:48:17-56:72 } + ({ test/Plugin/Debug/Spec.hs:46:15-55:72, test/Plugin/Debug/Spec.hs:47:17-55:72 } type) { - { test/Plugin/Debug/Spec.hs:47:15-56:72, test/Plugin/Debug/Spec.hs:48:17-56:72, test/Plugin/Debug/Spec.hs:51:25-56:72 } + { test/Plugin/Debug/Spec.hs:46:15-55:72, test/Plugin/Debug/Spec.hs:47:17-55:72, test/Plugin/Debug/Spec.hs:50:25-55:72 } [ - { test/Plugin/Debug/Spec.hs:47:15-56:72, test/Plugin/Debug/Spec.hs:48:17-56:72, test/Plugin/Debug/Spec.hs:51:25-56:72 } + { test/Plugin/Debug/Spec.hs:46:15-55:72, test/Plugin/Debug/Spec.hs:47:17-55:72, test/Plugin/Debug/Spec.hs:50:25-55:72 } [ - { test/Plugin/Debug/Spec.hs:47:15-56:72, test/Plugin/Debug/Spec.hs:48:17-56:72, test/Plugin/Debug/Spec.hs:51:25-56:72 } + { test/Plugin/Debug/Spec.hs:46:15-55:72, test/Plugin/Debug/Spec.hs:47:17-55:72, test/Plugin/Debug/Spec.hs:50:25-55:72 } { - { test/Plugin/Debug/Spec.hs:47:15-56:72, test/Plugin/Debug/Spec.hs:48:17-56:72, test/Plugin/Debug/Spec.hs:51:25-56:72 } + { test/Plugin/Debug/Spec.hs:46:15-55:72, test/Plugin/Debug/Spec.hs:47:17-55:72, test/Plugin/Debug/Spec.hs:50:25-55:72 } [ - { test/Plugin/Debug/Spec.hs:47:15-56:72, test/Plugin/Debug/Spec.hs:48:17-56:72, test/Plugin/Debug/Spec.hs:51:25-56:72 } - { test/Plugin/Debug/Spec.hs:47:15-56:72, test/Plugin/Debug/Spec.hs:48:17-56:72, test/Plugin/Debug/Spec.hs:51:25-56:72 } + { test/Plugin/Debug/Spec.hs:46:15-55:72, test/Plugin/Debug/Spec.hs:47:17-55:72, test/Plugin/Debug/Spec.hs:50:25-55:72 } + { test/Plugin/Debug/Spec.hs:46:15-55:72, test/Plugin/Debug/Spec.hs:47:17-55:72, test/Plugin/Debug/Spec.hs:50:25-55:72 } Bool_match [ - { test/Plugin/Debug/Spec.hs:47:15-56:72, test/Plugin/Debug/Spec.hs:48:17-56:72, test/Plugin/Debug/Spec.hs:51:25-56:72 } + { test/Plugin/Debug/Spec.hs:46:15-55:72, test/Plugin/Debug/Spec.hs:47:17-55:72, test/Plugin/Debug/Spec.hs:50:25-55:72 } [ - { test/Plugin/Debug/Spec.hs:47:15-56:72, test/Plugin/Debug/Spec.hs:48:17-56:72, test/Plugin/Debug/Spec.hs:51:25-56:72 } - { test/Plugin/Debug/Spec.hs:47:15-56:72, test/Plugin/Debug/Spec.hs:48:17-56:72, test/Plugin/Debug/Spec.hs:51:25-56:72 } + { test/Plugin/Debug/Spec.hs:46:15-55:72, test/Plugin/Debug/Spec.hs:47:17-55:72, test/Plugin/Debug/Spec.hs:50:25-55:72 } + { test/Plugin/Debug/Spec.hs:46:15-55:72, test/Plugin/Debug/Spec.hs:47:17-55:72, test/Plugin/Debug/Spec.hs:50:25-55:72 } equalsInteger - { test/Plugin/Debug/Spec.hs:47:15-56:72, test/Plugin/Debug/Spec.hs:48:17-56:72, test/Plugin/Debug/Spec.hs:51:25-56:72, test/Plugin/Debug/Spec.hs:51:51-51:51 } + { test/Plugin/Debug/Spec.hs:46:15-55:72, test/Plugin/Debug/Spec.hs:47:17-55:72, test/Plugin/Debug/Spec.hs:50:25-55:72, test/Plugin/Debug/Spec.hs:50:51-50:51 } n ] (con - { test/Plugin/Debug/Spec.hs:47:15-56:72, test/Plugin/Debug/Spec.hs:48:17-56:72, test/Plugin/Debug/Spec.hs:51:25-56:72, test/Plugin/Debug/Spec.hs:51:53-51:53 } + { test/Plugin/Debug/Spec.hs:46:15-55:72, test/Plugin/Debug/Spec.hs:47:17-55:72, test/Plugin/Debug/Spec.hs:50:25-55:72, test/Plugin/Debug/Spec.hs:50:53-50:53 } integer 1 ) ] ] (all - { test/Plugin/Debug/Spec.hs:47:15-56:72, test/Plugin/Debug/Spec.hs:48:17-56:72, test/Plugin/Debug/Spec.hs:51:25-56:72 } + { test/Plugin/Debug/Spec.hs:46:15-55:72, test/Plugin/Debug/Spec.hs:47:17-55:72, test/Plugin/Debug/Spec.hs:50:25-55:72 } dead - ({ test/Plugin/Debug/Spec.hs:47:15-56:72, test/Plugin/Debug/Spec.hs:48:17-56:72, test/Plugin/Debug/Spec.hs:51:25-56:72 } + ({ test/Plugin/Debug/Spec.hs:46:15-55:72, test/Plugin/Debug/Spec.hs:47:17-55:72, test/Plugin/Debug/Spec.hs:50:25-55:72 } type) (con - { test/Plugin/Debug/Spec.hs:47:15-56:72, test/Plugin/Debug/Spec.hs:48:17-56:72, test/Plugin/Debug/Spec.hs:51:25-56:72 } + { test/Plugin/Debug/Spec.hs:46:15-55:72, test/Plugin/Debug/Spec.hs:47:17-55:72, test/Plugin/Debug/Spec.hs:50:25-55:72 } integer ) ) } (abs - { test/Plugin/Debug/Spec.hs:47:15-56:72, test/Plugin/Debug/Spec.hs:48:17-56:72, test/Plugin/Debug/Spec.hs:51:25-56:72 } + { test/Plugin/Debug/Spec.hs:46:15-55:72, test/Plugin/Debug/Spec.hs:47:17-55:72, test/Plugin/Debug/Spec.hs:50:25-55:72 } dead - ({ test/Plugin/Debug/Spec.hs:47:15-56:72, test/Plugin/Debug/Spec.hs:48:17-56:72, test/Plugin/Debug/Spec.hs:51:25-56:72 } + ({ test/Plugin/Debug/Spec.hs:46:15-55:72, test/Plugin/Debug/Spec.hs:47:17-55:72, test/Plugin/Debug/Spec.hs:50:25-55:72 } type) (con - { test/Plugin/Debug/Spec.hs:47:15-56:72, test/Plugin/Debug/Spec.hs:48:17-56:72, test/Plugin/Debug/Spec.hs:51:25-56:72, test/Plugin/Debug/Spec.hs:52:34-52:34 } + { test/Plugin/Debug/Spec.hs:46:15-55:72, test/Plugin/Debug/Spec.hs:47:17-55:72, test/Plugin/Debug/Spec.hs:50:25-55:72, test/Plugin/Debug/Spec.hs:51:34-51:34 } integer 1 ) ) ] (abs - { test/Plugin/Debug/Spec.hs:47:15-56:72, test/Plugin/Debug/Spec.hs:48:17-56:72, test/Plugin/Debug/Spec.hs:51:25-56:72 } + { test/Plugin/Debug/Spec.hs:46:15-55:72, test/Plugin/Debug/Spec.hs:47:17-55:72, test/Plugin/Debug/Spec.hs:50:25-55:72 } dead - ({ test/Plugin/Debug/Spec.hs:47:15-56:72, test/Plugin/Debug/Spec.hs:48:17-56:72, test/Plugin/Debug/Spec.hs:51:25-56:72 } + ({ test/Plugin/Debug/Spec.hs:46:15-55:72, test/Plugin/Debug/Spec.hs:47:17-55:72, test/Plugin/Debug/Spec.hs:50:25-55:72 } type) [ - { test/Plugin/Debug/Spec.hs:47:15-56:72, test/Plugin/Debug/Spec.hs:48:17-56:72, test/Plugin/Debug/Spec.hs:51:25-56:72, test/Plugin/Debug/Spec.hs:54:33-56:72 } + { test/Plugin/Debug/Spec.hs:46:15-55:72, test/Plugin/Debug/Spec.hs:47:17-55:72, test/Plugin/Debug/Spec.hs:50:25-55:72, test/Plugin/Debug/Spec.hs:53:33-55:72 } [ - { test/Plugin/Debug/Spec.hs:47:15-56:72, test/Plugin/Debug/Spec.hs:48:17-56:72, test/Plugin/Debug/Spec.hs:51:25-56:72, test/Plugin/Debug/Spec.hs:54:33-56:72 } - { test/Plugin/Debug/Spec.hs:47:15-56:72, test/Plugin/Debug/Spec.hs:48:17-56:72, test/Plugin/Debug/Spec.hs:51:25-56:72, test/Plugin/Debug/Spec.hs:54:33-56:72 } + { test/Plugin/Debug/Spec.hs:46:15-55:72, test/Plugin/Debug/Spec.hs:47:17-55:72, test/Plugin/Debug/Spec.hs:50:25-55:72, test/Plugin/Debug/Spec.hs:53:33-55:72 } + { test/Plugin/Debug/Spec.hs:46:15-55:72, test/Plugin/Debug/Spec.hs:47:17-55:72, test/Plugin/Debug/Spec.hs:50:25-55:72, test/Plugin/Debug/Spec.hs:53:33-55:72 } addInteger [ - { test/Plugin/Debug/Spec.hs:47:15-56:72, test/Plugin/Debug/Spec.hs:48:17-56:72, test/Plugin/Debug/Spec.hs:51:25-56:72, test/Plugin/Debug/Spec.hs:54:33-56:72, test/Plugin/Debug/Spec.hs:55:37-55:72 } - { test/Plugin/Debug/Spec.hs:47:15-56:72, test/Plugin/Debug/Spec.hs:48:17-56:72, test/Plugin/Debug/Spec.hs:51:25-56:72, test/Plugin/Debug/Spec.hs:54:33-56:72, test/Plugin/Debug/Spec.hs:55:37-55:72 } + { test/Plugin/Debug/Spec.hs:46:15-55:72, test/Plugin/Debug/Spec.hs:47:17-55:72, test/Plugin/Debug/Spec.hs:50:25-55:72, test/Plugin/Debug/Spec.hs:53:33-55:72, test/Plugin/Debug/Spec.hs:54:37-54:72 } + { test/Plugin/Debug/Spec.hs:46:15-55:72, test/Plugin/Debug/Spec.hs:47:17-55:72, test/Plugin/Debug/Spec.hs:50:25-55:72, test/Plugin/Debug/Spec.hs:53:33-55:72, test/Plugin/Debug/Spec.hs:54:37-54:72 } fib [ - { test/Plugin/Debug/Spec.hs:47:15-56:72, test/Plugin/Debug/Spec.hs:48:17-56:72, test/Plugin/Debug/Spec.hs:51:25-56:72, test/Plugin/Debug/Spec.hs:54:33-56:72, test/Plugin/Debug/Spec.hs:55:37-55:72, test/Plugin/Debug/Spec.hs:55:42-55:71 } + { test/Plugin/Debug/Spec.hs:46:15-55:72, test/Plugin/Debug/Spec.hs:47:17-55:72, test/Plugin/Debug/Spec.hs:50:25-55:72, test/Plugin/Debug/Spec.hs:53:33-55:72, test/Plugin/Debug/Spec.hs:54:37-54:72, test/Plugin/Debug/Spec.hs:54:42-54:71 } [ - { test/Plugin/Debug/Spec.hs:47:15-56:72, test/Plugin/Debug/Spec.hs:48:17-56:72, test/Plugin/Debug/Spec.hs:51:25-56:72, test/Plugin/Debug/Spec.hs:54:33-56:72, test/Plugin/Debug/Spec.hs:55:37-55:72, test/Plugin/Debug/Spec.hs:55:42-55:71 } - { test/Plugin/Debug/Spec.hs:47:15-56:72, test/Plugin/Debug/Spec.hs:48:17-56:72, test/Plugin/Debug/Spec.hs:51:25-56:72, test/Plugin/Debug/Spec.hs:54:33-56:72, test/Plugin/Debug/Spec.hs:55:37-55:72, test/Plugin/Debug/Spec.hs:55:42-55:71 } + { test/Plugin/Debug/Spec.hs:46:15-55:72, test/Plugin/Debug/Spec.hs:47:17-55:72, test/Plugin/Debug/Spec.hs:50:25-55:72, test/Plugin/Debug/Spec.hs:53:33-55:72, test/Plugin/Debug/Spec.hs:54:37-54:72, test/Plugin/Debug/Spec.hs:54:42-54:71 } + { test/Plugin/Debug/Spec.hs:46:15-55:72, test/Plugin/Debug/Spec.hs:47:17-55:72, test/Plugin/Debug/Spec.hs:50:25-55:72, test/Plugin/Debug/Spec.hs:53:33-55:72, test/Plugin/Debug/Spec.hs:54:37-54:72, test/Plugin/Debug/Spec.hs:54:42-54:71 } subtractInteger - { test/Plugin/Debug/Spec.hs:47:15-56:72, test/Plugin/Debug/Spec.hs:48:17-56:72, test/Plugin/Debug/Spec.hs:51:25-56:72, test/Plugin/Debug/Spec.hs:54:33-56:72, test/Plugin/Debug/Spec.hs:55:37-55:72, test/Plugin/Debug/Spec.hs:55:42-55:71, test/Plugin/Debug/Spec.hs:55:68-55:68 } + { test/Plugin/Debug/Spec.hs:46:15-55:72, test/Plugin/Debug/Spec.hs:47:17-55:72, test/Plugin/Debug/Spec.hs:50:25-55:72, test/Plugin/Debug/Spec.hs:53:33-55:72, test/Plugin/Debug/Spec.hs:54:37-54:72, test/Plugin/Debug/Spec.hs:54:42-54:71, test/Plugin/Debug/Spec.hs:54:68-54:68 } n ] (con - { test/Plugin/Debug/Spec.hs:47:15-56:72, test/Plugin/Debug/Spec.hs:48:17-56:72, test/Plugin/Debug/Spec.hs:51:25-56:72, test/Plugin/Debug/Spec.hs:54:33-56:72, test/Plugin/Debug/Spec.hs:55:37-55:72, test/Plugin/Debug/Spec.hs:55:42-55:71, test/Plugin/Debug/Spec.hs:55:70-55:70 } + { test/Plugin/Debug/Spec.hs:46:15-55:72, test/Plugin/Debug/Spec.hs:47:17-55:72, test/Plugin/Debug/Spec.hs:50:25-55:72, test/Plugin/Debug/Spec.hs:53:33-55:72, test/Plugin/Debug/Spec.hs:54:37-54:72, test/Plugin/Debug/Spec.hs:54:42-54:71, test/Plugin/Debug/Spec.hs:54:70-54:70 } integer 1 ) @@ -448,20 +448,20 @@ ] ] [ - { test/Plugin/Debug/Spec.hs:47:15-56:72, test/Plugin/Debug/Spec.hs:48:17-56:72, test/Plugin/Debug/Spec.hs:51:25-56:72, test/Plugin/Debug/Spec.hs:54:33-56:72, test/Plugin/Debug/Spec.hs:56:37-56:72 } - { test/Plugin/Debug/Spec.hs:47:15-56:72, test/Plugin/Debug/Spec.hs:48:17-56:72, test/Plugin/Debug/Spec.hs:51:25-56:72, test/Plugin/Debug/Spec.hs:54:33-56:72, test/Plugin/Debug/Spec.hs:56:37-56:72 } + { test/Plugin/Debug/Spec.hs:46:15-55:72, test/Plugin/Debug/Spec.hs:47:17-55:72, test/Plugin/Debug/Spec.hs:50:25-55:72, test/Plugin/Debug/Spec.hs:53:33-55:72, test/Plugin/Debug/Spec.hs:55:37-55:72 } + { test/Plugin/Debug/Spec.hs:46:15-55:72, test/Plugin/Debug/Spec.hs:47:17-55:72, test/Plugin/Debug/Spec.hs:50:25-55:72, test/Plugin/Debug/Spec.hs:53:33-55:72, test/Plugin/Debug/Spec.hs:55:37-55:72 } fib [ - { test/Plugin/Debug/Spec.hs:47:15-56:72, test/Plugin/Debug/Spec.hs:48:17-56:72, test/Plugin/Debug/Spec.hs:51:25-56:72, test/Plugin/Debug/Spec.hs:54:33-56:72, test/Plugin/Debug/Spec.hs:56:37-56:72, test/Plugin/Debug/Spec.hs:56:42-56:71 } + { test/Plugin/Debug/Spec.hs:46:15-55:72, test/Plugin/Debug/Spec.hs:47:17-55:72, test/Plugin/Debug/Spec.hs:50:25-55:72, test/Plugin/Debug/Spec.hs:53:33-55:72, test/Plugin/Debug/Spec.hs:55:37-55:72, test/Plugin/Debug/Spec.hs:55:42-55:71 } [ - { test/Plugin/Debug/Spec.hs:47:15-56:72, test/Plugin/Debug/Spec.hs:48:17-56:72, test/Plugin/Debug/Spec.hs:51:25-56:72, test/Plugin/Debug/Spec.hs:54:33-56:72, test/Plugin/Debug/Spec.hs:56:37-56:72, test/Plugin/Debug/Spec.hs:56:42-56:71 } - { test/Plugin/Debug/Spec.hs:47:15-56:72, test/Plugin/Debug/Spec.hs:48:17-56:72, test/Plugin/Debug/Spec.hs:51:25-56:72, test/Plugin/Debug/Spec.hs:54:33-56:72, test/Plugin/Debug/Spec.hs:56:37-56:72, test/Plugin/Debug/Spec.hs:56:42-56:71 } + { test/Plugin/Debug/Spec.hs:46:15-55:72, test/Plugin/Debug/Spec.hs:47:17-55:72, test/Plugin/Debug/Spec.hs:50:25-55:72, test/Plugin/Debug/Spec.hs:53:33-55:72, test/Plugin/Debug/Spec.hs:55:37-55:72, test/Plugin/Debug/Spec.hs:55:42-55:71 } + { test/Plugin/Debug/Spec.hs:46:15-55:72, test/Plugin/Debug/Spec.hs:47:17-55:72, test/Plugin/Debug/Spec.hs:50:25-55:72, test/Plugin/Debug/Spec.hs:53:33-55:72, test/Plugin/Debug/Spec.hs:55:37-55:72, test/Plugin/Debug/Spec.hs:55:42-55:71 } subtractInteger - { test/Plugin/Debug/Spec.hs:47:15-56:72, test/Plugin/Debug/Spec.hs:48:17-56:72, test/Plugin/Debug/Spec.hs:51:25-56:72, test/Plugin/Debug/Spec.hs:54:33-56:72, test/Plugin/Debug/Spec.hs:56:37-56:72, test/Plugin/Debug/Spec.hs:56:42-56:71, test/Plugin/Debug/Spec.hs:56:68-56:68 } + { test/Plugin/Debug/Spec.hs:46:15-55:72, test/Plugin/Debug/Spec.hs:47:17-55:72, test/Plugin/Debug/Spec.hs:50:25-55:72, test/Plugin/Debug/Spec.hs:53:33-55:72, test/Plugin/Debug/Spec.hs:55:37-55:72, test/Plugin/Debug/Spec.hs:55:42-55:71, test/Plugin/Debug/Spec.hs:55:68-55:68 } n ] (con - { test/Plugin/Debug/Spec.hs:47:15-56:72, test/Plugin/Debug/Spec.hs:48:17-56:72, test/Plugin/Debug/Spec.hs:51:25-56:72, test/Plugin/Debug/Spec.hs:54:33-56:72, test/Plugin/Debug/Spec.hs:56:37-56:72, test/Plugin/Debug/Spec.hs:56:42-56:71, test/Plugin/Debug/Spec.hs:56:70-56:70 } + { test/Plugin/Debug/Spec.hs:46:15-55:72, test/Plugin/Debug/Spec.hs:47:17-55:72, test/Plugin/Debug/Spec.hs:50:25-55:72, test/Plugin/Debug/Spec.hs:53:33-55:72, test/Plugin/Debug/Spec.hs:55:37-55:72, test/Plugin/Debug/Spec.hs:55:42-55:71, test/Plugin/Debug/Spec.hs:55:70-55:70 } integer 2 ) @@ -471,29 +471,29 @@ ) ] (all - { test/Plugin/Debug/Spec.hs:47:15-56:72, test/Plugin/Debug/Spec.hs:48:17-56:72, test/Plugin/Debug/Spec.hs:51:25-56:72 } + { test/Plugin/Debug/Spec.hs:46:15-55:72, test/Plugin/Debug/Spec.hs:47:17-55:72, test/Plugin/Debug/Spec.hs:50:25-55:72 } dead - ({ test/Plugin/Debug/Spec.hs:47:15-56:72, test/Plugin/Debug/Spec.hs:48:17-56:72, test/Plugin/Debug/Spec.hs:51:25-56:72 } + ({ test/Plugin/Debug/Spec.hs:46:15-55:72, test/Plugin/Debug/Spec.hs:47:17-55:72, test/Plugin/Debug/Spec.hs:50:25-55:72 } type) - { test/Plugin/Debug/Spec.hs:47:15-56:72, test/Plugin/Debug/Spec.hs:48:17-56:72, test/Plugin/Debug/Spec.hs:51:25-56:72 } + { test/Plugin/Debug/Spec.hs:46:15-55:72, test/Plugin/Debug/Spec.hs:47:17-55:72, test/Plugin/Debug/Spec.hs:50:25-55:72 } dead ) } ) ] (all - { test/Plugin/Debug/Spec.hs:47:15-56:72, test/Plugin/Debug/Spec.hs:48:17-56:72 } + { test/Plugin/Debug/Spec.hs:46:15-55:72, test/Plugin/Debug/Spec.hs:47:17-55:72 } dead - ({ test/Plugin/Debug/Spec.hs:47:15-56:72, test/Plugin/Debug/Spec.hs:48:17-56:72 } + ({ test/Plugin/Debug/Spec.hs:46:15-55:72, test/Plugin/Debug/Spec.hs:47:17-55:72 } type) - { test/Plugin/Debug/Spec.hs:47:15-56:72, test/Plugin/Debug/Spec.hs:48:17-56:72 } + { test/Plugin/Debug/Spec.hs:46:15-55:72, test/Plugin/Debug/Spec.hs:47:17-55:72 } dead ) } ) ) ) - { test/Plugin/Debug/Spec.hs:46:9-58:9 } fib + { test/Plugin/Debug/Spec.hs:45:9-57:9 } fib ) ) ) \ No newline at end of file diff --git a/plutus-tx-plugin/test/Plugin/Debug/9.6/letFun.pir.golden b/plutus-tx-plugin/test/Plugin/Debug/9.6/letFun.pir.golden index f9cfeceb748..4c61eb0073f 100644 --- a/plutus-tx-plugin/test/Plugin/Debug/9.6/letFun.pir.golden +++ b/plutus-tx-plugin/test/Plugin/Debug/9.6/letFun.pir.golden @@ -137,45 +137,45 @@ ds (con { no-src-span } integer) (let - { test/Plugin/Debug/Spec.hs:39:9-39:87 } + { test/Plugin/Debug/Spec.hs:38:9-38:87 } (nonrec) (termbind - { test/Plugin/Debug/Spec.hs:39:9-39:87 } + { test/Plugin/Debug/Spec.hs:38:9-38:87 } (strict) (vardecl - { test/Plugin/Debug/Spec.hs:39:9-39:87 } + { test/Plugin/Debug/Spec.hs:38:9-38:87 } ds - (con { test/Plugin/Debug/Spec.hs:39:9-39:87 } integer) + (con { test/Plugin/Debug/Spec.hs:38:9-38:87 } integer) ) - { test/Plugin/Debug/Spec.hs:39:9-39:87 } ds + { test/Plugin/Debug/Spec.hs:38:9-38:87 } ds ) (lam { no-src-span } ds (con { no-src-span } integer) (let - { test/Plugin/Debug/Spec.hs:39:9-39:87 } + { test/Plugin/Debug/Spec.hs:38:9-38:87 } (nonrec) (termbind - { test/Plugin/Debug/Spec.hs:39:9-39:87 } + { test/Plugin/Debug/Spec.hs:38:9-38:87 } (strict) (vardecl - { test/Plugin/Debug/Spec.hs:39:9-39:87 } + { test/Plugin/Debug/Spec.hs:38:9-38:87 } ds - (con { test/Plugin/Debug/Spec.hs:39:9-39:87 } integer) + (con { test/Plugin/Debug/Spec.hs:38:9-38:87 } integer) ) - { test/Plugin/Debug/Spec.hs:39:9-39:87 } ds + { test/Plugin/Debug/Spec.hs:38:9-38:87 } ds ) [ - { test/Plugin/Debug/Spec.hs:39:9-39:87, test/Plugin/Debug/Spec.hs:39:44-39:86, test/Plugin/Debug/Spec.hs:39:54-39:79 } + { test/Plugin/Debug/Spec.hs:38:9-38:87, test/Plugin/Debug/Spec.hs:38:44-38:86, test/Plugin/Debug/Spec.hs:38:54-38:79 } [ - { test/Plugin/Debug/Spec.hs:39:9-39:87, test/Plugin/Debug/Spec.hs:39:44-39:86, test/Plugin/Debug/Spec.hs:39:54-39:79 } - { test/Plugin/Debug/Spec.hs:39:9-39:87, test/Plugin/Debug/Spec.hs:39:44-39:86, test/Plugin/Debug/Spec.hs:39:54-39:79 } + { test/Plugin/Debug/Spec.hs:38:9-38:87, test/Plugin/Debug/Spec.hs:38:44-38:86, test/Plugin/Debug/Spec.hs:38:54-38:79 } + { test/Plugin/Debug/Spec.hs:38:9-38:87, test/Plugin/Debug/Spec.hs:38:44-38:86, test/Plugin/Debug/Spec.hs:38:54-38:79 } equalsInteger - { test/Plugin/Debug/Spec.hs:39:9-39:87, test/Plugin/Debug/Spec.hs:39:44-39:86, test/Plugin/Debug/Spec.hs:39:54-39:79, test/Plugin/Debug/Spec.hs:39:77-39:77 } + { test/Plugin/Debug/Spec.hs:38:9-38:87, test/Plugin/Debug/Spec.hs:38:44-38:86, test/Plugin/Debug/Spec.hs:38:54-38:79, test/Plugin/Debug/Spec.hs:38:77-38:77 } ds ] - { test/Plugin/Debug/Spec.hs:39:9-39:87, test/Plugin/Debug/Spec.hs:39:44-39:86, test/Plugin/Debug/Spec.hs:39:54-39:79, test/Plugin/Debug/Spec.hs:39:79-39:79 } + { test/Plugin/Debug/Spec.hs:38:9-38:87, test/Plugin/Debug/Spec.hs:38:44-38:86, test/Plugin/Debug/Spec.hs:38:54-38:79, test/Plugin/Debug/Spec.hs:38:79-38:79 } ds ] ) diff --git a/plutus-tx-plugin/test/Plugin/Debug/Spec.hs b/plutus-tx-plugin/test/Plugin/Debug/Spec.hs index df94a4efc27..987405909cb 100644 --- a/plutus-tx-plugin/test/Plugin/Debug/Spec.hs +++ b/plutus-tx-plugin/test/Plugin/Debug/Spec.hs @@ -24,8 +24,7 @@ import Data.Proxy debug :: TestNested debug = - testNestedGhc - "Debug" + testNested "Debug" . pure $ testNestedGhc [ goldenPirBy config "letFun" letFun , goldenPirBy config "fib" fib ] diff --git a/plutus-tx-plugin/test/Plugin/Errors/Spec.hs b/plutus-tx-plugin/test/Plugin/Errors/Spec.hs index a9a6b5dcb79..11abfde85f4 100644 --- a/plutus-tx-plugin/test/Plugin/Errors/Spec.hs +++ b/plutus-tx-plugin/test/Plugin/Errors/Spec.hs @@ -34,23 +34,23 @@ import GHC.Num.Integer {- HLINT ignore -} errors :: TestNested -errors = testNestedGhc "Errors" - [ goldenUPlc "machInt" machInt - -- FIXME: This fails differently in nix, possibly due to slightly different optimization settings - -- , goldenPlc "negativeInt" negativeInt - , goldenUPlc "caseInt" caseInt - , goldenUPlc "stringLiteral" stringLiteral - , goldenUPlc "recursiveNewtype" recursiveNewtype - , goldenUPlc "mutualRecursionUnfoldingsLocal" mutualRecursionUnfoldingsLocal - , goldenUPlc "literalCaseInt" literalCaseInt - , goldenUPlc "literalCaseBs" literalCaseBs - , goldenUPlc "literalAppendBs" literalAppendBs - , goldenUPlc "literalCaseOther" literalCaseOther - , goldenUPlc "rangeEnumFromTo" rangeEnumFromTo - , goldenUPlc "rangeEnumFromThenTo" rangeEnumFromThenTo - , goldenUPlc "rangeEnumFrom" rangeEnumFrom - , goldenUPlc "rangeEnumFromThen" rangeEnumFromThen - ] +errors = testNested "Errors" . pure $ testNestedGhc + [ goldenUPlc "machInt" machInt + -- FIXME: This fails differently in nix, possibly due to slightly different optimization settings + -- , goldenPlc "negativeInt" negativeInt + , goldenUPlc "caseInt" caseInt + , goldenUPlc "stringLiteral" stringLiteral + , goldenUPlc "recursiveNewtype" recursiveNewtype + , goldenUPlc "mutualRecursionUnfoldingsLocal" mutualRecursionUnfoldingsLocal + , goldenUPlc "literalCaseInt" literalCaseInt + , goldenUPlc "literalCaseBs" literalCaseBs + , goldenUPlc "literalAppendBs" literalAppendBs + , goldenUPlc "literalCaseOther" literalCaseOther + , goldenUPlc "rangeEnumFromTo" rangeEnumFromTo + , goldenUPlc "rangeEnumFromThenTo" rangeEnumFromThenTo + , goldenUPlc "rangeEnumFrom" rangeEnumFrom + , goldenUPlc "rangeEnumFromThen" rangeEnumFromThen + ] machInt :: CompiledCode Int machInt = plc (Proxy @"machInt") (1::Int) diff --git a/plutus-tx-plugin/test/Plugin/Functions/Spec.hs b/plutus-tx-plugin/test/Plugin/Functions/Spec.hs index 1a3738be2f2..a44c8172252 100644 --- a/plutus-tx-plugin/test/Plugin/Functions/Spec.hs +++ b/plutus-tx-plugin/test/Plugin/Functions/Spec.hs @@ -30,9 +30,9 @@ import PlutusTx.Test import Data.Proxy functions :: TestNested -functions = testNestedGhc "Functions" [ - recursiveFunctions - , unfoldings +functions = testNested "Functions" . pure $ testNestedGhc + [ recursiveFunctions + , unfoldings ] recursiveFunctions :: TestNested diff --git a/plutus-tx-plugin/test/Plugin/Laziness/Spec.hs b/plutus-tx-plugin/test/Plugin/Laziness/Spec.hs index 2d1928c4d9a..32dc5868ae5 100644 --- a/plutus-tx-plugin/test/Plugin/Laziness/Spec.hs +++ b/plutus-tx-plugin/test/Plugin/Laziness/Spec.hs @@ -25,10 +25,10 @@ import PlutusTx.Test import Data.Proxy laziness :: TestNested -laziness = testNestedGhc "Laziness" [ - goldenPir "joinError" joinErrorPir - , goldenUEval "joinErrorEval" [ toUPlc joinErrorPir, toUPlc $ plc (Proxy @"T") True, toUPlc $ plc (Proxy @"F") False] - , goldenPir "lazyDepUnit" lazyDepUnit +laziness = testNested "Laziness" . pure $ testNestedGhc + [ goldenPir "joinError" joinErrorPir + , goldenUEval "joinErrorEval" [ toUPlc joinErrorPir, toUPlc $ plc (Proxy @"T") True, toUPlc $ plc (Proxy @"F") False] + , goldenPir "lazyDepUnit" lazyDepUnit ] joinErrorPir :: CompiledCode (Bool -> Bool -> ()) diff --git a/plutus-tx-plugin/test/Plugin/NoTrace/Lib.hs b/plutus-tx-plugin/test/Plugin/NoTrace/Lib.hs index ff29a4032ff..a9243b1fdc6 100644 --- a/plutus-tx-plugin/test/Plugin/NoTrace/Lib.hs +++ b/plutus-tx-plugin/test/Plugin/NoTrace/Lib.hs @@ -12,7 +12,7 @@ import Prelude hiding (Show, show, (+)) import Control.Lens (universeOf, (&), (^.)) import GHC.Exts (noinline) import PlutusCore.Default.Builtins qualified as Builtin -import PlutusCore.Evaluation.Machine.ExBudgetingDefaults (defaultCekParameters) +import PlutusCore.Evaluation.Machine.ExBudgetingDefaults (defaultCekParametersForTesting) import PlutusTx.Builtins (BuiltinString, appendString, error) import PlutusTx.Code (CompiledCode, getPlc, getPlcNoAnn) import PlutusTx.Numeric ((+)) @@ -40,7 +40,8 @@ evaluatesToError = not . evaluatesWithoutError evaluatesWithoutError :: CompiledCode a -> Bool evaluatesWithoutError code = - runCekDeBruijn defaultCekParameters counting noEmitter (getPlc code ^. UPLC.progTerm) & \case + runCekDeBruijn defaultCekParametersForTesting counting noEmitter + (getPlc code ^. UPLC.progTerm) & \case (Left _exception, _counter, _logs) -> False (Right _result, _counter, _logs) -> True diff --git a/plutus-tx-plugin/test/Plugin/NoTrace/Spec.hs b/plutus-tx-plugin/test/Plugin/NoTrace/Spec.hs index fd4a09ab823..a062b1a5980 100644 --- a/plutus-tx-plugin/test/Plugin/NoTrace/Spec.hs +++ b/plutus-tx-plugin/test/Plugin/NoTrace/Spec.hs @@ -11,17 +11,16 @@ import Prelude import Plugin.NoTrace.Lib (countTraces) import Plugin.NoTrace.Lib qualified as Lib import Plugin.NoTrace.WithoutTraces qualified as WithoutTraces +import Plugin.NoTrace.WithPreservedLogging qualified as WithPreservedLogging import Plugin.NoTrace.WithTraces qualified as WithTraces import Test.Tasty (testGroup) -import Test.Tasty.Extras (TestNested) +import Test.Tasty.Extras (TestNested, embed) import Test.Tasty.HUnit (assertBool, testCase, (@=?)) noTrace :: TestNested -noTrace = pure do - testGroup - "remove-trace" - [ testGroup - "Trace calls are preserved" +noTrace = embed do + testGroup "remove-trace" + [ testGroup "Trace calls are preserved (no-remove-trace)" [ testCase "trace-argument" $ 1 @=? countTraces WithTraces.traceArgument , testCase "trace-show" $ @@ -39,8 +38,26 @@ noTrace = pure do , testCase "trace-impure with effect" $ -- See Note [Impure trace messages] assertBool "Effect is missing" (Lib.evaluatesToError WithTraces.traceImpure) ] + , testGroup "Trace calls are preserved (preserve-logging)" + [ testCase "trace-argument" $ + 1 @=? countTraces WithPreservedLogging.traceArgument + , testCase "trace-show" $ + 1 @=? countTraces WithPreservedLogging.traceShow + , testCase "trace-complex" $ + 2 @=? countTraces WithPreservedLogging.traceComplex + , testCase "trace-direct" $ + 1 @=? countTraces WithPreservedLogging.traceDirect + , testCase "trace-non-constant" $ + 1 @=? countTraces WithPreservedLogging.traceNonConstant + , testCase "trace-repeatedly" $ + 3 @=? countTraces WithPreservedLogging.traceRepeatedly + , testCase "trace-impure" $ + 1 @=? countTraces WithPreservedLogging.traceImpure + , testCase "trace-impure with effect" $ -- See Note [Impure trace messages] + assertBool "Effect is missing" (Lib.evaluatesToError WithPreservedLogging.traceImpure) + ] , testGroup - "Trace calls are removed" + "Trace calls are removed (remove-trace)" [ testCase "trace-argument" $ 0 @=? countTraces WithoutTraces.traceArgument , testCase "trace-show" $ diff --git a/plutus-tx-plugin/test/Plugin/NoTrace/WithPreservedLogging.hs b/plutus-tx-plugin/test/Plugin/NoTrace/WithPreservedLogging.hs new file mode 100644 index 00000000000..4f586c2120d --- /dev/null +++ b/plutus-tx-plugin/test/Plugin/NoTrace/WithPreservedLogging.hs @@ -0,0 +1,36 @@ +{-# LANGUAGE DataKinds #-} +{-# LANGUAGE NoImplicitPrelude #-} +{-# LANGUAGE TypeApplications #-} +{-# OPTIONS_GHC -fplugin PlutusTx.Plugin #-} +{-# OPTIONS_GHC -fplugin-opt PlutusTx.Plugin:no-conservative-optimisation #-} +{-# OPTIONS_GHC -fplugin-opt PlutusTx.Plugin:preserve-logging #-} + +module Plugin.NoTrace.WithPreservedLogging where + +import Data.Proxy (Proxy (..)) +import Plugin.NoTrace.Lib qualified as Lib +import PlutusTx.Bool (Bool) +import PlutusTx.Builtins (BuiltinString, Integer) +import PlutusTx.Code (CompiledCode) +import PlutusTx.Plugin (plc) + +traceArgument :: CompiledCode (BuiltinString -> ()) +traceArgument = plc (Proxy @"traceArgument") Lib.traceArgument + +traceShow :: CompiledCode () +traceShow = plc (Proxy @"traceShow") Lib.traceShow + +traceDirect :: CompiledCode () +traceDirect = plc (Proxy @"traceDirect") Lib.traceDirect + +traceNonConstant :: CompiledCode (BuiltinString -> BuiltinString) +traceNonConstant = plc (Proxy @"traceNonConstant") Lib.traceNonConstant + +traceComplex :: CompiledCode (Bool -> ()) +traceComplex = plc (Proxy @"traceComplex") Lib.traceComplex + +traceRepeatedly :: CompiledCode Integer +traceRepeatedly = plc (Proxy @"traceRepeatedly") Lib.traceRepeatedly + +traceImpure :: CompiledCode () +traceImpure = plc (Proxy @"traceImpure") Lib.traceImpure diff --git a/plutus-tx-plugin/test/Plugin/Optimization/Spec.hs b/plutus-tx-plugin/test/Plugin/Optimization/Spec.hs index 63e85767659..0e936ca77e6 100644 --- a/plutus-tx-plugin/test/Plugin/Optimization/Spec.hs +++ b/plutus-tx-plugin/test/Plugin/Optimization/Spec.hs @@ -18,8 +18,8 @@ import PlutusTx.Test () import Data.Proxy optimization :: TestNested -optimization = testNestedGhc "Optimization" [ - goldenUPlc "alwaysSucceeds" alwaysSucceeds +optimization = testNested "Optimization" Prelude.. Prelude.pure Prelude.$ testNestedGhc + [ goldenUPlc "alwaysSucceeds" alwaysSucceeds , goldenUPlc "alwaysFails" alwaysFails ] diff --git a/plutus-tx-plugin/test/Plugin/Patterns/Spec.hs b/plutus-tx-plugin/test/Plugin/Patterns/Spec.hs index 9ce7498a4e1..77653cd21b4 100644 --- a/plutus-tx-plugin/test/Plugin/Patterns/Spec.hs +++ b/plutus-tx-plugin/test/Plugin/Patterns/Spec.hs @@ -56,7 +56,7 @@ psymRec = plc (Proxy @"psymRec") ( ) patterns :: TestNested -patterns = testNestedGhc "Patterns" [ - goldenPirReadable "psym1" psym1 - , goldenPirReadable "psymRec" psymRec +patterns = testNested "Patterns" Prelude.. Prelude.pure Prelude.$ testNestedGhc + [ goldenPirReadable "psym1" psym1 + , goldenPirReadable "psymRec" psymRec ] diff --git a/plutus-tx-plugin/test/Plugin/Primitives/Spec.hs b/plutus-tx-plugin/test/Plugin/Primitives/Spec.hs index 79e256f7aa2..457e08b47a9 100644 --- a/plutus-tx-plugin/test/Plugin/Primitives/Spec.hs +++ b/plutus-tx-plugin/test/Plugin/Primitives/Spec.hs @@ -25,8 +25,8 @@ import PlutusTx.Test import Data.Proxy primitives :: TestNested -primitives = testNestedGhc "Primitives" [ - goldenPir "string" string +primitives = testNested "Primitives" . pure $ testNestedGhc + [ goldenPir "string" string , goldenPir "int" int , goldenPir "int2" int2 , goldenPir "bool" bool diff --git a/plutus-tx-plugin/test/Plugin/Profiling/Spec.hs b/plutus-tx-plugin/test/Plugin/Profiling/Spec.hs index 6a1f874ff12..999acbebbe2 100644 --- a/plutus-tx-plugin/test/Plugin/Profiling/Spec.hs +++ b/plutus-tx-plugin/test/Plugin/Profiling/Spec.hs @@ -29,8 +29,8 @@ import Data.Proxy (Proxy (Proxy)) import Prelude profiling :: TestNested -profiling = testNestedGhc "Profiling" [ - goldenPir "fib" fibTest +profiling = testNested "Profiling" . pure $ testNestedGhc + [ goldenPir "fib" fibTest , goldenUEvalLogs "fib4" [toUPlc fibTest, toUPlc $ plc (Proxy @"4") (4::Integer)] , goldenUEvalLogs "fact4" [toUPlc factTest, toUPlc $ plc (Proxy @"4") (4::Integer)] , goldenPir "addInt" addIntTest diff --git a/plutus-tx-plugin/test/Plugin/Strict/Spec.hs b/plutus-tx-plugin/test/Plugin/Strict/Spec.hs index 94ce6cd1226..f948ef9d333 100644 --- a/plutus-tx-plugin/test/Plugin/Strict/Spec.hs +++ b/plutus-tx-plugin/test/Plugin/Strict/Spec.hs @@ -23,8 +23,8 @@ import PlutusTx.Test import Data.Proxy strict :: TestNested -strict = testNestedGhc "Strict" [ - goldenPirReadable "strictAdd" strictAdd +strict = testNested "Strict" . pure $ testNestedGhc + [ goldenPirReadable "strictAdd" strictAdd , goldenPirReadable "strictAppend" strictAppend , goldenPirReadable "strictAppend2" strictAppend2 , goldenPirReadable "strictAppendString" strictAppendString diff --git a/plutus-tx-plugin/test/Plugin/Typeclasses/Spec.hs b/plutus-tx-plugin/test/Plugin/Typeclasses/Spec.hs index c7ee38c7226..74fc2112fa5 100644 --- a/plutus-tx-plugin/test/Plugin/Typeclasses/Spec.hs +++ b/plutus-tx-plugin/test/Plugin/Typeclasses/Spec.hs @@ -27,17 +27,17 @@ import PlutusTx.Test import Data.Proxy typeclasses :: TestNested -typeclasses = testNestedGhc "Typeclasses" [ - goldenPir "sizedBasic" sizedBasic - , goldenPir "sizedPair" sizedPair - , goldenPir "multiFunction" multiFunction - , goldenPir "defaultMethods" defaultMethods - , goldenPir "partialApplication" partialApplication - , goldenPir "sequenceTest" sequenceTest - , goldenPir "compareTest" compareTest - , goldenPir "concatTest" concatTest - , goldenPir "sumTest" sumTest - , goldenPir "fmapDefaultTest" fmapDefaultTest +typeclasses = testNested "Typeclasses" . pure $ testNestedGhc + [ goldenPir "sizedBasic" sizedBasic + , goldenPir "sizedPair" sizedPair + , goldenPir "multiFunction" multiFunction + , goldenPir "defaultMethods" defaultMethods + , goldenPir "partialApplication" partialApplication + , goldenPir "sequenceTest" sequenceTest + , goldenPir "compareTest" compareTest + , goldenPir "concatTest" concatTest + , goldenPir "sumTest" sumTest + , goldenPir "fmapDefaultTest" fmapDefaultTest ] class Sized a where diff --git a/plutus-tx-plugin/test/ShortCircuit/Spec.hs b/plutus-tx-plugin/test/ShortCircuit/Spec.hs index b8fb7012c28..0c437dffe97 100644 --- a/plutus-tx-plugin/test/ShortCircuit/Spec.hs +++ b/plutus-tx-plugin/test/ShortCircuit/Spec.hs @@ -12,7 +12,7 @@ import ShortCircuit.WithoutGHCOptimisations qualified as WithoutOptimisations import Control.Lens ((&), (^.)) import PlutusCore.Default (DefaultFun, DefaultUni) -import PlutusCore.Evaluation.Machine.ExBudgetingDefaults (defaultCekParameters) +import PlutusCore.Evaluation.Machine.ExBudgetingDefaults (defaultCekParametersForTesting) import PlutusTx.Code (CompiledCode, getPlc, unsafeApplyCode) import PlutusTx.Lift (liftCodeDef) import PlutusTx.TH (compile) @@ -49,7 +49,7 @@ tests = assertResult :: NTerm DefaultUni DefaultFun () -> CompiledCode a -> Assertion assertResult expected code = do let plc = getPlc code ^. progTerm - case runCekDeBruijn defaultCekParameters counting noEmitter plc of + case runCekDeBruijn defaultCekParametersForTesting counting noEmitter plc of (Left ex, _counting, _logs) -> assertFailure $ show ex (Right actual, _counting, _logs) -> assertEqual "Evaluation has succeeded" expected actual diff --git a/plutus-tx-plugin/test/Spec.hs b/plutus-tx-plugin/test/Spec.hs index 5847ced49e5..843de915cbe 100644 --- a/plutus-tx-plugin/test/Spec.hs +++ b/plutus-tx-plugin/test/Spec.hs @@ -1,6 +1,7 @@ module Main (main) where import AsData.Budget.Spec qualified as AsData.Budget +import AssocMap.Spec qualified as AssocMap import Blueprint.Tests qualified import Budget.Spec qualified as Budget import IntegerLiterals.NoStrict.NegativeLiterals.Spec qualified @@ -14,32 +15,33 @@ import Plugin.Spec qualified as Plugin import ShortCircuit.Spec qualified as ShortCircuit import StdLib.Spec qualified as Lib import Strictness.Spec qualified as Strictness -import Test.Tasty (defaultMain, testGroup) -import Test.Tasty.Extras (TestNested, runTestNestedIn) +import Test.Tasty (TestTree, defaultMain) +import Test.Tasty.Extras (embed, runTestNested) import TH.Spec qualified as TH import Unicode.Spec qualified as Unicode main :: IO () -main = defaultMain $ runTestNestedIn ["test"] tests +main = defaultMain tests -tests :: TestNested +tests :: TestTree tests = - testGroup "tests" - <$> sequence - [ Plugin.tests - , IntegerLiterals.NoStrict.NegativeLiterals.Spec.tests - , IntegerLiterals.NoStrict.NoNegativeLiterals.Spec.tests - , IntegerLiterals.Strict.NegativeLiterals.Spec.tests - , IntegerLiterals.Strict.NoNegativeLiterals.Spec.tests - , IsData.tests - , Lift.tests - , TH.tests - , Lib.tests - , Budget.tests - , AsData.Budget.tests - , Optimization.tests - , pure ShortCircuit.tests - , Strictness.tests - , Blueprint.Tests.goldenTests - , pure Unicode.tests - ] + runTestNested ["test"] + [ Plugin.tests + , IntegerLiterals.NoStrict.NegativeLiterals.Spec.tests + , IntegerLiterals.NoStrict.NoNegativeLiterals.Spec.tests + , IntegerLiterals.Strict.NegativeLiterals.Spec.tests + , IntegerLiterals.Strict.NoNegativeLiterals.Spec.tests + , IsData.tests + , Lift.tests + , TH.tests + , Lib.tests + , Budget.tests + , AsData.Budget.tests + , Optimization.tests + , Strictness.tests + , Blueprint.Tests.goldenTests + , AssocMap.goldenTests + , embed ShortCircuit.tests + , embed Unicode.tests + , embed AssocMap.propertyTests + ] diff --git a/plutus-tx-plugin/test/StdLib/Spec.hs b/plutus-tx-plugin/test/StdLib/Spec.hs index 502e1659162..8d45fee88f4 100644 --- a/plutus-tx-plugin/test/StdLib/Spec.hs +++ b/plutus-tx-plugin/test/StdLib/Spec.hs @@ -20,7 +20,7 @@ import Hedgehog (MonadGen, Property) import Hedgehog qualified import Hedgehog.Gen qualified as Gen import Hedgehog.Range qualified as Range -import PlutusCore.Test (TestNested, goldenUEval, testNestedGhc) +import PlutusCore.Test (TestNested, embed, goldenUEval, testNested, testNestedGhc) import PlutusTx.Test (goldenPir) import Test.Tasty (TestName) import Test.Tasty.Hedgehog (testPropertyNamed) @@ -45,15 +45,15 @@ roundPlc = plc (Proxy @"roundPlc") Ratio.round tests :: TestNested tests = - testNestedGhc "StdLib" + testNested "StdLib" . pure $ testNestedGhc [ goldenUEval "ratioInterop" [ getPlcNoAnn roundPlc, snd (Lift.liftProgramDef (Ratio.fromGHC 3.75)) ] , testRatioProperty "round" Ratio.round round , testRatioProperty "truncate" Ratio.truncate truncate , testRatioProperty "abs" (fmap Ratio.toGHC Ratio.abs) abs - , pure $ testPropertyNamed "ord" "testOrd" testOrd - , pure $ testPropertyNamed "divMod" "testDivMod" testDivMod - , pure $ testPropertyNamed "quotRem" "testQuotRem" testQuotRem - , pure $ testPropertyNamed "Eq @Data" "eqData" eqData + , embed $ testPropertyNamed "ord" "testOrd" testOrd + , embed $ testPropertyNamed "divMod" "testDivMod" testDivMod + , embed $ testPropertyNamed "quotRem" "testQuotRem" testQuotRem + , embed $ testPropertyNamed "Eq @Data" "eqData" eqData , goldenPir "errorTrace" errorTrace ] @@ -67,7 +67,7 @@ tryHard :: (MonadIO m, NFData a) => a -> m (Maybe a) tryHard ~a = reoption <$> (liftIO $ try @SomeException $ evaluate $ force a) testRatioProperty :: (Show a, Eq a) => TestName -> (Ratio.Rational -> a) -> (Rational -> a) -> TestNested -testRatioProperty nm plutusFunc ghcFunc = pure $ testPropertyNamed nm (fromString nm) $ Hedgehog.property $ do +testRatioProperty nm plutusFunc ghcFunc = embed $ testPropertyNamed nm (fromString nm) $ Hedgehog.property $ do rat <- Hedgehog.forAll $ Gen.realFrac_ (Range.linearFrac (-10000) 100000) let ghcResult = ghcFunc rat plutusResult = plutusFunc $ Ratio.fromGHC rat diff --git a/plutus-tx-plugin/test/Strictness/9.6/lambda-default.eval.golden b/plutus-tx-plugin/test/Strictness/9.6/lambda-default.eval.golden index 1d4b8b27224..f2c04fe10eb 100644 --- a/plutus-tx-plugin/test/Strictness/9.6/lambda-default.eval.golden +++ b/plutus-tx-plugin/test/Strictness/9.6/lambda-default.eval.golden @@ -1,2 +1,2 @@ -An error has occurred: User error: +An error has occurred: The machine terminated because of an error, either from a built-in function or from an explicit use of 'error'. \ No newline at end of file diff --git a/plutus-tx-plugin/test/Strictness/9.6/lambda-nonstrict.eval.golden b/plutus-tx-plugin/test/Strictness/9.6/lambda-nonstrict.eval.golden index 1d4b8b27224..f2c04fe10eb 100644 --- a/plutus-tx-plugin/test/Strictness/9.6/lambda-nonstrict.eval.golden +++ b/plutus-tx-plugin/test/Strictness/9.6/lambda-nonstrict.eval.golden @@ -1,2 +1,2 @@ -An error has occurred: User error: +An error has occurred: The machine terminated because of an error, either from a built-in function or from an explicit use of 'error'. \ No newline at end of file diff --git a/plutus-tx-plugin/test/Strictness/9.6/lambda-strict.eval.golden b/plutus-tx-plugin/test/Strictness/9.6/lambda-strict.eval.golden index 1d4b8b27224..f2c04fe10eb 100644 --- a/plutus-tx-plugin/test/Strictness/9.6/lambda-strict.eval.golden +++ b/plutus-tx-plugin/test/Strictness/9.6/lambda-strict.eval.golden @@ -1,2 +1,2 @@ -An error has occurred: User error: +An error has occurred: The machine terminated because of an error, either from a built-in function or from an explicit use of 'error'. \ No newline at end of file diff --git a/plutus-tx-plugin/test/Strictness/Spec.hs b/plutus-tx-plugin/test/Strictness/Spec.hs index 29ad1e3ea98..6191122eaa0 100644 --- a/plutus-tx-plugin/test/Strictness/Spec.hs +++ b/plutus-tx-plugin/test/Strictness/Spec.hs @@ -15,8 +15,7 @@ import PlutusTx.TH (compile) tests :: TestNested tests = - testNestedGhc - "Strictness" + testNested "Strictness" . pure $ testNestedGhc [ goldenEvalCekCatch "lambda-default" [lambdaDefault `unsafeApplyCode` bot] , goldenPirReadable "lambda-default" lambdaDefault , goldenUPlcReadable "lambda-default" lambdaDefault diff --git a/plutus-tx-plugin/test/TH/Spec.hs b/plutus-tx-plugin/test/TH/Spec.hs index b6d78c1940b..5b0de5f5d14 100644 --- a/plutus-tx-plugin/test/TH/Spec.hs +++ b/plutus-tx-plugin/test/TH/Spec.hs @@ -36,18 +36,18 @@ someData :: (BuiltinData, BuiltinData, BuiltinData) someData = (toBuiltinData (One 1), toBuiltinData Two, toBuiltinData (Three ())) tests :: TestNested -tests = testNestedGhc "TH" - [ goldenPir "simple" simple - , goldenPir "power" powerPlc - , goldenPir "and" andPlc - , goldenEvalCek "all" [allPlc] - , goldenEvalCek "convertString" [convertString] - , goldenEvalCekLog "traceDirect" [traceDirect] - , goldenEvalCekLog "tracePrelude" [tracePrelude] - , goldenEvalCekLog "traceRepeatedly" [traceRepeatedly] - -- want to see the raw structure, so using Show - , nestedGoldenVsDoc "someData" "" (pretty $ Haskell.show someData) - ] +tests = testNested "TH" . pure $ testNestedGhc + [ goldenPir "simple" simple + , goldenPir "power" powerPlc + , goldenPir "and" andPlc + , goldenEvalCek "all" [allPlc] + , goldenEvalCek "convertString" [convertString] + , goldenEvalCekLog "traceDirect" [traceDirect] + , goldenEvalCekLog "tracePrelude" [tracePrelude] + , goldenEvalCekLog "traceRepeatedly" [traceRepeatedly] + -- want to see the raw structure, so using Show + , nestedGoldenVsDoc "someData" "" (pretty $ Haskell.show someData) + ] simple :: CompiledCode (Bool -> Integer) simple = $$(compile [|| \(x::Bool) -> if x then (1::Integer) else (2::Integer) ||]) diff --git a/plutus-tx-plugin/test/size/minus.size.golden b/plutus-tx-plugin/test/size/Golden/Rational/Additive/minus.size.golden similarity index 100% rename from plutus-tx-plugin/test/size/minus.size.golden rename to plutus-tx-plugin/test/size/Golden/Rational/Additive/minus.size.golden diff --git a/plutus-tx-plugin/test/size/negate-specialized.size.golden b/plutus-tx-plugin/test/size/Golden/Rational/Additive/negate-specialized.size.golden similarity index 100% rename from plutus-tx-plugin/test/size/negate-specialized.size.golden rename to plutus-tx-plugin/test/size/Golden/Rational/Additive/negate-specialized.size.golden diff --git a/plutus-tx-plugin/test/size/plus.size.golden b/plutus-tx-plugin/test/size/Golden/Rational/Additive/plus.size.golden similarity index 100% rename from plutus-tx-plugin/test/size/plus.size.golden rename to plutus-tx-plugin/test/size/Golden/Rational/Additive/plus.size.golden diff --git a/plutus-tx-plugin/test/size/zero.size.golden b/plutus-tx-plugin/test/size/Golden/Rational/Additive/zero.size.golden similarity index 100% rename from plutus-tx-plugin/test/size/zero.size.golden rename to plutus-tx-plugin/test/size/Golden/Rational/Additive/zero.size.golden diff --git a/plutus-tx-plugin/test/size/fromInteger.size.golden b/plutus-tx-plugin/test/size/Golden/Rational/Construction/fromInteger.size.golden similarity index 100% rename from plutus-tx-plugin/test/size/fromInteger.size.golden rename to plutus-tx-plugin/test/size/Golden/Rational/Construction/fromInteger.size.golden diff --git a/plutus-tx-plugin/test/size/ratio.size.golden b/plutus-tx-plugin/test/size/Golden/Rational/Construction/ratio.size.golden similarity index 100% rename from plutus-tx-plugin/test/size/ratio.size.golden rename to plutus-tx-plugin/test/size/Golden/Rational/Construction/ratio.size.golden diff --git a/plutus-tx-plugin/test/size/unsafeRatio.size.golden b/plutus-tx-plugin/test/size/Golden/Rational/Construction/unsafeRatio.size.golden similarity index 100% rename from plutus-tx-plugin/test/size/unsafeRatio.size.golden rename to plutus-tx-plugin/test/size/Golden/Rational/Construction/unsafeRatio.size.golden diff --git a/plutus-tx-plugin/test/size/equal.size.golden b/plutus-tx-plugin/test/size/Golden/Rational/Eq/equal.size.golden similarity index 100% rename from plutus-tx-plugin/test/size/equal.size.golden rename to plutus-tx-plugin/test/size/Golden/Rational/Eq/equal.size.golden diff --git a/plutus-tx-plugin/test/size/not-equal.size.golden b/plutus-tx-plugin/test/size/Golden/Rational/Eq/not-equal.size.golden similarity index 100% rename from plutus-tx-plugin/test/size/not-equal.size.golden rename to plutus-tx-plugin/test/size/Golden/Rational/Eq/not-equal.size.golden diff --git a/plutus-tx-plugin/test/size/one.size.golden b/plutus-tx-plugin/test/size/Golden/Rational/Multiplicative/one.size.golden similarity index 100% rename from plutus-tx-plugin/test/size/one.size.golden rename to plutus-tx-plugin/test/size/Golden/Rational/Multiplicative/one.size.golden diff --git a/plutus-tx-plugin/test/size/scale.size.golden b/plutus-tx-plugin/test/size/Golden/Rational/Multiplicative/scale.size.golden similarity index 100% rename from plutus-tx-plugin/test/size/scale.size.golden rename to plutus-tx-plugin/test/size/Golden/Rational/Multiplicative/scale.size.golden diff --git a/plutus-tx-plugin/test/size/times.size.golden b/plutus-tx-plugin/test/size/Golden/Rational/Multiplicative/times.size.golden similarity index 100% rename from plutus-tx-plugin/test/size/times.size.golden rename to plutus-tx-plugin/test/size/Golden/Rational/Multiplicative/times.size.golden diff --git a/plutus-tx-plugin/test/size/compare.size.golden b/plutus-tx-plugin/test/size/Golden/Rational/Ord/compare.size.golden similarity index 100% rename from plutus-tx-plugin/test/size/compare.size.golden rename to plutus-tx-plugin/test/size/Golden/Rational/Ord/compare.size.golden diff --git a/plutus-tx-plugin/test/size/greater-than-equal.size.golden b/plutus-tx-plugin/test/size/Golden/Rational/Ord/greater-than-equal.size.golden similarity index 100% rename from plutus-tx-plugin/test/size/greater-than-equal.size.golden rename to plutus-tx-plugin/test/size/Golden/Rational/Ord/greater-than-equal.size.golden diff --git a/plutus-tx-plugin/test/size/greater-than.size.golden b/plutus-tx-plugin/test/size/Golden/Rational/Ord/greater-than.size.golden similarity index 100% rename from plutus-tx-plugin/test/size/greater-than.size.golden rename to plutus-tx-plugin/test/size/Golden/Rational/Ord/greater-than.size.golden diff --git a/plutus-tx-plugin/test/size/less-than-equal.size.golden b/plutus-tx-plugin/test/size/Golden/Rational/Ord/less-than-equal.size.golden similarity index 100% rename from plutus-tx-plugin/test/size/less-than-equal.size.golden rename to plutus-tx-plugin/test/size/Golden/Rational/Ord/less-than-equal.size.golden diff --git a/plutus-tx-plugin/test/size/less-than.size.golden b/plutus-tx-plugin/test/size/Golden/Rational/Ord/less-than.size.golden similarity index 100% rename from plutus-tx-plugin/test/size/less-than.size.golden rename to plutus-tx-plugin/test/size/Golden/Rational/Ord/less-than.size.golden diff --git a/plutus-tx-plugin/test/size/max.size.golden b/plutus-tx-plugin/test/size/Golden/Rational/Ord/max.size.golden similarity index 100% rename from plutus-tx-plugin/test/size/max.size.golden rename to plutus-tx-plugin/test/size/Golden/Rational/Ord/max.size.golden diff --git a/plutus-tx-plugin/test/size/min.size.golden b/plutus-tx-plugin/test/size/Golden/Rational/Ord/min.size.golden similarity index 100% rename from plutus-tx-plugin/test/size/min.size.golden rename to plutus-tx-plugin/test/size/Golden/Rational/Ord/min.size.golden diff --git a/plutus-tx-plugin/test/size/abs-specialized.size.golden b/plutus-tx-plugin/test/size/Golden/Rational/Other/abs-specialized.size.golden similarity index 100% rename from plutus-tx-plugin/test/size/abs-specialized.size.golden rename to plutus-tx-plugin/test/size/Golden/Rational/Other/abs-specialized.size.golden diff --git a/plutus-tx-plugin/test/size/denominator.size.golden b/plutus-tx-plugin/test/size/Golden/Rational/Other/denominator.size.golden similarity index 100% rename from plutus-tx-plugin/test/size/denominator.size.golden rename to plutus-tx-plugin/test/size/Golden/Rational/Other/denominator.size.golden diff --git a/plutus-tx-plugin/test/size/numerator.size.golden b/plutus-tx-plugin/test/size/Golden/Rational/Other/numerator.size.golden similarity index 100% rename from plutus-tx-plugin/test/size/numerator.size.golden rename to plutus-tx-plugin/test/size/Golden/Rational/Other/numerator.size.golden diff --git a/plutus-tx-plugin/test/size/properFraction.size.golden b/plutus-tx-plugin/test/size/Golden/Rational/Other/properFraction.size.golden similarity index 100% rename from plutus-tx-plugin/test/size/properFraction.size.golden rename to plutus-tx-plugin/test/size/Golden/Rational/Other/properFraction.size.golden diff --git a/plutus-tx-plugin/test/size/recip.size.golden b/plutus-tx-plugin/test/size/Golden/Rational/Other/recip.size.golden similarity index 100% rename from plutus-tx-plugin/test/size/recip.size.golden rename to plutus-tx-plugin/test/size/Golden/Rational/Other/recip.size.golden diff --git a/plutus-tx-plugin/test/size/round.size.golden b/plutus-tx-plugin/test/size/Golden/Rational/Other/round.size.golden similarity index 100% rename from plutus-tx-plugin/test/size/round.size.golden rename to plutus-tx-plugin/test/size/Golden/Rational/Other/round.size.golden diff --git a/plutus-tx-plugin/test/size/truncate.size.golden b/plutus-tx-plugin/test/size/Golden/Rational/Other/truncate.size.golden similarity index 100% rename from plutus-tx-plugin/test/size/truncate.size.golden rename to plutus-tx-plugin/test/size/Golden/Rational/Other/truncate.size.golden diff --git a/plutus-tx-plugin/test/size/fromBuiltinData.size.golden b/plutus-tx-plugin/test/size/Golden/Rational/Serialization/fromBuiltinData.size.golden similarity index 100% rename from plutus-tx-plugin/test/size/fromBuiltinData.size.golden rename to plutus-tx-plugin/test/size/Golden/Rational/Serialization/fromBuiltinData.size.golden diff --git a/plutus-tx-plugin/test/size/toBuiltinData.size.golden b/plutus-tx-plugin/test/size/Golden/Rational/Serialization/toBuiltinData.size.golden similarity index 100% rename from plutus-tx-plugin/test/size/toBuiltinData.size.golden rename to plutus-tx-plugin/test/size/Golden/Rational/Serialization/toBuiltinData.size.golden diff --git a/plutus-tx-plugin/test/size/unsafeFromBuiltinData.size.golden b/plutus-tx-plugin/test/size/Golden/Rational/Serialization/unsafeFromBuiltinData.size.golden similarity index 100% rename from plutus-tx-plugin/test/size/unsafeFromBuiltinData.size.golden rename to plutus-tx-plugin/test/size/Golden/Rational/Serialization/unsafeFromBuiltinData.size.golden diff --git a/plutus-tx-plugin/test/size/Main.hs b/plutus-tx-plugin/test/size/Main.hs index 98b5167d589..19ff5982f0d 100644 --- a/plutus-tx-plugin/test/size/Main.hs +++ b/plutus-tx-plugin/test/size/Main.hs @@ -11,64 +11,64 @@ import PlutusTx.Ratio qualified as PlutusRatio import PlutusTx.Test import PlutusTx.TH (compile) import Prelude -import Test.Tasty (TestTree, defaultMain, testGroup) -import Test.Tasty.Extras (TestNested, runTestNestedIn) - -runTestNested :: TestNested -> TestTree -runTestNested = runTestNestedIn ["test", "size"] +import Test.Tasty (defaultMain, testGroup) +import Test.Tasty.Extras (runTestNested, testNested) main :: IO () -main = defaultMain . testGroup "Size regression tests" $ [ - testGroup "Rational" [ - testGroup "Eq" [ - runTestNested $ goldenSize "equal" ratEq, - runTestNested $ goldenSize "not-equal" ratNeq - ], - testGroup "Ord" [ - runTestNested $ goldenSize "compare" ratCompare, - runTestNested $ goldenSize "less-than-equal" ratLe, - runTestNested $ goldenSize "greater-than-equal" ratGe, - runTestNested $ goldenSize "less-than" ratLt, - runTestNested $ goldenSize "greater-than" ratGt, - runTestNested $ goldenSize "max" ratMax, - runTestNested $ goldenSize "min" ratMin - ], - testGroup "Additive" [ - runTestNested $ goldenSize "plus" ratPlus, - runTestNested $ goldenSize "zero" ratZero, - runTestNested $ goldenSize "minus" ratMinus, - runTestNested $ goldenSize "negate-specialized" ratNegate - ], - testGroup "Multiplicative" [ - runTestNested $ goldenSize "times" ratTimes, - runTestNested $ goldenSize "one" ratOne, - runTestNested $ goldenSize "scale" ratScale - ], - testGroup "Serialization" [ - runTestNested $ goldenSize "toBuiltinData" ratToBuiltin, - runTestNested $ goldenSize "fromBuiltinData" ratFromBuiltin, - runTestNested $ goldenSize "unsafeFromBuiltinData" ratUnsafeFromBuiltin - ], - testGroup "Construction" [ - runTestNested $ goldenSize "unsafeRatio" ratMkUnsafe, - runTestNested $ goldenSize "ratio" ratMkSafe, - runTestNested $ goldenSize "fromInteger" ratFromInteger - ], - testGroup "Other" [ - runTestNested $ goldenSize "numerator" ratNumerator, - runTestNested $ goldenSize "denominator" ratDenominator, - runTestNested $ goldenSize "round" ratRound, - runTestNested $ goldenSize "truncate" ratTruncate, - runTestNested $ goldenSize "properFraction" ratProperFraction, - runTestNested $ goldenSize "recip" ratRecip, - runTestNested $ goldenSize "abs-specialized" ratAbs - ], - testGroup "Comparison" [ - fitsUnder "negate" ("specialized", ratNegate) ("general", genNegate), - fitsUnder "abs" ("specialized", ratAbs) ("general", genAbs), - fitsUnder "scale" ("type class method", ratScale) ("equivalent in other primitives", genScale) +main = defaultMain $ testGroup "Size regression tests" + [ runTestNested ["test", "size", "Golden"] + [ testNested "Rational" + [ testNested "Eq" + [ goldenSize "equal" ratEq + , goldenSize "not-equal" ratNeq + ] + , testNested "Ord" + [ goldenSize "compare" ratCompare + , goldenSize "less-than-equal" ratLe + , goldenSize "greater-than-equal" ratGe + , goldenSize "less-than" ratLt + , goldenSize "greater-than" ratGt + , goldenSize "max" ratMax + , goldenSize "min" ratMin + ] + , testNested "Additive" + [ goldenSize "plus" ratPlus + , goldenSize "zero" ratZero + , goldenSize "minus" ratMinus + , goldenSize "negate-specialized" ratNegate + ] + , testNested "Multiplicative" + [ goldenSize "times" ratTimes + , goldenSize "one" ratOne + , goldenSize "scale" ratScale + ] + , testNested "Serialization" + [ goldenSize "toBuiltinData" ratToBuiltin + , goldenSize "fromBuiltinData" ratFromBuiltin + , goldenSize "unsafeFromBuiltinData" ratUnsafeFromBuiltin + ] + , testNested "Construction" + [ goldenSize "unsafeRatio" ratMkUnsafe + , goldenSize "ratio" ratMkSafe + , goldenSize "fromInteger" ratFromInteger + ] + , testNested "Other" + [ goldenSize "numerator" ratNumerator + , goldenSize "denominator" ratDenominator + , goldenSize "round" ratRound + , goldenSize "truncate" ratTruncate + , goldenSize "properFraction" ratProperFraction + , goldenSize "recip" ratRecip + , goldenSize "abs-specialized" ratAbs + ] + ] + ] + , testGroup "Comparison" + [ fitsUnder "negate" ("specialized", ratNegate) ("general", genNegate) + , fitsUnder "abs" ("specialized", ratAbs) ("general", genAbs) + , fitsUnder "scale" ("type class method", ratScale) + ("equivalent in other primitives", genScale) ] - ] ] -- Compiled definitions diff --git a/plutus-tx-test-util/LICENSE b/plutus-tx-test-util/LICENSE new file mode 100644 index 00000000000..0c8a80022ea --- /dev/null +++ b/plutus-tx-test-util/LICENSE @@ -0,0 +1,53 @@ +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/plutus-tx-test-util/NOTICE b/plutus-tx-test-util/NOTICE new file mode 100644 index 00000000000..318264c1a98 --- /dev/null +++ b/plutus-tx-test-util/NOTICE @@ -0,0 +1,14 @@ +Copyright 2024 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/plutus-tx-test-util/plutus-tx-test-util.cabal b/plutus-tx-test-util/plutus-tx-test-util.cabal new file mode 100644 index 00000000000..af69bdf27fe --- /dev/null +++ b/plutus-tx-test-util/plutus-tx-test-util.cabal @@ -0,0 +1,79 @@ +cabal-version: 3.0 +name: plutus-tx-test-util +version: 0.1.0.0 +description: Test utilities for Plutus Tx +homepage: https://github.com/IntersectMBO/plutus +bug-reports: https://github.com/IntersectMBO/plutus/issues +license: Apache-2.0 +license-files: + LICENSE + NOTICE + +author: Plutus Core Team +maintainer: ana.pantilie@iohk.io +build-type: Simple + +source-repository head + type: git + location: https://github.com/IntersectMBO/plutus + +-- Any files that use a `$$(...)` splice from the plugin should mention +-- `PlutusTx.Plugin()` somewhere, even if it's just `import PlutusTx.Plugin()`. +-- If none of your files mention the plugin explicitly then the code will still +-- compile (assuming that there's a dependence on `plutus-tx-plugin`) but you'll +-- get a warning that `plutus-tx-plugin` was not needed for compilation, and +-- that will cause a CI failure. + + +-- This should be used for anything that depends on plutus-tx-plugin, even +-- transitively. If you miss it out somewhere then nix will probably produce an +-- error message saying "the component is not buildable in the current +-- environment" if e.g. the nix shell supplies an unsupported GCH version. See +-- the section on GHC versions in `CONTRIBUTING.md`. +common ghc-version-support + if (impl(ghc <9.6) || impl(ghc >=9.7)) + buildable: False + +common lang + default-language: Haskell2010 + default-extensions: + DeriveFoldable + DeriveFunctor + DeriveGeneric + DeriveLift + DeriveTraversable + DerivingStrategies + DerivingVia + ExplicitForAll + FlexibleContexts + GeneralizedNewtypeDeriving + ImportQualifiedPost + ScopedTypeVariables + StandaloneDeriving + + -- See Note [-fno-full-laziness in Plutus Tx] + ghc-options: + -fno-specialise -fno-spec-constr -fno-strictness + -fno-ignore-interface-pragmas -fno-omit-interface-pragmas + -fno-unbox-strict-fields -fno-unbox-small-strict-fields + -fno-full-laziness + + ghc-options: + -Wall -Wnoncanonical-monad-instances -Wincomplete-uni-patterns + -Wincomplete-record-updates -Wredundant-constraints -Widentities + -Wunused-packages -Wmissing-deriving-strategies + +library + import: lang + exposed-modules: PlutusTx.Test.Util.Compiled + + -- other-modules: + -- other-extensions: + build-depends: + , base >=4.9 && <5 + , plutus-core ^>=1.29 + , plutus-tx ^>=1.29 + , text + + hs-source-dirs: testlib + default-language: Haskell2010 diff --git a/plutus-tx-test-util/testlib/PlutusTx/Test/Util/Compiled.hs b/plutus-tx-test-util/testlib/PlutusTx/Test/Util/Compiled.hs new file mode 100644 index 00000000000..03c9105c2c3 --- /dev/null +++ b/plutus-tx-test-util/testlib/PlutusTx/Test/Util/Compiled.hs @@ -0,0 +1,95 @@ +{-# LANGUAGE BangPatterns #-} +{-# LANGUAGE FlexibleContexts #-} +{-# LANGUAGE LambdaCase #-} +{-# LANGUAGE ViewPatterns #-} + +module PlutusTx.Test.Util.Compiled + ( Program + , Term + , toAnonDeBruijnTerm + , toAnonDeBruijnProg + , toNamedDeBruijnTerm + , compiledCodeToTerm + , haskellValueToTerm + , unsafeRunTermCek + , runTermCek + , cekResultMatchesHaskellValue + ) +where + +import PlutusTx qualified as Tx + +import PlutusCore qualified as PLC +import PlutusCore.Default +import PlutusCore.Evaluation.Machine.ExBudgetingDefaults qualified as PLC + +import UntypedPlutusCore qualified as UPLC +import UntypedPlutusCore.Evaluation.Machine.Cek as Cek + +import Data.Text (Text) + +type Term = UPLC.Term PLC.NamedDeBruijn DefaultUni DefaultFun () +type Program = UPLC.Program PLC.NamedDeBruijn DefaultUni DefaultFun () + +{- | Given a DeBruijn-named term, give every variable the name "v". If we later + call unDeBruijn, that will rename the variables to things like "v123", where + 123 is the relevant de Bruijn index.-} +toNamedDeBruijnTerm + :: UPLC.Term UPLC.DeBruijn DefaultUni DefaultFun () + -> UPLC.Term UPLC.NamedDeBruijn DefaultUni DefaultFun () +toNamedDeBruijnTerm = UPLC.termMapNames UPLC.fakeNameDeBruijn + +{- | Remove the textual names from a NamedDeBruijn term -} +toAnonDeBruijnTerm + :: Term + -> UPLC.Term UPLC.DeBruijn DefaultUni DefaultFun () +toAnonDeBruijnTerm = UPLC.termMapNames UPLC.unNameDeBruijn + +toAnonDeBruijnProg + :: UPLC.Program UPLC.NamedDeBruijn DefaultUni DefaultFun () + -> UPLC.Program UPLC.DeBruijn DefaultUni DefaultFun () +toAnonDeBruijnProg (UPLC.Program () ver body) = + UPLC.Program () ver $ toAnonDeBruijnTerm body + +{- | Just extract the body of a program wrapped in a 'CompiledCodeIn'. We use this a lot. -} +compiledCodeToTerm + :: Tx.CompiledCodeIn DefaultUni DefaultFun a -> Term +compiledCodeToTerm (Tx.getPlcNoAnn -> UPLC.Program _ _ body) = body + +{- | Lift a Haskell value to a PLC term. The constraints get a bit out of control + if we try to do this over an arbitrary universe.-} +haskellValueToTerm + :: Tx.Lift DefaultUni a => a -> Term +haskellValueToTerm = compiledCodeToTerm . Tx.liftCodeDef + +{- | Just run a term to obtain an `EvaluationResult` (used for tests etc.) -} +unsafeRunTermCek :: Term -> EvaluationResult Term +unsafeRunTermCek = + unsafeToEvaluationResult + . (\(res, _, _) -> res) + . runCekDeBruijn PLC.defaultCekParametersForTesting Cek.restrictingEnormous Cek.noEmitter + +-- | Just run a term. +runTermCek :: + Term -> + ( Either (CekEvaluationException UPLC.NamedDeBruijn DefaultUni DefaultFun) Term + , [Text] + ) +runTermCek = + (\(res, _, logs) -> (res, logs)) + . runCekDeBruijn PLC.defaultCekParametersForTesting Cek.restrictingEnormous Cek.logEmitter + +{- | Evaluate a PLC term and check that the result matches a given Haskell value + (perhaps obtained by running the Haskell code that the term was compiled + from). We evaluate the lifted Haskell value as well, because lifting may + produce reducible terms. The function is polymorphic in the comparison + operator so that we can use it with both HUnit Assertions and QuickCheck + Properties. -} +cekResultMatchesHaskellValue + :: Tx.Lift DefaultUni a + => Term + -> (EvaluationResult Term -> EvaluationResult Term -> b) + -> a + -> b +cekResultMatchesHaskellValue term matches value = + (unsafeRunTermCek term) `matches` (unsafeRunTermCek $ haskellValueToTerm value) diff --git a/plutus-tx/CHANGELOG.md b/plutus-tx/CHANGELOG.md index fb66c39c196..8ff9155c0e8 100644 --- a/plutus-tx/CHANGELOG.md +++ b/plutus-tx/CHANGELOG.md @@ -1,4 +1,19 @@ +<a id='changelog-1.29.0.0'></a> +# 1.29.0.0 — 2024-06-04 + +## Added + +- Added `Data.AssocList.Map` module which provides a map implementation based on `Data`. + +## Changed + +- Split `PlutusTx.Builtins.Class` into `PlutusTx.Builtins.HasBuiltin` and `PlutusTx.Builtins.HasOpaque` in #5971: ++ Split 'FromBuiltin' into 'HasFromBuiltin' and 'HasFromOpaque' ++ Split 'ToBuiltin' into 'HasToBuiltin' and 'HasToOpaque' + +- The PlutusTx `These` type had the Haskell implementations of `Show`, `Eq` and `Ord` instances instead of PlutusTx ones. This has been fixed. + <a id='changelog-1.28.0.0'></a> # 1.28.0.0 — 2024-05-15 diff --git a/plutus-tx/changelog.d/20240513_014001_effectfully_split_FromBuiltin_and_ToBuiltin_into_IsBuiltin_and_IsOpaque.md b/plutus-tx/changelog.d/20240513_014001_effectfully_split_FromBuiltin_and_ToBuiltin_into_IsBuiltin_and_IsOpaque.md deleted file mode 100644 index 053aa96f62a..00000000000 --- a/plutus-tx/changelog.d/20240513_014001_effectfully_split_FromBuiltin_and_ToBuiltin_into_IsBuiltin_and_IsOpaque.md +++ /dev/null @@ -1,5 +0,0 @@ -### Changed - -- Split `PlutusTx.Builtins.Class` into `PlutusTx.Builtins.HasBuiltin` and `PlutusTx.Builtins.HasOpaque` in #5971: -+ Split 'FromBuiltin' into 'HasFromBuiltin' and 'HasFromOpaque' -+ Split 'ToBuiltin' into 'HasToBuiltin' and 'HasToOpaque' diff --git a/plutus-tx/plutus-tx.cabal b/plutus-tx/plutus-tx.cabal index fa3513d81f2..b881c414063 100644 --- a/plutus-tx/plutus-tx.cabal +++ b/plutus-tx/plutus-tx.cabal @@ -1,6 +1,6 @@ cabal-version: 3.0 name: plutus-tx -version: 1.28.0.0 +version: 1.29.0.0 license: Apache-2.0 license-files: LICENSE @@ -75,6 +75,7 @@ library PlutusTx.Builtins.Internal PlutusTx.Code PlutusTx.Coverage + PlutusTx.Data.AssocMap PlutusTx.Either PlutusTx.Enum PlutusTx.Eq @@ -130,7 +131,7 @@ library , lens , memory , mtl - , plutus-core:{plutus-core, plutus-ir} ^>=1.28 + , plutus-core:{plutus-core, plutus-ir} ^>=1.29 , prettyprinter , serialise , template-haskell >=2.13.0.0 @@ -163,8 +164,8 @@ library plutus-tx-testlib , hedgehog , lens , mtl - , plutus-core:{plutus-core, plutus-core-testlib, plutus-ir} ^>=1.28 - , plutus-tx ^>=1.28 + , plutus-core:{plutus-core, plutus-core-testlib, plutus-ir} ^>=1.29 + , plutus-tx ^>=1.29 , prettyprinter , tagged , tasty @@ -211,12 +212,12 @@ test-suite plutus-tx-test , hedgehog , hedgehog-fn , lens - , plutus-core:{plutus-core, plutus-core-testlib} ^>=1.28 - , plutus-tx ^>=1.28 + , mtl + , plutus-core:{plutus-core, plutus-core-testlib} ^>=1.29 + , plutus-tx ^>=1.29 , pretty-show , serialise , tasty , tasty-hedgehog , tasty-hunit , text - , transformers diff --git a/plutus-tx/src/PlutusTx/AssocMap.hs b/plutus-tx/src/PlutusTx/AssocMap.hs index 12cfce5684c..d5c6c800150 100644 --- a/plutus-tx/src/PlutusTx/AssocMap.hs +++ b/plutus-tx/src/PlutusTx/AssocMap.hs @@ -39,7 +39,7 @@ module PlutusTx.AssocMap ( import Prelude qualified as Haskell -import PlutusTx.Builtins qualified as P +import PlutusTx.Builtins qualified as P hiding (null) import PlutusTx.Builtins.Internal qualified as BI import PlutusTx.IsData import PlutusTx.Lift (makeLift) diff --git a/plutus-tx/src/PlutusTx/Builtins.hs b/plutus-tx/src/PlutusTx/Builtins.hs index e1905c1fa19..0981a6a4d12 100644 --- a/plutus-tx/src/PlutusTx/Builtins.hs +++ b/plutus-tx/src/PlutusTx/Builtins.hs @@ -68,6 +68,7 @@ module PlutusTx.Builtins ( -- * Pairs , pairToPair -- * Lists + , null , matchList , matchList' , headMaybe @@ -396,6 +397,10 @@ trace = BI.trace encodeUtf8 :: BuiltinString -> BuiltinByteString encodeUtf8 = BI.encodeUtf8 +{-# INLINABLE null #-} +null :: forall a. BI.BuiltinList a -> Bool +null l = fromOpaque (BI.null l) + {-# INLINABLE matchList #-} matchList :: forall a r . BI.BuiltinList a -> (() -> r) -> (a -> BI.BuiltinList a -> r) -> r matchList l nilCase consCase = BI.chooseList l nilCase (\_ -> consCase (BI.head l) (BI.tail l)) () diff --git a/plutus-tx/src/PlutusTx/Data/AssocMap.hs b/plutus-tx/src/PlutusTx/Data/AssocMap.hs new file mode 100644 index 00000000000..48712bd3274 --- /dev/null +++ b/plutus-tx/src/PlutusTx/Data/AssocMap.hs @@ -0,0 +1,412 @@ +{-# LANGUAGE DerivingStrategies #-} +{-# LANGUAGE FlexibleContexts #-} +{-# LANGUAGE MultiParamTypeClasses #-} +{-# LANGUAGE NoImplicitPrelude #-} +{-# LANGUAGE TemplateHaskell #-} +{-# LANGUAGE ViewPatterns #-} + +module PlutusTx.Data.AssocMap ( + Map, + lookup, + member, + insert, + delete, + singleton, + empty, + null, + toList, + toBuiltinList, + safeFromList, + unsafeFromList, + unsafeFromBuiltinList, + noDuplicateKeys, + all, + any, + union, + unionWith, + ) where + +import PlutusTx.Builtins qualified as P +import PlutusTx.Builtins.Internal qualified as BI +import PlutusTx.IsData qualified as P +import PlutusTx.Lift (makeLift) +import PlutusTx.Prelude hiding (all, any, null, toList, uncons) +import PlutusTx.These + + +import Prelude qualified as Haskell + +{- | A map associating keys and values backed by `P.BuiltinData`. + +This implementation has the following characteristics: + + * The `P.toBuiltinData` and `P.unsafeFromBuiltinData` operations are no-op. + * Other operations are slower than @PlutusTx.AssocMap.Map@, although equality + checks on keys can be faster due to `P.equalsData`. + * Many operations involve converting the keys and\/or values to\/from `P.BuiltinData`. + +Therefore this implementation is likely a better choice than "PlutusTx.AssocMap.Map" +if it is part of a data type defined using @asData@, and the key and value types +have efficient `P.toBuiltinData` and `P.unsafeFromBuiltinData` operations (e.g., they +are primitive types or types defined using @asData@). + +A `Map` is considered well-defined if it has no duplicate keys. Most operations +preserve the definedness of the resulting `Map` unless otherwise noted. +It is important to observe that, in comparison to standard map implementations, +this implementation provides slow lookup and update operations because it is based +on a list representation. +-} +newtype Map k a = Map (BI.BuiltinList (BI.BuiltinPair BuiltinData BuiltinData)) + deriving stock (Haskell.Eq, Haskell.Show) + +instance P.ToData (Map k a) where + {-# INLINEABLE toBuiltinData #-} + toBuiltinData (Map d) = BI.mkMap d + +instance P.FromData (Map k a) where + {-# INLINABLE fromBuiltinData #-} + fromBuiltinData = Just . Map . BI.unsafeDataAsMap + +instance P.UnsafeFromData (Map k a) where + {-# INLINABLE unsafeFromBuiltinData #-} + unsafeFromBuiltinData = Map . BI.unsafeDataAsMap + +{-# INLINEABLE lookup #-} +-- | Look up the value corresponding to the key. +-- If the `Map` is not well-defined, the result is the value associated with +-- the left-most occurrence of the key in the list. +-- This operation is O(n). +lookup :: forall k a. (P.ToData k, P.UnsafeFromData a) => k -> Map k a -> Maybe a +lookup (P.toBuiltinData -> k) (Map m) = P.unsafeFromBuiltinData <$> lookup' k m + +lookup' + :: BuiltinData + -> BI.BuiltinList (BI.BuiltinPair BuiltinData BuiltinData) + -> Maybe BuiltinData +lookup' k m = go m + where + go xs = + P.matchList + xs + (\() -> Nothing) + ( \hd -> + let k' = BI.fst hd + in if P.equalsData k k' + then \_ -> Just (BI.snd hd) + else go + ) + +{-# INLINEABLE member #-} +-- | Check if the key is in the `Map`. +member :: forall k a. (P.ToData k) => k -> Map k a -> Bool +member (P.toBuiltinData -> k) (Map m) = member' k m + +member' :: BuiltinData -> BI.BuiltinList (BI.BuiltinPair BuiltinData BuiltinData) -> Bool +member' k = go + where + go :: BI.BuiltinList (BI.BuiltinPair BuiltinData BuiltinData) -> Bool + go xs = + P.matchList + xs + (\() -> False) + ( \hd -> + let k' = BI.fst hd + in if P.equalsData k k' + then \_ -> True + else go + ) + +{-# INLINEABLE insert #-} +-- | Insert a key-value pair into the `Map`. If the key is already present, +-- the value is updated. +insert :: forall k a. (P.ToData k, P.ToData a) => k -> a -> Map k a -> Map k a +insert (P.toBuiltinData -> k) (P.toBuiltinData -> a) (Map m) = Map $ insert' k a m + +insert' + :: BuiltinData + -> BuiltinData + -> BI.BuiltinList (BI.BuiltinPair BuiltinData BuiltinData) + -> BI.BuiltinList (BI.BuiltinPair BuiltinData BuiltinData) +insert' k a = go + where + go :: + BI.BuiltinList (BI.BuiltinPair BuiltinData BuiltinData) -> + BI.BuiltinList (BI.BuiltinPair BuiltinData BuiltinData) + go xs = + P.matchList + xs + (\() -> BI.mkCons (BI.mkPairData k a) nil) + ( \hd tl -> + let k' = BI.fst hd + in if P.equalsData k k' + then BI.mkCons (BI.mkPairData k a) tl + else BI.mkCons hd (go tl) + ) + +{-# INLINEABLE delete #-} +-- | Delete a key value pair from the `Map`. +-- If the `Map` is not well-defined, it deletes the pair associated with the +-- left-most occurrence of the key in the list. +delete :: forall k a. (P.ToData k) => k -> Map k a -> Map k a +delete (P.toBuiltinData -> k) (Map m) = Map $ delete' k m + +delete' :: + BuiltinData -> + BI.BuiltinList (BI.BuiltinPair BuiltinData BuiltinData) -> + BI.BuiltinList (BI.BuiltinPair BuiltinData BuiltinData) +delete' k = go + where + go :: + BI.BuiltinList (BI.BuiltinPair BuiltinData BuiltinData) -> + BI.BuiltinList (BI.BuiltinPair BuiltinData BuiltinData) + go xs = + P.matchList + xs + (\() -> nil) + ( \hd tl -> + let k' = BI.fst hd + in if P.equalsData k k' + then tl + else BI.mkCons hd (go tl) + ) + +{-# INLINEABLE singleton #-} +-- | Create an `Map` with a single key-value pair. +singleton :: forall k a. (P.ToData k, P.ToData a) => k -> a -> Map k a +singleton (P.toBuiltinData -> k) (P.toBuiltinData -> a) = + Map $ BI.mkCons (BI.mkPairData k a) nil + +{-# INLINEABLE empty #-} +-- | An empty `Map`. +empty :: forall k a. Map k a +empty = Map nil + +{-# INLINEABLE null #-} +-- | Check if the `Map` is empty. +null :: forall k a. Map k a -> Bool +null (Map m) = P.null m + +{-# INLINEABLE safeFromList #-} +-- | Create an `Map` from a list of key-value pairs. +-- In case of duplicates, this function will keep only one entry (the one that precedes). +-- In other words, this function de-duplicates the input list. +safeFromList :: forall k a . (P.ToData k, P.ToData a) =>[(k, a)] -> Map k a +safeFromList = + Map + . toOpaque + . foldr (uncurry go) [] + where + go k v [] = [(P.toBuiltinData k, P.toBuiltinData v)] + go k v ((k', v') : rest) = + if P.toBuiltinData k == k' + then (P.toBuiltinData k, P.toBuiltinData v) : go k v rest + else (P.toBuiltinData k', P.toBuiltinData v') : go k v rest + +{-# INLINEABLE unsafeFromList #-} +-- | Unsafely create an 'Map' from a list of pairs. +-- This should _only_ be applied to lists which have been checked to not +-- contain duplicate keys, otherwise the resulting 'Map' will contain +-- conflicting entries (two entries sharing the same key), and therefore be ill-defined. +unsafeFromList :: (P.ToData k, P.ToData a) => [(k, a)] -> Map k a +unsafeFromList = + Map + . toOpaque + . PlutusTx.Prelude.map (\(k, a) -> (P.toBuiltinData k, P.toBuiltinData a)) + +{-# INLINEABLE noDuplicateKeys #-} +-- | Check if the `Map` is well-defined. Warning: this operation is O(n^2). +noDuplicateKeys :: forall k a. Map k a -> Bool +noDuplicateKeys (Map m) = go m + where + go :: BI.BuiltinList (BI.BuiltinPair BuiltinData BuiltinData) -> Bool + go xs = + P.matchList + xs + (\() -> True) + ( \hd tl -> + let k = BI.fst hd + in if member k (Map tl) then False else go tl + ) + +{-# INLINEABLE all #-} +--- | Check if all values in the `Map` satisfy the predicate. +all :: forall k a. (P.UnsafeFromData a) => (a -> Bool) -> Map k a -> Bool +all p (Map m) = go m + where + go :: BI.BuiltinList (BI.BuiltinPair BuiltinData BuiltinData) -> Bool + go xs = + P.matchList + xs + (\() -> True) + ( \hd -> + let a = P.unsafeFromBuiltinData (BI.snd hd) + in if p a then go else \_ -> False + ) + +{-# INLINEABLE any #-} +-- | Check if any value in the `Map` satisfies the predicate. +any :: forall k a. (P.UnsafeFromData a) => (a -> Bool) -> Map k a -> Bool +any p (Map m) = go m + where + go :: BI.BuiltinList (BI.BuiltinPair BuiltinData BuiltinData) -> Bool + go xs = + P.matchList + xs + (\() -> False) + ( \hd -> + let a = P.unsafeFromBuiltinData (BI.snd hd) + in if p a then \_ -> True else go + ) + +{-# INLINEABLE union #-} + +-- | Combine two 'Map's into one. It saves both values if the key is present in both maps. +union :: + forall k a b. + (P.UnsafeFromData a, P.UnsafeFromData b, P.ToData a, P.ToData b) => + Map k a -> + Map k b -> + Map k (These a b) +union (Map ls) (Map rs) = Map res + where + goLeft xs = + P.matchList + xs + (\() -> nil) + ( \hd tl -> + let k = BI.fst hd + v = BI.snd hd + v' = case lookup' k rs of + Just r -> + P.toBuiltinData + ( These + (P.unsafeFromBuiltinData v) + (P.unsafeFromBuiltinData r) + :: These a b + ) + Nothing -> + P.toBuiltinData (This (P.unsafeFromBuiltinData v) :: These a b) + in BI.mkCons (BI.mkPairData k v') (goLeft tl) + ) + + goRight xs = + P.matchList + xs + (\() -> nil) + ( \hd tl -> + let k = BI.fst hd + v = BI.snd hd + v' = case lookup' k ls of + Just r -> + P.toBuiltinData + ( These + (P.unsafeFromBuiltinData v) + (P.unsafeFromBuiltinData r) + :: These a b + ) + Nothing -> + P.toBuiltinData (That (P.unsafeFromBuiltinData v) :: These a b) + in BI.mkCons (BI.mkPairData k v') (goRight tl) + ) + + res = goLeft ls `safeAppend` goRight rs + + safeAppend xs1 xs2 = + P.matchList + xs1 + (\() -> xs2) + ( \hd tl -> + let k = BI.fst hd + v = BI.snd hd + in insert' k v (safeAppend tl xs2) + ) + +-- | Combine two 'Map's with the given combination function. +unionWith :: + forall k a. + (P.UnsafeFromData a, P.ToData a) => + (a -> a -> a) -> + Map k a -> + Map k a -> + Map k a +unionWith f (Map ls) (Map rs) = + Map res + where + ls' :: BI.BuiltinList (BI.BuiltinPair BuiltinData BuiltinData) + ls' = go ls + where + go xs = + P.matchList + xs + (\() -> nil) + ( \hd tl -> + let k' = BI.fst hd + v' = BI.snd hd + v'' = case lookup' k' rs of + Just r -> + P.toBuiltinData + (f (P.unsafeFromBuiltinData v') (P.unsafeFromBuiltinData r)) + Nothing -> v' + in BI.mkCons (BI.mkPairData k' v'') (go tl) + ) + + rs' :: BI.BuiltinList (BI.BuiltinPair BuiltinData BuiltinData) + rs' = go rs + where + go xs = + P.matchList + xs + (\() -> nil) + ( \hd tl -> + let k' = BI.fst hd + tl' = go tl + in if member' k' ls + then tl' + else BI.mkCons hd tl' + ) + + res :: BI.BuiltinList (BI.BuiltinPair BuiltinData BuiltinData) + res = go rs' ls' + where + go acc xs = + P.matchList + xs + (\() -> acc) + (\hd -> go (BI.mkCons hd acc)) + +{-# INLINEABLE toList #-} +-- | Convert the `Map` to a list of key-value pairs. This operation is O(n). +-- See 'toBuiltinList' for a more efficient alternative. +toList :: (P.UnsafeFromData k, P.UnsafeFromData a) => Map k a -> [(k, a)] +toList d = go (toBuiltinList d) + where + go xs = + P.matchList + xs + (\() -> []) + ( \hd tl -> + (P.unsafeFromBuiltinData (BI.fst hd), P.unsafeFromBuiltinData (BI.snd hd)) + : go tl + ) + +{-# INLINEABLE toBuiltinList #-} +-- | Convert the `Map` to a `P.BuiltinList` of key-value pairs. This operation is O(1). +toBuiltinList :: Map k a -> BI.BuiltinList (BI.BuiltinPair BuiltinData BuiltinData) +toBuiltinList (Map d) = d + +{-# INLINEABLE unsafeFromBuiltinList #-} +-- | Unsafely create an 'Map' from a `P.BuiltinList` of key-value pairs. +-- This function is unsafe because it assumes that the elements of the list can be safely +-- decoded from their 'BuiltinData' representation. +unsafeFromBuiltinList :: + forall k a. + BI.BuiltinList (BI.BuiltinPair BuiltinData BuiltinData) -> + Map k a +unsafeFromBuiltinList = Map + +{-# INLINEABLE nil #-} +-- | An empty `P.BuiltinList` of key-value pairs. +nil :: BI.BuiltinList (BI.BuiltinPair BuiltinData BuiltinData) +nil = BI.mkNilPairData BI.unitval + +makeLift ''Map diff --git a/plutus-tx/src/PlutusTx/Eq.hs b/plutus-tx/src/PlutusTx/Eq.hs index 0e7b921dfad..de6e87926c7 100644 --- a/plutus-tx/src/PlutusTx/Eq.hs +++ b/plutus-tx/src/PlutusTx/Eq.hs @@ -4,6 +4,7 @@ module PlutusTx.Eq (Eq(..), (/=)) where import PlutusTx.Bool import PlutusTx.Builtins qualified as Builtins import PlutusTx.Either (Either (..)) +import PlutusTx.These import Prelude (Maybe (..)) {- HLINT ignore -} @@ -77,3 +78,10 @@ instance Eq () where instance (Eq a, Eq b) => Eq (a, b) where {-# INLINABLE (==) #-} (a, b) == (a', b') = a == a' && b == b' + +instance (Eq a, Eq b) => Eq (These a b) where + {-# INLINABLE (==) #-} + (This a) == (This a') = a == a' + (That b) == (That b') = b == b' + (These a b) == (These a' b') = a == a' && b == b' + _ == _ = False diff --git a/plutus-tx/src/PlutusTx/IsData/Instances.hs b/plutus-tx/src/PlutusTx/IsData/Instances.hs index 0da5b45e979..ad0dbf5b5d4 100644 --- a/plutus-tx/src/PlutusTx/IsData/Instances.hs +++ b/plutus-tx/src/PlutusTx/IsData/Instances.hs @@ -12,12 +12,14 @@ import PlutusTx.Bool (Bool (..)) import PlutusTx.Either (Either (..)) import PlutusTx.IsData.TH (makeIsDataIndexed, unstableMakeIsData) import PlutusTx.Maybe (Maybe (..)) +import PlutusTx.These (These (..)) -- While these types should be stable, we really don't want them changing, so index -- them explicitly to be sure. makeIsDataIndexed ''Bool [('False,0),('True,1)] makeIsDataIndexed ''Maybe [('Just,0),('Nothing,1)] makeIsDataIndexed ''Either [('Left,0),('Right,1)] +makeIsDataIndexed ''These [('This,0),('That,1),('These,2)] -- Okay to use unstableMakeIsData here since there's only one alternative and we're sure -- that will never change. diff --git a/plutus-tx/src/PlutusTx/Lift.hs b/plutus-tx/src/PlutusTx/Lift.hs index 01530ca9b4d..acff1543917 100644 --- a/plutus-tx/src/PlutusTx/Lift.hs +++ b/plutus-tx/src/PlutusTx/Lift.hs @@ -220,7 +220,7 @@ typeCheckAgainst -> m () typeCheckAgainst p (PLC.Program _ v plcTerm) = do -- See Note [Checking the type of a term with Typeable] - term <- PIR.embed <$> PLC.rename plcTerm + term <- PIR.embedTerm <$> PLC.rename plcTerm -- We need to run Def *before* applying to the term, otherwise we may refer to abstract -- types and we won't match up with the term. idFun <- liftQuote $ runDefT () $ do diff --git a/plutus-tx/src/PlutusTx/Lift/Instances.hs b/plutus-tx/src/PlutusTx/Lift/Instances.hs index d5132023e16..98832e7b576 100644 --- a/plutus-tx/src/PlutusTx/Lift/Instances.hs +++ b/plutus-tx/src/PlutusTx/Lift/Instances.hs @@ -18,6 +18,7 @@ import PlutusTx.Bool (Bool (..)) import PlutusTx.Either (Either (..)) import PlutusTx.Lift.TH import PlutusTx.Maybe (Maybe (..)) +import PlutusTx.These (These (..)) -- Standard types -- These need to be in a separate file for TH staging reasons @@ -25,6 +26,7 @@ import PlutusTx.Maybe (Maybe (..)) makeLift ''Bool makeLift ''Maybe makeLift ''Either +makeLift ''These makeLift ''[] makeLift ''() -- include a few tuple instances for convenience diff --git a/plutus-tx/src/PlutusTx/Ord.hs b/plutus-tx/src/PlutusTx/Ord.hs index 210826488df..f92baf2e2bb 100644 --- a/plutus-tx/src/PlutusTx/Ord.hs +++ b/plutus-tx/src/PlutusTx/Ord.hs @@ -11,6 +11,7 @@ import PlutusTx.Bool (Bool (..)) import PlutusTx.Builtins qualified as Builtins import PlutusTx.Either (Either (..)) import PlutusTx.Eq +import PlutusTx.These import Prelude (Maybe (..), Ordering (..)) {- HLINT ignore -} @@ -123,3 +124,17 @@ instance (Ord a, Ord b) => Ord (a, b) where case compare a a' of EQ -> compare b b' c -> c + +instance (Ord a, Ord b) => Ord (These a b) where + {-# INLINABLE compare #-} + compare (This a) (This a') = compare a a' + compare (That b) (That b') = compare b b' + compare (These a b) (These a' b') = + case compare a a' of + EQ -> compare b b' + c -> c + compare (This _) _ = LT + compare (That _) (This _) = GT + compare (That _) (These _ _) = LT + compare (These _ _) (This _) = GT + compare (These _ _) (That _) = GT diff --git a/plutus-tx/src/PlutusTx/Prelude.hs b/plutus-tx/src/PlutusTx/Prelude.hs index c31ac38ce51..2c430615079 100644 --- a/plutus-tx/src/PlutusTx/Prelude.hs +++ b/plutus-tx/src/PlutusTx/Prelude.hs @@ -28,6 +28,8 @@ module PlutusTx.Prelude ( module Base, -- * Tracing functions module Trace, + -- * Unit + BI.BuiltinUnit, -- * String BuiltinString, appendString, @@ -140,6 +142,7 @@ import PlutusTx.Builtins (BuiltinBLS12_381_G1_Element, BuiltinBLS12_381_G2_Eleme verifySchnorrSecp256k1Signature) import PlutusTx.Builtins qualified as Builtins +import PlutusTx.Builtins.Internal qualified as BI import PlutusTx.Either as Either import PlutusTx.Enum as Enum import PlutusTx.Eq as Eq @@ -178,8 +181,8 @@ import Prelude qualified as Haskell (return, (=<<), (>>), (>>=)) {-# INLINABLE check #-} -- | Checks a 'Bool' and aborts if it is false. -check :: Bool -> () -check b = if b then () else traceError checkHasFailedError +check :: Bool -> BI.BuiltinUnit +check b = if b then BI.unitval else traceError checkHasFailedError {-# INLINABLE divide #-} -- | Integer division, rounding downwards diff --git a/plutus-tx/src/PlutusTx/Show.hs b/plutus-tx/src/PlutusTx/Show.hs index 5b16c1ebf9c..e8d57caedbc 100644 --- a/plutus-tx/src/PlutusTx/Show.hs +++ b/plutus-tx/src/PlutusTx/Show.hs @@ -25,6 +25,7 @@ import PlutusTx.List (foldr) import PlutusTx.Maybe import PlutusTx.Prelude hiding (foldr) import PlutusTx.Show.TH +import PlutusTx.These instance Show Builtins.Integer where {-# INLINEABLE showsPrec #-} @@ -160,3 +161,4 @@ deriveShow ''(,,,,,,,,,,,,,,,,,,,,,,,,,) deriveShow ''(,,,,,,,,,,,,,,,,,,,,,,,,,,) deriveShow ''Maybe deriveShow ''Either +deriveShow ''These diff --git a/plutus-tx/src/PlutusTx/These.hs b/plutus-tx/src/PlutusTx/These.hs index 4ec6742e344..124a37d6102 100644 --- a/plutus-tx/src/PlutusTx/These.hs +++ b/plutus-tx/src/PlutusTx/These.hs @@ -1,6 +1,9 @@ -{-# LANGUAGE LambdaCase #-} +{-# LANGUAGE DerivingStrategies #-} +{-# LANGUAGE LambdaCase #-} + {-# OPTIONS_GHC -Wno-name-shadowing #-} {-# OPTIONS_GHC -fno-omit-interface-pragmas #-} + module PlutusTx.These( These(..) , these diff --git a/plutus-tx/test/Show/gadt.show.golden b/plutus-tx/test/Show/Golden/gadt.show.golden similarity index 100% rename from plutus-tx/test/Show/gadt.show.golden rename to plutus-tx/test/Show/Golden/gadt.show.golden diff --git a/plutus-tx/test/Show/infix-type-2.show.golden b/plutus-tx/test/Show/Golden/infix-type-2.show.golden similarity index 100% rename from plutus-tx/test/Show/infix-type-2.show.golden rename to plutus-tx/test/Show/Golden/infix-type-2.show.golden diff --git a/plutus-tx/test/Show/infix-type.show.golden b/plutus-tx/test/Show/Golden/infix-type.show.golden similarity index 100% rename from plutus-tx/test/Show/infix-type.show.golden rename to plutus-tx/test/Show/Golden/infix-type.show.golden diff --git a/plutus-tx/test/Show/poly.show.golden b/plutus-tx/test/Show/Golden/poly.show.golden similarity index 100% rename from plutus-tx/test/Show/poly.show.golden rename to plutus-tx/test/Show/Golden/poly.show.golden diff --git a/plutus-tx/test/Show/product-type-2.show.golden b/plutus-tx/test/Show/Golden/product-type-2.show.golden similarity index 100% rename from plutus-tx/test/Show/product-type-2.show.golden rename to plutus-tx/test/Show/Golden/product-type-2.show.golden diff --git a/plutus-tx/test/Show/product-type.show.golden b/plutus-tx/test/Show/Golden/product-type.show.golden similarity index 100% rename from plutus-tx/test/Show/product-type.show.golden rename to plutus-tx/test/Show/Golden/product-type.show.golden diff --git a/plutus-tx/test/Show/record-type.show.golden b/plutus-tx/test/Show/Golden/record-type.show.golden similarity index 100% rename from plutus-tx/test/Show/record-type.show.golden rename to plutus-tx/test/Show/Golden/record-type.show.golden diff --git a/plutus-tx/test/Show/sum-type-1.show.golden b/plutus-tx/test/Show/Golden/sum-type-1.show.golden similarity index 100% rename from plutus-tx/test/Show/sum-type-1.show.golden rename to plutus-tx/test/Show/Golden/sum-type-1.show.golden diff --git a/plutus-tx/test/Show/sum-type-2.show.golden b/plutus-tx/test/Show/Golden/sum-type-2.show.golden similarity index 100% rename from plutus-tx/test/Show/sum-type-2.show.golden rename to plutus-tx/test/Show/Golden/sum-type-2.show.golden diff --git a/plutus-tx/test/Show/Spec.hs b/plutus-tx/test/Show/Spec.hs index e0cd9d00b79..f79086075b7 100644 --- a/plutus-tx/test/Show/Spec.hs +++ b/plutus-tx/test/Show/Spec.hs @@ -9,7 +9,7 @@ import PlutusTx.Builtins import PlutusTx.Builtins.Internal qualified as BI import PlutusTx.Show -import Control.Monad.Trans.Reader as Reader +import Control.Monad.Reader as Reader import Data.ByteString.Base16 qualified as Base16 import Data.ByteString.Char8 qualified as Char8 import Data.Text qualified as Text @@ -41,7 +41,7 @@ goldenShow :: forall a. Show a => TestName -> a -> TestNested goldenShow name x = do path <- ask let fp = foldr (</>) (name ++ ".show.golden") path - pure $ goldenVsText name fp . fromBuiltin $ show x + embed $ goldenVsText name fp . fromBuiltin $ show x data ProductD = ProductC Integer [Bool] deriveShow ''ProductD @@ -70,8 +70,7 @@ deriveShow ''GadtD propertyTests :: TestTree propertyTests = - testGroup - "PlutusTx.Show property-based tests" + testGroup "PlutusTx.Show property-based tests" [ testPropertyNamed "PlutusTx.Show @Integer" "PlutusTx.Show @Integer" @@ -82,10 +81,9 @@ propertyTests = showByteStringBase16 ] -goldenTests :: TestNested +goldenTests :: TestTree goldenTests = - testNested - "Show" + runTestNested ["test", "Show", "Golden"] [ goldenShow "product-type" (ProductC 3 [True, False]) , goldenShow "product-type-2" ((:-:) [-300] False) , goldenShow "sum-type-1" SumC1 diff --git a/plutus-tx/test/Spec.hs b/plutus-tx/test/Spec.hs index a3616397edd..00bd78c9f59 100644 --- a/plutus-tx/test/Spec.hs +++ b/plutus-tx/test/Spec.hs @@ -28,7 +28,6 @@ import Prelude hiding (Enum (..), Rational, negate, recip) import Rational.Laws (lawsTests) import Show.Spec qualified import Test.Tasty (TestTree, defaultMain, testGroup) -import Test.Tasty.Extras (runTestNestedIn) import Test.Tasty.Hedgehog (testPropertyNamed) import Test.Tasty.HUnit (Assertion, assertFailure, testCase, (@?=)) @@ -45,7 +44,7 @@ tests = testGroup "plutus-tx" [ , listTests , lawsTests , Show.Spec.propertyTests - , runTestNestedIn ["test"] Show.Spec.goldenTests + , Show.Spec.goldenTests , Blueprint.Definition.Spec.tests ] diff --git a/plutus-tx/testlib/PlutusTx/Test.hs b/plutus-tx/testlib/PlutusTx/Test.hs index 6882c45a4a9..c6fe9b747e0 100644 --- a/plutus-tx/testlib/PlutusTx/Test.hs +++ b/plutus-tx/testlib/PlutusTx/Test.hs @@ -203,7 +203,7 @@ runPlcCek values = do let p = foldl1 (unsafeFromRight .* UPLC.applyProgram) ps fromRightM (throwError . SomeException) $ - UPLC.evaluateCekNoEmit PLC.defaultCekParameters (p ^. UPLC.progTerm) + UPLC.evaluateCekNoEmit PLC.defaultCekParametersForTesting (p ^. UPLC.progTerm) runPlcCekTrace :: (ToUPlc a PLC.DefaultUni PLC.DefaultFun) => @@ -217,6 +217,7 @@ runPlcCekTrace values = do let p = foldl1 (unsafeFromRight .* UPLC.applyProgram) ps let (result, UPLC.TallyingSt tally _, logOut) = - UPLC.runCek PLC.defaultCekParameters UPLC.tallying UPLC.logEmitter (p ^. UPLC.progTerm) + UPLC.runCek PLC.defaultCekParametersForTesting + UPLC.tallying UPLC.logEmitter (p ^. UPLC.progTerm) res <- fromRightM (throwError . SomeException) result pure (logOut, tally, res) diff --git a/prettyprinter-configurable/prettyprinter-configurable.cabal b/prettyprinter-configurable/prettyprinter-configurable.cabal index ddf42610a5c..87c0b4c8b1c 100644 --- a/prettyprinter-configurable/prettyprinter-configurable.cabal +++ b/prettyprinter-configurable/prettyprinter-configurable.cabal @@ -1,6 +1,6 @@ cabal-version: 2.4 name: prettyprinter-configurable -version: 1.28.0.0 +version: 1.29.0.0 synopsis: Configurable pretty-printing homepage: https://github.com/input-output-hk/plutus/tree/master/prettyprinter-configurable/ @@ -76,7 +76,7 @@ test-suite prettyprinter-configurable-test , base >=4.9 && <5 , megaparsec , parser-combinators - , prettyprinter-configurable ^>=1.28 + , prettyprinter-configurable ^>=1.29 , QuickCheck , quickcheck-text , tasty diff --git a/scripts/update-version.sh b/scripts/update-version.sh index 530b767ff7d..975afe5ad30 100755 --- a/scripts/update-version.sh +++ b/scripts/update-version.sh @@ -1,12 +1,13 @@ #!/usr/bin/env bash usage () { - echo "$(basename $0) PACKAGE VERSION + echo "usage: $(basename $0) PACKAGE VERSION Updates the version for PACKAGE to VERSION, and updates bounds on that package in other cabal files." } -if [ "$#" == "0" ]; then +if [[ $# != 2 ]]; then + echo "Wrong number of arguments" usage exit 1 fi @@ -18,13 +19,19 @@ VERSION=$2 IFS='.' read -r -a components <<< "$VERSION" +if [[ ${#components[@]} < 2 ]]; then + echo "Too few components in version number" $VERSION "(need at least two)" + usage + exit 1 +fi + major_version="${components[0]}.${components[1]}" echo "Updating version of $PACKAGE to $VERSION" # update package version in cabal file for package sed -i "s/\(^version:\s*\).*/\1$VERSION/" "./$PACKAGE/$PACKAGE.cabal" -# update version bounds in all cabal files +# Update version bounds in all cabal files # It looks for patterns like the following: # # - ", plutus-core" @@ -33,6 +40,21 @@ sed -i "s/\(^version:\s*\).*/\1$VERSION/" "./$PACKAGE/$PACKAGE.cabal" # - ", plutus-core:{plutus-core, plutus-core-testlib} ^>=1.0" # # and updates the version bounds to "^>={major version}" +# # The ?* pattern prevents 'find' from attempting to modify ".cabal" (no basename). +# +# The pattern $PACKAGE[^-A-Za-z0-1][^^] matches the package name followed by the rest of the +# line up to but not including the first ^ (if any); anything after that is replaced with the +# new bound. We need [^-A-Za-z0-1] to exactly match the name of the package whose bounds we +# want to update and make sure that we don't get a situation like `plutus-tx` matching +# `plutus-tx-plugin`. +# +# The second sed command is to match the case where the package name is at the end of the line: +# we need this because the first case requires at least one character after the package name. +# +# Note that this all requires a comma (maybe preceded and/or followed by whitespace) at the +# start of the line: it won't work with a comma at the end. + echo "Updating version bounds on $PACKAGE to '^>=$major_version'" -find . -name "?*.cabal" -exec sed -i "s/\(, $PACKAGE[^^]*\).*/\1 ^>=$major_version/" {} \; +find . -name "?*.cabal" -exec sed -i "s/\(^[ \t]*,[ \t]*$PACKAGE[^-A-Za-z0-1][^^]*\).*/\1^>=$major_version/" {} \; \ + -exec sed -i "s/\(^[ \t]*,[ \t]*$PACKAGE$\)/\1 ^>=$major_version/" {} \;