From 294827933870922bc0cee7e0837cc24e22519bf6 Mon Sep 17 00:00:00 2001 From: Behzad Rabiei Date: Tue, 3 Dec 2024 13:44:30 +0200 Subject: [PATCH 1/2] feat: add support for the arbitrum one --- README.md | 78 +- hardhat.config.ts | 78 +- .../EngagementModule#Engagement.dbg.json | 4 + .../EngagementModule#Engagement.json | 903 + .../4e58f17c75b86363e11bf0ecd1dbfa6a.json | 89126 ++++++++++++++++ .../chain-42161/deployed_addresses.json | 3 + .../deployments/chain-42161/journal.jsonl | 7 + 7 files changed, 90151 insertions(+), 48 deletions(-) create mode 100644 ignition/deployments/chain-42161/artifacts/EngagementModule#Engagement.dbg.json create mode 100644 ignition/deployments/chain-42161/artifacts/EngagementModule#Engagement.json create mode 100644 ignition/deployments/chain-42161/build-info/4e58f17c75b86363e11bf0ecd1dbfa6a.json create mode 100644 ignition/deployments/chain-42161/deployed_addresses.json create mode 100644 ignition/deployments/chain-42161/journal.jsonl diff --git a/README.md b/README.md index 58534d2..10e8a62 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,9 @@ # **Engagement Contract** ## **Overview** + The **Engagement Contract** is a blockchain-based solution for communities to manage reputation and engagement through token issuance and scoring mechanisms. It allows communities to: + - **Issue unique tokens** for their ecosystem. - **Mint tokens** for individual users based on their activities. - **Calculate and retrieve reputation scores** for community members using the **OCI (On-Chain Identity) platform**. @@ -11,14 +13,15 @@ This project is built with Solidity, Hardhat, and OpenZeppelin libraries, ensuri ## **Contract Addresses** -| Address | Network | -|-------------------------------------------------------------------------------------------------|--------------------------| -| N/A | Sepolia | -| https://sepolia-optimism.etherscan.io/address/0xd826769f1844cc83a16923d2aef8a479e62da732 | Optimisim Sepolia | +| Address | Network | +| ---------------------------------------------------------------------------------------- | ----------------- | +| N/A | Sepolia | +| https://sepolia-optimism.etherscan.io/address/0xd826769f1844cc83a16923d2aef8a479e62da732 | Optimisim Sepolia | --- ## **Features** + - **Token Management**: - Issue new tokens unique to the community. - Mint tokens for users with checks to prevent duplicate mints. @@ -35,6 +38,7 @@ This project is built with Solidity, Hardhat, and OpenZeppelin libraries, ensuri --- ## **Tech Stack** + - **Smart Contracts**: - **Solidity**: Core language for smart contract development. - **OpenZeppelin**: Secure and reusable contract components. @@ -52,12 +56,14 @@ This project is built with Solidity, Hardhat, and OpenZeppelin libraries, ensuri ## **Installation** 1. **Clone the Repository**: + ```bash git clone https://github.com/your-username/engagement.git cd engagement ``` 2. **Install Dependencies**: + ```bash npm install ``` @@ -73,40 +79,83 @@ This project is built with Solidity, Hardhat, and OpenZeppelin libraries, ensuri ## **Usage** ### **Compile Contracts** + Run the following command to compile the contracts: + ```bash npm run compile ``` ### **Run Tests** + Execute the test suite to ensure everything is working as expected: + ```bash npm run test ``` ### **Deploy Contracts** -To deploy the contracts on a local Hardhat network: -1. Start a local Hardhat node: - ```bash - npx hardhat node - ``` -2. Deploy the contracts: - ```bash - npm run deploy:localhost - ``` + +Before deploying, ensure that previous deployment files are removed to prevent conflicts: + +- **Remove the directory**: `ignition/deployments/chain-{chainId}` (replace `{chainId}` with the ID of the chain you're deploying to). + +### Deploying to Localhost + +1. **Start the Hardhat local node**: + +- `npx hardhat node` + +- **Deploy contracts to localhost**: + +1. `npx hardhat run ./scripts/deploys/deploy.ts --network localhost` + +### Deploying to a Network + +1. **Set up environment variables**: + + - **Private Key**: Set your wallet's private key as `PRIVATE_KEY`. + - **Block Explorer API Key**: Set your block explorer API key (e.g., Etherscan API key) for contract verification. + + Use Hardhat's `vars` command to set and get environment variables: + +- `npx hardhat vars set PRIVATE_KEY +npx hardhat vars get PRIVATE_KEY` +- **Update Hardhat configuration**: + + - In your `hardhat.config.js` or `hardhat.config.ts` file: + - **Add network configuration** under `networks` with the appropriate settings (e.g., RPC URL, accounts). + - **Configure Etherscan** for contract verification by adding your API key under `etherscan`. + +- **Create a deployment script**: + + - Place your deployment script in the `scripts/deploys/` directory. + +- **Deploy contracts to the network**: + +`npx hardhat run ./scripts/deploys/{scriptname}.ts --network {networkname}` + +- Replace `{scriptname}` with your deployment script name. +- Replace `{networkname}` with the network name as defined in your `hardhat.config`. ### **Check Coverage** + Analyze the test coverage for your contracts: + ```bash npm run coverage ``` ### **Lint and Format Code** + Lint the project for issues: + ```bash npm run lint ``` + Format the project files: + ```bash npm run format ``` @@ -114,6 +163,7 @@ npm run format --- ## **Folder Structure** + ```plaintext . ├── contracts/ # Solidity contracts @@ -136,6 +186,7 @@ npm run format ## **Contributing** Contributions are welcome! Please follow these steps: + 1. Fork the repository. 2. Create a new branch (`git checkout -b feature-name`). 3. Commit your changes (`git commit -m "Add feature-name"`). @@ -145,6 +196,7 @@ Contributions are welcome! Please follow these steps: --- ## **Acknowledgments** + - **OpenZeppelin**: For providing secure and reusable smart contract components. - **Hardhat Team**: For building a robust Ethereum development environment. - **OCI Platform**: For enabling seamless identity and reputation management. diff --git a/hardhat.config.ts b/hardhat.config.ts index ff99be7..5797893 100644 --- a/hardhat.config.ts +++ b/hardhat.config.ts @@ -1,49 +1,57 @@ import type { HardhatUserConfig } from "hardhat/config"; import "@nomicfoundation/hardhat-toolbox-viem"; import { vars } from "hardhat/config"; -import {generatePrivateKey} from "viem/accounts" +import { generatePrivateKey } from "viem/accounts"; const ALCHEMY_SEPOLIA_ENDPOINT = vars.get("ALCHEMY_SEPOLIA_ENDPOINT", ""); const PRIVATE_KEY = vars.has("PRIVATE_KEY") - ? vars.get("PRIVATE_KEY") - : generatePrivateKey(); + ? vars.get("PRIVATE_KEY") + : generatePrivateKey(); const ETHERSCAN_API_KEY = vars.get("ETHERSCAN_API_KEY", ""); const OPTIMISM_ETHERSCAN_API_KEY = vars.has("OPTIMISM_ETHERSCAN_API_KEY") - ? vars.get("OPTIMISM_ETHERSCAN_API_KEY") - : ""; - + ? vars.get("OPTIMISM_ETHERSCAN_API_KEY") + : ""; +const ARBISCAN_API_KEY = vars.has("ARBISCAN_API_KEY") + ? vars.get("ARBISCAN_API_KEY") + : ""; const config: HardhatUserConfig = { - solidity: "0.8.26", - networks: { - sepolia: { - url: ALCHEMY_SEPOLIA_ENDPOINT, - accounts: [PRIVATE_KEY], - }, - optimismSepolia: { - chainId: 11155420, - accounts: [PRIVATE_KEY], - url: "https://sepolia.optimism.io", - gasMultiplier: 1.2, - }, - }, - etherscan: { - apiKey: { - sepolia: ETHERSCAN_API_KEY, - optimismSepolia: OPTIMISM_ETHERSCAN_API_KEY, - }, - customChains: [ - { - network: "optimismSepolia", - chainId: 11155420, - urls: { - apiURL: "https://api-sepolia-optimistic.etherscan.io/api", - browserURL: "https://sepolia-optimism.etherscan.io/", - }, - }, - ], - }, + solidity: "0.8.26", + networks: { + sepolia: { + url: ALCHEMY_SEPOLIA_ENDPOINT, + accounts: [PRIVATE_KEY], + }, + optimismSepolia: { + chainId: 11155420, + accounts: [PRIVATE_KEY], + url: "https://sepolia.optimism.io", + gasMultiplier: 1.2, + }, + arbitrum: { + chainId: 42161, + accounts: [PRIVATE_KEY], + url: "https://arb1.arbitrum.io/rpc", + }, + }, + etherscan: { + apiKey: { + sepolia: ETHERSCAN_API_KEY, + optimismSepolia: OPTIMISM_ETHERSCAN_API_KEY, + arbitrumOne: ARBISCAN_API_KEY, + }, + customChains: [ + { + network: "optimismSepolia", + chainId: 11155420, + urls: { + apiURL: "https://api-sepolia-optimistic.etherscan.io/api", + browserURL: "https://sepolia-optimism.etherscan.io/", + }, + }, + ], + }, }; export default config; diff --git a/ignition/deployments/chain-42161/artifacts/EngagementModule#Engagement.dbg.json b/ignition/deployments/chain-42161/artifacts/EngagementModule#Engagement.dbg.json new file mode 100644 index 0000000..15719ca --- /dev/null +++ b/ignition/deployments/chain-42161/artifacts/EngagementModule#Engagement.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../build-info/4e58f17c75b86363e11bf0ecd1dbfa6a.json" +} \ No newline at end of file diff --git a/ignition/deployments/chain-42161/artifacts/EngagementModule#Engagement.json b/ignition/deployments/chain-42161/artifacts/EngagementModule#Engagement.json new file mode 100644 index 0000000..6fde0be --- /dev/null +++ b/ignition/deployments/chain-42161/artifacts/EngagementModule#Engagement.json @@ -0,0 +1,903 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "Engagement", + "sourceName": "contracts/Engagement.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "string", + "name": "tokenURI_", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "AccessControlBadConfirmation", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "neededRole", + "type": "bytes32" + } + ], + "name": "AccessControlUnauthorizedAccount", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC1155InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC1155InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "idsLength", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "valuesLength", + "type": "uint256" + } + ], + "name": "ERC1155InvalidArrayLength", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "ERC1155InvalidOperator", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC1155InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC1155InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC1155MissingApprovalForAll", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "message", + "type": "string" + } + ], + "name": "EmptyAccountNotAllowed", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "MintLimit", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "NotAllowed", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "NotFound", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "message", + "type": "string" + } + ], + "name": "URIEmpty", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "string", + "name": "oldURI", + "type": "string" + }, + { + "indexed": false, + "internalType": "string", + "name": "newURI", + "type": "string" + } + ], + "name": "BaseURIUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Burn", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Issue", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Mint", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + }, + { + "indexed": false, + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + } + ], + "name": "TransferBatch", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "TransferSingle", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "string", + "name": "value", + "type": "string" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "URI", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "accounts", + "type": "address[]" + }, + { + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + } + ], + "name": "balanceOfBatch", + "outputs": [ + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "counter", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "issue", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "callerConfirmation", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + }, + { + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeBatchTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "newURI", + "type": "string" + } + ], + "name": "updateBaseURI", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "uri", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "string", + "name": "account", + "type": "string" + } + ], + "name": "uri", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b50604051613edb380380613edb833981810160405281019061003291906103cb565b604051806020016040528060008152506100518161008b60201b60201c565b506100618161009e60201b60201c565b6100746000801b336100e560201b60201c565b5080600590816100849190610635565b5050610784565b806002908161009a9190610635565b5050565b60008151036100e2576040517f1897cf660000000000000000000000000000000000000000000000000000000081526004016100d990610764565b60405180910390fd5b50565b60006100f783836101e360201b60201c565b6101d85760016003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061017561024e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600190506101dd565b600090505b92915050565b60006003600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600033905090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6102bd82610274565b810181811067ffffffffffffffff821117156102dc576102db610285565b5b80604052505050565b60006102ef610256565b90506102fb82826102b4565b919050565b600067ffffffffffffffff82111561031b5761031a610285565b5b61032482610274565b9050602081019050919050565b60005b8381101561034f578082015181840152602081019050610334565b60008484015250505050565b600061036e61036984610300565b6102e5565b90508281526020810184848401111561038a5761038961026f565b5b610395848285610331565b509392505050565b600082601f8301126103b2576103b161026a565b5b81516103c284826020860161035b565b91505092915050565b6000602082840312156103e1576103e0610260565b5b600082015167ffffffffffffffff8111156103ff576103fe610265565b5b61040b8482850161039d565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061046657607f821691505b6020821081036104795761047861041f565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026104e17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826104a4565b6104eb86836104a4565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600061053261052d61052884610503565b61050d565b610503565b9050919050565b6000819050919050565b61054c83610517565b61056061055882610539565b8484546104b1565b825550505050565b600090565b610575610568565b610580818484610543565b505050565b5b818110156105a45761059960008261056d565b600181019050610586565b5050565b601f8211156105e9576105ba8161047f565b6105c384610494565b810160208510156105d2578190505b6105e66105de85610494565b830182610585565b50505b505050565b600082821c905092915050565b600061060c600019846008026105ee565b1980831691505092915050565b600061062583836105fb565b9150826002028217905092915050565b61063e82610414565b67ffffffffffffffff81111561065757610656610285565b5b610661825461044e565b61066c8282856105a8565b600060209050601f83116001811461069f576000841561068d578287015190505b6106978582610619565b8655506106ff565b601f1984166106ad8661047f565b60005b828110156106d5578489015182556001820191506020850194506020810190506106b0565b868310156106f257848901516106ee601f8916826105fb565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f5552492063616e6e6f7420626520656d70747900000000000000000000000000600082015250565b600061074e601383610707565b915061075982610718565b602082019050919050565b6000602082019050818103600083015261077d81610741565b9050919050565b613748806107936000396000f3fe608060405234801561001057600080fd5b506004361061012b5760003560e01c806376b676f1116100ad578063d383f64611610071578063d383f64614610364578063d547741f1461036e578063e985e9c51461038a578063f242432a146103ba578063f5298aca146103d65761012b565b806376b676f1146102ae57806391d14854146102de578063931688cb1461030e578063a217fddf1461032a578063a22cb465146103485761012b565b80632f2ff15d116100f45780632f2ff15d1461020c57806336568abe146102285780634e1273f41461024457806361bc221a14610274578063731133e9146102925761012b565b8062fdd58e1461013057806301ffc9a7146101605780630e89341c14610190578063248a9ca3146101c05780632eb2c2d6146101f0575b600080fd5b61014a600480360381019061014591906121b1565b6103f2565b6040516101579190612200565b60405180910390f35b61017a60048036038101906101759190612273565b61044c565b60405161018791906122bb565b60405180910390f35b6101aa60048036038101906101a591906122d6565b61048c565b6040516101b79190612393565b60405180910390f35b6101da60048036038101906101d591906123eb565b610520565b6040516101e79190612427565b60405180910390f35b61020a6004803603810190610205919061263f565b610540565b005b6102266004803603810190610221919061270e565b6105e8565b005b610242600480360381019061023d919061270e565b61060a565b005b61025e60048036038101906102599190612811565b610685565b60405161026b9190612947565b60405180910390f35b61027c61078e565b6040516102899190612200565b60405180910390f35b6102ac60048036038101906102a79190612969565b610798565b005b6102c860048036038101906102c39190612a8d565b610856565b6040516102d59190612393565b60405180910390f35b6102f860048036038101906102f3919061270e565b6108de565b60405161030591906122bb565b60405180910390f35b61032860048036038101906103239190612ae9565b610949565b005b6103326109ad565b60405161033f9190612427565b60405180910390f35b610362600480360381019061035d9190612b5e565b6109b4565b005b61036c6109ca565b005b6103886004803603810190610383919061270e565b610a47565b005b6103a4600480360381019061039f9190612b9e565b610a69565b6040516103b191906122bb565b60405180910390f35b6103d460048036038101906103cf9190612bde565b610afd565b005b6103f060048036038101906103eb9190612c75565b610ba5565b005b600080600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600061046d3073ffffffffffffffffffffffffffffffffffffffff16610c87565b156104825761047b82610cd4565b9050610487565b600090505b919050565b60606002805461049b90612cf7565b80601f01602080910402602001604051908101604052809291908181526020018280546104c790612cf7565b80156105145780601f106104e957610100808354040283529160200191610514565b820191906000526020600020905b8154815290600101906020018083116104f757829003601f168201915b50505050509050919050565b600060036000838152602001908152602001600020600101549050919050565b600061054a610d4e565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415801561058f575061058d8682610a69565b155b156105d35780866040517fe237d9220000000000000000000000000000000000000000000000000000000081526004016105ca929190612d37565b60405180910390fd5b6105e08686868686610d56565b505050505050565b6105f182610520565b6105fa81610e4e565b6106048383610e62565b50505050565b610612610d4e565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610676576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106808282610f54565b505050565b606081518351146106d157815183516040517f5b0599910000000000000000000000000000000000000000000000000000000081526004016106c8929190612d60565b60405180910390fd5b6000835167ffffffffffffffff8111156106ee576106ed612447565b5b60405190808252806020026020018201604052801561071c5781602001602082028036833780820191505090505b50905060005b845181101561078357610759610741828761104790919063ffffffff16565b610754838761105b90919063ffffffff16565b6103f2565b82828151811061076c5761076b612d89565b5b602002602001018181525050806001019050610722565b508091505092915050565b6000600454905090565b826107a28161106f565b60016107ae86866103f2565b106107f25784846040517f788d25560000000000000000000000000000000000000000000000000000000081526004016107e9929190612db8565b60405180910390fd5b6107ff85856001856110b8565b838573ffffffffffffffffffffffffffffffffffffffff167f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f60016040516108479190612e26565b60405180910390a35050505050565b6060826108628161106f565b8260008151036108a7576040517fc29f9db300000000000000000000000000000000000000000000000000000000815260040161089e90612e8d565b60405180910390fd5b60056108b286611151565b856040516020016108c593929190613065565b6040516020818303038152906040529250505092915050565b60006003600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000801b61095681610e4e565b61095f8261121f565b7f309b29ded109b9e28fb9885757b3e0096eb75c51d23aa4635d68bcd569f6adc160058360405161099192919061313b565b60405180910390a181600590816109a891906132ff565b505050565b6000801b81565b6109c66109bf610d4e565b8383611266565b5050565b600060045490506109ed33826001604051806020016040528060008152506110b8565b803373ffffffffffffffffffffffffffffffffffffffff167fc65a3f767206d2fdcede0b094a4840e01c0dd0be1888b5ba800346eaa0123c1660405160405180910390a3600181610a3e9190613400565b60048190555050565b610a5082610520565b610a5981610e4e565b610a638383610f54565b50505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000610b07610d4e565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015610b4c5750610b4a8682610a69565b155b15610b905780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401610b87929190612d37565b60405180910390fd5b610b9d86868686866113d6565b505050505050565b81610baf8161106f565b83833373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610c235781816040517f8626cc03000000000000000000000000000000000000000000000000000000008152600401610c1a929190612db8565b60405180910390fd5b610c2f868660016114e1565b848673ffffffffffffffffffffffffffffffffffffffff167f49995e5dd6158cf69ad3e9777c46755a1a826a446c6416992167462dad033b2a6001604051610c779190612e26565b60405180910390a3505050505050565b6000610cb3827f01ffc9a700000000000000000000000000000000000000000000000000000000611588565b8015610ccd5750610ccb8263ffffffff60e01b611588565b155b9050919050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610d475750610d4682611627565b5b9050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610dc85760006040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401610dbf9190613434565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610e3a5760006040517f01a83514000000000000000000000000000000000000000000000000000000008152600401610e319190613434565b60405180910390fd5b610e478585858585611709565b5050505050565b610e5f81610e5a610d4e565b6117bb565b50565b6000610e6e83836108de565b610f495760016003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610ee6610d4e565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050610f4e565b600090505b92915050565b6000610f6083836108de565b1561103c5760006003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610fd9610d4e565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050611041565b600090505b92915050565b600060208202602084010151905092915050565b600060208202602084010151905092915050565b60045481106110b557806040517fc80a970c0000000000000000000000000000000000000000000000000000000081526004016110ac9190612200565b60405180910390fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361112a5760006040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016111219190613434565b60405180910390fd5b600080611137858561180c565b91509150611149600087848487611709565b505050505050565b6060600060016111608461183c565b01905060008167ffffffffffffffff81111561117f5761117e612447565b5b6040519080825280601f01601f1916602001820160405280156111b15781602001600182028036833780820191505090505b509050600082602001820190505b600115611214578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816112085761120761344f565b5b049450600085036111bf575b819350505050919050565b6000815103611263576040517f1897cf6600000000000000000000000000000000000000000000000000000000815260040161125a906134ca565b60405180910390fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112d85760006040517fced3e1000000000000000000000000000000000000000000000000000000000081526004016112cf9190613434565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516113c991906122bb565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036114485760006040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161143f9190613434565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036114ba5760006040517f01a835140000000000000000000000000000000000000000000000000000000081526004016114b19190613434565b60405180910390fd5b6000806114c7858561180c565b915091506114d88787848487611709565b50505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115535760006040517f01a8351400000000000000000000000000000000000000000000000000000000815260040161154a9190613434565b60405180910390fd5b600080611560848461180c565b91509150611581856000848460405180602001604052806000815250611709565b5050505050565b6000808260405160240161159c91906134f9565b6040516020818303038152906040526301ffc9a760e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506000806000602060008551602087018a617530fa92503d9150600051905082801561160f575060208210155b801561161b5750600081115b94505050505092915050565b60007fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806116f257507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061170257506117018261198f565b5b9050919050565b611715858585856119f9565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146117b4576000611753610d4e565b905060018451036117a357600061177460008661105b90919063ffffffff16565b9050600061178c60008661105b90919063ffffffff16565b905061179c838989858589611da1565b50506117b2565b6117b1818787878787611f55565b5b505b5050505050565b6117c582826108de565b6118085780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016117ff929190613514565b60405180910390fd5b5050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061189a577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816118905761188f61344f565b5b0492506040810190505b6d04ee2d6d415b85acef810000000083106118d7576d04ee2d6d415b85acef810000000083816118cd576118cc61344f565b5b0492506020810190505b662386f26fc10000831061190657662386f26fc1000083816118fc576118fb61344f565b5b0492506010810190505b6305f5e100831061192f576305f5e10083816119255761192461344f565b5b0492506008810190505b612710831061195457612710838161194a5761194961344f565b5b0492506004810190505b60648310611977576064838161196d5761196c61344f565b5b0492506002810190505b600a8310611986576001810190505b80915050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b8051825114611a4357815181516040517f5b059991000000000000000000000000000000000000000000000000000000008152600401611a3a929190612d60565b60405180910390fd5b6000611a4d610d4e565b905060005b8351811015611c5c576000611a70828661105b90919063ffffffff16565b90506000611a87838661105b90919063ffffffff16565b9050600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614611bb457600080600084815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611b5c57888183856040517f03dee4c5000000000000000000000000000000000000000000000000000000008152600401611b53949392919061353d565b60405180910390fd5b81810360008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614611c4f578060008084815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611c479190613400565b925050819055505b5050806001019050611a52565b506001835103611d1b576000611c7c60008561105b90919063ffffffff16565b90506000611c9460008561105b90919063ffffffff16565b90508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051611d0c929190612d60565b60405180910390a45050611d9a565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051611d91929190613582565b60405180910390a45b5050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b1115611f4d578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401611e0295949392919061360e565b6020604051808303816000875af1925050508015611e3e57506040513d601f19601f82011682018060405250810190611e3b919061367d565b60015b611ec2573d8060008114611e6e576040519150601f19603f3d011682016040523d82523d6000602084013e611e73565b606091505b506000815103611eba57846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611eb19190613434565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611f4b57846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611f429190613434565b60405180910390fd5b505b505050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b1115612101578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401611fb69594939291906136aa565b6020604051808303816000875af1925050508015611ff257506040513d601f19601f82011682018060405250810190611fef919061367d565b60015b612076573d8060008114612022576040519150601f19603f3d011682016040523d82523d6000602084013e612027565b606091505b50600081510361206e57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016120659190613434565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146120ff57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016120f69190613434565b60405180910390fd5b505b505050505050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006121488261211d565b9050919050565b6121588161213d565b811461216357600080fd5b50565b6000813590506121758161214f565b92915050565b6000819050919050565b61218e8161217b565b811461219957600080fd5b50565b6000813590506121ab81612185565b92915050565b600080604083850312156121c8576121c7612113565b5b60006121d685828601612166565b92505060206121e78582860161219c565b9150509250929050565b6121fa8161217b565b82525050565b600060208201905061221560008301846121f1565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6122508161221b565b811461225b57600080fd5b50565b60008135905061226d81612247565b92915050565b60006020828403121561228957612288612113565b5b60006122978482850161225e565b91505092915050565b60008115159050919050565b6122b5816122a0565b82525050565b60006020820190506122d060008301846122ac565b92915050565b6000602082840312156122ec576122eb612113565b5b60006122fa8482850161219c565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561233d578082015181840152602081019050612322565b60008484015250505050565b6000601f19601f8301169050919050565b600061236582612303565b61236f818561230e565b935061237f81856020860161231f565b61238881612349565b840191505092915050565b600060208201905081810360008301526123ad818461235a565b905092915050565b6000819050919050565b6123c8816123b5565b81146123d357600080fd5b50565b6000813590506123e5816123bf565b92915050565b60006020828403121561240157612400612113565b5b600061240f848285016123d6565b91505092915050565b612421816123b5565b82525050565b600060208201905061243c6000830184612418565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61247f82612349565b810181811067ffffffffffffffff8211171561249e5761249d612447565b5b80604052505050565b60006124b1612109565b90506124bd8282612476565b919050565b600067ffffffffffffffff8211156124dd576124dc612447565b5b602082029050602081019050919050565b600080fd5b6000612506612501846124c2565b6124a7565b90508083825260208201905060208402830185811115612529576125286124ee565b5b835b81811015612552578061253e888261219c565b84526020840193505060208101905061252b565b5050509392505050565b600082601f83011261257157612570612442565b5b81356125818482602086016124f3565b91505092915050565b600080fd5b600067ffffffffffffffff8211156125aa576125a9612447565b5b6125b382612349565b9050602081019050919050565b82818337600083830152505050565b60006125e26125dd8461258f565b6124a7565b9050828152602081018484840111156125fe576125fd61258a565b5b6126098482856125c0565b509392505050565b600082601f83011261262657612625612442565b5b81356126368482602086016125cf565b91505092915050565b600080600080600060a0868803121561265b5761265a612113565b5b600061266988828901612166565b955050602061267a88828901612166565b945050604086013567ffffffffffffffff81111561269b5761269a612118565b5b6126a78882890161255c565b935050606086013567ffffffffffffffff8111156126c8576126c7612118565b5b6126d48882890161255c565b925050608086013567ffffffffffffffff8111156126f5576126f4612118565b5b61270188828901612611565b9150509295509295909350565b6000806040838503121561272557612724612113565b5b6000612733858286016123d6565b925050602061274485828601612166565b9150509250929050565b600067ffffffffffffffff82111561276957612768612447565b5b602082029050602081019050919050565b600061278d6127888461274e565b6124a7565b905080838252602082019050602084028301858111156127b0576127af6124ee565b5b835b818110156127d957806127c58882612166565b8452602084019350506020810190506127b2565b5050509392505050565b600082601f8301126127f8576127f7612442565b5b813561280884826020860161277a565b91505092915050565b6000806040838503121561282857612827612113565b5b600083013567ffffffffffffffff81111561284657612845612118565b5b612852858286016127e3565b925050602083013567ffffffffffffffff81111561287357612872612118565b5b61287f8582860161255c565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6128be8161217b565b82525050565b60006128d083836128b5565b60208301905092915050565b6000602082019050919050565b60006128f482612889565b6128fe8185612894565b9350612909836128a5565b8060005b8381101561293a57815161292188826128c4565b975061292c836128dc565b92505060018101905061290d565b5085935050505092915050565b6000602082019050818103600083015261296181846128e9565b905092915050565b6000806000806080858703121561298357612982612113565b5b600061299187828801612166565b94505060206129a28782880161219c565b93505060406129b38782880161219c565b925050606085013567ffffffffffffffff8111156129d4576129d3612118565b5b6129e087828801612611565b91505092959194509250565b600067ffffffffffffffff821115612a0757612a06612447565b5b612a1082612349565b9050602081019050919050565b6000612a30612a2b846129ec565b6124a7565b905082815260208101848484011115612a4c57612a4b61258a565b5b612a578482856125c0565b509392505050565b600082601f830112612a7457612a73612442565b5b8135612a84848260208601612a1d565b91505092915050565b60008060408385031215612aa457612aa3612113565b5b6000612ab28582860161219c565b925050602083013567ffffffffffffffff811115612ad357612ad2612118565b5b612adf85828601612a5f565b9150509250929050565b600060208284031215612aff57612afe612113565b5b600082013567ffffffffffffffff811115612b1d57612b1c612118565b5b612b2984828501612a5f565b91505092915050565b612b3b816122a0565b8114612b4657600080fd5b50565b600081359050612b5881612b32565b92915050565b60008060408385031215612b7557612b74612113565b5b6000612b8385828601612166565b9250506020612b9485828601612b49565b9150509250929050565b60008060408385031215612bb557612bb4612113565b5b6000612bc385828601612166565b9250506020612bd485828601612166565b9150509250929050565b600080600080600060a08688031215612bfa57612bf9612113565b5b6000612c0888828901612166565b9550506020612c1988828901612166565b9450506040612c2a8882890161219c565b9350506060612c3b8882890161219c565b925050608086013567ffffffffffffffff811115612c5c57612c5b612118565b5b612c6888828901612611565b9150509295509295909350565b600080600060608486031215612c8e57612c8d612113565b5b6000612c9c86828701612166565b9350506020612cad8682870161219c565b9250506040612cbe8682870161219c565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612d0f57607f821691505b602082108103612d2257612d21612cc8565b5b50919050565b612d318161213d565b82525050565b6000604082019050612d4c6000830185612d28565b612d596020830184612d28565b9392505050565b6000604082019050612d7560008301856121f1565b612d8260208301846121f1565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000604082019050612dcd6000830185612d28565b612dda60208301846121f1565b9392505050565b6000819050919050565b6000819050919050565b6000612e10612e0b612e0684612de1565b612deb565b61217b565b9050919050565b612e2081612df5565b82525050565b6000602082019050612e3b6000830184612e17565b92915050565b7f4163636f756e742063616e6e6f7420626520656d707479000000000000000000600082015250565b6000612e7760178361230e565b9150612e8282612e41565b602082019050919050565b60006020820190508181036000830152612ea681612e6a565b9050919050565b600081905092915050565b60008190508160005260206000209050919050565b60008154612eda81612cf7565b612ee48186612ead565b94506001821660008114612eff5760018114612f1457612f47565b60ff1983168652811515820286019350612f47565b612f1d85612eb8565b60005b83811015612f3f57815481890152600182019150602081019050612f20565b838801955050505b50505092915050565b7f2f6170692f76312f6e66742f0000000000000000000000000000000000000000600082015250565b6000612f86600c83612ead565b9150612f9182612f50565b600c82019050919050565b6000612fa782612303565b612fb18185612ead565b9350612fc181856020860161231f565b80840191505092915050565b7f2f00000000000000000000000000000000000000000000000000000000000000600082015250565b6000613003600183612ead565b915061300e82612fcd565b600182019050919050565b7f2f72657075746174696f6e2d73636f7265000000000000000000000000000000600082015250565b600061304f601183612ead565b915061305a82613019565b601182019050919050565b60006130718286612ecd565b915061307c82612f79565b91506130888285612f9c565b915061309382612ff6565b915061309f8284612f9c565b91506130aa82613042565b9150819050949350505050565b600081546130c481612cf7565b6130ce818661230e565b945060018216600081146130e957600181146130ff57613132565b60ff198316865281151560200286019350613132565b61310885612eb8565b60005b8381101561312a5781548189015260018201915060208101905061310b565b808801955050505b50505092915050565b6000604082019050818103600083015261315581856130b7565b90508181036020830152613169818461235a565b90509392505050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026131bf7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82613182565b6131c98683613182565b95508019841693508086168417925050509392505050565b60006131fc6131f76131f28461217b565b612deb565b61217b565b9050919050565b6000819050919050565b613216836131e1565b61322a61322282613203565b84845461318f565b825550505050565b600090565b61323f613232565b61324a81848461320d565b505050565b5b8181101561326e57613263600082613237565b600181019050613250565b5050565b601f8211156132b35761328481612eb8565b61328d84613172565b8101602085101561329c578190505b6132b06132a885613172565b83018261324f565b50505b505050565b600082821c905092915050565b60006132d6600019846008026132b8565b1980831691505092915050565b60006132ef83836132c5565b9150826002028217905092915050565b61330882612303565b67ffffffffffffffff81111561332157613320612447565b5b61332b8254612cf7565b613336828285613272565b600060209050601f8311600181146133695760008415613357578287015190505b61336185826132e3565b8655506133c9565b601f19841661337786612eb8565b60005b8281101561339f5784890151825560018201915060208501945060208101905061337a565b868310156133bc57848901516133b8601f8916826132c5565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061340b8261217b565b91506134168361217b565b925082820190508082111561342e5761342d6133d1565b5b92915050565b60006020820190506134496000830184612d28565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f5552492063616e6e6f7420626520656d70747900000000000000000000000000600082015250565b60006134b460138361230e565b91506134bf8261347e565b602082019050919050565b600060208201905081810360008301526134e3816134a7565b9050919050565b6134f38161221b565b82525050565b600060208201905061350e60008301846134ea565b92915050565b60006040820190506135296000830185612d28565b6135366020830184612418565b9392505050565b60006080820190506135526000830187612d28565b61355f60208301866121f1565b61356c60408301856121f1565b61357960608301846121f1565b95945050505050565b6000604082019050818103600083015261359c81856128e9565b905081810360208301526135b081846128e9565b90509392505050565b600081519050919050565b600082825260208201905092915050565b60006135e0826135b9565b6135ea81856135c4565b93506135fa81856020860161231f565b61360381612349565b840191505092915050565b600060a0820190506136236000830188612d28565b6136306020830187612d28565b61363d60408301866121f1565b61364a60608301856121f1565b818103608083015261365c81846135d5565b90509695505050505050565b60008151905061367781612247565b92915050565b60006020828403121561369357613692612113565b5b60006136a184828501613668565b91505092915050565b600060a0820190506136bf6000830188612d28565b6136cc6020830187612d28565b81810360408301526136de81866128e9565b905081810360608301526136f281856128e9565b9050818103608083015261370681846135d5565b9050969550505050505056fea2646970667358221220240e9a7daab5d9eba2793e75f4bbf0e9a74f133868ac14d5e9561767bb722e8264736f6c634300081a0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061012b5760003560e01c806376b676f1116100ad578063d383f64611610071578063d383f64614610364578063d547741f1461036e578063e985e9c51461038a578063f242432a146103ba578063f5298aca146103d65761012b565b806376b676f1146102ae57806391d14854146102de578063931688cb1461030e578063a217fddf1461032a578063a22cb465146103485761012b565b80632f2ff15d116100f45780632f2ff15d1461020c57806336568abe146102285780634e1273f41461024457806361bc221a14610274578063731133e9146102925761012b565b8062fdd58e1461013057806301ffc9a7146101605780630e89341c14610190578063248a9ca3146101c05780632eb2c2d6146101f0575b600080fd5b61014a600480360381019061014591906121b1565b6103f2565b6040516101579190612200565b60405180910390f35b61017a60048036038101906101759190612273565b61044c565b60405161018791906122bb565b60405180910390f35b6101aa60048036038101906101a591906122d6565b61048c565b6040516101b79190612393565b60405180910390f35b6101da60048036038101906101d591906123eb565b610520565b6040516101e79190612427565b60405180910390f35b61020a6004803603810190610205919061263f565b610540565b005b6102266004803603810190610221919061270e565b6105e8565b005b610242600480360381019061023d919061270e565b61060a565b005b61025e60048036038101906102599190612811565b610685565b60405161026b9190612947565b60405180910390f35b61027c61078e565b6040516102899190612200565b60405180910390f35b6102ac60048036038101906102a79190612969565b610798565b005b6102c860048036038101906102c39190612a8d565b610856565b6040516102d59190612393565b60405180910390f35b6102f860048036038101906102f3919061270e565b6108de565b60405161030591906122bb565b60405180910390f35b61032860048036038101906103239190612ae9565b610949565b005b6103326109ad565b60405161033f9190612427565b60405180910390f35b610362600480360381019061035d9190612b5e565b6109b4565b005b61036c6109ca565b005b6103886004803603810190610383919061270e565b610a47565b005b6103a4600480360381019061039f9190612b9e565b610a69565b6040516103b191906122bb565b60405180910390f35b6103d460048036038101906103cf9190612bde565b610afd565b005b6103f060048036038101906103eb9190612c75565b610ba5565b005b600080600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600061046d3073ffffffffffffffffffffffffffffffffffffffff16610c87565b156104825761047b82610cd4565b9050610487565b600090505b919050565b60606002805461049b90612cf7565b80601f01602080910402602001604051908101604052809291908181526020018280546104c790612cf7565b80156105145780601f106104e957610100808354040283529160200191610514565b820191906000526020600020905b8154815290600101906020018083116104f757829003601f168201915b50505050509050919050565b600060036000838152602001908152602001600020600101549050919050565b600061054a610d4e565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415801561058f575061058d8682610a69565b155b156105d35780866040517fe237d9220000000000000000000000000000000000000000000000000000000081526004016105ca929190612d37565b60405180910390fd5b6105e08686868686610d56565b505050505050565b6105f182610520565b6105fa81610e4e565b6106048383610e62565b50505050565b610612610d4e565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610676576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106808282610f54565b505050565b606081518351146106d157815183516040517f5b0599910000000000000000000000000000000000000000000000000000000081526004016106c8929190612d60565b60405180910390fd5b6000835167ffffffffffffffff8111156106ee576106ed612447565b5b60405190808252806020026020018201604052801561071c5781602001602082028036833780820191505090505b50905060005b845181101561078357610759610741828761104790919063ffffffff16565b610754838761105b90919063ffffffff16565b6103f2565b82828151811061076c5761076b612d89565b5b602002602001018181525050806001019050610722565b508091505092915050565b6000600454905090565b826107a28161106f565b60016107ae86866103f2565b106107f25784846040517f788d25560000000000000000000000000000000000000000000000000000000081526004016107e9929190612db8565b60405180910390fd5b6107ff85856001856110b8565b838573ffffffffffffffffffffffffffffffffffffffff167f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f60016040516108479190612e26565b60405180910390a35050505050565b6060826108628161106f565b8260008151036108a7576040517fc29f9db300000000000000000000000000000000000000000000000000000000815260040161089e90612e8d565b60405180910390fd5b60056108b286611151565b856040516020016108c593929190613065565b6040516020818303038152906040529250505092915050565b60006003600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000801b61095681610e4e565b61095f8261121f565b7f309b29ded109b9e28fb9885757b3e0096eb75c51d23aa4635d68bcd569f6adc160058360405161099192919061313b565b60405180910390a181600590816109a891906132ff565b505050565b6000801b81565b6109c66109bf610d4e565b8383611266565b5050565b600060045490506109ed33826001604051806020016040528060008152506110b8565b803373ffffffffffffffffffffffffffffffffffffffff167fc65a3f767206d2fdcede0b094a4840e01c0dd0be1888b5ba800346eaa0123c1660405160405180910390a3600181610a3e9190613400565b60048190555050565b610a5082610520565b610a5981610e4e565b610a638383610f54565b50505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000610b07610d4e565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015610b4c5750610b4a8682610a69565b155b15610b905780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401610b87929190612d37565b60405180910390fd5b610b9d86868686866113d6565b505050505050565b81610baf8161106f565b83833373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610c235781816040517f8626cc03000000000000000000000000000000000000000000000000000000008152600401610c1a929190612db8565b60405180910390fd5b610c2f868660016114e1565b848673ffffffffffffffffffffffffffffffffffffffff167f49995e5dd6158cf69ad3e9777c46755a1a826a446c6416992167462dad033b2a6001604051610c779190612e26565b60405180910390a3505050505050565b6000610cb3827f01ffc9a700000000000000000000000000000000000000000000000000000000611588565b8015610ccd5750610ccb8263ffffffff60e01b611588565b155b9050919050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610d475750610d4682611627565b5b9050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610dc85760006040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401610dbf9190613434565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610e3a5760006040517f01a83514000000000000000000000000000000000000000000000000000000008152600401610e319190613434565b60405180910390fd5b610e478585858585611709565b5050505050565b610e5f81610e5a610d4e565b6117bb565b50565b6000610e6e83836108de565b610f495760016003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610ee6610d4e565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050610f4e565b600090505b92915050565b6000610f6083836108de565b1561103c5760006003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610fd9610d4e565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050611041565b600090505b92915050565b600060208202602084010151905092915050565b600060208202602084010151905092915050565b60045481106110b557806040517fc80a970c0000000000000000000000000000000000000000000000000000000081526004016110ac9190612200565b60405180910390fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361112a5760006040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016111219190613434565b60405180910390fd5b600080611137858561180c565b91509150611149600087848487611709565b505050505050565b6060600060016111608461183c565b01905060008167ffffffffffffffff81111561117f5761117e612447565b5b6040519080825280601f01601f1916602001820160405280156111b15781602001600182028036833780820191505090505b509050600082602001820190505b600115611214578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816112085761120761344f565b5b049450600085036111bf575b819350505050919050565b6000815103611263576040517f1897cf6600000000000000000000000000000000000000000000000000000000815260040161125a906134ca565b60405180910390fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112d85760006040517fced3e1000000000000000000000000000000000000000000000000000000000081526004016112cf9190613434565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516113c991906122bb565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036114485760006040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161143f9190613434565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036114ba5760006040517f01a835140000000000000000000000000000000000000000000000000000000081526004016114b19190613434565b60405180910390fd5b6000806114c7858561180c565b915091506114d88787848487611709565b50505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115535760006040517f01a8351400000000000000000000000000000000000000000000000000000000815260040161154a9190613434565b60405180910390fd5b600080611560848461180c565b91509150611581856000848460405180602001604052806000815250611709565b5050505050565b6000808260405160240161159c91906134f9565b6040516020818303038152906040526301ffc9a760e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506000806000602060008551602087018a617530fa92503d9150600051905082801561160f575060208210155b801561161b5750600081115b94505050505092915050565b60007fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806116f257507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061170257506117018261198f565b5b9050919050565b611715858585856119f9565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146117b4576000611753610d4e565b905060018451036117a357600061177460008661105b90919063ffffffff16565b9050600061178c60008661105b90919063ffffffff16565b905061179c838989858589611da1565b50506117b2565b6117b1818787878787611f55565b5b505b5050505050565b6117c582826108de565b6118085780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016117ff929190613514565b60405180910390fd5b5050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061189a577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816118905761188f61344f565b5b0492506040810190505b6d04ee2d6d415b85acef810000000083106118d7576d04ee2d6d415b85acef810000000083816118cd576118cc61344f565b5b0492506020810190505b662386f26fc10000831061190657662386f26fc1000083816118fc576118fb61344f565b5b0492506010810190505b6305f5e100831061192f576305f5e10083816119255761192461344f565b5b0492506008810190505b612710831061195457612710838161194a5761194961344f565b5b0492506004810190505b60648310611977576064838161196d5761196c61344f565b5b0492506002810190505b600a8310611986576001810190505b80915050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b8051825114611a4357815181516040517f5b059991000000000000000000000000000000000000000000000000000000008152600401611a3a929190612d60565b60405180910390fd5b6000611a4d610d4e565b905060005b8351811015611c5c576000611a70828661105b90919063ffffffff16565b90506000611a87838661105b90919063ffffffff16565b9050600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614611bb457600080600084815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611b5c57888183856040517f03dee4c5000000000000000000000000000000000000000000000000000000008152600401611b53949392919061353d565b60405180910390fd5b81810360008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614611c4f578060008084815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611c479190613400565b925050819055505b5050806001019050611a52565b506001835103611d1b576000611c7c60008561105b90919063ffffffff16565b90506000611c9460008561105b90919063ffffffff16565b90508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051611d0c929190612d60565b60405180910390a45050611d9a565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051611d91929190613582565b60405180910390a45b5050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b1115611f4d578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401611e0295949392919061360e565b6020604051808303816000875af1925050508015611e3e57506040513d601f19601f82011682018060405250810190611e3b919061367d565b60015b611ec2573d8060008114611e6e576040519150601f19603f3d011682016040523d82523d6000602084013e611e73565b606091505b506000815103611eba57846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611eb19190613434565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611f4b57846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611f429190613434565b60405180910390fd5b505b505050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b1115612101578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401611fb69594939291906136aa565b6020604051808303816000875af1925050508015611ff257506040513d601f19601f82011682018060405250810190611fef919061367d565b60015b612076573d8060008114612022576040519150601f19603f3d011682016040523d82523d6000602084013e612027565b606091505b50600081510361206e57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016120659190613434565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146120ff57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016120f69190613434565b60405180910390fd5b505b505050505050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006121488261211d565b9050919050565b6121588161213d565b811461216357600080fd5b50565b6000813590506121758161214f565b92915050565b6000819050919050565b61218e8161217b565b811461219957600080fd5b50565b6000813590506121ab81612185565b92915050565b600080604083850312156121c8576121c7612113565b5b60006121d685828601612166565b92505060206121e78582860161219c565b9150509250929050565b6121fa8161217b565b82525050565b600060208201905061221560008301846121f1565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6122508161221b565b811461225b57600080fd5b50565b60008135905061226d81612247565b92915050565b60006020828403121561228957612288612113565b5b60006122978482850161225e565b91505092915050565b60008115159050919050565b6122b5816122a0565b82525050565b60006020820190506122d060008301846122ac565b92915050565b6000602082840312156122ec576122eb612113565b5b60006122fa8482850161219c565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561233d578082015181840152602081019050612322565b60008484015250505050565b6000601f19601f8301169050919050565b600061236582612303565b61236f818561230e565b935061237f81856020860161231f565b61238881612349565b840191505092915050565b600060208201905081810360008301526123ad818461235a565b905092915050565b6000819050919050565b6123c8816123b5565b81146123d357600080fd5b50565b6000813590506123e5816123bf565b92915050565b60006020828403121561240157612400612113565b5b600061240f848285016123d6565b91505092915050565b612421816123b5565b82525050565b600060208201905061243c6000830184612418565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61247f82612349565b810181811067ffffffffffffffff8211171561249e5761249d612447565b5b80604052505050565b60006124b1612109565b90506124bd8282612476565b919050565b600067ffffffffffffffff8211156124dd576124dc612447565b5b602082029050602081019050919050565b600080fd5b6000612506612501846124c2565b6124a7565b90508083825260208201905060208402830185811115612529576125286124ee565b5b835b81811015612552578061253e888261219c565b84526020840193505060208101905061252b565b5050509392505050565b600082601f83011261257157612570612442565b5b81356125818482602086016124f3565b91505092915050565b600080fd5b600067ffffffffffffffff8211156125aa576125a9612447565b5b6125b382612349565b9050602081019050919050565b82818337600083830152505050565b60006125e26125dd8461258f565b6124a7565b9050828152602081018484840111156125fe576125fd61258a565b5b6126098482856125c0565b509392505050565b600082601f83011261262657612625612442565b5b81356126368482602086016125cf565b91505092915050565b600080600080600060a0868803121561265b5761265a612113565b5b600061266988828901612166565b955050602061267a88828901612166565b945050604086013567ffffffffffffffff81111561269b5761269a612118565b5b6126a78882890161255c565b935050606086013567ffffffffffffffff8111156126c8576126c7612118565b5b6126d48882890161255c565b925050608086013567ffffffffffffffff8111156126f5576126f4612118565b5b61270188828901612611565b9150509295509295909350565b6000806040838503121561272557612724612113565b5b6000612733858286016123d6565b925050602061274485828601612166565b9150509250929050565b600067ffffffffffffffff82111561276957612768612447565b5b602082029050602081019050919050565b600061278d6127888461274e565b6124a7565b905080838252602082019050602084028301858111156127b0576127af6124ee565b5b835b818110156127d957806127c58882612166565b8452602084019350506020810190506127b2565b5050509392505050565b600082601f8301126127f8576127f7612442565b5b813561280884826020860161277a565b91505092915050565b6000806040838503121561282857612827612113565b5b600083013567ffffffffffffffff81111561284657612845612118565b5b612852858286016127e3565b925050602083013567ffffffffffffffff81111561287357612872612118565b5b61287f8582860161255c565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6128be8161217b565b82525050565b60006128d083836128b5565b60208301905092915050565b6000602082019050919050565b60006128f482612889565b6128fe8185612894565b9350612909836128a5565b8060005b8381101561293a57815161292188826128c4565b975061292c836128dc565b92505060018101905061290d565b5085935050505092915050565b6000602082019050818103600083015261296181846128e9565b905092915050565b6000806000806080858703121561298357612982612113565b5b600061299187828801612166565b94505060206129a28782880161219c565b93505060406129b38782880161219c565b925050606085013567ffffffffffffffff8111156129d4576129d3612118565b5b6129e087828801612611565b91505092959194509250565b600067ffffffffffffffff821115612a0757612a06612447565b5b612a1082612349565b9050602081019050919050565b6000612a30612a2b846129ec565b6124a7565b905082815260208101848484011115612a4c57612a4b61258a565b5b612a578482856125c0565b509392505050565b600082601f830112612a7457612a73612442565b5b8135612a84848260208601612a1d565b91505092915050565b60008060408385031215612aa457612aa3612113565b5b6000612ab28582860161219c565b925050602083013567ffffffffffffffff811115612ad357612ad2612118565b5b612adf85828601612a5f565b9150509250929050565b600060208284031215612aff57612afe612113565b5b600082013567ffffffffffffffff811115612b1d57612b1c612118565b5b612b2984828501612a5f565b91505092915050565b612b3b816122a0565b8114612b4657600080fd5b50565b600081359050612b5881612b32565b92915050565b60008060408385031215612b7557612b74612113565b5b6000612b8385828601612166565b9250506020612b9485828601612b49565b9150509250929050565b60008060408385031215612bb557612bb4612113565b5b6000612bc385828601612166565b9250506020612bd485828601612166565b9150509250929050565b600080600080600060a08688031215612bfa57612bf9612113565b5b6000612c0888828901612166565b9550506020612c1988828901612166565b9450506040612c2a8882890161219c565b9350506060612c3b8882890161219c565b925050608086013567ffffffffffffffff811115612c5c57612c5b612118565b5b612c6888828901612611565b9150509295509295909350565b600080600060608486031215612c8e57612c8d612113565b5b6000612c9c86828701612166565b9350506020612cad8682870161219c565b9250506040612cbe8682870161219c565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612d0f57607f821691505b602082108103612d2257612d21612cc8565b5b50919050565b612d318161213d565b82525050565b6000604082019050612d4c6000830185612d28565b612d596020830184612d28565b9392505050565b6000604082019050612d7560008301856121f1565b612d8260208301846121f1565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000604082019050612dcd6000830185612d28565b612dda60208301846121f1565b9392505050565b6000819050919050565b6000819050919050565b6000612e10612e0b612e0684612de1565b612deb565b61217b565b9050919050565b612e2081612df5565b82525050565b6000602082019050612e3b6000830184612e17565b92915050565b7f4163636f756e742063616e6e6f7420626520656d707479000000000000000000600082015250565b6000612e7760178361230e565b9150612e8282612e41565b602082019050919050565b60006020820190508181036000830152612ea681612e6a565b9050919050565b600081905092915050565b60008190508160005260206000209050919050565b60008154612eda81612cf7565b612ee48186612ead565b94506001821660008114612eff5760018114612f1457612f47565b60ff1983168652811515820286019350612f47565b612f1d85612eb8565b60005b83811015612f3f57815481890152600182019150602081019050612f20565b838801955050505b50505092915050565b7f2f6170692f76312f6e66742f0000000000000000000000000000000000000000600082015250565b6000612f86600c83612ead565b9150612f9182612f50565b600c82019050919050565b6000612fa782612303565b612fb18185612ead565b9350612fc181856020860161231f565b80840191505092915050565b7f2f00000000000000000000000000000000000000000000000000000000000000600082015250565b6000613003600183612ead565b915061300e82612fcd565b600182019050919050565b7f2f72657075746174696f6e2d73636f7265000000000000000000000000000000600082015250565b600061304f601183612ead565b915061305a82613019565b601182019050919050565b60006130718286612ecd565b915061307c82612f79565b91506130888285612f9c565b915061309382612ff6565b915061309f8284612f9c565b91506130aa82613042565b9150819050949350505050565b600081546130c481612cf7565b6130ce818661230e565b945060018216600081146130e957600181146130ff57613132565b60ff198316865281151560200286019350613132565b61310885612eb8565b60005b8381101561312a5781548189015260018201915060208101905061310b565b808801955050505b50505092915050565b6000604082019050818103600083015261315581856130b7565b90508181036020830152613169818461235a565b90509392505050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026131bf7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82613182565b6131c98683613182565b95508019841693508086168417925050509392505050565b60006131fc6131f76131f28461217b565b612deb565b61217b565b9050919050565b6000819050919050565b613216836131e1565b61322a61322282613203565b84845461318f565b825550505050565b600090565b61323f613232565b61324a81848461320d565b505050565b5b8181101561326e57613263600082613237565b600181019050613250565b5050565b601f8211156132b35761328481612eb8565b61328d84613172565b8101602085101561329c578190505b6132b06132a885613172565b83018261324f565b50505b505050565b600082821c905092915050565b60006132d6600019846008026132b8565b1980831691505092915050565b60006132ef83836132c5565b9150826002028217905092915050565b61330882612303565b67ffffffffffffffff81111561332157613320612447565b5b61332b8254612cf7565b613336828285613272565b600060209050601f8311600181146133695760008415613357578287015190505b61336185826132e3565b8655506133c9565b601f19841661337786612eb8565b60005b8281101561339f5784890151825560018201915060208501945060208101905061337a565b868310156133bc57848901516133b8601f8916826132c5565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061340b8261217b565b91506134168361217b565b925082820190508082111561342e5761342d6133d1565b5b92915050565b60006020820190506134496000830184612d28565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f5552492063616e6e6f7420626520656d70747900000000000000000000000000600082015250565b60006134b460138361230e565b91506134bf8261347e565b602082019050919050565b600060208201905081810360008301526134e3816134a7565b9050919050565b6134f38161221b565b82525050565b600060208201905061350e60008301846134ea565b92915050565b60006040820190506135296000830185612d28565b6135366020830184612418565b9392505050565b60006080820190506135526000830187612d28565b61355f60208301866121f1565b61356c60408301856121f1565b61357960608301846121f1565b95945050505050565b6000604082019050818103600083015261359c81856128e9565b905081810360208301526135b081846128e9565b90509392505050565b600081519050919050565b600082825260208201905092915050565b60006135e0826135b9565b6135ea81856135c4565b93506135fa81856020860161231f565b61360381612349565b840191505092915050565b600060a0820190506136236000830188612d28565b6136306020830187612d28565b61363d60408301866121f1565b61364a60608301856121f1565b818103608083015261365c81846135d5565b90509695505050505050565b60008151905061367781612247565b92915050565b60006020828403121561369357613692612113565b5b60006136a184828501613668565b91505092915050565b600060a0820190506136bf6000830188612d28565b6136cc6020830187612d28565b81810360408301526136de81866128e9565b905081810360608301526136f281856128e9565b9050818103608083015261370681846135d5565b9050969550505050505056fea2646970667358221220240e9a7daab5d9eba2793e75f4bbf0e9a74f133868ac14d5e9561767bb722e8264736f6c634300081a0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} \ No newline at end of file diff --git a/ignition/deployments/chain-42161/build-info/4e58f17c75b86363e11bf0ecd1dbfa6a.json b/ignition/deployments/chain-42161/build-info/4e58f17c75b86363e11bf0ecd1dbfa6a.json new file mode 100644 index 0000000..143e82a --- /dev/null +++ b/ignition/deployments/chain-42161/build-info/4e58f17c75b86363e11bf0ecd1dbfa6a.json @@ -0,0 +1,89126 @@ +{ + "id": "4e58f17c75b86363e11bf0ecd1dbfa6a", + "_format": "hh-sol-build-info-1", + "solcVersion": "0.8.26", + "solcLongVersion": "0.8.26+commit.8a97fa7a", + "input": { + "language": "Solidity", + "sources": { + "@openzeppelin/contracts/access/AccessControl.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (access/AccessControl.sol)\n\npragma solidity ^0.8.20;\n\nimport {IAccessControl} from \"./IAccessControl.sol\";\nimport {Context} from \"../utils/Context.sol\";\nimport {ERC165} from \"../utils/introspection/ERC165.sol\";\n\n/**\n * @dev Contract module that allows children to implement role-based access\n * control mechanisms. This is a lightweight version that doesn't allow enumerating role\n * members except through off-chain means by accessing the contract event logs. Some\n * applications may benefit from on-chain enumerability, for those cases see\n * {AccessControlEnumerable}.\n *\n * Roles are referred to by their `bytes32` identifier. These should be exposed\n * in the external API and be unique. The best way to achieve this is by\n * using `public constant` hash digests:\n *\n * ```solidity\n * bytes32 public constant MY_ROLE = keccak256(\"MY_ROLE\");\n * ```\n *\n * Roles can be used to represent a set of permissions. To restrict access to a\n * function call, use {hasRole}:\n *\n * ```solidity\n * function foo() public {\n * require(hasRole(MY_ROLE, msg.sender));\n * ...\n * }\n * ```\n *\n * Roles can be granted and revoked dynamically via the {grantRole} and\n * {revokeRole} functions. Each role has an associated admin role, and only\n * accounts that have a role's admin role can call {grantRole} and {revokeRole}.\n *\n * By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means\n * that only accounts with this role will be able to grant or revoke other\n * roles. More complex role relationships can be created by using\n * {_setRoleAdmin}.\n *\n * WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to\n * grant and revoke this role. Extra precautions should be taken to secure\n * accounts that have been granted it. We recommend using {AccessControlDefaultAdminRules}\n * to enforce additional security measures for this role.\n */\nabstract contract AccessControl is Context, IAccessControl, ERC165 {\n struct RoleData {\n mapping(address account => bool) hasRole;\n bytes32 adminRole;\n }\n\n mapping(bytes32 role => RoleData) private _roles;\n\n bytes32 public constant DEFAULT_ADMIN_ROLE = 0x00;\n\n /**\n * @dev Modifier that checks that an account has a specific role. Reverts\n * with an {AccessControlUnauthorizedAccount} error including the required role.\n */\n modifier onlyRole(bytes32 role) {\n _checkRole(role);\n _;\n }\n\n /**\n * @dev See {IERC165-supportsInterface}.\n */\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return interfaceId == type(IAccessControl).interfaceId || super.supportsInterface(interfaceId);\n }\n\n /**\n * @dev Returns `true` if `account` has been granted `role`.\n */\n function hasRole(bytes32 role, address account) public view virtual returns (bool) {\n return _roles[role].hasRole[account];\n }\n\n /**\n * @dev Reverts with an {AccessControlUnauthorizedAccount} error if `_msgSender()`\n * is missing `role`. Overriding this function changes the behavior of the {onlyRole} modifier.\n */\n function _checkRole(bytes32 role) internal view virtual {\n _checkRole(role, _msgSender());\n }\n\n /**\n * @dev Reverts with an {AccessControlUnauthorizedAccount} error if `account`\n * is missing `role`.\n */\n function _checkRole(bytes32 role, address account) internal view virtual {\n if (!hasRole(role, account)) {\n revert AccessControlUnauthorizedAccount(account, role);\n }\n }\n\n /**\n * @dev Returns the admin role that controls `role`. See {grantRole} and\n * {revokeRole}.\n *\n * To change a role's admin, use {_setRoleAdmin}.\n */\n function getRoleAdmin(bytes32 role) public view virtual returns (bytes32) {\n return _roles[role].adminRole;\n }\n\n /**\n * @dev Grants `role` to `account`.\n *\n * If `account` had not been already granted `role`, emits a {RoleGranted}\n * event.\n *\n * Requirements:\n *\n * - the caller must have ``role``'s admin role.\n *\n * May emit a {RoleGranted} event.\n */\n function grantRole(bytes32 role, address account) public virtual onlyRole(getRoleAdmin(role)) {\n _grantRole(role, account);\n }\n\n /**\n * @dev Revokes `role` from `account`.\n *\n * If `account` had been granted `role`, emits a {RoleRevoked} event.\n *\n * Requirements:\n *\n * - the caller must have ``role``'s admin role.\n *\n * May emit a {RoleRevoked} event.\n */\n function revokeRole(bytes32 role, address account) public virtual onlyRole(getRoleAdmin(role)) {\n _revokeRole(role, account);\n }\n\n /**\n * @dev Revokes `role` from the calling account.\n *\n * Roles are often managed via {grantRole} and {revokeRole}: this function's\n * purpose is to provide a mechanism for accounts to lose their privileges\n * if they are compromised (such as when a trusted device is misplaced).\n *\n * If the calling account had been revoked `role`, emits a {RoleRevoked}\n * event.\n *\n * Requirements:\n *\n * - the caller must be `callerConfirmation`.\n *\n * May emit a {RoleRevoked} event.\n */\n function renounceRole(bytes32 role, address callerConfirmation) public virtual {\n if (callerConfirmation != _msgSender()) {\n revert AccessControlBadConfirmation();\n }\n\n _revokeRole(role, callerConfirmation);\n }\n\n /**\n * @dev Sets `adminRole` as ``role``'s admin role.\n *\n * Emits a {RoleAdminChanged} event.\n */\n function _setRoleAdmin(bytes32 role, bytes32 adminRole) internal virtual {\n bytes32 previousAdminRole = getRoleAdmin(role);\n _roles[role].adminRole = adminRole;\n emit RoleAdminChanged(role, previousAdminRole, adminRole);\n }\n\n /**\n * @dev Attempts to grant `role` to `account` and returns a boolean indicating if `role` was granted.\n *\n * Internal function without access restriction.\n *\n * May emit a {RoleGranted} event.\n */\n function _grantRole(bytes32 role, address account) internal virtual returns (bool) {\n if (!hasRole(role, account)) {\n _roles[role].hasRole[account] = true;\n emit RoleGranted(role, account, _msgSender());\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * @dev Attempts to revoke `role` to `account` and returns a boolean indicating if `role` was revoked.\n *\n * Internal function without access restriction.\n *\n * May emit a {RoleRevoked} event.\n */\n function _revokeRole(bytes32 role, address account) internal virtual returns (bool) {\n if (hasRole(role, account)) {\n _roles[role].hasRole[account] = false;\n emit RoleRevoked(role, account, _msgSender());\n return true;\n } else {\n return false;\n }\n }\n}\n" + }, + "@openzeppelin/contracts/access/IAccessControl.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (access/IAccessControl.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev External interface of AccessControl declared to support ERC165 detection.\n */\ninterface IAccessControl {\n /**\n * @dev The `account` is missing a role.\n */\n error AccessControlUnauthorizedAccount(address account, bytes32 neededRole);\n\n /**\n * @dev The caller of a function is not the expected one.\n *\n * NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\n */\n error AccessControlBadConfirmation();\n\n /**\n * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\n *\n * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\n * {RoleAdminChanged} not being emitted signaling this.\n */\n event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\n\n /**\n * @dev Emitted when `account` is granted `role`.\n *\n * `sender` is the account that originated the contract call, an admin role\n * bearer except when using {AccessControl-_setupRole}.\n */\n event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\n\n /**\n * @dev Emitted when `account` is revoked `role`.\n *\n * `sender` is the account that originated the contract call:\n * - if using `revokeRole`, it is the admin role bearer\n * - if using `renounceRole`, it is the role bearer (i.e. `account`)\n */\n event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\n\n /**\n * @dev Returns `true` if `account` has been granted `role`.\n */\n function hasRole(bytes32 role, address account) external view returns (bool);\n\n /**\n * @dev Returns the admin role that controls `role`. See {grantRole} and\n * {revokeRole}.\n *\n * To change a role's admin, use {AccessControl-_setRoleAdmin}.\n */\n function getRoleAdmin(bytes32 role) external view returns (bytes32);\n\n /**\n * @dev Grants `role` to `account`.\n *\n * If `account` had not been already granted `role`, emits a {RoleGranted}\n * event.\n *\n * Requirements:\n *\n * - the caller must have ``role``'s admin role.\n */\n function grantRole(bytes32 role, address account) external;\n\n /**\n * @dev Revokes `role` from `account`.\n *\n * If `account` had been granted `role`, emits a {RoleRevoked} event.\n *\n * Requirements:\n *\n * - the caller must have ``role``'s admin role.\n */\n function revokeRole(bytes32 role, address account) external;\n\n /**\n * @dev Revokes `role` from the calling account.\n *\n * Roles are often managed via {grantRole} and {revokeRole}: this function's\n * purpose is to provide a mechanism for accounts to lose their privileges\n * if they are compromised (such as when a trusted device is misplaced).\n *\n * If the calling account had been granted `role`, emits a {RoleRevoked}\n * event.\n *\n * Requirements:\n *\n * - the caller must be `callerConfirmation`.\n */\n function renounceRole(bytes32 role, address callerConfirmation) external;\n}\n" + }, + "@openzeppelin/contracts/interfaces/draft-IERC6093.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/draft-IERC6093.sol)\npragma solidity ^0.8.20;\n\n/**\n * @dev Standard ERC20 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 tokens.\n */\ninterface IERC20Errors {\n /**\n * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n * @param balance Current balance for the interacting account.\n * @param needed Minimum amount required to perform a transfer.\n */\n error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed);\n\n /**\n * @dev Indicates a failure with the token `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n */\n error ERC20InvalidSender(address sender);\n\n /**\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\n * @param receiver Address to which tokens are being transferred.\n */\n error ERC20InvalidReceiver(address receiver);\n\n /**\n * @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers.\n * @param spender Address that may be allowed to operate on tokens without being their owner.\n * @param allowance Amount of tokens a `spender` is allowed to operate with.\n * @param needed Minimum amount required to perform a transfer.\n */\n error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed);\n\n /**\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n * @param approver Address initiating an approval operation.\n */\n error ERC20InvalidApprover(address approver);\n\n /**\n * @dev Indicates a failure with the `spender` to be approved. Used in approvals.\n * @param spender Address that may be allowed to operate on tokens without being their owner.\n */\n error ERC20InvalidSpender(address spender);\n}\n\n/**\n * @dev Standard ERC721 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC721 tokens.\n */\ninterface IERC721Errors {\n /**\n * @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20.\n * Used in balance queries.\n * @param owner Address of the current owner of a token.\n */\n error ERC721InvalidOwner(address owner);\n\n /**\n * @dev Indicates a `tokenId` whose `owner` is the zero address.\n * @param tokenId Identifier number of a token.\n */\n error ERC721NonexistentToken(uint256 tokenId);\n\n /**\n * @dev Indicates an error related to the ownership over a particular token. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n * @param tokenId Identifier number of a token.\n * @param owner Address of the current owner of a token.\n */\n error ERC721IncorrectOwner(address sender, uint256 tokenId, address owner);\n\n /**\n * @dev Indicates a failure with the token `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n */\n error ERC721InvalidSender(address sender);\n\n /**\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\n * @param receiver Address to which tokens are being transferred.\n */\n error ERC721InvalidReceiver(address receiver);\n\n /**\n * @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n * @param tokenId Identifier number of a token.\n */\n error ERC721InsufficientApproval(address operator, uint256 tokenId);\n\n /**\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n * @param approver Address initiating an approval operation.\n */\n error ERC721InvalidApprover(address approver);\n\n /**\n * @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n */\n error ERC721InvalidOperator(address operator);\n}\n\n/**\n * @dev Standard ERC1155 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 tokens.\n */\ninterface IERC1155Errors {\n /**\n * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n * @param balance Current balance for the interacting account.\n * @param needed Minimum amount required to perform a transfer.\n * @param tokenId Identifier number of a token.\n */\n error ERC1155InsufficientBalance(address sender, uint256 balance, uint256 needed, uint256 tokenId);\n\n /**\n * @dev Indicates a failure with the token `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n */\n error ERC1155InvalidSender(address sender);\n\n /**\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\n * @param receiver Address to which tokens are being transferred.\n */\n error ERC1155InvalidReceiver(address receiver);\n\n /**\n * @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n * @param owner Address of the current owner of a token.\n */\n error ERC1155MissingApprovalForAll(address operator, address owner);\n\n /**\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n * @param approver Address initiating an approval operation.\n */\n error ERC1155InvalidApprover(address approver);\n\n /**\n * @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n */\n error ERC1155InvalidOperator(address operator);\n\n /**\n * @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.\n * Used in batch transfers.\n * @param idsLength Length of the array of token identifiers\n * @param valuesLength Length of the array of token amounts\n */\n error ERC1155InvalidArrayLength(uint256 idsLength, uint256 valuesLength);\n}\n" + }, + "@openzeppelin/contracts/token/ERC1155/ERC1155.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC1155/ERC1155.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC1155} from \"./IERC1155.sol\";\nimport {IERC1155Receiver} from \"./IERC1155Receiver.sol\";\nimport {IERC1155MetadataURI} from \"./extensions/IERC1155MetadataURI.sol\";\nimport {Context} from \"../../utils/Context.sol\";\nimport {IERC165, ERC165} from \"../../utils/introspection/ERC165.sol\";\nimport {Arrays} from \"../../utils/Arrays.sol\";\nimport {IERC1155Errors} from \"../../interfaces/draft-IERC6093.sol\";\n\n/**\n * @dev Implementation of the basic standard multi-token.\n * See https://eips.ethereum.org/EIPS/eip-1155\n * Originally based on code by Enjin: https://github.com/enjin/erc-1155\n */\nabstract contract ERC1155 is Context, ERC165, IERC1155, IERC1155MetadataURI, IERC1155Errors {\n using Arrays for uint256[];\n using Arrays for address[];\n\n mapping(uint256 id => mapping(address account => uint256)) private _balances;\n\n mapping(address account => mapping(address operator => bool)) private _operatorApprovals;\n\n // Used as the URI for all token types by relying on ID substitution, e.g. https://token-cdn-domain/{id}.json\n string private _uri;\n\n /**\n * @dev See {_setURI}.\n */\n constructor(string memory uri_) {\n _setURI(uri_);\n }\n\n /**\n * @dev See {IERC165-supportsInterface}.\n */\n function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) {\n return\n interfaceId == type(IERC1155).interfaceId ||\n interfaceId == type(IERC1155MetadataURI).interfaceId ||\n super.supportsInterface(interfaceId);\n }\n\n /**\n * @dev See {IERC1155MetadataURI-uri}.\n *\n * This implementation returns the same URI for *all* token types. It relies\n * on the token type ID substitution mechanism\n * https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the EIP].\n *\n * Clients calling this function must replace the `\\{id\\}` substring with the\n * actual token type ID.\n */\n function uri(uint256 /* id */) public view virtual returns (string memory) {\n return _uri;\n }\n\n /**\n * @dev See {IERC1155-balanceOf}.\n */\n function balanceOf(address account, uint256 id) public view virtual returns (uint256) {\n return _balances[id][account];\n }\n\n /**\n * @dev See {IERC1155-balanceOfBatch}.\n *\n * Requirements:\n *\n * - `accounts` and `ids` must have the same length.\n */\n function balanceOfBatch(\n address[] memory accounts,\n uint256[] memory ids\n ) public view virtual returns (uint256[] memory) {\n if (accounts.length != ids.length) {\n revert ERC1155InvalidArrayLength(ids.length, accounts.length);\n }\n\n uint256[] memory batchBalances = new uint256[](accounts.length);\n\n for (uint256 i = 0; i < accounts.length; ++i) {\n batchBalances[i] = balanceOf(accounts.unsafeMemoryAccess(i), ids.unsafeMemoryAccess(i));\n }\n\n return batchBalances;\n }\n\n /**\n * @dev See {IERC1155-setApprovalForAll}.\n */\n function setApprovalForAll(address operator, bool approved) public virtual {\n _setApprovalForAll(_msgSender(), operator, approved);\n }\n\n /**\n * @dev See {IERC1155-isApprovedForAll}.\n */\n function isApprovedForAll(address account, address operator) public view virtual returns (bool) {\n return _operatorApprovals[account][operator];\n }\n\n /**\n * @dev See {IERC1155-safeTransferFrom}.\n */\n function safeTransferFrom(address from, address to, uint256 id, uint256 value, bytes memory data) public virtual {\n address sender = _msgSender();\n if (from != sender && !isApprovedForAll(from, sender)) {\n revert ERC1155MissingApprovalForAll(sender, from);\n }\n _safeTransferFrom(from, to, id, value, data);\n }\n\n /**\n * @dev See {IERC1155-safeBatchTransferFrom}.\n */\n function safeBatchTransferFrom(\n address from,\n address to,\n uint256[] memory ids,\n uint256[] memory values,\n bytes memory data\n ) public virtual {\n address sender = _msgSender();\n if (from != sender && !isApprovedForAll(from, sender)) {\n revert ERC1155MissingApprovalForAll(sender, from);\n }\n _safeBatchTransferFrom(from, to, ids, values, data);\n }\n\n /**\n * @dev Transfers a `value` amount of tokens of type `id` from `from` to `to`. Will mint (or burn) if `from`\n * (or `to`) is the zero address.\n *\n * Emits a {TransferSingle} event if the arrays contain one element, and {TransferBatch} otherwise.\n *\n * Requirements:\n *\n * - If `to` refers to a smart contract, it must implement either {IERC1155Receiver-onERC1155Received}\n * or {IERC1155Receiver-onERC1155BatchReceived} and return the acceptance magic value.\n * - `ids` and `values` must have the same length.\n *\n * NOTE: The ERC-1155 acceptance check is not performed in this function. See {_updateWithAcceptanceCheck} instead.\n */\n function _update(address from, address to, uint256[] memory ids, uint256[] memory values) internal virtual {\n if (ids.length != values.length) {\n revert ERC1155InvalidArrayLength(ids.length, values.length);\n }\n\n address operator = _msgSender();\n\n for (uint256 i = 0; i < ids.length; ++i) {\n uint256 id = ids.unsafeMemoryAccess(i);\n uint256 value = values.unsafeMemoryAccess(i);\n\n if (from != address(0)) {\n uint256 fromBalance = _balances[id][from];\n if (fromBalance < value) {\n revert ERC1155InsufficientBalance(from, fromBalance, value, id);\n }\n unchecked {\n // Overflow not possible: value <= fromBalance\n _balances[id][from] = fromBalance - value;\n }\n }\n\n if (to != address(0)) {\n _balances[id][to] += value;\n }\n }\n\n if (ids.length == 1) {\n uint256 id = ids.unsafeMemoryAccess(0);\n uint256 value = values.unsafeMemoryAccess(0);\n emit TransferSingle(operator, from, to, id, value);\n } else {\n emit TransferBatch(operator, from, to, ids, values);\n }\n }\n\n /**\n * @dev Version of {_update} that performs the token acceptance check by calling\n * {IERC1155Receiver-onERC1155Received} or {IERC1155Receiver-onERC1155BatchReceived} on the receiver address if it\n * contains code (eg. is a smart contract at the moment of execution).\n *\n * IMPORTANT: Overriding this function is discouraged because it poses a reentrancy risk from the receiver. So any\n * update to the contract state after this function would break the check-effect-interaction pattern. Consider\n * overriding {_update} instead.\n */\n function _updateWithAcceptanceCheck(\n address from,\n address to,\n uint256[] memory ids,\n uint256[] memory values,\n bytes memory data\n ) internal virtual {\n _update(from, to, ids, values);\n if (to != address(0)) {\n address operator = _msgSender();\n if (ids.length == 1) {\n uint256 id = ids.unsafeMemoryAccess(0);\n uint256 value = values.unsafeMemoryAccess(0);\n _doSafeTransferAcceptanceCheck(operator, from, to, id, value, data);\n } else {\n _doSafeBatchTransferAcceptanceCheck(operator, from, to, ids, values, data);\n }\n }\n }\n\n /**\n * @dev Transfers a `value` tokens of token type `id` from `from` to `to`.\n *\n * Emits a {TransferSingle} event.\n *\n * Requirements:\n *\n * - `to` cannot be the zero address.\n * - `from` must have a balance of tokens of type `id` of at least `value` amount.\n * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the\n * acceptance magic value.\n */\n function _safeTransferFrom(address from, address to, uint256 id, uint256 value, bytes memory data) internal {\n if (to == address(0)) {\n revert ERC1155InvalidReceiver(address(0));\n }\n if (from == address(0)) {\n revert ERC1155InvalidSender(address(0));\n }\n (uint256[] memory ids, uint256[] memory values) = _asSingletonArrays(id, value);\n _updateWithAcceptanceCheck(from, to, ids, values, data);\n }\n\n /**\n * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {_safeTransferFrom}.\n *\n * Emits a {TransferBatch} event.\n *\n * Requirements:\n *\n * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the\n * acceptance magic value.\n * - `ids` and `values` must have the same length.\n */\n function _safeBatchTransferFrom(\n address from,\n address to,\n uint256[] memory ids,\n uint256[] memory values,\n bytes memory data\n ) internal {\n if (to == address(0)) {\n revert ERC1155InvalidReceiver(address(0));\n }\n if (from == address(0)) {\n revert ERC1155InvalidSender(address(0));\n }\n _updateWithAcceptanceCheck(from, to, ids, values, data);\n }\n\n /**\n * @dev Sets a new URI for all token types, by relying on the token type ID\n * substitution mechanism\n * https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the EIP].\n *\n * By this mechanism, any occurrence of the `\\{id\\}` substring in either the\n * URI or any of the values in the JSON file at said URI will be replaced by\n * clients with the token type ID.\n *\n * For example, the `https://token-cdn-domain/\\{id\\}.json` URI would be\n * interpreted by clients as\n * `https://token-cdn-domain/000000000000000000000000000000000000000000000000000000000004cce0.json`\n * for token type ID 0x4cce0.\n *\n * See {uri}.\n *\n * Because these URIs cannot be meaningfully represented by the {URI} event,\n * this function emits no events.\n */\n function _setURI(string memory newuri) internal virtual {\n _uri = newuri;\n }\n\n /**\n * @dev Creates a `value` amount of tokens of type `id`, and assigns them to `to`.\n *\n * Emits a {TransferSingle} event.\n *\n * Requirements:\n *\n * - `to` cannot be the zero address.\n * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the\n * acceptance magic value.\n */\n function _mint(address to, uint256 id, uint256 value, bytes memory data) internal {\n if (to == address(0)) {\n revert ERC1155InvalidReceiver(address(0));\n }\n (uint256[] memory ids, uint256[] memory values) = _asSingletonArrays(id, value);\n _updateWithAcceptanceCheck(address(0), to, ids, values, data);\n }\n\n /**\n * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {_mint}.\n *\n * Emits a {TransferBatch} event.\n *\n * Requirements:\n *\n * - `ids` and `values` must have the same length.\n * - `to` cannot be the zero address.\n * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the\n * acceptance magic value.\n */\n function _mintBatch(address to, uint256[] memory ids, uint256[] memory values, bytes memory data) internal {\n if (to == address(0)) {\n revert ERC1155InvalidReceiver(address(0));\n }\n _updateWithAcceptanceCheck(address(0), to, ids, values, data);\n }\n\n /**\n * @dev Destroys a `value` amount of tokens of type `id` from `from`\n *\n * Emits a {TransferSingle} event.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `from` must have at least `value` amount of tokens of type `id`.\n */\n function _burn(address from, uint256 id, uint256 value) internal {\n if (from == address(0)) {\n revert ERC1155InvalidSender(address(0));\n }\n (uint256[] memory ids, uint256[] memory values) = _asSingletonArrays(id, value);\n _updateWithAcceptanceCheck(from, address(0), ids, values, \"\");\n }\n\n /**\n * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {_burn}.\n *\n * Emits a {TransferBatch} event.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `from` must have at least `value` amount of tokens of type `id`.\n * - `ids` and `values` must have the same length.\n */\n function _burnBatch(address from, uint256[] memory ids, uint256[] memory values) internal {\n if (from == address(0)) {\n revert ERC1155InvalidSender(address(0));\n }\n _updateWithAcceptanceCheck(from, address(0), ids, values, \"\");\n }\n\n /**\n * @dev Approve `operator` to operate on all of `owner` tokens\n *\n * Emits an {ApprovalForAll} event.\n *\n * Requirements:\n *\n * - `operator` cannot be the zero address.\n */\n function _setApprovalForAll(address owner, address operator, bool approved) internal virtual {\n if (operator == address(0)) {\n revert ERC1155InvalidOperator(address(0));\n }\n _operatorApprovals[owner][operator] = approved;\n emit ApprovalForAll(owner, operator, approved);\n }\n\n /**\n * @dev Performs an acceptance check by calling {IERC1155-onERC1155Received} on the `to` address\n * if it contains code at the moment of execution.\n */\n function _doSafeTransferAcceptanceCheck(\n address operator,\n address from,\n address to,\n uint256 id,\n uint256 value,\n bytes memory data\n ) private {\n if (to.code.length > 0) {\n try IERC1155Receiver(to).onERC1155Received(operator, from, id, value, data) returns (bytes4 response) {\n if (response != IERC1155Receiver.onERC1155Received.selector) {\n // Tokens rejected\n revert ERC1155InvalidReceiver(to);\n }\n } catch (bytes memory reason) {\n if (reason.length == 0) {\n // non-ERC1155Receiver implementer\n revert ERC1155InvalidReceiver(to);\n } else {\n /// @solidity memory-safe-assembly\n assembly {\n revert(add(32, reason), mload(reason))\n }\n }\n }\n }\n }\n\n /**\n * @dev Performs a batch acceptance check by calling {IERC1155-onERC1155BatchReceived} on the `to` address\n * if it contains code at the moment of execution.\n */\n function _doSafeBatchTransferAcceptanceCheck(\n address operator,\n address from,\n address to,\n uint256[] memory ids,\n uint256[] memory values,\n bytes memory data\n ) private {\n if (to.code.length > 0) {\n try IERC1155Receiver(to).onERC1155BatchReceived(operator, from, ids, values, data) returns (\n bytes4 response\n ) {\n if (response != IERC1155Receiver.onERC1155BatchReceived.selector) {\n // Tokens rejected\n revert ERC1155InvalidReceiver(to);\n }\n } catch (bytes memory reason) {\n if (reason.length == 0) {\n // non-ERC1155Receiver implementer\n revert ERC1155InvalidReceiver(to);\n } else {\n /// @solidity memory-safe-assembly\n assembly {\n revert(add(32, reason), mload(reason))\n }\n }\n }\n }\n }\n\n /**\n * @dev Creates an array in memory with only one value for each of the elements provided.\n */\n function _asSingletonArrays(\n uint256 element1,\n uint256 element2\n ) private pure returns (uint256[] memory array1, uint256[] memory array2) {\n /// @solidity memory-safe-assembly\n assembly {\n // Load the free memory pointer\n array1 := mload(0x40)\n // Set array length to 1\n mstore(array1, 1)\n // Store the single element at the next word after the length (where content starts)\n mstore(add(array1, 0x20), element1)\n\n // Repeat for next array locating it right after the first array\n array2 := add(array1, 0x40)\n mstore(array2, 1)\n mstore(add(array2, 0x20), element2)\n\n // Update the free memory pointer by pointing after the second array\n mstore(0x40, add(array2, 0x40))\n }\n }\n}\n" + }, + "@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC1155/extensions/IERC1155MetadataURI.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC1155} from \"../IERC1155.sol\";\n\n/**\n * @dev Interface of the optional ERC1155MetadataExtension interface, as defined\n * in the https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[EIP].\n */\ninterface IERC1155MetadataURI is IERC1155 {\n /**\n * @dev Returns the URI for token type `id`.\n *\n * If the `\\{id\\}` substring is present in the URI, it must be replaced by\n * clients with the actual token type ID.\n */\n function uri(uint256 id) external view returns (string memory);\n}\n" + }, + "@openzeppelin/contracts/token/ERC1155/IERC1155.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.1) (token/ERC1155/IERC1155.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC165} from \"../../utils/introspection/IERC165.sol\";\n\n/**\n * @dev Required interface of an ERC1155 compliant contract, as defined in the\n * https://eips.ethereum.org/EIPS/eip-1155[EIP].\n */\ninterface IERC1155 is IERC165 {\n /**\n * @dev Emitted when `value` amount of tokens of type `id` are transferred from `from` to `to` by `operator`.\n */\n event TransferSingle(address indexed operator, address indexed from, address indexed to, uint256 id, uint256 value);\n\n /**\n * @dev Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all\n * transfers.\n */\n event TransferBatch(\n address indexed operator,\n address indexed from,\n address indexed to,\n uint256[] ids,\n uint256[] values\n );\n\n /**\n * @dev Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to\n * `approved`.\n */\n event ApprovalForAll(address indexed account, address indexed operator, bool approved);\n\n /**\n * @dev Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI.\n *\n * If an {URI} event was emitted for `id`, the standard\n * https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value\n * returned by {IERC1155MetadataURI-uri}.\n */\n event URI(string value, uint256 indexed id);\n\n /**\n * @dev Returns the value of tokens of token type `id` owned by `account`.\n *\n * Requirements:\n *\n * - `account` cannot be the zero address.\n */\n function balanceOf(address account, uint256 id) external view returns (uint256);\n\n /**\n * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {balanceOf}.\n *\n * Requirements:\n *\n * - `accounts` and `ids` must have the same length.\n */\n function balanceOfBatch(\n address[] calldata accounts,\n uint256[] calldata ids\n ) external view returns (uint256[] memory);\n\n /**\n * @dev Grants or revokes permission to `operator` to transfer the caller's tokens, according to `approved`,\n *\n * Emits an {ApprovalForAll} event.\n *\n * Requirements:\n *\n * - `operator` cannot be the caller.\n */\n function setApprovalForAll(address operator, bool approved) external;\n\n /**\n * @dev Returns true if `operator` is approved to transfer ``account``'s tokens.\n *\n * See {setApprovalForAll}.\n */\n function isApprovedForAll(address account, address operator) external view returns (bool);\n\n /**\n * @dev Transfers a `value` amount of tokens of type `id` from `from` to `to`.\n *\n * WARNING: This function can potentially allow a reentrancy attack when transferring tokens\n * to an untrusted contract, when invoking {onERC1155Received} on the receiver.\n * Ensure to follow the checks-effects-interactions pattern and consider employing\n * reentrancy guards when interacting with untrusted contracts.\n *\n * Emits a {TransferSingle} event.\n *\n * Requirements:\n *\n * - `to` cannot be the zero address.\n * - If the caller is not `from`, it must have been approved to spend ``from``'s tokens via {setApprovalForAll}.\n * - `from` must have a balance of tokens of type `id` of at least `value` amount.\n * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the\n * acceptance magic value.\n */\n function safeTransferFrom(address from, address to, uint256 id, uint256 value, bytes calldata data) external;\n\n /**\n * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {safeTransferFrom}.\n *\n * WARNING: This function can potentially allow a reentrancy attack when transferring tokens\n * to an untrusted contract, when invoking {onERC1155BatchReceived} on the receiver.\n * Ensure to follow the checks-effects-interactions pattern and consider employing\n * reentrancy guards when interacting with untrusted contracts.\n *\n * Emits either a {TransferSingle} or a {TransferBatch} event, depending on the length of the array arguments.\n *\n * Requirements:\n *\n * - `ids` and `values` must have the same length.\n * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the\n * acceptance magic value.\n */\n function safeBatchTransferFrom(\n address from,\n address to,\n uint256[] calldata ids,\n uint256[] calldata values,\n bytes calldata data\n ) external;\n}\n" + }, + "@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC1155/IERC1155Receiver.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC165} from \"../../utils/introspection/IERC165.sol\";\n\n/**\n * @dev Interface that must be implemented by smart contracts in order to receive\n * ERC-1155 token transfers.\n */\ninterface IERC1155Receiver is IERC165 {\n /**\n * @dev Handles the receipt of a single ERC1155 token type. This function is\n * called at the end of a `safeTransferFrom` after the balance has been updated.\n *\n * NOTE: To accept the transfer, this must return\n * `bytes4(keccak256(\"onERC1155Received(address,address,uint256,uint256,bytes)\"))`\n * (i.e. 0xf23a6e61, or its own function selector).\n *\n * @param operator The address which initiated the transfer (i.e. msg.sender)\n * @param from The address which previously owned the token\n * @param id The ID of the token being transferred\n * @param value The amount of tokens being transferred\n * @param data Additional data with no specified format\n * @return `bytes4(keccak256(\"onERC1155Received(address,address,uint256,uint256,bytes)\"))` if transfer is allowed\n */\n function onERC1155Received(\n address operator,\n address from,\n uint256 id,\n uint256 value,\n bytes calldata data\n ) external returns (bytes4);\n\n /**\n * @dev Handles the receipt of a multiple ERC1155 token types. This function\n * is called at the end of a `safeBatchTransferFrom` after the balances have\n * been updated.\n *\n * NOTE: To accept the transfer(s), this must return\n * `bytes4(keccak256(\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\"))`\n * (i.e. 0xbc197c81, or its own function selector).\n *\n * @param operator The address which initiated the batch transfer (i.e. msg.sender)\n * @param from The address which previously owned the token\n * @param ids An array containing ids of each token being transferred (order and length must match values array)\n * @param values An array containing amounts of each token being transferred (order and length must match ids array)\n * @param data Additional data with no specified format\n * @return `bytes4(keccak256(\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\"))` if transfer is allowed\n */\n function onERC1155BatchReceived(\n address operator,\n address from,\n uint256[] calldata ids,\n uint256[] calldata values,\n bytes calldata data\n ) external returns (bytes4);\n}\n" + }, + "@openzeppelin/contracts/utils/Arrays.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/Arrays.sol)\n\npragma solidity ^0.8.20;\n\nimport {StorageSlot} from \"./StorageSlot.sol\";\nimport {Math} from \"./math/Math.sol\";\n\n/**\n * @dev Collection of functions related to array types.\n */\nlibrary Arrays {\n using StorageSlot for bytes32;\n\n /**\n * @dev Searches a sorted `array` and returns the first index that contains\n * a value greater or equal to `element`. If no such index exists (i.e. all\n * values in the array are strictly less than `element`), the array length is\n * returned. Time complexity O(log n).\n *\n * `array` is expected to be sorted in ascending order, and to contain no\n * repeated elements.\n */\n function findUpperBound(uint256[] storage array, uint256 element) internal view returns (uint256) {\n uint256 low = 0;\n uint256 high = array.length;\n\n if (high == 0) {\n return 0;\n }\n\n while (low < high) {\n uint256 mid = Math.average(low, high);\n\n // Note that mid will always be strictly less than high (i.e. it will be a valid array index)\n // because Math.average rounds towards zero (it does integer division with truncation).\n if (unsafeAccess(array, mid).value > element) {\n high = mid;\n } else {\n low = mid + 1;\n }\n }\n\n // At this point `low` is the exclusive upper bound. We will return the inclusive upper bound.\n if (low > 0 && unsafeAccess(array, low - 1).value == element) {\n return low - 1;\n } else {\n return low;\n }\n }\n\n /**\n * @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n *\n * WARNING: Only use if you are certain `pos` is lower than the array length.\n */\n function unsafeAccess(address[] storage arr, uint256 pos) internal pure returns (StorageSlot.AddressSlot storage) {\n bytes32 slot;\n // We use assembly to calculate the storage slot of the element at index `pos` of the dynamic array `arr`\n // following https://docs.soliditylang.org/en/v0.8.20/internals/layout_in_storage.html#mappings-and-dynamic-arrays.\n\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0, arr.slot)\n slot := add(keccak256(0, 0x20), pos)\n }\n return slot.getAddressSlot();\n }\n\n /**\n * @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n *\n * WARNING: Only use if you are certain `pos` is lower than the array length.\n */\n function unsafeAccess(bytes32[] storage arr, uint256 pos) internal pure returns (StorageSlot.Bytes32Slot storage) {\n bytes32 slot;\n // We use assembly to calculate the storage slot of the element at index `pos` of the dynamic array `arr`\n // following https://docs.soliditylang.org/en/v0.8.20/internals/layout_in_storage.html#mappings-and-dynamic-arrays.\n\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0, arr.slot)\n slot := add(keccak256(0, 0x20), pos)\n }\n return slot.getBytes32Slot();\n }\n\n /**\n * @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n *\n * WARNING: Only use if you are certain `pos` is lower than the array length.\n */\n function unsafeAccess(uint256[] storage arr, uint256 pos) internal pure returns (StorageSlot.Uint256Slot storage) {\n bytes32 slot;\n // We use assembly to calculate the storage slot of the element at index `pos` of the dynamic array `arr`\n // following https://docs.soliditylang.org/en/v0.8.20/internals/layout_in_storage.html#mappings-and-dynamic-arrays.\n\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0, arr.slot)\n slot := add(keccak256(0, 0x20), pos)\n }\n return slot.getUint256Slot();\n }\n\n /**\n * @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n *\n * WARNING: Only use if you are certain `pos` is lower than the array length.\n */\n function unsafeMemoryAccess(uint256[] memory arr, uint256 pos) internal pure returns (uint256 res) {\n assembly {\n res := mload(add(add(arr, 0x20), mul(pos, 0x20)))\n }\n }\n\n /**\n * @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n *\n * WARNING: Only use if you are certain `pos` is lower than the array length.\n */\n function unsafeMemoryAccess(address[] memory arr, uint256 pos) internal pure returns (address res) {\n assembly {\n res := mload(add(add(arr, 0x20), mul(pos, 0x20)))\n }\n }\n}\n" + }, + "@openzeppelin/contracts/utils/Context.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n function _msgSender() internal view virtual returns (address) {\n return msg.sender;\n }\n\n function _msgData() internal view virtual returns (bytes calldata) {\n return msg.data;\n }\n\n function _contextSuffixLength() internal view virtual returns (uint256) {\n return 0;\n }\n}\n" + }, + "@openzeppelin/contracts/utils/introspection/ERC165.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/introspection/ERC165.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC165} from \"./IERC165.sol\";\n\n/**\n * @dev Implementation of the {IERC165} interface.\n *\n * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\n * for the additional interface id that will be supported. For example:\n *\n * ```solidity\n * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n * return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n * }\n * ```\n */\nabstract contract ERC165 is IERC165 {\n /**\n * @dev See {IERC165-supportsInterface}.\n */\n function supportsInterface(bytes4 interfaceId) public view virtual returns (bool) {\n return interfaceId == type(IERC165).interfaceId;\n }\n}\n" + }, + "@openzeppelin/contracts/utils/introspection/ERC165Checker.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/introspection/ERC165Checker.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC165} from \"./IERC165.sol\";\n\n/**\n * @dev Library used to query support of an interface declared via {IERC165}.\n *\n * Note that these functions return the actual result of the query: they do not\n * `revert` if an interface is not supported. It is up to the caller to decide\n * what to do in these cases.\n */\nlibrary ERC165Checker {\n // As per the EIP-165 spec, no interface should ever match 0xffffffff\n bytes4 private constant INTERFACE_ID_INVALID = 0xffffffff;\n\n /**\n * @dev Returns true if `account` supports the {IERC165} interface.\n */\n function supportsERC165(address account) internal view returns (bool) {\n // Any contract that implements ERC165 must explicitly indicate support of\n // InterfaceId_ERC165 and explicitly indicate non-support of InterfaceId_Invalid\n return\n supportsERC165InterfaceUnchecked(account, type(IERC165).interfaceId) &&\n !supportsERC165InterfaceUnchecked(account, INTERFACE_ID_INVALID);\n }\n\n /**\n * @dev Returns true if `account` supports the interface defined by\n * `interfaceId`. Support for {IERC165} itself is queried automatically.\n *\n * See {IERC165-supportsInterface}.\n */\n function supportsInterface(address account, bytes4 interfaceId) internal view returns (bool) {\n // query support of both ERC165 as per the spec and support of _interfaceId\n return supportsERC165(account) && supportsERC165InterfaceUnchecked(account, interfaceId);\n }\n\n /**\n * @dev Returns a boolean array where each value corresponds to the\n * interfaces passed in and whether they're supported or not. This allows\n * you to batch check interfaces for a contract where your expectation\n * is that some interfaces may not be supported.\n *\n * See {IERC165-supportsInterface}.\n */\n function getSupportedInterfaces(\n address account,\n bytes4[] memory interfaceIds\n ) internal view returns (bool[] memory) {\n // an array of booleans corresponding to interfaceIds and whether they're supported or not\n bool[] memory interfaceIdsSupported = new bool[](interfaceIds.length);\n\n // query support of ERC165 itself\n if (supportsERC165(account)) {\n // query support of each interface in interfaceIds\n for (uint256 i = 0; i < interfaceIds.length; i++) {\n interfaceIdsSupported[i] = supportsERC165InterfaceUnchecked(account, interfaceIds[i]);\n }\n }\n\n return interfaceIdsSupported;\n }\n\n /**\n * @dev Returns true if `account` supports all the interfaces defined in\n * `interfaceIds`. Support for {IERC165} itself is queried automatically.\n *\n * Batch-querying can lead to gas savings by skipping repeated checks for\n * {IERC165} support.\n *\n * See {IERC165-supportsInterface}.\n */\n function supportsAllInterfaces(address account, bytes4[] memory interfaceIds) internal view returns (bool) {\n // query support of ERC165 itself\n if (!supportsERC165(account)) {\n return false;\n }\n\n // query support of each interface in interfaceIds\n for (uint256 i = 0; i < interfaceIds.length; i++) {\n if (!supportsERC165InterfaceUnchecked(account, interfaceIds[i])) {\n return false;\n }\n }\n\n // all interfaces supported\n return true;\n }\n\n /**\n * @notice Query if a contract implements an interface, does not check ERC165 support\n * @param account The address of the contract to query for support of an interface\n * @param interfaceId The interface identifier, as specified in ERC-165\n * @return true if the contract at account indicates support of the interface with\n * identifier interfaceId, false otherwise\n * @dev Assumes that account contains a contract that supports ERC165, otherwise\n * the behavior of this method is undefined. This precondition can be checked\n * with {supportsERC165}.\n *\n * Some precompiled contracts will falsely indicate support for a given interface, so caution\n * should be exercised when using this function.\n *\n * Interface identification is specified in ERC-165.\n */\n function supportsERC165InterfaceUnchecked(address account, bytes4 interfaceId) internal view returns (bool) {\n // prepare call\n bytes memory encodedParams = abi.encodeCall(IERC165.supportsInterface, (interfaceId));\n\n // perform static call\n bool success;\n uint256 returnSize;\n uint256 returnValue;\n assembly {\n success := staticcall(30000, account, add(encodedParams, 0x20), mload(encodedParams), 0x00, 0x20)\n returnSize := returndatasize()\n returnValue := mload(0x00)\n }\n\n return success && returnSize >= 0x20 && returnValue > 0;\n }\n}\n" + }, + "@openzeppelin/contracts/utils/introspection/IERC165.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/introspection/IERC165.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Interface of the ERC165 standard, as defined in the\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\n *\n * Implementers can declare support of contract interfaces, which can then be\n * queried by others ({ERC165Checker}).\n *\n * For an implementation, see {ERC165}.\n */\ninterface IERC165 {\n /**\n * @dev Returns true if this contract implements the interface defined by\n * `interfaceId`. See the corresponding\n * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n * to learn more about how these ids are created.\n *\n * This function call must use less than 30 000 gas.\n */\n function supportsInterface(bytes4 interfaceId) external view returns (bool);\n}\n" + }, + "@openzeppelin/contracts/utils/math/Math.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/math/Math.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Standard math utilities missing in the Solidity language.\n */\nlibrary Math {\n /**\n * @dev Muldiv operation overflow.\n */\n error MathOverflowedMulDiv();\n\n enum Rounding {\n Floor, // Toward negative infinity\n Ceil, // Toward positive infinity\n Trunc, // Toward zero\n Expand // Away from zero\n }\n\n /**\n * @dev Returns the addition of two unsigned integers, with an overflow flag.\n */\n function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n unchecked {\n uint256 c = a + b;\n if (c < a) return (false, 0);\n return (true, c);\n }\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, with an overflow flag.\n */\n function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n unchecked {\n if (b > a) return (false, 0);\n return (true, a - b);\n }\n }\n\n /**\n * @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n */\n function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n unchecked {\n // Gas optimization: this is cheaper than requiring 'a' not being zero, but the\n // benefit is lost if 'b' is also tested.\n // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522\n if (a == 0) return (true, 0);\n uint256 c = a * b;\n if (c / a != b) return (false, 0);\n return (true, c);\n }\n }\n\n /**\n * @dev Returns the division of two unsigned integers, with a division by zero flag.\n */\n function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n unchecked {\n if (b == 0) return (false, 0);\n return (true, a / b);\n }\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n */\n function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n unchecked {\n if (b == 0) return (false, 0);\n return (true, a % b);\n }\n }\n\n /**\n * @dev Returns the largest of two numbers.\n */\n function max(uint256 a, uint256 b) internal pure returns (uint256) {\n return a > b ? a : b;\n }\n\n /**\n * @dev Returns the smallest of two numbers.\n */\n function min(uint256 a, uint256 b) internal pure returns (uint256) {\n return a < b ? a : b;\n }\n\n /**\n * @dev Returns the average of two numbers. The result is rounded towards\n * zero.\n */\n function average(uint256 a, uint256 b) internal pure returns (uint256) {\n // (a + b) / 2 can overflow.\n return (a & b) + (a ^ b) / 2;\n }\n\n /**\n * @dev Returns the ceiling of the division of two numbers.\n *\n * This differs from standard division with `/` in that it rounds towards infinity instead\n * of rounding towards zero.\n */\n function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) {\n if (b == 0) {\n // Guarantee the same behavior as in a regular Solidity division.\n return a / b;\n }\n\n // (a + b - 1) / b can overflow on addition, so we distribute.\n return a == 0 ? 0 : (a - 1) / b + 1;\n }\n\n /**\n * @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or\n * denominator == 0.\n * @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv) with further edits by\n * Uniswap Labs also under MIT license.\n */\n function mulDiv(uint256 x, uint256 y, uint256 denominator) internal pure returns (uint256 result) {\n unchecked {\n // 512-bit multiply [prod1 prod0] = x * y. Compute the product mod 2^256 and mod 2^256 - 1, then use\n // use the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256\n // variables such that product = prod1 * 2^256 + prod0.\n uint256 prod0 = x * y; // Least significant 256 bits of the product\n uint256 prod1; // Most significant 256 bits of the product\n assembly {\n let mm := mulmod(x, y, not(0))\n prod1 := sub(sub(mm, prod0), lt(mm, prod0))\n }\n\n // Handle non-overflow cases, 256 by 256 division.\n if (prod1 == 0) {\n // Solidity will revert if denominator == 0, unlike the div opcode on its own.\n // The surrounding unchecked block does not change this fact.\n // See https://docs.soliditylang.org/en/latest/control-structures.html#checked-or-unchecked-arithmetic.\n return prod0 / denominator;\n }\n\n // Make sure the result is less than 2^256. Also prevents denominator == 0.\n if (denominator <= prod1) {\n revert MathOverflowedMulDiv();\n }\n\n ///////////////////////////////////////////////\n // 512 by 256 division.\n ///////////////////////////////////////////////\n\n // Make division exact by subtracting the remainder from [prod1 prod0].\n uint256 remainder;\n assembly {\n // Compute remainder using mulmod.\n remainder := mulmod(x, y, denominator)\n\n // Subtract 256 bit number from 512 bit number.\n prod1 := sub(prod1, gt(remainder, prod0))\n prod0 := sub(prod0, remainder)\n }\n\n // Factor powers of two out of denominator and compute largest power of two divisor of denominator.\n // Always >= 1. See https://cs.stackexchange.com/q/138556/92363.\n\n uint256 twos = denominator & (0 - denominator);\n assembly {\n // Divide denominator by twos.\n denominator := div(denominator, twos)\n\n // Divide [prod1 prod0] by twos.\n prod0 := div(prod0, twos)\n\n // Flip twos such that it is 2^256 / twos. If twos is zero, then it becomes one.\n twos := add(div(sub(0, twos), twos), 1)\n }\n\n // Shift in bits from prod1 into prod0.\n prod0 |= prod1 * twos;\n\n // Invert denominator mod 2^256. Now that denominator is an odd number, it has an inverse modulo 2^256 such\n // that denominator * inv = 1 mod 2^256. Compute the inverse by starting with a seed that is correct for\n // four bits. That is, denominator * inv = 1 mod 2^4.\n uint256 inverse = (3 * denominator) ^ 2;\n\n // Use the Newton-Raphson iteration to improve the precision. Thanks to Hensel's lifting lemma, this also\n // works in modular arithmetic, doubling the correct bits in each step.\n inverse *= 2 - denominator * inverse; // inverse mod 2^8\n inverse *= 2 - denominator * inverse; // inverse mod 2^16\n inverse *= 2 - denominator * inverse; // inverse mod 2^32\n inverse *= 2 - denominator * inverse; // inverse mod 2^64\n inverse *= 2 - denominator * inverse; // inverse mod 2^128\n inverse *= 2 - denominator * inverse; // inverse mod 2^256\n\n // Because the division is now exact we can divide by multiplying with the modular inverse of denominator.\n // This will give us the correct result modulo 2^256. Since the preconditions guarantee that the outcome is\n // less than 2^256, this is the final result. We don't need to compute the high bits of the result and prod1\n // is no longer required.\n result = prod0 * inverse;\n return result;\n }\n }\n\n /**\n * @notice Calculates x * y / denominator with full precision, following the selected rounding direction.\n */\n function mulDiv(uint256 x, uint256 y, uint256 denominator, Rounding rounding) internal pure returns (uint256) {\n uint256 result = mulDiv(x, y, denominator);\n if (unsignedRoundsUp(rounding) && mulmod(x, y, denominator) > 0) {\n result += 1;\n }\n return result;\n }\n\n /**\n * @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded\n * towards zero.\n *\n * Inspired by Henry S. Warren, Jr.'s \"Hacker's Delight\" (Chapter 11).\n */\n function sqrt(uint256 a) internal pure returns (uint256) {\n if (a == 0) {\n return 0;\n }\n\n // For our first guess, we get the biggest power of 2 which is smaller than the square root of the target.\n //\n // We know that the \"msb\" (most significant bit) of our target number `a` is a power of 2 such that we have\n // `msb(a) <= a < 2*msb(a)`. This value can be written `msb(a)=2**k` with `k=log2(a)`.\n //\n // This can be rewritten `2**log2(a) <= a < 2**(log2(a) + 1)`\n // → `sqrt(2**k) <= sqrt(a) < sqrt(2**(k+1))`\n // → `2**(k/2) <= sqrt(a) < 2**((k+1)/2) <= 2**(k/2 + 1)`\n //\n // Consequently, `2**(log2(a) / 2)` is a good first approximation of `sqrt(a)` with at least 1 correct bit.\n uint256 result = 1 << (log2(a) >> 1);\n\n // At this point `result` is an estimation with one bit of precision. We know the true value is a uint128,\n // since it is the square root of a uint256. Newton's method converges quadratically (precision doubles at\n // every iteration). We thus need at most 7 iteration to turn our partial result with one bit of precision\n // into the expected uint128 result.\n unchecked {\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n return min(result, a / result);\n }\n }\n\n /**\n * @notice Calculates sqrt(a), following the selected rounding direction.\n */\n function sqrt(uint256 a, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = sqrt(a);\n return result + (unsignedRoundsUp(rounding) && result * result < a ? 1 : 0);\n }\n }\n\n /**\n * @dev Return the log in base 2 of a positive value rounded towards zero.\n * Returns 0 if given 0.\n */\n function log2(uint256 value) internal pure returns (uint256) {\n uint256 result = 0;\n unchecked {\n if (value >> 128 > 0) {\n value >>= 128;\n result += 128;\n }\n if (value >> 64 > 0) {\n value >>= 64;\n result += 64;\n }\n if (value >> 32 > 0) {\n value >>= 32;\n result += 32;\n }\n if (value >> 16 > 0) {\n value >>= 16;\n result += 16;\n }\n if (value >> 8 > 0) {\n value >>= 8;\n result += 8;\n }\n if (value >> 4 > 0) {\n value >>= 4;\n result += 4;\n }\n if (value >> 2 > 0) {\n value >>= 2;\n result += 2;\n }\n if (value >> 1 > 0) {\n result += 1;\n }\n }\n return result;\n }\n\n /**\n * @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n * Returns 0 if given 0.\n */\n function log2(uint256 value, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = log2(value);\n return result + (unsignedRoundsUp(rounding) && 1 << result < value ? 1 : 0);\n }\n }\n\n /**\n * @dev Return the log in base 10 of a positive value rounded towards zero.\n * Returns 0 if given 0.\n */\n function log10(uint256 value) internal pure returns (uint256) {\n uint256 result = 0;\n unchecked {\n if (value >= 10 ** 64) {\n value /= 10 ** 64;\n result += 64;\n }\n if (value >= 10 ** 32) {\n value /= 10 ** 32;\n result += 32;\n }\n if (value >= 10 ** 16) {\n value /= 10 ** 16;\n result += 16;\n }\n if (value >= 10 ** 8) {\n value /= 10 ** 8;\n result += 8;\n }\n if (value >= 10 ** 4) {\n value /= 10 ** 4;\n result += 4;\n }\n if (value >= 10 ** 2) {\n value /= 10 ** 2;\n result += 2;\n }\n if (value >= 10 ** 1) {\n result += 1;\n }\n }\n return result;\n }\n\n /**\n * @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n * Returns 0 if given 0.\n */\n function log10(uint256 value, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = log10(value);\n return result + (unsignedRoundsUp(rounding) && 10 ** result < value ? 1 : 0);\n }\n }\n\n /**\n * @dev Return the log in base 256 of a positive value rounded towards zero.\n * Returns 0 if given 0.\n *\n * Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string.\n */\n function log256(uint256 value) internal pure returns (uint256) {\n uint256 result = 0;\n unchecked {\n if (value >> 128 > 0) {\n value >>= 128;\n result += 16;\n }\n if (value >> 64 > 0) {\n value >>= 64;\n result += 8;\n }\n if (value >> 32 > 0) {\n value >>= 32;\n result += 4;\n }\n if (value >> 16 > 0) {\n value >>= 16;\n result += 2;\n }\n if (value >> 8 > 0) {\n result += 1;\n }\n }\n return result;\n }\n\n /**\n * @dev Return the log in base 256, following the selected rounding direction, of a positive value.\n * Returns 0 if given 0.\n */\n function log256(uint256 value, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = log256(value);\n return result + (unsignedRoundsUp(rounding) && 1 << (result << 3) < value ? 1 : 0);\n }\n }\n\n /**\n * @dev Returns whether a provided rounding mode is considered rounding up for unsigned integers.\n */\n function unsignedRoundsUp(Rounding rounding) internal pure returns (bool) {\n return uint8(rounding) % 2 == 1;\n }\n}\n" + }, + "@openzeppelin/contracts/utils/math/SignedMath.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/math/SignedMath.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Standard signed math utilities missing in the Solidity language.\n */\nlibrary SignedMath {\n /**\n * @dev Returns the largest of two signed numbers.\n */\n function max(int256 a, int256 b) internal pure returns (int256) {\n return a > b ? a : b;\n }\n\n /**\n * @dev Returns the smallest of two signed numbers.\n */\n function min(int256 a, int256 b) internal pure returns (int256) {\n return a < b ? a : b;\n }\n\n /**\n * @dev Returns the average of two signed numbers without overflow.\n * The result is rounded towards zero.\n */\n function average(int256 a, int256 b) internal pure returns (int256) {\n // Formula from the book \"Hacker's Delight\"\n int256 x = (a & b) + ((a ^ b) >> 1);\n return x + (int256(uint256(x) >> 255) & (a ^ b));\n }\n\n /**\n * @dev Returns the absolute unsigned value of a signed value.\n */\n function abs(int256 n) internal pure returns (uint256) {\n unchecked {\n // must be unchecked in order to support `n = type(int256).min`\n return uint256(n >= 0 ? n : -n);\n }\n }\n}\n" + }, + "@openzeppelin/contracts/utils/StorageSlot.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/StorageSlot.sol)\n// This file was procedurally generated from scripts/generate/templates/StorageSlot.js.\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Library for reading and writing primitive types to specific storage slots.\n *\n * Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.\n * This library helps with reading and writing to such slots without the need for inline assembly.\n *\n * The functions in this library return Slot structs that contain a `value` member that can be used to read or write.\n *\n * Example usage to set ERC1967 implementation slot:\n * ```solidity\n * contract ERC1967 {\n * bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\n *\n * function _getImplementation() internal view returns (address) {\n * return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\n * }\n *\n * function _setImplementation(address newImplementation) internal {\n * require(newImplementation.code.length > 0);\n * StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\n * }\n * }\n * ```\n */\nlibrary StorageSlot {\n struct AddressSlot {\n address value;\n }\n\n struct BooleanSlot {\n bool value;\n }\n\n struct Bytes32Slot {\n bytes32 value;\n }\n\n struct Uint256Slot {\n uint256 value;\n }\n\n struct StringSlot {\n string value;\n }\n\n struct BytesSlot {\n bytes value;\n }\n\n /**\n * @dev Returns an `AddressSlot` with member `value` located at `slot`.\n */\n function getAddressSlot(bytes32 slot) internal pure returns (AddressSlot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns an `BooleanSlot` with member `value` located at `slot`.\n */\n function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns an `Bytes32Slot` with member `value` located at `slot`.\n */\n function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns an `Uint256Slot` with member `value` located at `slot`.\n */\n function getUint256Slot(bytes32 slot) internal pure returns (Uint256Slot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns an `StringSlot` with member `value` located at `slot`.\n */\n function getStringSlot(bytes32 slot) internal pure returns (StringSlot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns an `StringSlot` representation of the string storage pointer `store`.\n */\n function getStringSlot(string storage store) internal pure returns (StringSlot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := store.slot\n }\n }\n\n /**\n * @dev Returns an `BytesSlot` with member `value` located at `slot`.\n */\n function getBytesSlot(bytes32 slot) internal pure returns (BytesSlot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns an `BytesSlot` representation of the bytes storage pointer `store`.\n */\n function getBytesSlot(bytes storage store) internal pure returns (BytesSlot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := store.slot\n }\n }\n}\n" + }, + "@openzeppelin/contracts/utils/Strings.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/Strings.sol)\n\npragma solidity ^0.8.20;\n\nimport {Math} from \"./math/Math.sol\";\nimport {SignedMath} from \"./math/SignedMath.sol\";\n\n/**\n * @dev String operations.\n */\nlibrary Strings {\n bytes16 private constant HEX_DIGITS = \"0123456789abcdef\";\n uint8 private constant ADDRESS_LENGTH = 20;\n\n /**\n * @dev The `value` string doesn't fit in the specified `length`.\n */\n error StringsInsufficientHexLength(uint256 value, uint256 length);\n\n /**\n * @dev Converts a `uint256` to its ASCII `string` decimal representation.\n */\n function toString(uint256 value) internal pure returns (string memory) {\n unchecked {\n uint256 length = Math.log10(value) + 1;\n string memory buffer = new string(length);\n uint256 ptr;\n /// @solidity memory-safe-assembly\n assembly {\n ptr := add(buffer, add(32, length))\n }\n while (true) {\n ptr--;\n /// @solidity memory-safe-assembly\n assembly {\n mstore8(ptr, byte(mod(value, 10), HEX_DIGITS))\n }\n value /= 10;\n if (value == 0) break;\n }\n return buffer;\n }\n }\n\n /**\n * @dev Converts a `int256` to its ASCII `string` decimal representation.\n */\n function toStringSigned(int256 value) internal pure returns (string memory) {\n return string.concat(value < 0 ? \"-\" : \"\", toString(SignedMath.abs(value)));\n }\n\n /**\n * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation.\n */\n function toHexString(uint256 value) internal pure returns (string memory) {\n unchecked {\n return toHexString(value, Math.log256(value) + 1);\n }\n }\n\n /**\n * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.\n */\n function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {\n uint256 localValue = value;\n bytes memory buffer = new bytes(2 * length + 2);\n buffer[0] = \"0\";\n buffer[1] = \"x\";\n for (uint256 i = 2 * length + 1; i > 1; --i) {\n buffer[i] = HEX_DIGITS[localValue & 0xf];\n localValue >>= 4;\n }\n if (localValue != 0) {\n revert StringsInsufficientHexLength(value, length);\n }\n return string(buffer);\n }\n\n /**\n * @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal\n * representation.\n */\n function toHexString(address addr) internal pure returns (string memory) {\n return toHexString(uint256(uint160(addr)), ADDRESS_LENGTH);\n }\n\n /**\n * @dev Returns true if the two strings are equal.\n */\n function equal(string memory a, string memory b) internal pure returns (bool) {\n return bytes(a).length == bytes(b).length && keccak256(bytes(a)) == keccak256(bytes(b));\n }\n}\n" + }, + "contracts/Engagement.sol": { + "content": "// SPDX-License-Identifier: UNLICENSED\npragma solidity 0.8.26;\n\nimport \"@openzeppelin/contracts/token/ERC1155/ERC1155.sol\";\nimport \"@openzeppelin/contracts/access/AccessControl.sol\";\nimport \"@openzeppelin/contracts/utils/Strings.sol\";\nimport \"@openzeppelin/contracts/utils/introspection/ERC165Checker.sol\";\nimport \"./IEngagement.sol\";\n\ncontract Engagement is IEngagement, ERC1155, AccessControl {\n using ERC165Checker for address;\n\n uint private _counter;\n string private _tokenURI;\n\n constructor(string memory tokenURI_) ERC1155(\"\") {\n requireNonEmptyURI(tokenURI_);\n _grantRole(DEFAULT_ADMIN_ROLE, msg.sender);\n _tokenURI = tokenURI_;\n }\n\n function _checkTokenId(uint tokenId) private view {\n if (tokenId >= _counter) {\n revert NotFound(tokenId);\n }\n }\n\n function requireNonEmptyURI(string memory newUri) internal pure {\n if (bytes(newUri).length == 0) {\n revert URIEmpty(\"URI cannot be empty\");\n }\n }\n\n modifier validTokenId(uint tokenId) {\n _checkTokenId(tokenId);\n _;\n }\n\n modifier onlyTokenOwner(address account, uint tokenId) {\n if (account != msg.sender) {\n revert NotAllowed(account, tokenId);\n }\n _;\n }\n\n modifier nonEmptyAccount(string memory account) {\n if (bytes(account).length == 0) {\n revert EmptyAccountNotAllowed(\"Account cannot be empty\");\n }\n _;\n }\n\n function counter() external view returns (uint) {\n return _counter;\n }\n\n function issue() external {\n uint counterCache = _counter;\n _mint(msg.sender, counterCache, 1, \"\");\n emit Issue(msg.sender, counterCache);\n _counter = counterCache + 1;\n }\n\n function mint(\n address account,\n uint tokenId,\n uint amount,\n bytes memory data\n ) external override validTokenId(tokenId) {\n if (balanceOf(account, tokenId) >= 1) {\n revert MintLimit(account, tokenId);\n }\n _mint(account, tokenId, 1, data);\n emit Mint(account, tokenId, 1);\n }\n\n function burn(\n address account,\n uint tokenId,\n uint amount\n ) external override validTokenId(tokenId) onlyTokenOwner(account, tokenId) {\n _burn(account, tokenId, 1);\n emit Burn(account, tokenId, 1);\n }\n\n function supportsInterface(\n bytes4 interfaceId\n ) public view override(AccessControl, ERC1155) returns (bool) {\n if (address(this).supportsERC165()) {\n return super.supportsInterface(interfaceId);\n }\n return false;\n }\n\n function updateBaseURI(string memory newURI) external onlyRole(DEFAULT_ADMIN_ROLE) {\n requireNonEmptyURI(newURI);\n emit BaseURIUpdated(_tokenURI, newURI);\n _tokenURI = newURI;\n }\n\n function uri(\n uint tokenId,\n string memory account\n ) public view validTokenId(tokenId) nonEmptyAccount(account) returns (string memory) {\n return\n string(\n abi.encodePacked(_tokenURI,\"/api/v1/nft/\",Strings.toString(tokenId),\"/\",account,\"/reputation-score\")\n );\n }\n}\n" + }, + "contracts/IEngagement.sol": { + "content": "// SPDX-License-Identifier: UNLICENSED\npragma solidity 0.8.26;\n\ninterface IEngagement {\n event Issue(address indexed account, uint indexed tokenId);\n event Mint(address indexed account, uint indexed tokenId, uint amount);\n event Burn(address indexed account, uint indexed tokenId, uint amount);\n event BaseURIUpdated(string oldURI, string newURI);\n\n error NotFound(uint tokenId);\n error MintLimit(address account, uint tokenId);\n error NotAllowed(address account, uint tokenId);\n error URIEmpty(string message);\n error EmptyAccountNotAllowed(string message);\n\n function counter() external view returns (uint);\n\n function issue() external;\n\n function mint(\n address account,\n uint tokenId,\n uint amount,\n bytes memory data\n ) external;\n\n function burn(address account, uint tokenId, uint amount) external;\n\n function updateBaseURI(string memory newURI) external;\n}\n" + } + }, + "settings": { + "evmVersion": "paris", + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "output": { + "errors": [ + { + "component": "general", + "errorCode": "5667", + "formattedMessage": "Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n --> contracts/Engagement.sol:67:9:\n |\n67 | uint amount,\n | ^^^^^^^^^^^\n\n", + "message": "Unused function parameter. Remove or comment out the variable name to silence this warning.", + "severity": "warning", + "sourceLocation": { + "end": 1843, + "file": "contracts/Engagement.sol", + "start": 1832 + }, + "type": "Warning" + }, + { + "component": "general", + "errorCode": "5667", + "formattedMessage": "Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n --> contracts/Engagement.sol:80:9:\n |\n80 | uint amount\n | ^^^^^^^^^^^\n\n", + "message": "Unused function parameter. Remove or comment out the variable name to silence this warning.", + "severity": "warning", + "sourceLocation": { + "end": 2199, + "file": "contracts/Engagement.sol", + "start": 2188 + }, + "type": "Warning" + } + ], + "sources": { + "@openzeppelin/contracts/access/AccessControl.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/access/AccessControl.sol", + "exportedSymbols": { + "AccessControl": [ + 295 + ], + "Context": [ + 1960 + ], + "ERC165": [ + 2349 + ], + "IAccessControl": [ + 378 + ] + }, + "id": 296, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "108:24:0" + }, + { + "absolutePath": "@openzeppelin/contracts/access/IAccessControl.sol", + "file": "./IAccessControl.sol", + "id": 3, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 296, + "sourceUnit": 379, + "src": "134:52:0", + "symbolAliases": [ + { + "foreign": { + "id": 2, + "name": "IAccessControl", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 378, + "src": "142:14:0", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Context.sol", + "file": "../utils/Context.sol", + "id": 5, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 296, + "sourceUnit": 1961, + "src": "187:45:0", + "symbolAliases": [ + { + "foreign": { + "id": 4, + "name": "Context", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1960, + "src": "195:7:0", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/introspection/ERC165.sol", + "file": "../utils/introspection/ERC165.sol", + "id": 7, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 296, + "sourceUnit": 2350, + "src": "233:57:0", + "symbolAliases": [ + { + "foreign": { + "id": 6, + "name": "ERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2349, + "src": "241:6:0", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 9, + "name": "Context", + "nameLocations": [ + "1988:7:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1960, + "src": "1988:7:0" + }, + "id": 10, + "nodeType": "InheritanceSpecifier", + "src": "1988:7:0" + }, + { + "baseName": { + "id": 11, + "name": "IAccessControl", + "nameLocations": [ + "1997:14:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 378, + "src": "1997:14:0" + }, + "id": 12, + "nodeType": "InheritanceSpecifier", + "src": "1997:14:0" + }, + { + "baseName": { + "id": 13, + "name": "ERC165", + "nameLocations": [ + "2013:6:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2349, + "src": "2013:6:0" + }, + "id": 14, + "nodeType": "InheritanceSpecifier", + "src": "2013:6:0" + } + ], + "canonicalName": "AccessControl", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 8, + "nodeType": "StructuredDocumentation", + "src": "292:1660:0", + "text": " @dev Contract module that allows children to implement role-based access\n control mechanisms. This is a lightweight version that doesn't allow enumerating role\n members except through off-chain means by accessing the contract event logs. Some\n applications may benefit from on-chain enumerability, for those cases see\n {AccessControlEnumerable}.\n Roles are referred to by their `bytes32` identifier. These should be exposed\n in the external API and be unique. The best way to achieve this is by\n using `public constant` hash digests:\n ```solidity\n bytes32 public constant MY_ROLE = keccak256(\"MY_ROLE\");\n ```\n Roles can be used to represent a set of permissions. To restrict access to a\n function call, use {hasRole}:\n ```solidity\n function foo() public {\n require(hasRole(MY_ROLE, msg.sender));\n ...\n }\n ```\n Roles can be granted and revoked dynamically via the {grantRole} and\n {revokeRole} functions. Each role has an associated admin role, and only\n accounts that have a role's admin role can call {grantRole} and {revokeRole}.\n By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means\n that only accounts with this role will be able to grant or revoke other\n roles. More complex role relationships can be created by using\n {_setRoleAdmin}.\n WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to\n grant and revoke this role. Extra precautions should be taken to secure\n accounts that have been granted it. We recommend using {AccessControlDefaultAdminRules}\n to enforce additional security measures for this role." + }, + "fullyImplemented": true, + "id": 295, + "linearizedBaseContracts": [ + 295, + 2349, + 2556, + 378, + 1960 + ], + "name": "AccessControl", + "nameLocation": "1971:13:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "AccessControl.RoleData", + "id": 21, + "members": [ + { + "constant": false, + "id": 18, + "mutability": "mutable", + "name": "hasRole", + "nameLocation": "2085:7:0", + "nodeType": "VariableDeclaration", + "scope": 21, + "src": "2052:40:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "typeName": { + "id": 17, + "keyName": "account", + "keyNameLocation": "2068:7:0", + "keyType": { + "id": 15, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2060:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "2052:32:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 16, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2079:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 20, + "mutability": "mutable", + "name": "adminRole", + "nameLocation": "2110:9:0", + "nodeType": "VariableDeclaration", + "scope": 21, + "src": "2102:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 19, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2102:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "name": "RoleData", + "nameLocation": "2033:8:0", + "nodeType": "StructDefinition", + "scope": 295, + "src": "2026:100:0", + "visibility": "public" + }, + { + "constant": false, + "id": 26, + "mutability": "mutable", + "name": "_roles", + "nameLocation": "2174:6:0", + "nodeType": "VariableDeclaration", + "scope": 295, + "src": "2132:48:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$21_storage_$", + "typeString": "mapping(bytes32 => struct AccessControl.RoleData)" + }, + "typeName": { + "id": 25, + "keyName": "role", + "keyNameLocation": "2148:4:0", + "keyType": { + "id": 22, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2140:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "2132:33:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$21_storage_$", + "typeString": "mapping(bytes32 => struct AccessControl.RoleData)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 24, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 23, + "name": "RoleData", + "nameLocations": [ + "2156:8:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 21, + "src": "2156:8:0" + }, + "referencedDeclaration": 21, + "src": "2156:8:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RoleData_$21_storage_ptr", + "typeString": "struct AccessControl.RoleData" + } + } + }, + "visibility": "private" + }, + { + "constant": true, + "functionSelector": "a217fddf", + "id": 29, + "mutability": "constant", + "name": "DEFAULT_ADMIN_ROLE", + "nameLocation": "2211:18:0", + "nodeType": "VariableDeclaration", + "scope": 295, + "src": "2187:49:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 27, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2187:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "hexValue": "30783030", + "id": 28, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2232:4:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0x00" + }, + "visibility": "public" + }, + { + "body": { + "id": 39, + "nodeType": "Block", + "src": "2454:44:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 35, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32, + "src": "2475:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 34, + "name": "_checkRole", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 93, + 114 + ], + "referencedDeclaration": 93, + "src": "2464:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) view" + } + }, + "id": 36, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2464:16:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 37, + "nodeType": "ExpressionStatement", + "src": "2464:16:0" + }, + { + "id": 38, + "nodeType": "PlaceholderStatement", + "src": "2490:1:0" + } + ] + }, + "documentation": { + "id": 30, + "nodeType": "StructuredDocumentation", + "src": "2243:174:0", + "text": " @dev Modifier that checks that an account has a specific role. Reverts\n with an {AccessControlUnauthorizedAccount} error including the required role." + }, + "id": 40, + "name": "onlyRole", + "nameLocation": "2431:8:0", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 33, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 32, + "mutability": "mutable", + "name": "role", + "nameLocation": "2448:4:0", + "nodeType": "VariableDeclaration", + "scope": 40, + "src": "2440:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 31, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2440:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2439:14:0" + }, + "src": "2422:76:0", + "virtual": false, + "visibility": "internal" + }, + { + "baseFunctions": [ + 2348 + ], + "body": { + "id": 61, + "nodeType": "Block", + "src": "2656:111:0", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 59, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 54, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 49, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 43, + "src": "2673:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 51, + "name": "IAccessControl", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 378, + "src": "2693:14:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IAccessControl_$378_$", + "typeString": "type(contract IAccessControl)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_contract$_IAccessControl_$378_$", + "typeString": "type(contract IAccessControl)" + } + ], + "id": 50, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "2688:4:0", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 52, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2688:20:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_contract$_IAccessControl_$378", + "typeString": "type(contract IAccessControl)" + } + }, + "id": 53, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "2709:11:0", + "memberName": "interfaceId", + "nodeType": "MemberAccess", + "src": "2688:32:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "2673:47:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 57, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 43, + "src": "2748:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "expression": { + "id": 55, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "2724:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_AccessControl_$295_$", + "typeString": "type(contract super AccessControl)" + } + }, + "id": 56, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2730:17:0", + "memberName": "supportsInterface", + "nodeType": "MemberAccess", + "referencedDeclaration": 2348, + "src": "2724:23:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$", + "typeString": "function (bytes4) view returns (bool)" + } + }, + "id": 58, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2724:36:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "2673:87:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 48, + "id": 60, + "nodeType": "Return", + "src": "2666:94:0" + } + ] + }, + "documentation": { + "id": 41, + "nodeType": "StructuredDocumentation", + "src": "2504:56:0", + "text": " @dev See {IERC165-supportsInterface}." + }, + "functionSelector": "01ffc9a7", + "id": 62, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nameLocation": "2574:17:0", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 45, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2632:8:0" + }, + "parameters": { + "id": 44, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 43, + "mutability": "mutable", + "name": "interfaceId", + "nameLocation": "2599:11:0", + "nodeType": "VariableDeclaration", + "scope": 62, + "src": "2592:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 42, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "2592:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "2591:20:0" + }, + "returnParameters": { + "id": 48, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 47, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 62, + "src": "2650:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 46, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2650:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2649:6:0" + }, + "scope": 295, + "src": "2565:202:0", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 345 + ], + "body": { + "id": 79, + "nodeType": "Block", + "src": "2937:53:0", + "statements": [ + { + "expression": { + "baseExpression": { + "expression": { + "baseExpression": { + "id": 72, + "name": "_roles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26, + "src": "2954:6:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$21_storage_$", + "typeString": "mapping(bytes32 => struct AccessControl.RoleData storage ref)" + } + }, + "id": 74, + "indexExpression": { + "id": 73, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 65, + "src": "2961:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2954:12:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RoleData_$21_storage", + "typeString": "struct AccessControl.RoleData storage ref" + } + }, + "id": 75, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2967:7:0", + "memberName": "hasRole", + "nodeType": "MemberAccess", + "referencedDeclaration": 18, + "src": "2954:20:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 77, + "indexExpression": { + "id": 76, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 67, + "src": "2975:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2954:29:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 71, + "id": 78, + "nodeType": "Return", + "src": "2947:36:0" + } + ] + }, + "documentation": { + "id": 63, + "nodeType": "StructuredDocumentation", + "src": "2773:76:0", + "text": " @dev Returns `true` if `account` has been granted `role`." + }, + "functionSelector": "91d14854", + "id": 80, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "hasRole", + "nameLocation": "2863:7:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 68, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 65, + "mutability": "mutable", + "name": "role", + "nameLocation": "2879:4:0", + "nodeType": "VariableDeclaration", + "scope": 80, + "src": "2871:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 64, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2871:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 67, + "mutability": "mutable", + "name": "account", + "nameLocation": "2893:7:0", + "nodeType": "VariableDeclaration", + "scope": 80, + "src": "2885:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 66, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2885:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2870:31:0" + }, + "returnParameters": { + "id": 71, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 70, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 80, + "src": "2931:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 69, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2931:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2930:6:0" + }, + "scope": 295, + "src": "2854:136:0", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 92, + "nodeType": "Block", + "src": "3255:47:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 87, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "3276:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 88, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1942, + "src": "3282:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 89, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3282:12:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 86, + "name": "_checkRole", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 93, + 114 + ], + "referencedDeclaration": 114, + "src": "3265:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address) view" + } + }, + "id": 90, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3265:30:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 91, + "nodeType": "ExpressionStatement", + "src": "3265:30:0" + } + ] + }, + "documentation": { + "id": 81, + "nodeType": "StructuredDocumentation", + "src": "2996:198:0", + "text": " @dev Reverts with an {AccessControlUnauthorizedAccount} error if `_msgSender()`\n is missing `role`. Overriding this function changes the behavior of the {onlyRole} modifier." + }, + "id": 93, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkRole", + "nameLocation": "3208:10:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 84, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 83, + "mutability": "mutable", + "name": "role", + "nameLocation": "3227:4:0", + "nodeType": "VariableDeclaration", + "scope": 93, + "src": "3219:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 82, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3219:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "3218:14:0" + }, + "returnParameters": { + "id": 85, + "nodeType": "ParameterList", + "parameters": [], + "src": "3255:0:0" + }, + "scope": 295, + "src": "3199:103:0", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 113, + "nodeType": "Block", + "src": "3505:124:0", + "statements": [ + { + "condition": { + "id": 105, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "3519:23:0", + "subExpression": { + "arguments": [ + { + "id": 102, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 96, + "src": "3528:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 103, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 98, + "src": "3534:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 101, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 80, + "src": "3520:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 104, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3520:22:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 112, + "nodeType": "IfStatement", + "src": "3515:108:0", + "trueBody": { + "id": 111, + "nodeType": "Block", + "src": "3544:79:0", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 107, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 98, + "src": "3598:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 108, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 96, + "src": "3607:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 106, + "name": "AccessControlUnauthorizedAccount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 305, + "src": "3565:32:0", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$_t_bytes32_$returns$_t_error_$", + "typeString": "function (address,bytes32) pure returns (error)" + } + }, + "id": 109, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3565:47:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 110, + "nodeType": "RevertStatement", + "src": "3558:54:0" + } + ] + } + } + ] + }, + "documentation": { + "id": 94, + "nodeType": "StructuredDocumentation", + "src": "3308:119:0", + "text": " @dev Reverts with an {AccessControlUnauthorizedAccount} error if `account`\n is missing `role`." + }, + "id": 114, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkRole", + "nameLocation": "3441:10:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 99, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 96, + "mutability": "mutable", + "name": "role", + "nameLocation": "3460:4:0", + "nodeType": "VariableDeclaration", + "scope": 114, + "src": "3452:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 95, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3452:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 98, + "mutability": "mutable", + "name": "account", + "nameLocation": "3474:7:0", + "nodeType": "VariableDeclaration", + "scope": 114, + "src": "3466:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 97, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3466:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3451:31:0" + }, + "returnParameters": { + "id": 100, + "nodeType": "ParameterList", + "parameters": [], + "src": "3505:0:0" + }, + "scope": 295, + "src": "3432:197:0", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "baseFunctions": [ + 353 + ], + "body": { + "id": 127, + "nodeType": "Block", + "src": "3884:46:0", + "statements": [ + { + "expression": { + "expression": { + "baseExpression": { + "id": 122, + "name": "_roles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26, + "src": "3901:6:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$21_storage_$", + "typeString": "mapping(bytes32 => struct AccessControl.RoleData storage ref)" + } + }, + "id": 124, + "indexExpression": { + "id": 123, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 117, + "src": "3908:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3901:12:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RoleData_$21_storage", + "typeString": "struct AccessControl.RoleData storage ref" + } + }, + "id": 125, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3914:9:0", + "memberName": "adminRole", + "nodeType": "MemberAccess", + "referencedDeclaration": 20, + "src": "3901:22:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 121, + "id": 126, + "nodeType": "Return", + "src": "3894:29:0" + } + ] + }, + "documentation": { + "id": 115, + "nodeType": "StructuredDocumentation", + "src": "3635:170:0", + "text": " @dev Returns the admin role that controls `role`. See {grantRole} and\n {revokeRole}.\n To change a role's admin, use {_setRoleAdmin}." + }, + "functionSelector": "248a9ca3", + "id": 128, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getRoleAdmin", + "nameLocation": "3819:12:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 118, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 117, + "mutability": "mutable", + "name": "role", + "nameLocation": "3840:4:0", + "nodeType": "VariableDeclaration", + "scope": 128, + "src": "3832:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 116, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3832:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "3831:14:0" + }, + "returnParameters": { + "id": 121, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 120, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 128, + "src": "3875:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 119, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3875:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "3874:9:0" + }, + "scope": 295, + "src": "3810:120:0", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 361 + ], + "body": { + "id": 146, + "nodeType": "Block", + "src": "4320:42:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 142, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 131, + "src": "4341:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 143, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 133, + "src": "4347:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 141, + "name": "_grantRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 256, + "src": "4330:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) returns (bool)" + } + }, + "id": 144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4330:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 145, + "nodeType": "ExpressionStatement", + "src": "4330:25:0" + } + ] + }, + "documentation": { + "id": 129, + "nodeType": "StructuredDocumentation", + "src": "3936:285:0", + "text": " @dev Grants `role` to `account`.\n If `account` had not been already granted `role`, emits a {RoleGranted}\n event.\n Requirements:\n - the caller must have ``role``'s admin role.\n May emit a {RoleGranted} event." + }, + "functionSelector": "2f2ff15d", + "id": 147, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 137, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 131, + "src": "4313:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 136, + "name": "getRoleAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 128, + "src": "4300:12:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$", + "typeString": "function (bytes32) view returns (bytes32)" + } + }, + "id": 138, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4300:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 139, + "kind": "modifierInvocation", + "modifierName": { + "id": 135, + "name": "onlyRole", + "nameLocations": [ + "4291:8:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 40, + "src": "4291:8:0" + }, + "nodeType": "ModifierInvocation", + "src": "4291:28:0" + } + ], + "name": "grantRole", + "nameLocation": "4235:9:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 134, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 131, + "mutability": "mutable", + "name": "role", + "nameLocation": "4253:4:0", + "nodeType": "VariableDeclaration", + "scope": 147, + "src": "4245:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 130, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4245:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 133, + "mutability": "mutable", + "name": "account", + "nameLocation": "4267:7:0", + "nodeType": "VariableDeclaration", + "scope": 147, + "src": "4259:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 132, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4259:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4244:31:0" + }, + "returnParameters": { + "id": 140, + "nodeType": "ParameterList", + "parameters": [], + "src": "4320:0:0" + }, + "scope": 295, + "src": "4226:136:0", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 369 + ], + "body": { + "id": 165, + "nodeType": "Block", + "src": "4737:43:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 161, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 150, + "src": "4759:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 162, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 152, + "src": "4765:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 160, + "name": "_revokeRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 294, + "src": "4747:11:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) returns (bool)" + } + }, + "id": 163, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4747:26:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 164, + "nodeType": "ExpressionStatement", + "src": "4747:26:0" + } + ] + }, + "documentation": { + "id": 148, + "nodeType": "StructuredDocumentation", + "src": "4368:269:0", + "text": " @dev Revokes `role` from `account`.\n If `account` had been granted `role`, emits a {RoleRevoked} event.\n Requirements:\n - the caller must have ``role``'s admin role.\n May emit a {RoleRevoked} event." + }, + "functionSelector": "d547741f", + "id": 166, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 156, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 150, + "src": "4730:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 155, + "name": "getRoleAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 128, + "src": "4717:12:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$", + "typeString": "function (bytes32) view returns (bytes32)" + } + }, + "id": 157, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4717:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 158, + "kind": "modifierInvocation", + "modifierName": { + "id": 154, + "name": "onlyRole", + "nameLocations": [ + "4708:8:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 40, + "src": "4708:8:0" + }, + "nodeType": "ModifierInvocation", + "src": "4708:28:0" + } + ], + "name": "revokeRole", + "nameLocation": "4651:10:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 153, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 150, + "mutability": "mutable", + "name": "role", + "nameLocation": "4670:4:0", + "nodeType": "VariableDeclaration", + "scope": 166, + "src": "4662:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 149, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4662:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 152, + "mutability": "mutable", + "name": "account", + "nameLocation": "4684:7:0", + "nodeType": "VariableDeclaration", + "scope": 166, + "src": "4676:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 151, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4676:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4661:31:0" + }, + "returnParameters": { + "id": 159, + "nodeType": "ParameterList", + "parameters": [], + "src": "4737:0:0" + }, + "scope": 295, + "src": "4642:138:0", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 377 + ], + "body": { + "id": 188, + "nodeType": "Block", + "src": "5407:166:0", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 174, + "name": "callerConfirmation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 171, + "src": "5421:18:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 175, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1942, + "src": "5443:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5443:12:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5421:34:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 182, + "nodeType": "IfStatement", + "src": "5417:102:0", + "trueBody": { + "id": 181, + "nodeType": "Block", + "src": "5457:62:0", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 178, + "name": "AccessControlBadConfirmation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 308, + "src": "5478:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5478:30:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 180, + "nodeType": "RevertStatement", + "src": "5471:37:0" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 184, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 169, + "src": "5541:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 185, + "name": "callerConfirmation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 171, + "src": "5547:18:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 183, + "name": "_revokeRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 294, + "src": "5529:11:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) returns (bool)" + } + }, + "id": 186, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5529:37:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 187, + "nodeType": "ExpressionStatement", + "src": "5529:37:0" + } + ] + }, + "documentation": { + "id": 167, + "nodeType": "StructuredDocumentation", + "src": "4786:537:0", + "text": " @dev Revokes `role` from the calling account.\n Roles are often managed via {grantRole} and {revokeRole}: this function's\n purpose is to provide a mechanism for accounts to lose their privileges\n if they are compromised (such as when a trusted device is misplaced).\n If the calling account had been revoked `role`, emits a {RoleRevoked}\n event.\n Requirements:\n - the caller must be `callerConfirmation`.\n May emit a {RoleRevoked} event." + }, + "functionSelector": "36568abe", + "id": 189, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "renounceRole", + "nameLocation": "5337:12:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 172, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 169, + "mutability": "mutable", + "name": "role", + "nameLocation": "5358:4:0", + "nodeType": "VariableDeclaration", + "scope": 189, + "src": "5350:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 168, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5350:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 171, + "mutability": "mutable", + "name": "callerConfirmation", + "nameLocation": "5372:18:0", + "nodeType": "VariableDeclaration", + "scope": 189, + "src": "5364:26:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 170, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5364:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5349:42:0" + }, + "returnParameters": { + "id": 173, + "nodeType": "ParameterList", + "parameters": [], + "src": "5407:0:0" + }, + "scope": 295, + "src": "5328:245:0", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 216, + "nodeType": "Block", + "src": "5771:174:0", + "statements": [ + { + "assignments": [ + 198 + ], + "declarations": [ + { + "constant": false, + "id": 198, + "mutability": "mutable", + "name": "previousAdminRole", + "nameLocation": "5789:17:0", + "nodeType": "VariableDeclaration", + "scope": 216, + "src": "5781:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 197, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5781:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 202, + "initialValue": { + "arguments": [ + { + "id": 200, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 192, + "src": "5822:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 199, + "name": "getRoleAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 128, + "src": "5809:12:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$", + "typeString": "function (bytes32) view returns (bytes32)" + } + }, + "id": 201, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5809:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5781:46:0" + }, + { + "expression": { + "id": 208, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "baseExpression": { + "id": 203, + "name": "_roles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26, + "src": "5837:6:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$21_storage_$", + "typeString": "mapping(bytes32 => struct AccessControl.RoleData storage ref)" + } + }, + "id": 205, + "indexExpression": { + "id": 204, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 192, + "src": "5844:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5837:12:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RoleData_$21_storage", + "typeString": "struct AccessControl.RoleData storage ref" + } + }, + "id": 206, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "5850:9:0", + "memberName": "adminRole", + "nodeType": "MemberAccess", + "referencedDeclaration": 20, + "src": "5837:22:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 207, + "name": "adminRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 194, + "src": "5862:9:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "5837:34:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 209, + "nodeType": "ExpressionStatement", + "src": "5837:34:0" + }, + { + "eventCall": { + "arguments": [ + { + "id": 211, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 192, + "src": "5903:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 212, + "name": "previousAdminRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 198, + "src": "5909:17:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 213, + "name": "adminRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 194, + "src": "5928:9:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 210, + "name": "RoleAdminChanged", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 317, + "src": "5886:16:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$__$", + "typeString": "function (bytes32,bytes32,bytes32)" + } + }, + "id": 214, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5886:52:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 215, + "nodeType": "EmitStatement", + "src": "5881:57:0" + } + ] + }, + "documentation": { + "id": 190, + "nodeType": "StructuredDocumentation", + "src": "5579:114:0", + "text": " @dev Sets `adminRole` as ``role``'s admin role.\n Emits a {RoleAdminChanged} event." + }, + "id": 217, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setRoleAdmin", + "nameLocation": "5707:13:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 195, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 192, + "mutability": "mutable", + "name": "role", + "nameLocation": "5729:4:0", + "nodeType": "VariableDeclaration", + "scope": 217, + "src": "5721:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 191, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5721:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 194, + "mutability": "mutable", + "name": "adminRole", + "nameLocation": "5743:9:0", + "nodeType": "VariableDeclaration", + "scope": 217, + "src": "5735:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 193, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5735:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "5720:33:0" + }, + "returnParameters": { + "id": 196, + "nodeType": "ParameterList", + "parameters": [], + "src": "5771:0:0" + }, + "scope": 295, + "src": "5698:247:0", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 255, + "nodeType": "Block", + "src": "6262:233:0", + "statements": [ + { + "condition": { + "id": 231, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "6276:23:0", + "subExpression": { + "arguments": [ + { + "id": 228, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 220, + "src": "6285:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 229, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 222, + "src": "6291:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 227, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 80, + "src": "6277:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 230, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6277:22:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 253, + "nodeType": "Block", + "src": "6452:37:0", + "statements": [ + { + "expression": { + "hexValue": "66616c7365", + "id": 251, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6473:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 226, + "id": 252, + "nodeType": "Return", + "src": "6466:12:0" + } + ] + }, + "id": 254, + "nodeType": "IfStatement", + "src": "6272:217:0", + "trueBody": { + "id": 250, + "nodeType": "Block", + "src": "6301:145:0", + "statements": [ + { + "expression": { + "id": 239, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "baseExpression": { + "id": 232, + "name": "_roles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26, + "src": "6315:6:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$21_storage_$", + "typeString": "mapping(bytes32 => struct AccessControl.RoleData storage ref)" + } + }, + "id": 234, + "indexExpression": { + "id": 233, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 220, + "src": "6322:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6315:12:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RoleData_$21_storage", + "typeString": "struct AccessControl.RoleData storage ref" + } + }, + "id": 235, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6328:7:0", + "memberName": "hasRole", + "nodeType": "MemberAccess", + "referencedDeclaration": 18, + "src": "6315:20:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 237, + "indexExpression": { + "id": 236, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 222, + "src": "6336:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6315:29:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 238, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6347:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "6315:36:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 240, + "nodeType": "ExpressionStatement", + "src": "6315:36:0" + }, + { + "eventCall": { + "arguments": [ + { + "id": 242, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 220, + "src": "6382:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 243, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 222, + "src": "6388:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 244, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1942, + "src": "6397:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 245, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6397:12:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 241, + "name": "RoleGranted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 326, + "src": "6370:11:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$returns$__$", + "typeString": "function (bytes32,address,address)" + } + }, + "id": 246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6370:40:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 247, + "nodeType": "EmitStatement", + "src": "6365:45:0" + }, + { + "expression": { + "hexValue": "74727565", + "id": 248, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6431:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 226, + "id": 249, + "nodeType": "Return", + "src": "6424:11:0" + } + ] + } + } + ] + }, + "documentation": { + "id": 218, + "nodeType": "StructuredDocumentation", + "src": "5951:223:0", + "text": " @dev Attempts to grant `role` to `account` and returns a boolean indicating if `role` was granted.\n Internal function without access restriction.\n May emit a {RoleGranted} event." + }, + "id": 256, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_grantRole", + "nameLocation": "6188:10:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 223, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 220, + "mutability": "mutable", + "name": "role", + "nameLocation": "6207:4:0", + "nodeType": "VariableDeclaration", + "scope": 256, + "src": "6199:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 219, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6199:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 222, + "mutability": "mutable", + "name": "account", + "nameLocation": "6221:7:0", + "nodeType": "VariableDeclaration", + "scope": 256, + "src": "6213:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 221, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6213:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "6198:31:0" + }, + "returnParameters": { + "id": 226, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 225, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 256, + "src": "6256:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 224, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6256:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "6255:6:0" + }, + "scope": 295, + "src": "6179:316:0", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 293, + "nodeType": "Block", + "src": "6814:233:0", + "statements": [ + { + "condition": { + "arguments": [ + { + "id": 267, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 259, + "src": "6836:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 268, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 261, + "src": "6842:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 266, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 80, + "src": "6828:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 269, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6828:22:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 291, + "nodeType": "Block", + "src": "7004:37:0", + "statements": [ + { + "expression": { + "hexValue": "66616c7365", + "id": 289, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7025:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 265, + "id": 290, + "nodeType": "Return", + "src": "7018:12:0" + } + ] + }, + "id": 292, + "nodeType": "IfStatement", + "src": "6824:217:0", + "trueBody": { + "id": 288, + "nodeType": "Block", + "src": "6852:146:0", + "statements": [ + { + "expression": { + "id": 277, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "baseExpression": { + "id": 270, + "name": "_roles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26, + "src": "6866:6:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$21_storage_$", + "typeString": "mapping(bytes32 => struct AccessControl.RoleData storage ref)" + } + }, + "id": 272, + "indexExpression": { + "id": 271, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 259, + "src": "6873:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6866:12:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RoleData_$21_storage", + "typeString": "struct AccessControl.RoleData storage ref" + } + }, + "id": 273, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6879:7:0", + "memberName": "hasRole", + "nodeType": "MemberAccess", + "referencedDeclaration": 18, + "src": "6866:20:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 275, + "indexExpression": { + "id": 274, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 261, + "src": "6887:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6866:29:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "66616c7365", + "id": 276, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6898:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "6866:37:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 278, + "nodeType": "ExpressionStatement", + "src": "6866:37:0" + }, + { + "eventCall": { + "arguments": [ + { + "id": 280, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 259, + "src": "6934:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 281, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 261, + "src": "6940:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 282, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1942, + "src": "6949:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6949:12:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 279, + "name": "RoleRevoked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 335, + "src": "6922:11:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$returns$__$", + "typeString": "function (bytes32,address,address)" + } + }, + "id": 284, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6922:40:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 285, + "nodeType": "EmitStatement", + "src": "6917:45:0" + }, + { + "expression": { + "hexValue": "74727565", + "id": 286, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6983:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 265, + "id": 287, + "nodeType": "Return", + "src": "6976:11:0" + } + ] + } + } + ] + }, + "documentation": { + "id": 257, + "nodeType": "StructuredDocumentation", + "src": "6501:224:0", + "text": " @dev Attempts to revoke `role` to `account` and returns a boolean indicating if `role` was revoked.\n Internal function without access restriction.\n May emit a {RoleRevoked} event." + }, + "id": 294, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_revokeRole", + "nameLocation": "6739:11:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 262, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 259, + "mutability": "mutable", + "name": "role", + "nameLocation": "6759:4:0", + "nodeType": "VariableDeclaration", + "scope": 294, + "src": "6751:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 258, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6751:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 261, + "mutability": "mutable", + "name": "account", + "nameLocation": "6773:7:0", + "nodeType": "VariableDeclaration", + "scope": 294, + "src": "6765:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 260, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6765:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "6750:31:0" + }, + "returnParameters": { + "id": 265, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 264, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 294, + "src": "6808:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 263, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6808:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "6807:6:0" + }, + "scope": 295, + "src": "6730:317:0", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 296, + "src": "1953:5096:0", + "usedErrors": [ + 305, + 308 + ], + "usedEvents": [ + 317, + 326, + 335 + ] + } + ], + "src": "108:6942:0" + }, + "id": 0 + }, + "@openzeppelin/contracts/access/IAccessControl.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/access/IAccessControl.sol", + "exportedSymbols": { + "IAccessControl": [ + 378 + ] + }, + "id": 379, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 297, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "109:24:1" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IAccessControl", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 298, + "nodeType": "StructuredDocumentation", + "src": "135:89:1", + "text": " @dev External interface of AccessControl declared to support ERC165 detection." + }, + "fullyImplemented": false, + "id": 378, + "linearizedBaseContracts": [ + 378 + ], + "name": "IAccessControl", + "nameLocation": "235:14:1", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 299, + "nodeType": "StructuredDocumentation", + "src": "256:56:1", + "text": " @dev The `account` is missing a role." + }, + "errorSelector": "e2517d3f", + "id": 305, + "name": "AccessControlUnauthorizedAccount", + "nameLocation": "323:32:1", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 304, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 301, + "mutability": "mutable", + "name": "account", + "nameLocation": "364:7:1", + "nodeType": "VariableDeclaration", + "scope": 305, + "src": "356:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 300, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "356:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 303, + "mutability": "mutable", + "name": "neededRole", + "nameLocation": "381:10:1", + "nodeType": "VariableDeclaration", + "scope": 305, + "src": "373:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 302, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "373:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "355:37:1" + }, + "src": "317:76:1" + }, + { + "documentation": { + "id": 306, + "nodeType": "StructuredDocumentation", + "src": "399:148:1", + "text": " @dev The caller of a function is not the expected one.\n NOTE: Don't confuse with {AccessControlUnauthorizedAccount}." + }, + "errorSelector": "6697b232", + "id": 308, + "name": "AccessControlBadConfirmation", + "nameLocation": "558:28:1", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 307, + "nodeType": "ParameterList", + "parameters": [], + "src": "586:2:1" + }, + "src": "552:37:1" + }, + { + "anonymous": false, + "documentation": { + "id": 309, + "nodeType": "StructuredDocumentation", + "src": "595:254:1", + "text": " @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\n `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\n {RoleAdminChanged} not being emitted signaling this." + }, + "eventSelector": "bd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff", + "id": 317, + "name": "RoleAdminChanged", + "nameLocation": "860:16:1", + "nodeType": "EventDefinition", + "parameters": { + "id": 316, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 311, + "indexed": true, + "mutability": "mutable", + "name": "role", + "nameLocation": "893:4:1", + "nodeType": "VariableDeclaration", + "scope": 317, + "src": "877:20:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 310, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "877:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 313, + "indexed": true, + "mutability": "mutable", + "name": "previousAdminRole", + "nameLocation": "915:17:1", + "nodeType": "VariableDeclaration", + "scope": 317, + "src": "899:33:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 312, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "899:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 315, + "indexed": true, + "mutability": "mutable", + "name": "newAdminRole", + "nameLocation": "950:12:1", + "nodeType": "VariableDeclaration", + "scope": 317, + "src": "934:28:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 314, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "934:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "876:87:1" + }, + "src": "854:110:1" + }, + { + "anonymous": false, + "documentation": { + "id": 318, + "nodeType": "StructuredDocumentation", + "src": "970:212:1", + "text": " @dev Emitted when `account` is granted `role`.\n `sender` is the account that originated the contract call, an admin role\n bearer except when using {AccessControl-_setupRole}." + }, + "eventSelector": "2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", + "id": 326, + "name": "RoleGranted", + "nameLocation": "1193:11:1", + "nodeType": "EventDefinition", + "parameters": { + "id": 325, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 320, + "indexed": true, + "mutability": "mutable", + "name": "role", + "nameLocation": "1221:4:1", + "nodeType": "VariableDeclaration", + "scope": 326, + "src": "1205:20:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 319, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1205:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 322, + "indexed": true, + "mutability": "mutable", + "name": "account", + "nameLocation": "1243:7:1", + "nodeType": "VariableDeclaration", + "scope": 326, + "src": "1227:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 321, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1227:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 324, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nameLocation": "1268:6:1", + "nodeType": "VariableDeclaration", + "scope": 326, + "src": "1252:22:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 323, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1252:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1204:71:1" + }, + "src": "1187:89:1" + }, + { + "anonymous": false, + "documentation": { + "id": 327, + "nodeType": "StructuredDocumentation", + "src": "1282:275:1", + "text": " @dev Emitted when `account` is revoked `role`.\n `sender` is the account that originated the contract call:\n - if using `revokeRole`, it is the admin role bearer\n - if using `renounceRole`, it is the role bearer (i.e. `account`)" + }, + "eventSelector": "f6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b", + "id": 335, + "name": "RoleRevoked", + "nameLocation": "1568:11:1", + "nodeType": "EventDefinition", + "parameters": { + "id": 334, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 329, + "indexed": true, + "mutability": "mutable", + "name": "role", + "nameLocation": "1596:4:1", + "nodeType": "VariableDeclaration", + "scope": 335, + "src": "1580:20:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 328, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1580:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 331, + "indexed": true, + "mutability": "mutable", + "name": "account", + "nameLocation": "1618:7:1", + "nodeType": "VariableDeclaration", + "scope": 335, + "src": "1602:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 330, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1602:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 333, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nameLocation": "1643:6:1", + "nodeType": "VariableDeclaration", + "scope": 335, + "src": "1627:22:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 332, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1627:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1579:71:1" + }, + "src": "1562:89:1" + }, + { + "documentation": { + "id": 336, + "nodeType": "StructuredDocumentation", + "src": "1657:76:1", + "text": " @dev Returns `true` if `account` has been granted `role`." + }, + "functionSelector": "91d14854", + "id": 345, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "hasRole", + "nameLocation": "1747:7:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 341, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 338, + "mutability": "mutable", + "name": "role", + "nameLocation": "1763:4:1", + "nodeType": "VariableDeclaration", + "scope": 345, + "src": "1755:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 337, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1755:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 340, + "mutability": "mutable", + "name": "account", + "nameLocation": "1777:7:1", + "nodeType": "VariableDeclaration", + "scope": 345, + "src": "1769:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 339, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1769:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1754:31:1" + }, + "returnParameters": { + "id": 344, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 343, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 345, + "src": "1809:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 342, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1809:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1808:6:1" + }, + "scope": 378, + "src": "1738:77:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 346, + "nodeType": "StructuredDocumentation", + "src": "1821:184:1", + "text": " @dev Returns the admin role that controls `role`. See {grantRole} and\n {revokeRole}.\n To change a role's admin, use {AccessControl-_setRoleAdmin}." + }, + "functionSelector": "248a9ca3", + "id": 353, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getRoleAdmin", + "nameLocation": "2019:12:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 349, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 348, + "mutability": "mutable", + "name": "role", + "nameLocation": "2040:4:1", + "nodeType": "VariableDeclaration", + "scope": 353, + "src": "2032:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 347, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2032:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2031:14:1" + }, + "returnParameters": { + "id": 352, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 351, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 353, + "src": "2069:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 350, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2069:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2068:9:1" + }, + "scope": 378, + "src": "2010:68:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 354, + "nodeType": "StructuredDocumentation", + "src": "2084:239:1", + "text": " @dev Grants `role` to `account`.\n If `account` had not been already granted `role`, emits a {RoleGranted}\n event.\n Requirements:\n - the caller must have ``role``'s admin role." + }, + "functionSelector": "2f2ff15d", + "id": 361, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "grantRole", + "nameLocation": "2337:9:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 359, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 356, + "mutability": "mutable", + "name": "role", + "nameLocation": "2355:4:1", + "nodeType": "VariableDeclaration", + "scope": 361, + "src": "2347:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 355, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2347:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 358, + "mutability": "mutable", + "name": "account", + "nameLocation": "2369:7:1", + "nodeType": "VariableDeclaration", + "scope": 361, + "src": "2361:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 357, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2361:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2346:31:1" + }, + "returnParameters": { + "id": 360, + "nodeType": "ParameterList", + "parameters": [], + "src": "2386:0:1" + }, + "scope": 378, + "src": "2328:59:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 362, + "nodeType": "StructuredDocumentation", + "src": "2393:223:1", + "text": " @dev Revokes `role` from `account`.\n If `account` had been granted `role`, emits a {RoleRevoked} event.\n Requirements:\n - the caller must have ``role``'s admin role." + }, + "functionSelector": "d547741f", + "id": 369, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "revokeRole", + "nameLocation": "2630:10:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 367, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 364, + "mutability": "mutable", + "name": "role", + "nameLocation": "2649:4:1", + "nodeType": "VariableDeclaration", + "scope": 369, + "src": "2641:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 363, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2641:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 366, + "mutability": "mutable", + "name": "account", + "nameLocation": "2663:7:1", + "nodeType": "VariableDeclaration", + "scope": 369, + "src": "2655:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 365, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2655:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2640:31:1" + }, + "returnParameters": { + "id": 368, + "nodeType": "ParameterList", + "parameters": [], + "src": "2680:0:1" + }, + "scope": 378, + "src": "2621:60:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 370, + "nodeType": "StructuredDocumentation", + "src": "2687:491:1", + "text": " @dev Revokes `role` from the calling account.\n Roles are often managed via {grantRole} and {revokeRole}: this function's\n purpose is to provide a mechanism for accounts to lose their privileges\n if they are compromised (such as when a trusted device is misplaced).\n If the calling account had been granted `role`, emits a {RoleRevoked}\n event.\n Requirements:\n - the caller must be `callerConfirmation`." + }, + "functionSelector": "36568abe", + "id": 377, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "renounceRole", + "nameLocation": "3192:12:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 375, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 372, + "mutability": "mutable", + "name": "role", + "nameLocation": "3213:4:1", + "nodeType": "VariableDeclaration", + "scope": 377, + "src": "3205:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 371, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3205:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 374, + "mutability": "mutable", + "name": "callerConfirmation", + "nameLocation": "3227:18:1", + "nodeType": "VariableDeclaration", + "scope": 377, + "src": "3219:26:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 373, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3219:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3204:42:1" + }, + "returnParameters": { + "id": 376, + "nodeType": "ParameterList", + "parameters": [], + "src": "3255:0:1" + }, + "scope": 378, + "src": "3183:73:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 379, + "src": "225:3033:1", + "usedErrors": [ + 305, + 308 + ], + "usedEvents": [ + 317, + 326, + 335 + ] + } + ], + "src": "109:3150:1" + }, + "id": 1 + }, + "@openzeppelin/contracts/interfaces/draft-IERC6093.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/interfaces/draft-IERC6093.sol", + "exportedSymbols": { + "IERC1155Errors": [ + 515 + ], + "IERC20Errors": [ + 420 + ], + "IERC721Errors": [ + 468 + ] + }, + "id": 516, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 380, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "112:24:2" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC20Errors", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 381, + "nodeType": "StructuredDocumentation", + "src": "138:139:2", + "text": " @dev Standard ERC20 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 tokens." + }, + "fullyImplemented": true, + "id": 420, + "linearizedBaseContracts": [ + 420 + ], + "name": "IERC20Errors", + "nameLocation": "288:12:2", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 382, + "nodeType": "StructuredDocumentation", + "src": "307:309:2", + "text": " @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param balance Current balance for the interacting account.\n @param needed Minimum amount required to perform a transfer." + }, + "errorSelector": "e450d38c", + "id": 390, + "name": "ERC20InsufficientBalance", + "nameLocation": "627:24:2", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 389, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 384, + "mutability": "mutable", + "name": "sender", + "nameLocation": "660:6:2", + "nodeType": "VariableDeclaration", + "scope": 390, + "src": "652:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 383, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "652:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 386, + "mutability": "mutable", + "name": "balance", + "nameLocation": "676:7:2", + "nodeType": "VariableDeclaration", + "scope": 390, + "src": "668:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 385, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "668:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 388, + "mutability": "mutable", + "name": "needed", + "nameLocation": "693:6:2", + "nodeType": "VariableDeclaration", + "scope": 390, + "src": "685:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 387, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "685:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "651:49:2" + }, + "src": "621:80:2" + }, + { + "documentation": { + "id": 391, + "nodeType": "StructuredDocumentation", + "src": "707:152:2", + "text": " @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred." + }, + "errorSelector": "96c6fd1e", + "id": 395, + "name": "ERC20InvalidSender", + "nameLocation": "870:18:2", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 394, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 393, + "mutability": "mutable", + "name": "sender", + "nameLocation": "897:6:2", + "nodeType": "VariableDeclaration", + "scope": 395, + "src": "889:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 392, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "889:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "888:16:2" + }, + "src": "864:41:2" + }, + { + "documentation": { + "id": 396, + "nodeType": "StructuredDocumentation", + "src": "911:159:2", + "text": " @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred." + }, + "errorSelector": "ec442f05", + "id": 400, + "name": "ERC20InvalidReceiver", + "nameLocation": "1081:20:2", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 399, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 398, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "1110:8:2", + "nodeType": "VariableDeclaration", + "scope": 400, + "src": "1102:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 397, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1102:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1101:18:2" + }, + "src": "1075:45:2" + }, + { + "documentation": { + "id": 401, + "nodeType": "StructuredDocumentation", + "src": "1126:345:2", + "text": " @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers.\n @param spender Address that may be allowed to operate on tokens without being their owner.\n @param allowance Amount of tokens a `spender` is allowed to operate with.\n @param needed Minimum amount required to perform a transfer." + }, + "errorSelector": "fb8f41b2", + "id": 409, + "name": "ERC20InsufficientAllowance", + "nameLocation": "1482:26:2", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 408, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 403, + "mutability": "mutable", + "name": "spender", + "nameLocation": "1517:7:2", + "nodeType": "VariableDeclaration", + "scope": 409, + "src": "1509:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 402, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1509:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 405, + "mutability": "mutable", + "name": "allowance", + "nameLocation": "1534:9:2", + "nodeType": "VariableDeclaration", + "scope": 409, + "src": "1526:17:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 404, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1526:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 407, + "mutability": "mutable", + "name": "needed", + "nameLocation": "1553:6:2", + "nodeType": "VariableDeclaration", + "scope": 409, + "src": "1545:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 406, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1545:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1508:52:2" + }, + "src": "1476:85:2" + }, + { + "documentation": { + "id": 410, + "nodeType": "StructuredDocumentation", + "src": "1567:174:2", + "text": " @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation." + }, + "errorSelector": "e602df05", + "id": 414, + "name": "ERC20InvalidApprover", + "nameLocation": "1752:20:2", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 413, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 412, + "mutability": "mutable", + "name": "approver", + "nameLocation": "1781:8:2", + "nodeType": "VariableDeclaration", + "scope": 414, + "src": "1773:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 411, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1773:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1772:18:2" + }, + "src": "1746:45:2" + }, + { + "documentation": { + "id": 415, + "nodeType": "StructuredDocumentation", + "src": "1797:195:2", + "text": " @dev Indicates a failure with the `spender` to be approved. Used in approvals.\n @param spender Address that may be allowed to operate on tokens without being their owner." + }, + "errorSelector": "94280d62", + "id": 419, + "name": "ERC20InvalidSpender", + "nameLocation": "2003:19:2", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 418, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 417, + "mutability": "mutable", + "name": "spender", + "nameLocation": "2031:7:2", + "nodeType": "VariableDeclaration", + "scope": 419, + "src": "2023:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 416, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2023:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2022:17:2" + }, + "src": "1997:43:2" + } + ], + "scope": 516, + "src": "278:1764:2", + "usedErrors": [ + 390, + 395, + 400, + 409, + 414, + 419 + ], + "usedEvents": [] + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC721Errors", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 421, + "nodeType": "StructuredDocumentation", + "src": "2044:141:2", + "text": " @dev Standard ERC721 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC721 tokens." + }, + "fullyImplemented": true, + "id": 468, + "linearizedBaseContracts": [ + 468 + ], + "name": "IERC721Errors", + "nameLocation": "2196:13:2", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 422, + "nodeType": "StructuredDocumentation", + "src": "2216:219:2", + "text": " @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20.\n Used in balance queries.\n @param owner Address of the current owner of a token." + }, + "errorSelector": "89c62b64", + "id": 426, + "name": "ERC721InvalidOwner", + "nameLocation": "2446:18:2", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 425, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 424, + "mutability": "mutable", + "name": "owner", + "nameLocation": "2473:5:2", + "nodeType": "VariableDeclaration", + "scope": 426, + "src": "2465:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 423, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2465:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2464:15:2" + }, + "src": "2440:40:2" + }, + { + "documentation": { + "id": 427, + "nodeType": "StructuredDocumentation", + "src": "2486:132:2", + "text": " @dev Indicates a `tokenId` whose `owner` is the zero address.\n @param tokenId Identifier number of a token." + }, + "errorSelector": "7e273289", + "id": 431, + "name": "ERC721NonexistentToken", + "nameLocation": "2629:22:2", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 430, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 429, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "2660:7:2", + "nodeType": "VariableDeclaration", + "scope": 431, + "src": "2652:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 428, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2652:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2651:17:2" + }, + "src": "2623:46:2" + }, + { + "documentation": { + "id": 432, + "nodeType": "StructuredDocumentation", + "src": "2675:289:2", + "text": " @dev Indicates an error related to the ownership over a particular token. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param tokenId Identifier number of a token.\n @param owner Address of the current owner of a token." + }, + "errorSelector": "64283d7b", + "id": 440, + "name": "ERC721IncorrectOwner", + "nameLocation": "2975:20:2", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 439, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 434, + "mutability": "mutable", + "name": "sender", + "nameLocation": "3004:6:2", + "nodeType": "VariableDeclaration", + "scope": 440, + "src": "2996:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 433, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2996:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 436, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "3020:7:2", + "nodeType": "VariableDeclaration", + "scope": 440, + "src": "3012:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 435, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3012:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 438, + "mutability": "mutable", + "name": "owner", + "nameLocation": "3037:5:2", + "nodeType": "VariableDeclaration", + "scope": 440, + "src": "3029:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 437, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3029:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2995:48:2" + }, + "src": "2969:75:2" + }, + { + "documentation": { + "id": 441, + "nodeType": "StructuredDocumentation", + "src": "3050:152:2", + "text": " @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred." + }, + "errorSelector": "73c6ac6e", + "id": 445, + "name": "ERC721InvalidSender", + "nameLocation": "3213:19:2", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 444, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 443, + "mutability": "mutable", + "name": "sender", + "nameLocation": "3241:6:2", + "nodeType": "VariableDeclaration", + "scope": 445, + "src": "3233:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 442, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3233:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3232:16:2" + }, + "src": "3207:42:2" + }, + { + "documentation": { + "id": 446, + "nodeType": "StructuredDocumentation", + "src": "3255:159:2", + "text": " @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred." + }, + "errorSelector": "64a0ae92", + "id": 450, + "name": "ERC721InvalidReceiver", + "nameLocation": "3425:21:2", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 449, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 448, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "3455:8:2", + "nodeType": "VariableDeclaration", + "scope": 450, + "src": "3447:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 447, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3447:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3446:18:2" + }, + "src": "3419:46:2" + }, + { + "documentation": { + "id": 451, + "nodeType": "StructuredDocumentation", + "src": "3471:247:2", + "text": " @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n @param operator Address that may be allowed to operate on tokens without being their owner.\n @param tokenId Identifier number of a token." + }, + "errorSelector": "177e802f", + "id": 457, + "name": "ERC721InsufficientApproval", + "nameLocation": "3729:26:2", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 456, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 453, + "mutability": "mutable", + "name": "operator", + "nameLocation": "3764:8:2", + "nodeType": "VariableDeclaration", + "scope": 457, + "src": "3756:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 452, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3756:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 455, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "3782:7:2", + "nodeType": "VariableDeclaration", + "scope": 457, + "src": "3774:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 454, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3774:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3755:35:2" + }, + "src": "3723:68:2" + }, + { + "documentation": { + "id": 458, + "nodeType": "StructuredDocumentation", + "src": "3797:174:2", + "text": " @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation." + }, + "errorSelector": "a9fbf51f", + "id": 462, + "name": "ERC721InvalidApprover", + "nameLocation": "3982:21:2", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 461, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 460, + "mutability": "mutable", + "name": "approver", + "nameLocation": "4012:8:2", + "nodeType": "VariableDeclaration", + "scope": 462, + "src": "4004:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 459, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4004:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4003:18:2" + }, + "src": "3976:46:2" + }, + { + "documentation": { + "id": 463, + "nodeType": "StructuredDocumentation", + "src": "4028:197:2", + "text": " @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n @param operator Address that may be allowed to operate on tokens without being their owner." + }, + "errorSelector": "5b08ba18", + "id": 467, + "name": "ERC721InvalidOperator", + "nameLocation": "4236:21:2", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 466, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 465, + "mutability": "mutable", + "name": "operator", + "nameLocation": "4266:8:2", + "nodeType": "VariableDeclaration", + "scope": 467, + "src": "4258:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 464, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4258:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4257:18:2" + }, + "src": "4230:46:2" + } + ], + "scope": 516, + "src": "2186:2092:2", + "usedErrors": [ + 426, + 431, + 440, + 445, + 450, + 457, + 462, + 467 + ], + "usedEvents": [] + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC1155Errors", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 469, + "nodeType": "StructuredDocumentation", + "src": "4280:143:2", + "text": " @dev Standard ERC1155 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 tokens." + }, + "fullyImplemented": true, + "id": 515, + "linearizedBaseContracts": [ + 515 + ], + "name": "IERC1155Errors", + "nameLocation": "4434:14:2", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 470, + "nodeType": "StructuredDocumentation", + "src": "4455:361:2", + "text": " @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param balance Current balance for the interacting account.\n @param needed Minimum amount required to perform a transfer.\n @param tokenId Identifier number of a token." + }, + "errorSelector": "03dee4c5", + "id": 480, + "name": "ERC1155InsufficientBalance", + "nameLocation": "4827:26:2", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 479, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 472, + "mutability": "mutable", + "name": "sender", + "nameLocation": "4862:6:2", + "nodeType": "VariableDeclaration", + "scope": 480, + "src": "4854:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 471, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4854:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 474, + "mutability": "mutable", + "name": "balance", + "nameLocation": "4878:7:2", + "nodeType": "VariableDeclaration", + "scope": 480, + "src": "4870:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 473, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4870:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 476, + "mutability": "mutable", + "name": "needed", + "nameLocation": "4895:6:2", + "nodeType": "VariableDeclaration", + "scope": 480, + "src": "4887:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 475, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4887:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 478, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "4911:7:2", + "nodeType": "VariableDeclaration", + "scope": 480, + "src": "4903:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 477, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4903:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4853:66:2" + }, + "src": "4821:99:2" + }, + { + "documentation": { + "id": 481, + "nodeType": "StructuredDocumentation", + "src": "4926:152:2", + "text": " @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred." + }, + "errorSelector": "01a83514", + "id": 485, + "name": "ERC1155InvalidSender", + "nameLocation": "5089:20:2", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 484, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 483, + "mutability": "mutable", + "name": "sender", + "nameLocation": "5118:6:2", + "nodeType": "VariableDeclaration", + "scope": 485, + "src": "5110:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 482, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5110:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5109:16:2" + }, + "src": "5083:43:2" + }, + { + "documentation": { + "id": 486, + "nodeType": "StructuredDocumentation", + "src": "5132:159:2", + "text": " @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred." + }, + "errorSelector": "57f447ce", + "id": 490, + "name": "ERC1155InvalidReceiver", + "nameLocation": "5302:22:2", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 489, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 488, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "5333:8:2", + "nodeType": "VariableDeclaration", + "scope": 490, + "src": "5325:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 487, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5325:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5324:18:2" + }, + "src": "5296:47:2" + }, + { + "documentation": { + "id": 491, + "nodeType": "StructuredDocumentation", + "src": "5349:256:2", + "text": " @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n @param operator Address that may be allowed to operate on tokens without being their owner.\n @param owner Address of the current owner of a token." + }, + "errorSelector": "e237d922", + "id": 497, + "name": "ERC1155MissingApprovalForAll", + "nameLocation": "5616:28:2", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 496, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 493, + "mutability": "mutable", + "name": "operator", + "nameLocation": "5653:8:2", + "nodeType": "VariableDeclaration", + "scope": 497, + "src": "5645:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 492, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5645:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 495, + "mutability": "mutable", + "name": "owner", + "nameLocation": "5671:5:2", + "nodeType": "VariableDeclaration", + "scope": 497, + "src": "5663:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 494, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5663:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5644:33:2" + }, + "src": "5610:68:2" + }, + { + "documentation": { + "id": 498, + "nodeType": "StructuredDocumentation", + "src": "5684:174:2", + "text": " @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation." + }, + "errorSelector": "3e31884e", + "id": 502, + "name": "ERC1155InvalidApprover", + "nameLocation": "5869:22:2", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 501, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 500, + "mutability": "mutable", + "name": "approver", + "nameLocation": "5900:8:2", + "nodeType": "VariableDeclaration", + "scope": 502, + "src": "5892:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 499, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5892:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5891:18:2" + }, + "src": "5863:47:2" + }, + { + "documentation": { + "id": 503, + "nodeType": "StructuredDocumentation", + "src": "5916:197:2", + "text": " @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n @param operator Address that may be allowed to operate on tokens without being their owner." + }, + "errorSelector": "ced3e100", + "id": 507, + "name": "ERC1155InvalidOperator", + "nameLocation": "6124:22:2", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 506, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 505, + "mutability": "mutable", + "name": "operator", + "nameLocation": "6155:8:2", + "nodeType": "VariableDeclaration", + "scope": 507, + "src": "6147:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 504, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6147:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "6146:18:2" + }, + "src": "6118:47:2" + }, + { + "documentation": { + "id": 508, + "nodeType": "StructuredDocumentation", + "src": "6171:280:2", + "text": " @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.\n Used in batch transfers.\n @param idsLength Length of the array of token identifiers\n @param valuesLength Length of the array of token amounts" + }, + "errorSelector": "5b059991", + "id": 514, + "name": "ERC1155InvalidArrayLength", + "nameLocation": "6462:25:2", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 513, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 510, + "mutability": "mutable", + "name": "idsLength", + "nameLocation": "6496:9:2", + "nodeType": "VariableDeclaration", + "scope": 514, + "src": "6488:17:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 509, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6488:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 512, + "mutability": "mutable", + "name": "valuesLength", + "nameLocation": "6515:12:2", + "nodeType": "VariableDeclaration", + "scope": 514, + "src": "6507:20:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 511, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6507:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6487:41:2" + }, + "src": "6456:73:2" + } + ], + "scope": 516, + "src": "4424:2107:2", + "usedErrors": [ + 480, + 485, + 490, + 497, + 502, + 507, + 514 + ], + "usedEvents": [] + } + ], + "src": "112:6420:2" + }, + "id": 2 + }, + "@openzeppelin/contracts/token/ERC1155/ERC1155.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC1155/ERC1155.sol", + "exportedSymbols": { + "Arrays": [ + 1930 + ], + "Context": [ + 1960 + ], + "ERC1155": [ + 1566 + ], + "ERC165": [ + 2349 + ], + "IERC1155": [ + 1689 + ], + "IERC1155Errors": [ + 515 + ], + "IERC1155MetadataURI": [ + 1747 + ], + "IERC1155Receiver": [ + 1731 + ], + "IERC165": [ + 2556 + ] + }, + "id": 1567, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 517, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "109:24:3" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC1155/IERC1155.sol", + "file": "./IERC1155.sol", + "id": 519, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1567, + "sourceUnit": 1690, + "src": "135:40:3", + "symbolAliases": [ + { + "foreign": { + "id": 518, + "name": "IERC1155", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1689, + "src": "143:8:3", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol", + "file": "./IERC1155Receiver.sol", + "id": 521, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1567, + "sourceUnit": 1732, + "src": "176:56:3", + "symbolAliases": [ + { + "foreign": { + "id": 520, + "name": "IERC1155Receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1731, + "src": "184:16:3", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol", + "file": "./extensions/IERC1155MetadataURI.sol", + "id": 523, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1567, + "sourceUnit": 1748, + "src": "233:73:3", + "symbolAliases": [ + { + "foreign": { + "id": 522, + "name": "IERC1155MetadataURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1747, + "src": "241:19:3", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Context.sol", + "file": "../../utils/Context.sol", + "id": 525, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1567, + "sourceUnit": 1961, + "src": "307:48:3", + "symbolAliases": [ + { + "foreign": { + "id": 524, + "name": "Context", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1960, + "src": "315:7:3", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/introspection/ERC165.sol", + "file": "../../utils/introspection/ERC165.sol", + "id": 528, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1567, + "sourceUnit": 2350, + "src": "356:69:3", + "symbolAliases": [ + { + "foreign": { + "id": 526, + "name": "IERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2556, + "src": "364:7:3", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 527, + "name": "ERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2349, + "src": "373:6:3", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Arrays.sol", + "file": "../../utils/Arrays.sol", + "id": 530, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1567, + "sourceUnit": 1931, + "src": "426:46:3", + "symbolAliases": [ + { + "foreign": { + "id": 529, + "name": "Arrays", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1930, + "src": "434:6:3", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/interfaces/draft-IERC6093.sol", + "file": "../../interfaces/draft-IERC6093.sol", + "id": 532, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1567, + "sourceUnit": 516, + "src": "473:67:3", + "symbolAliases": [ + { + "foreign": { + "id": 531, + "name": "IERC1155Errors", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 515, + "src": "481:14:3", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 534, + "name": "Context", + "nameLocations": [ + "756:7:3" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1960, + "src": "756:7:3" + }, + "id": 535, + "nodeType": "InheritanceSpecifier", + "src": "756:7:3" + }, + { + "baseName": { + "id": 536, + "name": "ERC165", + "nameLocations": [ + "765:6:3" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2349, + "src": "765:6:3" + }, + "id": 537, + "nodeType": "InheritanceSpecifier", + "src": "765:6:3" + }, + { + "baseName": { + "id": 538, + "name": "IERC1155", + "nameLocations": [ + "773:8:3" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1689, + "src": "773:8:3" + }, + "id": 539, + "nodeType": "InheritanceSpecifier", + "src": "773:8:3" + }, + { + "baseName": { + "id": 540, + "name": "IERC1155MetadataURI", + "nameLocations": [ + "783:19:3" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1747, + "src": "783:19:3" + }, + "id": 541, + "nodeType": "InheritanceSpecifier", + "src": "783:19:3" + }, + { + "baseName": { + "id": 542, + "name": "IERC1155Errors", + "nameLocations": [ + "804:14:3" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 515, + "src": "804:14:3" + }, + "id": 543, + "nodeType": "InheritanceSpecifier", + "src": "804:14:3" + } + ], + "canonicalName": "ERC1155", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 533, + "nodeType": "StructuredDocumentation", + "src": "542:184:3", + "text": " @dev Implementation of the basic standard multi-token.\n See https://eips.ethereum.org/EIPS/eip-1155\n Originally based on code by Enjin: https://github.com/enjin/erc-1155" + }, + "fullyImplemented": true, + "id": 1566, + "linearizedBaseContracts": [ + 1566, + 515, + 1747, + 1689, + 2349, + 2556, + 1960 + ], + "name": "ERC1155", + "nameLocation": "745:7:3", + "nodeType": "ContractDefinition", + "nodes": [ + { + "global": false, + "id": 547, + "libraryName": { + "id": 544, + "name": "Arrays", + "nameLocations": [ + "831:6:3" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1930, + "src": "831:6:3" + }, + "nodeType": "UsingForDirective", + "src": "825:27:3", + "typeName": { + "baseType": { + "id": 545, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "842:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 546, + "nodeType": "ArrayTypeName", + "src": "842:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + } + }, + { + "global": false, + "id": 551, + "libraryName": { + "id": 548, + "name": "Arrays", + "nameLocations": [ + "863:6:3" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1930, + "src": "863:6:3" + }, + "nodeType": "UsingForDirective", + "src": "857:27:3", + "typeName": { + "baseType": { + "id": 549, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "874:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 550, + "nodeType": "ArrayTypeName", + "src": "874:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + } + }, + { + "constant": false, + "id": 557, + "mutability": "mutable", + "name": "_balances", + "nameLocation": "957:9:3", + "nodeType": "VariableDeclaration", + "scope": 1566, + "src": "890:76:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(address => uint256))" + }, + "typeName": { + "id": 556, + "keyName": "id", + "keyNameLocation": "906:2:3", + "keyType": { + "id": 552, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "898:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "890:58:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(address => uint256))" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 555, + "keyName": "account", + "keyNameLocation": "928:7:3", + "keyType": { + "id": 553, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "920:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "912:35:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 554, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "939:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 563, + "mutability": "mutable", + "name": "_operatorApprovals", + "nameLocation": "1043:18:3", + "nodeType": "VariableDeclaration", + "scope": 1566, + "src": "973:88:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "typeName": { + "id": 562, + "keyName": "account", + "keyNameLocation": "989:7:3", + "keyType": { + "id": 558, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "981:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "973:61:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 561, + "keyName": "operator", + "keyNameLocation": "1016:8:3", + "keyType": { + "id": 559, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1008:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1000:33:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 560, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1028:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 565, + "mutability": "mutable", + "name": "_uri", + "nameLocation": "1197:4:3", + "nodeType": "VariableDeclaration", + "scope": 1566, + "src": "1182:19:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 564, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1182:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "body": { + "id": 575, + "nodeType": "Block", + "src": "1283:30:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 572, + "name": "uri_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 568, + "src": "1301:4:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 571, + "name": "_setURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1189, + "src": "1293:7:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory)" + } + }, + "id": 573, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1293:13:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 574, + "nodeType": "ExpressionStatement", + "src": "1293:13:3" + } + ] + }, + "documentation": { + "id": 566, + "nodeType": "StructuredDocumentation", + "src": "1208:38:3", + "text": " @dev See {_setURI}." + }, + "id": 576, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 569, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 568, + "mutability": "mutable", + "name": "uri_", + "nameLocation": "1277:4:3", + "nodeType": "VariableDeclaration", + "scope": 576, + "src": "1263:18:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 567, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1263:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1262:20:3" + }, + "returnParameters": { + "id": 570, + "nodeType": "ParameterList", + "parameters": [], + "src": "1283:0:3" + }, + "scope": 1566, + "src": "1251:62:3", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "baseFunctions": [ + 2348, + 2555 + ], + "body": { + "id": 606, + "nodeType": "Block", + "src": "1488:197:3", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 604, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 599, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 592, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 587, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 579, + "src": "1517:11:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 589, + "name": "IERC1155", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1689, + "src": "1537:8:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC1155_$1689_$", + "typeString": "type(contract IERC1155)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_contract$_IERC1155_$1689_$", + "typeString": "type(contract IERC1155)" + } + ], + "id": 588, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "1532:4:3", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 590, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1532:14:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_contract$_IERC1155_$1689", + "typeString": "type(contract IERC1155)" + } + }, + "id": 591, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "1547:11:3", + "memberName": "interfaceId", + "nodeType": "MemberAccess", + "src": "1532:26:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "1517:41:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 598, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 593, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 579, + "src": "1574:11:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 595, + "name": "IERC1155MetadataURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1747, + "src": "1594:19:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC1155MetadataURI_$1747_$", + "typeString": "type(contract IERC1155MetadataURI)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_contract$_IERC1155MetadataURI_$1747_$", + "typeString": "type(contract IERC1155MetadataURI)" + } + ], + "id": 594, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "1589:4:3", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 596, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1589:25:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_contract$_IERC1155MetadataURI_$1747", + "typeString": "type(contract IERC1155MetadataURI)" + } + }, + "id": 597, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "1615:11:3", + "memberName": "interfaceId", + "nodeType": "MemberAccess", + "src": "1589:37:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "1574:52:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1517:109:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 602, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 579, + "src": "1666:11:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "expression": { + "id": 600, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "1642:5:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_ERC1155_$1566_$", + "typeString": "type(contract super ERC1155)" + } + }, + "id": 601, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1648:17:3", + "memberName": "supportsInterface", + "nodeType": "MemberAccess", + "referencedDeclaration": 2348, + "src": "1642:23:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$", + "typeString": "function (bytes4) view returns (bool)" + } + }, + "id": 603, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1642:36:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1517:161:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 586, + "id": 605, + "nodeType": "Return", + "src": "1498:180:3" + } + ] + }, + "documentation": { + "id": 577, + "nodeType": "StructuredDocumentation", + "src": "1319:56:3", + "text": " @dev See {IERC165-supportsInterface}." + }, + "functionSelector": "01ffc9a7", + "id": 607, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nameLocation": "1389:17:3", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 583, + "nodeType": "OverrideSpecifier", + "overrides": [ + { + "id": 581, + "name": "ERC165", + "nameLocations": [ + "1456:6:3" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2349, + "src": "1456:6:3" + }, + { + "id": 582, + "name": "IERC165", + "nameLocations": [ + "1464:7:3" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2556, + "src": "1464:7:3" + } + ], + "src": "1447:25:3" + }, + "parameters": { + "id": 580, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 579, + "mutability": "mutable", + "name": "interfaceId", + "nameLocation": "1414:11:3", + "nodeType": "VariableDeclaration", + "scope": 607, + "src": "1407:18:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 578, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "1407:6:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "1406:20:3" + }, + "returnParameters": { + "id": 586, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 585, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 607, + "src": "1482:4:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 584, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1482:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1481:6:3" + }, + "scope": 1566, + "src": "1380:305:3", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 1746 + ], + "body": { + "id": 617, + "nodeType": "Block", + "src": "2159:28:3", + "statements": [ + { + "expression": { + "id": 615, + "name": "_uri", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 565, + "src": "2176:4:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 614, + "id": 616, + "nodeType": "Return", + "src": "2169:11:3" + } + ] + }, + "documentation": { + "id": 608, + "nodeType": "StructuredDocumentation", + "src": "1691:388:3", + "text": " @dev See {IERC1155MetadataURI-uri}.\n This implementation returns the same URI for *all* token types. It relies\n on the token type ID substitution mechanism\n https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the EIP].\n Clients calling this function must replace the `\\{id\\}` substring with the\n actual token type ID." + }, + "functionSelector": "0e89341c", + "id": 618, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "uri", + "nameLocation": "2093:3:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 611, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 610, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 618, + "src": "2097:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 609, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2097:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2096:18:3" + }, + "returnParameters": { + "id": 614, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 613, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 618, + "src": "2144:13:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 612, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2144:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2143:15:3" + }, + "scope": 1566, + "src": "2084:103:3", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 1627 + ], + "body": { + "id": 634, + "nodeType": "Block", + "src": "2333:46:3", + "statements": [ + { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 628, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 557, + "src": "2350:9:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(address => uint256))" + } + }, + "id": 630, + "indexExpression": { + "id": 629, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 623, + "src": "2360:2:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2350:13:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 632, + "indexExpression": { + "id": 631, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 621, + "src": "2364:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2350:22:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 627, + "id": 633, + "nodeType": "Return", + "src": "2343:29:3" + } + ] + }, + "documentation": { + "id": 619, + "nodeType": "StructuredDocumentation", + "src": "2193:49:3", + "text": " @dev See {IERC1155-balanceOf}." + }, + "functionSelector": "00fdd58e", + "id": 635, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "2256:9:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 624, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 621, + "mutability": "mutable", + "name": "account", + "nameLocation": "2274:7:3", + "nodeType": "VariableDeclaration", + "scope": 635, + "src": "2266:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 620, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2266:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 623, + "mutability": "mutable", + "name": "id", + "nameLocation": "2291:2:3", + "nodeType": "VariableDeclaration", + "scope": 635, + "src": "2283:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 622, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2283:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2265:29:3" + }, + "returnParameters": { + "id": 627, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 626, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 635, + "src": "2324:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 625, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2324:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2323:9:3" + }, + "scope": 1566, + "src": "2247:132:3", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 1640 + ], + "body": { + "id": 704, + "nodeType": "Block", + "src": "2678:410:3", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 652, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 648, + "name": "accounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 639, + "src": "2692:8:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 649, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2701:6:3", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2692:15:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "id": 650, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 642, + "src": "2711:3:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 651, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2715:6:3", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2711:10:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2692:29:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 661, + "nodeType": "IfStatement", + "src": "2688:121:3", + "trueBody": { + "id": 660, + "nodeType": "Block", + "src": "2723:86:3", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "expression": { + "id": 654, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 642, + "src": "2770:3:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 655, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2774:6:3", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2770:10:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 656, + "name": "accounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 639, + "src": "2782:8:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2791:6:3", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2782:15:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 653, + "name": "ERC1155InvalidArrayLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 514, + "src": "2744:25:3", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint256,uint256) pure returns (error)" + } + }, + "id": 658, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2744:54:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 659, + "nodeType": "RevertStatement", + "src": "2737:61:3" + } + ] + } + }, + { + "assignments": [ + 666 + ], + "declarations": [ + { + "constant": false, + "id": 666, + "mutability": "mutable", + "name": "batchBalances", + "nameLocation": "2836:13:3", + "nodeType": "VariableDeclaration", + "scope": 704, + "src": "2819:30:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 664, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2819:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 665, + "nodeType": "ArrayTypeName", + "src": "2819:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "id": 673, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 670, + "name": "accounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 639, + "src": "2866:8:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2875:6:3", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2866:15:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 669, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "2852:13:3", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (uint256[] memory)" + }, + "typeName": { + "baseType": { + "id": 667, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2856:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 668, + "nodeType": "ArrayTypeName", + "src": "2856:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + } + }, + "id": 672, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2852:30:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2819:63:3" + }, + { + "body": { + "id": 700, + "nodeType": "Block", + "src": "2939:112:3", + "statements": [ + { + "expression": { + "id": 698, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 685, + "name": "batchBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 666, + "src": "2953:13:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 687, + "indexExpression": { + "id": 686, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 675, + "src": "2967:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2953:16:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "arguments": [ + { + "id": 691, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 675, + "src": "3010:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 689, + "name": "accounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 639, + "src": "2982:8:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 690, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2991:18:3", + "memberName": "unsafeMemoryAccess", + "nodeType": "MemberAccess", + "referencedDeclaration": 1929, + "src": "2982:27:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$returns$_t_address_$attached_to$_t_array$_t_address_$dyn_memory_ptr_$", + "typeString": "function (address[] memory,uint256) pure returns (address)" + } + }, + "id": 692, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2982:30:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 695, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 675, + "src": "3037:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 693, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 642, + "src": "3014:3:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3018:18:3", + "memberName": "unsafeMemoryAccess", + "nodeType": "MemberAccess", + "referencedDeclaration": 1916, + "src": "3014:22:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$_t_uint256_$attached_to$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function (uint256[] memory,uint256) pure returns (uint256)" + } + }, + "id": 696, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3014:25:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 688, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 635, + "src": "2972:9:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (address,uint256) view returns (uint256)" + } + }, + "id": 697, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2972:68:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2953:87:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 699, + "nodeType": "ExpressionStatement", + "src": "2953:87:3" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 681, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 678, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 675, + "src": "2913:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 679, + "name": "accounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 639, + "src": "2917:8:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 680, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2926:6:3", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2917:15:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2913:19:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 701, + "initializationExpression": { + "assignments": [ + 675 + ], + "declarations": [ + { + "constant": false, + "id": 675, + "mutability": "mutable", + "name": "i", + "nameLocation": "2906:1:3", + "nodeType": "VariableDeclaration", + "scope": 701, + "src": "2898:9:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 674, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2898:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 677, + "initialValue": { + "hexValue": "30", + "id": 676, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2910:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "2898:13:3" + }, + "isSimpleCounterLoop": true, + "loopExpression": { + "expression": { + "id": 683, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": true, + "src": "2934:3:3", + "subExpression": { + "id": 682, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 675, + "src": "2936:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 684, + "nodeType": "ExpressionStatement", + "src": "2934:3:3" + }, + "nodeType": "ForStatement", + "src": "2893:158:3" + }, + { + "expression": { + "id": 702, + "name": "batchBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 666, + "src": "3068:13:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "functionReturnParameters": 647, + "id": 703, + "nodeType": "Return", + "src": "3061:20:3" + } + ] + }, + "documentation": { + "id": 636, + "nodeType": "StructuredDocumentation", + "src": "2385:146:3", + "text": " @dev See {IERC1155-balanceOfBatch}.\n Requirements:\n - `accounts` and `ids` must have the same length." + }, + "functionSelector": "4e1273f4", + "id": 705, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOfBatch", + "nameLocation": "2545:14:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 643, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 639, + "mutability": "mutable", + "name": "accounts", + "nameLocation": "2586:8:3", + "nodeType": "VariableDeclaration", + "scope": 705, + "src": "2569:25:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 637, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2569:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 638, + "nodeType": "ArrayTypeName", + "src": "2569:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 642, + "mutability": "mutable", + "name": "ids", + "nameLocation": "2621:3:3", + "nodeType": "VariableDeclaration", + "scope": 705, + "src": "2604:20:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 640, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2604:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 641, + "nodeType": "ArrayTypeName", + "src": "2604:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "2559:71:3" + }, + "returnParameters": { + "id": 647, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 646, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 705, + "src": "2660:16:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 644, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2660:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 645, + "nodeType": "ArrayTypeName", + "src": "2660:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "2659:18:3" + }, + "scope": 1566, + "src": "2536:552:3", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 1648 + ], + "body": { + "id": 720, + "nodeType": "Block", + "src": "3231:69:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 714, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1942, + "src": "3260:10:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 715, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3260:12:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 716, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 708, + "src": "3274:8:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 717, + "name": "approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 710, + "src": "3284:8:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 713, + "name": "_setApprovalForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1411, + "src": "3241:18:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", + "typeString": "function (address,address,bool)" + } + }, + "id": 718, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3241:52:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 719, + "nodeType": "ExpressionStatement", + "src": "3241:52:3" + } + ] + }, + "documentation": { + "id": 706, + "nodeType": "StructuredDocumentation", + "src": "3094:57:3", + "text": " @dev See {IERC1155-setApprovalForAll}." + }, + "functionSelector": "a22cb465", + "id": 721, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nameLocation": "3165:17:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 711, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 708, + "mutability": "mutable", + "name": "operator", + "nameLocation": "3191:8:3", + "nodeType": "VariableDeclaration", + "scope": 721, + "src": "3183:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 707, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3183:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 710, + "mutability": "mutable", + "name": "approved", + "nameLocation": "3206:8:3", + "nodeType": "VariableDeclaration", + "scope": 721, + "src": "3201:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 709, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3201:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "3182:33:3" + }, + "returnParameters": { + "id": 712, + "nodeType": "ParameterList", + "parameters": [], + "src": "3231:0:3" + }, + "scope": 1566, + "src": "3156:144:3", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 1658 + ], + "body": { + "id": 737, + "nodeType": "Block", + "src": "3463:61:3", + "statements": [ + { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 731, + "name": "_operatorApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 563, + "src": "3480:18:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 733, + "indexExpression": { + "id": 732, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 724, + "src": "3499:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3480:27:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 735, + "indexExpression": { + "id": 734, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 726, + "src": "3508:8:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3480:37:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 730, + "id": 736, + "nodeType": "Return", + "src": "3473:44:3" + } + ] + }, + "documentation": { + "id": 722, + "nodeType": "StructuredDocumentation", + "src": "3306:56:3", + "text": " @dev See {IERC1155-isApprovedForAll}." + }, + "functionSelector": "e985e9c5", + "id": 738, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nameLocation": "3376:16:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 727, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 724, + "mutability": "mutable", + "name": "account", + "nameLocation": "3401:7:3", + "nodeType": "VariableDeclaration", + "scope": 738, + "src": "3393:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 723, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3393:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 726, + "mutability": "mutable", + "name": "operator", + "nameLocation": "3418:8:3", + "nodeType": "VariableDeclaration", + "scope": 738, + "src": "3410:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 725, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3410:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3392:35:3" + }, + "returnParameters": { + "id": 730, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 729, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 738, + "src": "3457:4:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 728, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3457:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "3456:6:3" + }, + "scope": 1566, + "src": "3367:157:3", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 1672 + ], + "body": { + "id": 781, + "nodeType": "Block", + "src": "3704:238:3", + "statements": [ + { + "assignments": [ + 753 + ], + "declarations": [ + { + "constant": false, + "id": 753, + "mutability": "mutable", + "name": "sender", + "nameLocation": "3722:6:3", + "nodeType": "VariableDeclaration", + "scope": 781, + "src": "3714:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 752, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3714:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 756, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 754, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1942, + "src": "3731:10:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3731:12:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3714:29:3" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 765, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 759, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 757, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 741, + "src": "3757:4:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 758, + "name": "sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 753, + "src": "3765:6:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3757:14:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "id": 764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "3775:31:3", + "subExpression": { + "arguments": [ + { + "id": 761, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 741, + "src": "3793:4:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 762, + "name": "sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 753, + "src": "3799:6:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 760, + "name": "isApprovedForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 738, + "src": "3776:16:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3776:30:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3757:49:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 772, + "nodeType": "IfStatement", + "src": "3753:129:3", + "trueBody": { + "id": 771, + "nodeType": "Block", + "src": "3808:74:3", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 767, + "name": "sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 753, + "src": "3858:6:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 768, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 741, + "src": "3866:4:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 766, + "name": "ERC1155MissingApprovalForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 497, + "src": "3829:28:3", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$_t_address_$returns$_t_error_$", + "typeString": "function (address,address) pure returns (error)" + } + }, + "id": 769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3829:42:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 770, + "nodeType": "RevertStatement", + "src": "3822:49:3" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 774, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 741, + "src": "3909:4:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 775, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 743, + "src": "3915:2:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 776, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 745, + "src": "3919:2:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 777, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 747, + "src": "3923:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 778, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 749, + "src": "3930:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 773, + "name": "_safeTransferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1123, + "src": "3891:17:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256,uint256,bytes memory)" + } + }, + "id": 779, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3891:44:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 780, + "nodeType": "ExpressionStatement", + "src": "3891:44:3" + } + ] + }, + "documentation": { + "id": 739, + "nodeType": "StructuredDocumentation", + "src": "3530:56:3", + "text": " @dev See {IERC1155-safeTransferFrom}." + }, + "functionSelector": "f242432a", + "id": 782, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nameLocation": "3600:16:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 750, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 741, + "mutability": "mutable", + "name": "from", + "nameLocation": "3625:4:3", + "nodeType": "VariableDeclaration", + "scope": 782, + "src": "3617:12:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 740, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3617:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 743, + "mutability": "mutable", + "name": "to", + "nameLocation": "3639:2:3", + "nodeType": "VariableDeclaration", + "scope": 782, + "src": "3631:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 742, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3631:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 745, + "mutability": "mutable", + "name": "id", + "nameLocation": "3651:2:3", + "nodeType": "VariableDeclaration", + "scope": 782, + "src": "3643:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 744, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3643:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 747, + "mutability": "mutable", + "name": "value", + "nameLocation": "3663:5:3", + "nodeType": "VariableDeclaration", + "scope": 782, + "src": "3655:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 746, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3655:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 749, + "mutability": "mutable", + "name": "data", + "nameLocation": "3683:4:3", + "nodeType": "VariableDeclaration", + "scope": 782, + "src": "3670:17:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 748, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3670:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "3616:72:3" + }, + "returnParameters": { + "id": 751, + "nodeType": "ParameterList", + "parameters": [], + "src": "3704:0:3" + }, + "scope": 1566, + "src": "3591:351:3", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 1688 + ], + "body": { + "id": 827, + "nodeType": "Block", + "src": "4198:245:3", + "statements": [ + { + "assignments": [ + 799 + ], + "declarations": [ + { + "constant": false, + "id": 799, + "mutability": "mutable", + "name": "sender", + "nameLocation": "4216:6:3", + "nodeType": "VariableDeclaration", + "scope": 827, + "src": "4208:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 798, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4208:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 802, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 800, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1942, + "src": "4225:10:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 801, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4225:12:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4208:29:3" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 811, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 805, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 803, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 785, + "src": "4251:4:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 804, + "name": "sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 799, + "src": "4259:6:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4251:14:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "id": 810, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "4269:31:3", + "subExpression": { + "arguments": [ + { + "id": 807, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 785, + "src": "4287:4:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 808, + "name": "sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 799, + "src": "4293:6:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 806, + "name": "isApprovedForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 738, + "src": "4270:16:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 809, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4270:30:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4251:49:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 818, + "nodeType": "IfStatement", + "src": "4247:129:3", + "trueBody": { + "id": 817, + "nodeType": "Block", + "src": "4302:74:3", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 813, + "name": "sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 799, + "src": "4352:6:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 814, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 785, + "src": "4360:4:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 812, + "name": "ERC1155MissingApprovalForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 497, + "src": "4323:28:3", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$_t_address_$returns$_t_error_$", + "typeString": "function (address,address) pure returns (error)" + } + }, + "id": 815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4323:42:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 816, + "nodeType": "RevertStatement", + "src": "4316:49:3" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 820, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 785, + "src": "4408:4:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 821, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 787, + "src": "4414:2:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 822, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 790, + "src": "4418:3:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "id": 823, + "name": "values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 793, + "src": "4423:6:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "id": 824, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 795, + "src": "4431:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 819, + "name": "_safeBatchTransferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1178, + "src": "4385:22:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256[] memory,uint256[] memory,bytes memory)" + } + }, + "id": 825, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4385:51:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 826, + "nodeType": "ExpressionStatement", + "src": "4385:51:3" + } + ] + }, + "documentation": { + "id": 783, + "nodeType": "StructuredDocumentation", + "src": "3948:61:3", + "text": " @dev See {IERC1155-safeBatchTransferFrom}." + }, + "functionSelector": "2eb2c2d6", + "id": 828, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeBatchTransferFrom", + "nameLocation": "4023:21:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 796, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 785, + "mutability": "mutable", + "name": "from", + "nameLocation": "4062:4:3", + "nodeType": "VariableDeclaration", + "scope": 828, + "src": "4054:12:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 784, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4054:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 787, + "mutability": "mutable", + "name": "to", + "nameLocation": "4084:2:3", + "nodeType": "VariableDeclaration", + "scope": 828, + "src": "4076:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 786, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4076:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 790, + "mutability": "mutable", + "name": "ids", + "nameLocation": "4113:3:3", + "nodeType": "VariableDeclaration", + "scope": 828, + "src": "4096:20:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 788, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4096:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 789, + "nodeType": "ArrayTypeName", + "src": "4096:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 793, + "mutability": "mutable", + "name": "values", + "nameLocation": "4143:6:3", + "nodeType": "VariableDeclaration", + "scope": 828, + "src": "4126:23:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 791, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4126:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 792, + "nodeType": "ArrayTypeName", + "src": "4126:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 795, + "mutability": "mutable", + "name": "data", + "nameLocation": "4172:4:3", + "nodeType": "VariableDeclaration", + "scope": 828, + "src": "4159:17:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 794, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4159:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "4044:138:3" + }, + "returnParameters": { + "id": 797, + "nodeType": "ParameterList", + "parameters": [], + "src": "4198:0:3" + }, + "scope": 1566, + "src": "4014:429:3", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 980, + "nodeType": "Block", + "src": "5251:1174:3", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 846, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 842, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 836, + "src": "5265:3:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 843, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5269:6:3", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "5265:10:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "id": 844, + "name": "values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 839, + "src": "5279:6:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5286:6:3", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "5279:13:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5265:27:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 855, + "nodeType": "IfStatement", + "src": "5261:117:3", + "trueBody": { + "id": 854, + "nodeType": "Block", + "src": "5294:84:3", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "expression": { + "id": 848, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 836, + "src": "5341:3:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 849, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5345:6:3", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "5341:10:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 850, + "name": "values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 839, + "src": "5353:6:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 851, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5360:6:3", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "5353:13:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 847, + "name": "ERC1155InvalidArrayLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 514, + "src": "5315:25:3", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint256,uint256) pure returns (error)" + } + }, + "id": 852, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5315:52:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 853, + "nodeType": "RevertStatement", + "src": "5308:59:3" + } + ] + } + }, + { + "assignments": [ + 857 + ], + "declarations": [ + { + "constant": false, + "id": 857, + "mutability": "mutable", + "name": "operator", + "nameLocation": "5396:8:3", + "nodeType": "VariableDeclaration", + "scope": 980, + "src": "5388:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 856, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5388:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 860, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 858, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1942, + "src": "5407:10:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 859, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5407:12:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5388:31:3" + }, + { + "body": { + "id": 941, + "nodeType": "Block", + "src": "5471:650:3", + "statements": [ + { + "assignments": [ + 873 + ], + "declarations": [ + { + "constant": false, + "id": 873, + "mutability": "mutable", + "name": "id", + "nameLocation": "5493:2:3", + "nodeType": "VariableDeclaration", + "scope": 941, + "src": "5485:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 872, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5485:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 878, + "initialValue": { + "arguments": [ + { + "id": 876, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 862, + "src": "5521:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 874, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 836, + "src": "5498:3:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 875, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5502:18:3", + "memberName": "unsafeMemoryAccess", + "nodeType": "MemberAccess", + "referencedDeclaration": 1916, + "src": "5498:22:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$_t_uint256_$attached_to$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function (uint256[] memory,uint256) pure returns (uint256)" + } + }, + "id": 877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5498:25:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5485:38:3" + }, + { + "assignments": [ + 880 + ], + "declarations": [ + { + "constant": false, + "id": 880, + "mutability": "mutable", + "name": "value", + "nameLocation": "5545:5:3", + "nodeType": "VariableDeclaration", + "scope": 941, + "src": "5537:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 879, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5537:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 885, + "initialValue": { + "arguments": [ + { + "id": 883, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 862, + "src": "5579:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 881, + "name": "values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 839, + "src": "5553:6:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5560:18:3", + "memberName": "unsafeMemoryAccess", + "nodeType": "MemberAccess", + "referencedDeclaration": 1916, + "src": "5553:25:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$_t_uint256_$attached_to$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function (uint256[] memory,uint256) pure returns (uint256)" + } + }, + "id": 884, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5553:28:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5537:44:3" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 891, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 886, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 831, + "src": "5600:4:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 889, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5616:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 888, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5608:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 887, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5608:7:3", + "typeDescriptions": {} + } + }, + "id": 890, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5608:10:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5600:18:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 924, + "nodeType": "IfStatement", + "src": "5596:420:3", + "trueBody": { + "id": 923, + "nodeType": "Block", + "src": "5620:396:3", + "statements": [ + { + "assignments": [ + 893 + ], + "declarations": [ + { + "constant": false, + "id": 893, + "mutability": "mutable", + "name": "fromBalance", + "nameLocation": "5646:11:3", + "nodeType": "VariableDeclaration", + "scope": 923, + "src": "5638:19:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 892, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5638:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 899, + "initialValue": { + "baseExpression": { + "baseExpression": { + "id": 894, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 557, + "src": "5660:9:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(address => uint256))" + } + }, + "id": 896, + "indexExpression": { + "id": 895, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 873, + "src": "5670:2:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5660:13:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 898, + "indexExpression": { + "id": 897, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 831, + "src": "5674:4:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5660:19:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5638:41:3" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 902, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 900, + "name": "fromBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 893, + "src": "5701:11:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 901, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 880, + "src": "5715:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5701:19:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 911, + "nodeType": "IfStatement", + "src": "5697:129:3", + "trueBody": { + "id": 910, + "nodeType": "Block", + "src": "5722:104:3", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 904, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 831, + "src": "5778:4:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 905, + "name": "fromBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 893, + "src": "5784:11:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 906, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 880, + "src": "5797:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 907, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 873, + "src": "5804:2:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 903, + "name": "ERC1155InsufficientBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 480, + "src": "5751:26:3", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_error_$", + "typeString": "function (address,uint256,uint256,uint256) pure returns (error)" + } + }, + "id": 908, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5751:56:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 909, + "nodeType": "RevertStatement", + "src": "5744:63:3" + } + ] + } + }, + { + "id": 922, + "nodeType": "UncheckedBlock", + "src": "5843:159:3", + "statements": [ + { + "expression": { + "id": 920, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 912, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 557, + "src": "5942:9:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(address => uint256))" + } + }, + "id": 915, + "indexExpression": { + "id": 913, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 873, + "src": "5952:2:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5942:13:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 916, + "indexExpression": { + "id": 914, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 831, + "src": "5956:4:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5942:19:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 919, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 917, + "name": "fromBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 893, + "src": "5964:11:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 918, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 880, + "src": "5978:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5964:19:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5942:41:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 921, + "nodeType": "ExpressionStatement", + "src": "5942:41:3" + } + ] + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 930, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 925, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 833, + "src": "6034:2:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 928, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6048:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 927, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6040:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 926, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6040:7:3", + "typeDescriptions": {} + } + }, + "id": 929, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6040:10:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6034:16:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 940, + "nodeType": "IfStatement", + "src": "6030:81:3", + "trueBody": { + "id": 939, + "nodeType": "Block", + "src": "6052:59:3", + "statements": [ + { + "expression": { + "id": 937, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 931, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 557, + "src": "6070:9:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(uint256 => mapping(address => uint256))" + } + }, + "id": 934, + "indexExpression": { + "id": 932, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 873, + "src": "6080:2:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6070:13:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 935, + "indexExpression": { + "id": 933, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 833, + "src": "6084:2:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6070:17:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 936, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 880, + "src": "6091:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6070:26:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 938, + "nodeType": "ExpressionStatement", + "src": "6070:26:3" + } + ] + } + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 865, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 862, + "src": "5450:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 866, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 836, + "src": "5454:3:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 867, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5458:6:3", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "5454:10:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5450:14:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 942, + "initializationExpression": { + "assignments": [ + 862 + ], + "declarations": [ + { + "constant": false, + "id": 862, + "mutability": "mutable", + "name": "i", + "nameLocation": "5443:1:3", + "nodeType": "VariableDeclaration", + "scope": 942, + "src": "5435:9:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 861, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5435:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 864, + "initialValue": { + "hexValue": "30", + "id": 863, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5447:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "5435:13:3" + }, + "isSimpleCounterLoop": true, + "loopExpression": { + "expression": { + "id": 870, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": true, + "src": "5466:3:3", + "subExpression": { + "id": 869, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 862, + "src": "5468:1:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 871, + "nodeType": "ExpressionStatement", + "src": "5466:3:3" + }, + "nodeType": "ForStatement", + "src": "5430:691:3" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 946, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 943, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 836, + "src": "6135:3:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 944, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6139:6:3", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "6135:10:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 945, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6149:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "6135:15:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 978, + "nodeType": "Block", + "src": "6343:76:3", + "statements": [ + { + "eventCall": { + "arguments": [ + { + "id": 971, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 857, + "src": "6376:8:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 972, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 831, + "src": "6386:4:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 973, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 833, + "src": "6392:2:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 974, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 836, + "src": "6396:3:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "id": 975, + "name": "values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 839, + "src": "6401:6:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + ], + "id": 970, + "name": "TransferBatch", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1601, + "src": "6362:13:3", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", + "typeString": "function (address,address,address,uint256[] memory,uint256[] memory)" + } + }, + "id": 976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6362:46:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 977, + "nodeType": "EmitStatement", + "src": "6357:51:3" + } + ] + }, + "id": 979, + "nodeType": "IfStatement", + "src": "6131:288:3", + "trueBody": { + "id": 969, + "nodeType": "Block", + "src": "6152:185:3", + "statements": [ + { + "assignments": [ + 948 + ], + "declarations": [ + { + "constant": false, + "id": 948, + "mutability": "mutable", + "name": "id", + "nameLocation": "6174:2:3", + "nodeType": "VariableDeclaration", + "scope": 969, + "src": "6166:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 947, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6166:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 953, + "initialValue": { + "arguments": [ + { + "hexValue": "30", + "id": 951, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6202:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "expression": { + "id": 949, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 836, + "src": "6179:3:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 950, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6183:18:3", + "memberName": "unsafeMemoryAccess", + "nodeType": "MemberAccess", + "referencedDeclaration": 1916, + "src": "6179:22:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$_t_uint256_$attached_to$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function (uint256[] memory,uint256) pure returns (uint256)" + } + }, + "id": 952, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6179:25:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6166:38:3" + }, + { + "assignments": [ + 955 + ], + "declarations": [ + { + "constant": false, + "id": 955, + "mutability": "mutable", + "name": "value", + "nameLocation": "6226:5:3", + "nodeType": "VariableDeclaration", + "scope": 969, + "src": "6218:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 954, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6218:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 960, + "initialValue": { + "arguments": [ + { + "hexValue": "30", + "id": 958, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6260:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "expression": { + "id": 956, + "name": "values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 839, + "src": "6234:6:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6241:18:3", + "memberName": "unsafeMemoryAccess", + "nodeType": "MemberAccess", + "referencedDeclaration": 1916, + "src": "6234:25:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$_t_uint256_$attached_to$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function (uint256[] memory,uint256) pure returns (uint256)" + } + }, + "id": 959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6234:28:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6218:44:3" + }, + { + "eventCall": { + "arguments": [ + { + "id": 962, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 857, + "src": "6296:8:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 963, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 831, + "src": "6306:4:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 964, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 833, + "src": "6312:2:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 965, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 948, + "src": "6316:2:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 966, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 955, + "src": "6320:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 961, + "name": "TransferSingle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1586, + "src": "6281:14:3", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,address,uint256,uint256)" + } + }, + "id": 967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6281:45:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 968, + "nodeType": "EmitStatement", + "src": "6276:50:3" + } + ] + } + } + ] + }, + "documentation": { + "id": 829, + "nodeType": "StructuredDocumentation", + "src": "4449:690:3", + "text": " @dev Transfers a `value` amount of tokens of type `id` from `from` to `to`. Will mint (or burn) if `from`\n (or `to`) is the zero address.\n Emits a {TransferSingle} event if the arrays contain one element, and {TransferBatch} otherwise.\n Requirements:\n - If `to` refers to a smart contract, it must implement either {IERC1155Receiver-onERC1155Received}\n or {IERC1155Receiver-onERC1155BatchReceived} and return the acceptance magic value.\n - `ids` and `values` must have the same length.\n NOTE: The ERC-1155 acceptance check is not performed in this function. See {_updateWithAcceptanceCheck} instead." + }, + "id": 981, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_update", + "nameLocation": "5153:7:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 840, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 831, + "mutability": "mutable", + "name": "from", + "nameLocation": "5169:4:3", + "nodeType": "VariableDeclaration", + "scope": 981, + "src": "5161:12:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 830, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5161:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 833, + "mutability": "mutable", + "name": "to", + "nameLocation": "5183:2:3", + "nodeType": "VariableDeclaration", + "scope": 981, + "src": "5175:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 832, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5175:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 836, + "mutability": "mutable", + "name": "ids", + "nameLocation": "5204:3:3", + "nodeType": "VariableDeclaration", + "scope": 981, + "src": "5187:20:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 834, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5187:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 835, + "nodeType": "ArrayTypeName", + "src": "5187:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 839, + "mutability": "mutable", + "name": "values", + "nameLocation": "5226:6:3", + "nodeType": "VariableDeclaration", + "scope": 981, + "src": "5209:23:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 837, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5209:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 838, + "nodeType": "ArrayTypeName", + "src": "5209:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "5160:73:3" + }, + "returnParameters": { + "id": 841, + "nodeType": "ParameterList", + "parameters": [], + "src": "5251:0:3" + }, + "scope": 1566, + "src": "5144:1281:3", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1056, + "nodeType": "Block", + "src": "7195:499:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 998, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 984, + "src": "7213:4:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 999, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 986, + "src": "7219:2:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1000, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 989, + "src": "7223:3:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "id": 1001, + "name": "values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 992, + "src": "7228:6:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + ], + "id": 997, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 981, + "src": "7205:7:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256[] memory,uint256[] memory)" + } + }, + "id": 1002, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7205:30:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1003, + "nodeType": "ExpressionStatement", + "src": "7205:30:3" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1004, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 986, + "src": "7249:2:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1007, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7263:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1006, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7255:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1005, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7255:7:3", + "typeDescriptions": {} + } + }, + "id": 1008, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7255:10:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "7249:16:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1055, + "nodeType": "IfStatement", + "src": "7245:443:3", + "trueBody": { + "id": 1054, + "nodeType": "Block", + "src": "7267:421:3", + "statements": [ + { + "assignments": [ + 1011 + ], + "declarations": [ + { + "constant": false, + "id": 1011, + "mutability": "mutable", + "name": "operator", + "nameLocation": "7289:8:3", + "nodeType": "VariableDeclaration", + "scope": 1054, + "src": "7281:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1010, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7281:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 1014, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1012, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1942, + "src": "7300:10:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 1013, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7300:12:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7281:31:3" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1018, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1015, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 989, + "src": "7330:3:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1016, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7334:6:3", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "7330:10:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 1017, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7344:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "7330:15:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1052, + "nodeType": "Block", + "src": "7571:107:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1044, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1011, + "src": "7625:8:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1045, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 984, + "src": "7635:4:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1046, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 986, + "src": "7641:2:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1047, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 989, + "src": "7645:3:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "id": 1048, + "name": "values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 992, + "src": "7650:6:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "id": 1049, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "7658:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1043, + "name": "_doSafeBatchTransferAcceptanceCheck", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1549, + "src": "7589:35:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,address,uint256[] memory,uint256[] memory,bytes memory)" + } + }, + "id": 1050, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7589:74:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1051, + "nodeType": "ExpressionStatement", + "src": "7589:74:3" + } + ] + }, + "id": 1053, + "nodeType": "IfStatement", + "src": "7326:352:3", + "trueBody": { + "id": 1042, + "nodeType": "Block", + "src": "7347:218:3", + "statements": [ + { + "assignments": [ + 1020 + ], + "declarations": [ + { + "constant": false, + "id": 1020, + "mutability": "mutable", + "name": "id", + "nameLocation": "7373:2:3", + "nodeType": "VariableDeclaration", + "scope": 1042, + "src": "7365:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1019, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7365:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1025, + "initialValue": { + "arguments": [ + { + "hexValue": "30", + "id": 1023, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7401:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "expression": { + "id": 1021, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 989, + "src": "7378:3:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1022, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7382:18:3", + "memberName": "unsafeMemoryAccess", + "nodeType": "MemberAccess", + "referencedDeclaration": 1916, + "src": "7378:22:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$_t_uint256_$attached_to$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function (uint256[] memory,uint256) pure returns (uint256)" + } + }, + "id": 1024, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7378:25:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7365:38:3" + }, + { + "assignments": [ + 1027 + ], + "declarations": [ + { + "constant": false, + "id": 1027, + "mutability": "mutable", + "name": "value", + "nameLocation": "7429:5:3", + "nodeType": "VariableDeclaration", + "scope": 1042, + "src": "7421:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1026, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7421:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1032, + "initialValue": { + "arguments": [ + { + "hexValue": "30", + "id": 1030, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7463:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "expression": { + "id": 1028, + "name": "values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 992, + "src": "7437:6:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 1029, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7444:18:3", + "memberName": "unsafeMemoryAccess", + "nodeType": "MemberAccess", + "referencedDeclaration": 1916, + "src": "7437:25:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$_t_uint256_$attached_to$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function (uint256[] memory,uint256) pure returns (uint256)" + } + }, + "id": 1031, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7437:28:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7421:44:3" + }, + { + "expression": { + "arguments": [ + { + "id": 1034, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1011, + "src": "7514:8:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1035, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 984, + "src": "7524:4:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1036, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 986, + "src": "7530:2:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1037, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "7534:2:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1038, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1027, + "src": "7538:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1039, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "7545:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1033, + "name": "_doSafeTransferAcceptanceCheck", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1479, + "src": "7483:30:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,address,uint256,uint256,bytes memory)" + } + }, + "id": 1040, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7483:67:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1041, + "nodeType": "ExpressionStatement", + "src": "7483:67:3" + } + ] + } + } + ] + } + } + ] + }, + "documentation": { + "id": 982, + "nodeType": "StructuredDocumentation", + "src": "6431:568:3", + "text": " @dev Version of {_update} that performs the token acceptance check by calling\n {IERC1155Receiver-onERC1155Received} or {IERC1155Receiver-onERC1155BatchReceived} on the receiver address if it\n contains code (eg. is a smart contract at the moment of execution).\n IMPORTANT: Overriding this function is discouraged because it poses a reentrancy risk from the receiver. So any\n update to the contract state after this function would break the check-effect-interaction pattern. Consider\n overriding {_update} instead." + }, + "id": 1057, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_updateWithAcceptanceCheck", + "nameLocation": "7013:26:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 995, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 984, + "mutability": "mutable", + "name": "from", + "nameLocation": "7057:4:3", + "nodeType": "VariableDeclaration", + "scope": 1057, + "src": "7049:12:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 983, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7049:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 986, + "mutability": "mutable", + "name": "to", + "nameLocation": "7079:2:3", + "nodeType": "VariableDeclaration", + "scope": 1057, + "src": "7071:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 985, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7071:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 989, + "mutability": "mutable", + "name": "ids", + "nameLocation": "7108:3:3", + "nodeType": "VariableDeclaration", + "scope": 1057, + "src": "7091:20:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 987, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7091:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 988, + "nodeType": "ArrayTypeName", + "src": "7091:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 992, + "mutability": "mutable", + "name": "values", + "nameLocation": "7138:6:3", + "nodeType": "VariableDeclaration", + "scope": 1057, + "src": "7121:23:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 990, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7121:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 991, + "nodeType": "ArrayTypeName", + "src": "7121:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 994, + "mutability": "mutable", + "name": "data", + "nameLocation": "7167:4:3", + "nodeType": "VariableDeclaration", + "scope": 1057, + "src": "7154:17:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 993, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "7154:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "7039:138:3" + }, + "returnParameters": { + "id": 996, + "nodeType": "ParameterList", + "parameters": [], + "src": "7195:0:3" + }, + "scope": 1566, + "src": "7004:690:3", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1122, + "nodeType": "Block", + "src": "8259:355:3", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1076, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1071, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1062, + "src": "8273:2:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1074, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8287:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1073, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8279:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1072, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8279:7:3", + "typeDescriptions": {} + } + }, + "id": 1075, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8279:10:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "8273:16:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1085, + "nodeType": "IfStatement", + "src": "8269:88:3", + "trueBody": { + "id": 1084, + "nodeType": "Block", + "src": "8291:66:3", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 1080, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8343:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1079, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8335:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1078, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8335:7:3", + "typeDescriptions": {} + } + }, + "id": 1081, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8335:10:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1077, + "name": "ERC1155InvalidReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 490, + "src": "8312:22:3", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 1082, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8312:34:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 1083, + "nodeType": "RevertStatement", + "src": "8305:41:3" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1091, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1086, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1060, + "src": "8370:4:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1089, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8386:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1088, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8378:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1087, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8378:7:3", + "typeDescriptions": {} + } + }, + "id": 1090, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8378:10:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "8370:18:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1100, + "nodeType": "IfStatement", + "src": "8366:88:3", + "trueBody": { + "id": 1099, + "nodeType": "Block", + "src": "8390:64:3", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 1095, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8440:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1094, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8432:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1093, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8432:7:3", + "typeDescriptions": {} + } + }, + "id": 1096, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8432:10:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1092, + "name": "ERC1155InvalidSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 485, + "src": "8411:20:3", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 1097, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8411:32:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 1098, + "nodeType": "RevertStatement", + "src": "8404:39:3" + } + ] + } + }, + { + "assignments": [ + 1105, + 1108 + ], + "declarations": [ + { + "constant": false, + "id": 1105, + "mutability": "mutable", + "name": "ids", + "nameLocation": "8481:3:3", + "nodeType": "VariableDeclaration", + "scope": 1122, + "src": "8464:20:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1103, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8464:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1104, + "nodeType": "ArrayTypeName", + "src": "8464:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1108, + "mutability": "mutable", + "name": "values", + "nameLocation": "8503:6:3", + "nodeType": "VariableDeclaration", + "scope": 1122, + "src": "8486:23:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1106, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8486:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1107, + "nodeType": "ArrayTypeName", + "src": "8486:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "id": 1113, + "initialValue": { + "arguments": [ + { + "id": 1110, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1064, + "src": "8532:2:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1111, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1066, + "src": "8536:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1109, + "name": "_asSingletonArrays", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1565, + "src": "8513:18:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function (uint256,uint256) pure returns (uint256[] memory,uint256[] memory)" + } + }, + "id": 1112, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8513:29:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "tuple(uint256[] memory,uint256[] memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8463:79:3" + }, + { + "expression": { + "arguments": [ + { + "id": 1115, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1060, + "src": "8579:4:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1116, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1062, + "src": "8585:2:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1117, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1105, + "src": "8589:3:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "id": 1118, + "name": "values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1108, + "src": "8594:6:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "id": 1119, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1068, + "src": "8602:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1114, + "name": "_updateWithAcceptanceCheck", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1057, + "src": "8552:26:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256[] memory,uint256[] memory,bytes memory)" + } + }, + "id": 1120, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8552:55:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1121, + "nodeType": "ExpressionStatement", + "src": "8552:55:3" + } + ] + }, + "documentation": { + "id": 1058, + "nodeType": "StructuredDocumentation", + "src": "7700:446:3", + "text": " @dev Transfers a `value` tokens of token type `id` from `from` to `to`.\n Emits a {TransferSingle} event.\n Requirements:\n - `to` cannot be the zero address.\n - `from` must have a balance of tokens of type `id` of at least `value` amount.\n - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the\n acceptance magic value." + }, + "id": 1123, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeTransferFrom", + "nameLocation": "8160:17:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1069, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1060, + "mutability": "mutable", + "name": "from", + "nameLocation": "8186:4:3", + "nodeType": "VariableDeclaration", + "scope": 1123, + "src": "8178:12:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1059, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8178:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1062, + "mutability": "mutable", + "name": "to", + "nameLocation": "8200:2:3", + "nodeType": "VariableDeclaration", + "scope": 1123, + "src": "8192:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1061, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8192:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1064, + "mutability": "mutable", + "name": "id", + "nameLocation": "8212:2:3", + "nodeType": "VariableDeclaration", + "scope": 1123, + "src": "8204:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1063, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8204:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1066, + "mutability": "mutable", + "name": "value", + "nameLocation": "8224:5:3", + "nodeType": "VariableDeclaration", + "scope": 1123, + "src": "8216:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1065, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8216:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1068, + "mutability": "mutable", + "name": "data", + "nameLocation": "8244:4:3", + "nodeType": "VariableDeclaration", + "scope": 1123, + "src": "8231:17:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1067, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "8231:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "8177:72:3" + }, + "returnParameters": { + "id": 1070, + "nodeType": "ParameterList", + "parameters": [], + "src": "8259:0:3" + }, + "scope": 1566, + "src": "8151:463:3", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1177, + "nodeType": "Block", + "src": "9194:266:3", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1139, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1128, + "src": "9208:2:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1142, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9222:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1141, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9214:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1140, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9214:7:3", + "typeDescriptions": {} + } + }, + "id": 1143, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9214:10:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "9208:16:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1153, + "nodeType": "IfStatement", + "src": "9204:88:3", + "trueBody": { + "id": 1152, + "nodeType": "Block", + "src": "9226:66:3", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 1148, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9278:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1147, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9270:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1146, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9270:7:3", + "typeDescriptions": {} + } + }, + "id": 1149, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9270:10:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1145, + "name": "ERC1155InvalidReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 490, + "src": "9247:22:3", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 1150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9247:34:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 1151, + "nodeType": "RevertStatement", + "src": "9240:41:3" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1159, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1154, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1126, + "src": "9305:4:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1157, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9321:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1156, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9313:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1155, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9313:7:3", + "typeDescriptions": {} + } + }, + "id": 1158, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9313:10:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "9305:18:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1168, + "nodeType": "IfStatement", + "src": "9301:88:3", + "trueBody": { + "id": 1167, + "nodeType": "Block", + "src": "9325:64:3", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 1163, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9375:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1162, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9367:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1161, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9367:7:3", + "typeDescriptions": {} + } + }, + "id": 1164, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9367:10:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1160, + "name": "ERC1155InvalidSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 485, + "src": "9346:20:3", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 1165, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9346:32:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 1166, + "nodeType": "RevertStatement", + "src": "9339:39:3" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 1170, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1126, + "src": "9425:4:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1171, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1128, + "src": "9431:2:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1172, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1131, + "src": "9435:3:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "id": 1173, + "name": "values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1134, + "src": "9440:6:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "id": 1174, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1136, + "src": "9448:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1169, + "name": "_updateWithAcceptanceCheck", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1057, + "src": "9398:26:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256[] memory,uint256[] memory,bytes memory)" + } + }, + "id": 1175, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9398:55:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1176, + "nodeType": "ExpressionStatement", + "src": "9398:55:3" + } + ] + }, + "documentation": { + "id": 1124, + "nodeType": "StructuredDocumentation", + "src": "8620:390:3", + "text": " @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {_safeTransferFrom}.\n Emits a {TransferBatch} event.\n Requirements:\n - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the\n acceptance magic value.\n - `ids` and `values` must have the same length." + }, + "id": 1178, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeBatchTransferFrom", + "nameLocation": "9024:22:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1137, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1126, + "mutability": "mutable", + "name": "from", + "nameLocation": "9064:4:3", + "nodeType": "VariableDeclaration", + "scope": 1178, + "src": "9056:12:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1125, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9056:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1128, + "mutability": "mutable", + "name": "to", + "nameLocation": "9086:2:3", + "nodeType": "VariableDeclaration", + "scope": 1178, + "src": "9078:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1127, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9078:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1131, + "mutability": "mutable", + "name": "ids", + "nameLocation": "9115:3:3", + "nodeType": "VariableDeclaration", + "scope": 1178, + "src": "9098:20:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1129, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9098:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1130, + "nodeType": "ArrayTypeName", + "src": "9098:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1134, + "mutability": "mutable", + "name": "values", + "nameLocation": "9145:6:3", + "nodeType": "VariableDeclaration", + "scope": 1178, + "src": "9128:23:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1132, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9128:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1133, + "nodeType": "ArrayTypeName", + "src": "9128:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1136, + "mutability": "mutable", + "name": "data", + "nameLocation": "9174:4:3", + "nodeType": "VariableDeclaration", + "scope": 1178, + "src": "9161:17:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1135, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "9161:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "9046:138:3" + }, + "returnParameters": { + "id": 1138, + "nodeType": "ParameterList", + "parameters": [], + "src": "9194:0:3" + }, + "scope": 1566, + "src": "9015:445:3", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1188, + "nodeType": "Block", + "src": "10338:30:3", + "statements": [ + { + "expression": { + "id": 1186, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1184, + "name": "_uri", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 565, + "src": "10348:4:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1185, + "name": "newuri", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1181, + "src": "10355:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "10348:13:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 1187, + "nodeType": "ExpressionStatement", + "src": "10348:13:3" + } + ] + }, + "documentation": { + "id": 1179, + "nodeType": "StructuredDocumentation", + "src": "9466:811:3", + "text": " @dev Sets a new URI for all token types, by relying on the token type ID\n substitution mechanism\n https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the EIP].\n By this mechanism, any occurrence of the `\\{id\\}` substring in either the\n URI or any of the values in the JSON file at said URI will be replaced by\n clients with the token type ID.\n For example, the `https://token-cdn-domain/\\{id\\}.json` URI would be\n interpreted by clients as\n `https://token-cdn-domain/000000000000000000000000000000000000000000000000000000000004cce0.json`\n for token type ID 0x4cce0.\n See {uri}.\n Because these URIs cannot be meaningfully represented by the {URI} event,\n this function emits no events." + }, + "id": 1189, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setURI", + "nameLocation": "10291:7:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1182, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1181, + "mutability": "mutable", + "name": "newuri", + "nameLocation": "10313:6:3", + "nodeType": "VariableDeclaration", + "scope": 1189, + "src": "10299:20:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1180, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "10299:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "10298:22:3" + }, + "returnParameters": { + "id": 1183, + "nodeType": "ParameterList", + "parameters": [], + "src": "10338:0:3" + }, + "scope": 1566, + "src": "10282:86:3", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1240, + "nodeType": "Block", + "src": "10828:264:3", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1206, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1201, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1192, + "src": "10842:2:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1204, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10856:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1203, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10848:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1202, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10848:7:3", + "typeDescriptions": {} + } + }, + "id": 1205, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10848:10:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "10842:16:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1215, + "nodeType": "IfStatement", + "src": "10838:88:3", + "trueBody": { + "id": 1214, + "nodeType": "Block", + "src": "10860:66:3", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 1210, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10912:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1209, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10904:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1208, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10904:7:3", + "typeDescriptions": {} + } + }, + "id": 1211, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10904:10:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1207, + "name": "ERC1155InvalidReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 490, + "src": "10881:22:3", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 1212, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10881:34:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 1213, + "nodeType": "RevertStatement", + "src": "10874:41:3" + } + ] + } + }, + { + "assignments": [ + 1220, + 1223 + ], + "declarations": [ + { + "constant": false, + "id": 1220, + "mutability": "mutable", + "name": "ids", + "nameLocation": "10953:3:3", + "nodeType": "VariableDeclaration", + "scope": 1240, + "src": "10936:20:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1218, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10936:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1219, + "nodeType": "ArrayTypeName", + "src": "10936:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1223, + "mutability": "mutable", + "name": "values", + "nameLocation": "10975:6:3", + "nodeType": "VariableDeclaration", + "scope": 1240, + "src": "10958:23:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1221, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10958:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1222, + "nodeType": "ArrayTypeName", + "src": "10958:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "id": 1228, + "initialValue": { + "arguments": [ + { + "id": 1225, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1194, + "src": "11004:2:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1226, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1196, + "src": "11008:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1224, + "name": "_asSingletonArrays", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1565, + "src": "10985:18:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function (uint256,uint256) pure returns (uint256[] memory,uint256[] memory)" + } + }, + "id": 1227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10985:29:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "tuple(uint256[] memory,uint256[] memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10935:79:3" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 1232, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11059:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1231, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11051:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1230, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11051:7:3", + "typeDescriptions": {} + } + }, + "id": 1233, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11051:10:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1234, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1192, + "src": "11063:2:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1235, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1220, + "src": "11067:3:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "id": 1236, + "name": "values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1223, + "src": "11072:6:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "id": 1237, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1198, + "src": "11080:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1229, + "name": "_updateWithAcceptanceCheck", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1057, + "src": "11024:26:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256[] memory,uint256[] memory,bytes memory)" + } + }, + "id": 1238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11024:61:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1239, + "nodeType": "ExpressionStatement", + "src": "11024:61:3" + } + ] + }, + "documentation": { + "id": 1190, + "nodeType": "StructuredDocumentation", + "src": "10374:367:3", + "text": " @dev Creates a `value` amount of tokens of type `id`, and assigns them to `to`.\n Emits a {TransferSingle} event.\n Requirements:\n - `to` cannot be the zero address.\n - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the\n acceptance magic value." + }, + "id": 1241, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mint", + "nameLocation": "10755:5:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1199, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1192, + "mutability": "mutable", + "name": "to", + "nameLocation": "10769:2:3", + "nodeType": "VariableDeclaration", + "scope": 1241, + "src": "10761:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1191, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10761:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1194, + "mutability": "mutable", + "name": "id", + "nameLocation": "10781:2:3", + "nodeType": "VariableDeclaration", + "scope": 1241, + "src": "10773:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1193, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10773:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1196, + "mutability": "mutable", + "name": "value", + "nameLocation": "10793:5:3", + "nodeType": "VariableDeclaration", + "scope": 1241, + "src": "10785:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1195, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10785:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1198, + "mutability": "mutable", + "name": "data", + "nameLocation": "10813:4:3", + "nodeType": "VariableDeclaration", + "scope": 1241, + "src": "10800:17:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1197, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "10800:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "10760:58:3" + }, + "returnParameters": { + "id": 1200, + "nodeType": "ParameterList", + "parameters": [], + "src": "10828:0:3" + }, + "scope": 1566, + "src": "10746:346:3", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1281, + "nodeType": "Block", + "src": "11630:175:3", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1260, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1255, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1244, + "src": "11644:2:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1258, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11658:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1257, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11650:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1256, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11650:7:3", + "typeDescriptions": {} + } + }, + "id": 1259, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11650:10:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "11644:16:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1269, + "nodeType": "IfStatement", + "src": "11640:88:3", + "trueBody": { + "id": 1268, + "nodeType": "Block", + "src": "11662:66:3", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 1264, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11714:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1263, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11706:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1262, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11706:7:3", + "typeDescriptions": {} + } + }, + "id": 1265, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11706:10:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1261, + "name": "ERC1155InvalidReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 490, + "src": "11683:22:3", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 1266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11683:34:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 1267, + "nodeType": "RevertStatement", + "src": "11676:41:3" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 1273, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11772:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1272, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11764:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1271, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11764:7:3", + "typeDescriptions": {} + } + }, + "id": 1274, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11764:10:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1275, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1244, + "src": "11776:2:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1276, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1247, + "src": "11780:3:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "id": 1277, + "name": "values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1250, + "src": "11785:6:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "id": 1278, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1252, + "src": "11793:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1270, + "name": "_updateWithAcceptanceCheck", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1057, + "src": "11737:26:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256[] memory,uint256[] memory,bytes memory)" + } + }, + "id": 1279, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11737:61:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1280, + "nodeType": "ExpressionStatement", + "src": "11737:61:3" + } + ] + }, + "documentation": { + "id": 1242, + "nodeType": "StructuredDocumentation", + "src": "11098:420:3", + "text": " @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {_mint}.\n Emits a {TransferBatch} event.\n Requirements:\n - `ids` and `values` must have the same length.\n - `to` cannot be the zero address.\n - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the\n acceptance magic value." + }, + "id": 1282, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mintBatch", + "nameLocation": "11532:10:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1253, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1244, + "mutability": "mutable", + "name": "to", + "nameLocation": "11551:2:3", + "nodeType": "VariableDeclaration", + "scope": 1282, + "src": "11543:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1243, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11543:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1247, + "mutability": "mutable", + "name": "ids", + "nameLocation": "11572:3:3", + "nodeType": "VariableDeclaration", + "scope": 1282, + "src": "11555:20:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1245, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11555:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1246, + "nodeType": "ArrayTypeName", + "src": "11555:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1250, + "mutability": "mutable", + "name": "values", + "nameLocation": "11594:6:3", + "nodeType": "VariableDeclaration", + "scope": 1282, + "src": "11577:23:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1248, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11577:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1249, + "nodeType": "ArrayTypeName", + "src": "11577:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1252, + "mutability": "mutable", + "name": "data", + "nameLocation": "11615:4:3", + "nodeType": "VariableDeclaration", + "scope": 1282, + "src": "11602:17:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1251, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "11602:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "11542:78:3" + }, + "returnParameters": { + "id": 1254, + "nodeType": "ParameterList", + "parameters": [], + "src": "11630:0:3" + }, + "scope": 1566, + "src": "11523:282:3", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1331, + "nodeType": "Block", + "src": "12164:264:3", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1297, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1292, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1285, + "src": "12178:4:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1295, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12194:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1294, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12186:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1293, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12186:7:3", + "typeDescriptions": {} + } + }, + "id": 1296, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12186:10:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "12178:18:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1306, + "nodeType": "IfStatement", + "src": "12174:88:3", + "trueBody": { + "id": 1305, + "nodeType": "Block", + "src": "12198:64:3", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 1301, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12248:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1300, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12240:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1299, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12240:7:3", + "typeDescriptions": {} + } + }, + "id": 1302, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12240:10:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1298, + "name": "ERC1155InvalidSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 485, + "src": "12219:20:3", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 1303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12219:32:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 1304, + "nodeType": "RevertStatement", + "src": "12212:39:3" + } + ] + } + }, + { + "assignments": [ + 1311, + 1314 + ], + "declarations": [ + { + "constant": false, + "id": 1311, + "mutability": "mutable", + "name": "ids", + "nameLocation": "12289:3:3", + "nodeType": "VariableDeclaration", + "scope": 1331, + "src": "12272:20:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1309, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12272:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1310, + "nodeType": "ArrayTypeName", + "src": "12272:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1314, + "mutability": "mutable", + "name": "values", + "nameLocation": "12311:6:3", + "nodeType": "VariableDeclaration", + "scope": 1331, + "src": "12294:23:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1312, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12294:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1313, + "nodeType": "ArrayTypeName", + "src": "12294:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "id": 1319, + "initialValue": { + "arguments": [ + { + "id": 1316, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1287, + "src": "12340:2:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1317, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1289, + "src": "12344:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1315, + "name": "_asSingletonArrays", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1565, + "src": "12321:18:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function (uint256,uint256) pure returns (uint256[] memory,uint256[] memory)" + } + }, + "id": 1318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12321:29:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "tuple(uint256[] memory,uint256[] memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12271:79:3" + }, + { + "expression": { + "arguments": [ + { + "id": 1321, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1285, + "src": "12387:4:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 1324, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12401:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1323, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12393:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1322, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12393:7:3", + "typeDescriptions": {} + } + }, + "id": 1325, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12393:10:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1326, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1311, + "src": "12405:3:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "id": 1327, + "name": "values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1314, + "src": "12410:6:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "hexValue": "", + "id": 1328, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12418:2:3", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 1320, + "name": "_updateWithAcceptanceCheck", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1057, + "src": "12360:26:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256[] memory,uint256[] memory,bytes memory)" + } + }, + "id": 1329, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12360:61:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1330, + "nodeType": "ExpressionStatement", + "src": "12360:61:3" + } + ] + }, + "documentation": { + "id": 1283, + "nodeType": "StructuredDocumentation", + "src": "11811:283:3", + "text": " @dev Destroys a `value` amount of tokens of type `id` from `from`\n Emits a {TransferSingle} event.\n Requirements:\n - `from` cannot be the zero address.\n - `from` must have at least `value` amount of tokens of type `id`." + }, + "id": 1332, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burn", + "nameLocation": "12108:5:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1290, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1285, + "mutability": "mutable", + "name": "from", + "nameLocation": "12122:4:3", + "nodeType": "VariableDeclaration", + "scope": 1332, + "src": "12114:12:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1284, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12114:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1287, + "mutability": "mutable", + "name": "id", + "nameLocation": "12136:2:3", + "nodeType": "VariableDeclaration", + "scope": 1332, + "src": "12128:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1286, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12128:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1289, + "mutability": "mutable", + "name": "value", + "nameLocation": "12148:5:3", + "nodeType": "VariableDeclaration", + "scope": 1332, + "src": "12140:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1288, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12140:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12113:41:3" + }, + "returnParameters": { + "id": 1291, + "nodeType": "ParameterList", + "parameters": [], + "src": "12164:0:3" + }, + "scope": 1566, + "src": "12099:329:3", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1370, + "nodeType": "Block", + "src": "12874:175:3", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1349, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1344, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1335, + "src": "12888:4:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1347, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12904:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1346, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12896:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1345, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12896:7:3", + "typeDescriptions": {} + } + }, + "id": 1348, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12896:10:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "12888:18:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1358, + "nodeType": "IfStatement", + "src": "12884:88:3", + "trueBody": { + "id": 1357, + "nodeType": "Block", + "src": "12908:64:3", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 1353, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12958:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1352, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12950:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1351, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12950:7:3", + "typeDescriptions": {} + } + }, + "id": 1354, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12950:10:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1350, + "name": "ERC1155InvalidSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 485, + "src": "12929:20:3", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 1355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12929:32:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 1356, + "nodeType": "RevertStatement", + "src": "12922:39:3" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 1360, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1335, + "src": "13008:4:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 1363, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13022:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1362, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13014:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1361, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13014:7:3", + "typeDescriptions": {} + } + }, + "id": 1364, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13014:10:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1365, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1338, + "src": "13026:3:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "id": 1366, + "name": "values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1341, + "src": "13031:6:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "hexValue": "", + "id": 1367, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13039:2:3", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 1359, + "name": "_updateWithAcceptanceCheck", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1057, + "src": "12981:26:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256[] memory,uint256[] memory,bytes memory)" + } + }, + "id": 1368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12981:61:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1369, + "nodeType": "ExpressionStatement", + "src": "12981:61:3" + } + ] + }, + "documentation": { + "id": 1333, + "nodeType": "StructuredDocumentation", + "src": "12434:345:3", + "text": " @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {_burn}.\n Emits a {TransferBatch} event.\n Requirements:\n - `from` cannot be the zero address.\n - `from` must have at least `value` amount of tokens of type `id`.\n - `ids` and `values` must have the same length." + }, + "id": 1371, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burnBatch", + "nameLocation": "12793:10:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1342, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1335, + "mutability": "mutable", + "name": "from", + "nameLocation": "12812:4:3", + "nodeType": "VariableDeclaration", + "scope": 1371, + "src": "12804:12:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1334, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12804:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1338, + "mutability": "mutable", + "name": "ids", + "nameLocation": "12835:3:3", + "nodeType": "VariableDeclaration", + "scope": 1371, + "src": "12818:20:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1336, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12818:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1337, + "nodeType": "ArrayTypeName", + "src": "12818:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1341, + "mutability": "mutable", + "name": "values", + "nameLocation": "12857:6:3", + "nodeType": "VariableDeclaration", + "scope": 1371, + "src": "12840:23:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1339, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12840:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1340, + "nodeType": "ArrayTypeName", + "src": "12840:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "12803:61:3" + }, + "returnParameters": { + "id": 1343, + "nodeType": "ParameterList", + "parameters": [], + "src": "12874:0:3" + }, + "scope": 1566, + "src": "12784:265:3", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1410, + "nodeType": "Block", + "src": "13361:222:3", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1386, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1381, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1376, + "src": "13375:8:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1384, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13395:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1383, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13387:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1382, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13387:7:3", + "typeDescriptions": {} + } + }, + "id": 1385, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13387:10:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13375:22:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1395, + "nodeType": "IfStatement", + "src": "13371:94:3", + "trueBody": { + "id": 1394, + "nodeType": "Block", + "src": "13399:66:3", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 1390, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13451:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1389, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13443:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1388, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13443:7:3", + "typeDescriptions": {} + } + }, + "id": 1391, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13443:10:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1387, + "name": "ERC1155InvalidOperator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 507, + "src": "13420:22:3", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 1392, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13420:34:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 1393, + "nodeType": "RevertStatement", + "src": "13413:41:3" + } + ] + } + }, + { + "expression": { + "id": 1402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 1396, + "name": "_operatorApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 563, + "src": "13474:18:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 1399, + "indexExpression": { + "id": 1397, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1374, + "src": "13493:5:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13474:25:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 1400, + "indexExpression": { + "id": 1398, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1376, + "src": "13500:8:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "13474:35:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1401, + "name": "approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1378, + "src": "13512:8:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "13474:46:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1403, + "nodeType": "ExpressionStatement", + "src": "13474:46:3" + }, + { + "eventCall": { + "arguments": [ + { + "id": 1405, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1374, + "src": "13550:5:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1406, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1376, + "src": "13557:8:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1407, + "name": "approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1378, + "src": "13567:8:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1404, + "name": "ApprovalForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1610, + "src": "13535:14:3", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", + "typeString": "function (address,address,bool)" + } + }, + "id": 1408, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13535:41:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1409, + "nodeType": "EmitStatement", + "src": "13530:46:3" + } + ] + }, + "documentation": { + "id": 1372, + "nodeType": "StructuredDocumentation", + "src": "13055:208:3", + "text": " @dev Approve `operator` to operate on all of `owner` tokens\n Emits an {ApprovalForAll} event.\n Requirements:\n - `operator` cannot be the zero address." + }, + "id": 1411, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setApprovalForAll", + "nameLocation": "13277:18:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1379, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1374, + "mutability": "mutable", + "name": "owner", + "nameLocation": "13304:5:3", + "nodeType": "VariableDeclaration", + "scope": 1411, + "src": "13296:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1373, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13296:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1376, + "mutability": "mutable", + "name": "operator", + "nameLocation": "13319:8:3", + "nodeType": "VariableDeclaration", + "scope": 1411, + "src": "13311:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1375, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13311:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1378, + "mutability": "mutable", + "name": "approved", + "nameLocation": "13334:8:3", + "nodeType": "VariableDeclaration", + "scope": 1411, + "src": "13329:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1377, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "13329:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "13295:48:3" + }, + "returnParameters": { + "id": 1380, + "nodeType": "ParameterList", + "parameters": [], + "src": "13361:0:3" + }, + "scope": 1566, + "src": "13268:315:3", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1478, + "nodeType": "Block", + "src": "13953:782:3", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1431, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 1427, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1418, + "src": "13967:2:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1428, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13970:4:3", + "memberName": "code", + "nodeType": "MemberAccess", + "src": "13967:7:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1429, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13975:6:3", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "13967:14:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1430, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13984:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "13967:18:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1477, + "nodeType": "IfStatement", + "src": "13963:766:3", + "trueBody": { + "id": 1476, + "nodeType": "Block", + "src": "13987:742:3", + "statements": [ + { + "clauses": [ + { + "block": { + "id": 1456, + "nodeType": "Block", + "src": "14103:206:3", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 1449, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1445, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1443, + "src": "14125:8:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "expression": { + "id": 1446, + "name": "IERC1155Receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1731, + "src": "14137:16:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC1155Receiver_$1731_$", + "typeString": "type(contract IERC1155Receiver)" + } + }, + "id": 1447, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "14154:17:3", + "memberName": "onERC1155Received", + "nodeType": "MemberAccess", + "referencedDeclaration": 1712, + "src": "14137:34:3", + "typeDescriptions": { + "typeIdentifier": "t_function_declaration_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_calldata_ptr_$returns$_t_bytes4_$", + "typeString": "function IERC1155Receiver.onERC1155Received(address,address,uint256,uint256,bytes calldata) returns (bytes4)" + } + }, + "id": 1448, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "14172:8:3", + "memberName": "selector", + "nodeType": "MemberAccess", + "src": "14137:43:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "14125:55:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1455, + "nodeType": "IfStatement", + "src": "14121:174:3", + "trueBody": { + "id": 1454, + "nodeType": "Block", + "src": "14182:113:3", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 1451, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1418, + "src": "14273:2:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1450, + "name": "ERC1155InvalidReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 490, + "src": "14250:22:3", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 1452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14250:26:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 1453, + "nodeType": "RevertStatement", + "src": "14243:33:3" + } + ] + } + } + ] + }, + "errorName": "", + "id": 1457, + "nodeType": "TryCatchClause", + "parameters": { + "id": 1444, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1443, + "mutability": "mutable", + "name": "response", + "nameLocation": "14093:8:3", + "nodeType": "VariableDeclaration", + "scope": 1457, + "src": "14086:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 1442, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "14086:6:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "14085:17:3" + }, + "src": "14077:232:3" + }, + { + "block": { + "id": 1473, + "nodeType": "Block", + "src": "14338:381:3", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1464, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1461, + "name": "reason", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1459, + "src": "14360:6:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1462, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14367:6:3", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "14360:13:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 1463, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14377:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14360:18:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1471, + "nodeType": "Block", + "src": "14515:190:3", + "statements": [ + { + "AST": { + "nativeSrc": "14601:86:3", + "nodeType": "YulBlock", + "src": "14601:86:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "14638:2:3", + "nodeType": "YulLiteral", + "src": "14638:2:3", + "type": "", + "value": "32" + }, + { + "name": "reason", + "nativeSrc": "14642:6:3", + "nodeType": "YulIdentifier", + "src": "14642:6:3" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14634:3:3", + "nodeType": "YulIdentifier", + "src": "14634:3:3" + }, + "nativeSrc": "14634:15:3", + "nodeType": "YulFunctionCall", + "src": "14634:15:3" + }, + { + "arguments": [ + { + "name": "reason", + "nativeSrc": "14657:6:3", + "nodeType": "YulIdentifier", + "src": "14657:6:3" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "14651:5:3", + "nodeType": "YulIdentifier", + "src": "14651:5:3" + }, + "nativeSrc": "14651:13:3", + "nodeType": "YulFunctionCall", + "src": "14651:13:3" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "14627:6:3", + "nodeType": "YulIdentifier", + "src": "14627:6:3" + }, + "nativeSrc": "14627:38:3", + "nodeType": "YulFunctionCall", + "src": "14627:38:3" + }, + "nativeSrc": "14627:38:3", + "nodeType": "YulExpressionStatement", + "src": "14627:38:3" + } + ] + }, + "documentation": "@solidity memory-safe-assembly", + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 1459, + "isOffset": false, + "isSlot": false, + "src": "14642:6:3", + "valueSize": 1 + }, + { + "declaration": 1459, + "isOffset": false, + "isSlot": false, + "src": "14657:6:3", + "valueSize": 1 + } + ], + "id": 1470, + "nodeType": "InlineAssembly", + "src": "14592:95:3" + } + ] + }, + "id": 1472, + "nodeType": "IfStatement", + "src": "14356:349:3", + "trueBody": { + "id": 1469, + "nodeType": "Block", + "src": "14380:129:3", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 1466, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1418, + "src": "14487:2:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1465, + "name": "ERC1155InvalidReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 490, + "src": "14464:22:3", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 1467, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14464:26:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 1468, + "nodeType": "RevertStatement", + "src": "14457:33:3" + } + ] + } + } + ] + }, + "errorName": "", + "id": 1474, + "nodeType": "TryCatchClause", + "parameters": { + "id": 1460, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1459, + "mutability": "mutable", + "name": "reason", + "nameLocation": "14330:6:3", + "nodeType": "VariableDeclaration", + "scope": 1474, + "src": "14317:19:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1458, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "14317:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "14316:21:3" + }, + "src": "14310:409:3" + } + ], + "externalCall": { + "arguments": [ + { + "id": 1436, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1414, + "src": "14044:8:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1437, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1416, + "src": "14054:4:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1438, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1420, + "src": "14060:2:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1439, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1422, + "src": "14064:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1440, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1424, + "src": "14071:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "arguments": [ + { + "id": 1433, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1418, + "src": "14022:2:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1432, + "name": "IERC1155Receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1731, + "src": "14005:16:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC1155Receiver_$1731_$", + "typeString": "type(contract IERC1155Receiver)" + } + }, + "id": 1434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14005:20:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC1155Receiver_$1731", + "typeString": "contract IERC1155Receiver" + } + }, + "id": 1435, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14026:17:3", + "memberName": "onERC1155Received", + "nodeType": "MemberAccess", + "referencedDeclaration": 1712, + "src": "14005:38:3", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", + "typeString": "function (address,address,uint256,uint256,bytes memory) external returns (bytes4)" + } + }, + "id": 1441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14005:71:3", + "tryCall": true, + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "id": 1475, + "nodeType": "TryStatement", + "src": "14001:718:3" + } + ] + } + } + ] + }, + "documentation": { + "id": 1412, + "nodeType": "StructuredDocumentation", + "src": "13589:167:3", + "text": " @dev Performs an acceptance check by calling {IERC1155-onERC1155Received} on the `to` address\n if it contains code at the moment of execution." + }, + "id": 1479, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_doSafeTransferAcceptanceCheck", + "nameLocation": "13770:30:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1425, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1414, + "mutability": "mutable", + "name": "operator", + "nameLocation": "13818:8:3", + "nodeType": "VariableDeclaration", + "scope": 1479, + "src": "13810:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1413, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13810:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1416, + "mutability": "mutable", + "name": "from", + "nameLocation": "13844:4:3", + "nodeType": "VariableDeclaration", + "scope": 1479, + "src": "13836:12:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1415, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13836:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1418, + "mutability": "mutable", + "name": "to", + "nameLocation": "13866:2:3", + "nodeType": "VariableDeclaration", + "scope": 1479, + "src": "13858:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1417, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13858:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1420, + "mutability": "mutable", + "name": "id", + "nameLocation": "13886:2:3", + "nodeType": "VariableDeclaration", + "scope": 1479, + "src": "13878:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1419, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13878:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1422, + "mutability": "mutable", + "name": "value", + "nameLocation": "13906:5:3", + "nodeType": "VariableDeclaration", + "scope": 1479, + "src": "13898:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1421, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13898:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1424, + "mutability": "mutable", + "name": "data", + "nameLocation": "13934:4:3", + "nodeType": "VariableDeclaration", + "scope": 1479, + "src": "13921:17:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1423, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "13921:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "13800:144:3" + }, + "returnParameters": { + "id": 1426, + "nodeType": "ParameterList", + "parameters": [], + "src": "13953:0:3" + }, + "scope": 1566, + "src": "13761:974:3", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 1548, + "nodeType": "Block", + "src": "15140:824:3", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1501, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 1497, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1486, + "src": "15154:2:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1498, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15157:4:3", + "memberName": "code", + "nodeType": "MemberAccess", + "src": "15154:7:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1499, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15162:6:3", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "15154:14:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1500, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15171:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15154:18:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1547, + "nodeType": "IfStatement", + "src": "15150:808:3", + "trueBody": { + "id": 1546, + "nodeType": "Block", + "src": "15174:784:3", + "statements": [ + { + "clauses": [ + { + "block": { + "id": 1526, + "nodeType": "Block", + "src": "15327:211:3", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 1519, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1515, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1513, + "src": "15349:8:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "expression": { + "id": 1516, + "name": "IERC1155Receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1731, + "src": "15361:16:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC1155Receiver_$1731_$", + "typeString": "type(contract IERC1155Receiver)" + } + }, + "id": 1517, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "15378:22:3", + "memberName": "onERC1155BatchReceived", + "nodeType": "MemberAccess", + "referencedDeclaration": 1730, + "src": "15361:39:3", + "typeDescriptions": { + "typeIdentifier": "t_function_declaration_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_calldata_ptr_$_t_array$_t_uint256_$dyn_calldata_ptr_$_t_bytes_calldata_ptr_$returns$_t_bytes4_$", + "typeString": "function IERC1155Receiver.onERC1155BatchReceived(address,address,uint256[] calldata,uint256[] calldata,bytes calldata) returns (bytes4)" + } + }, + "id": 1518, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "15401:8:3", + "memberName": "selector", + "nodeType": "MemberAccess", + "src": "15361:48:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "15349:60:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1525, + "nodeType": "IfStatement", + "src": "15345:179:3", + "trueBody": { + "id": 1524, + "nodeType": "Block", + "src": "15411:113:3", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 1521, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1486, + "src": "15502:2:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1520, + "name": "ERC1155InvalidReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 490, + "src": "15479:22:3", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 1522, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15479:26:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 1523, + "nodeType": "RevertStatement", + "src": "15472:33:3" + } + ] + } + } + ] + }, + "errorName": "", + "id": 1527, + "nodeType": "TryCatchClause", + "parameters": { + "id": 1514, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1513, + "mutability": "mutable", + "name": "response", + "nameLocation": "15304:8:3", + "nodeType": "VariableDeclaration", + "scope": 1527, + "src": "15297:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 1512, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "15297:6:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "15279:47:3" + }, + "src": "15271:267:3" + }, + { + "block": { + "id": 1543, + "nodeType": "Block", + "src": "15567:381:3", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1534, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1531, + "name": "reason", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1529, + "src": "15589:6:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1532, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15596:6:3", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "15589:13:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 1533, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15606:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15589:18:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1541, + "nodeType": "Block", + "src": "15744:190:3", + "statements": [ + { + "AST": { + "nativeSrc": "15830:86:3", + "nodeType": "YulBlock", + "src": "15830:86:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "15867:2:3", + "nodeType": "YulLiteral", + "src": "15867:2:3", + "type": "", + "value": "32" + }, + { + "name": "reason", + "nativeSrc": "15871:6:3", + "nodeType": "YulIdentifier", + "src": "15871:6:3" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15863:3:3", + "nodeType": "YulIdentifier", + "src": "15863:3:3" + }, + "nativeSrc": "15863:15:3", + "nodeType": "YulFunctionCall", + "src": "15863:15:3" + }, + { + "arguments": [ + { + "name": "reason", + "nativeSrc": "15886:6:3", + "nodeType": "YulIdentifier", + "src": "15886:6:3" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "15880:5:3", + "nodeType": "YulIdentifier", + "src": "15880:5:3" + }, + "nativeSrc": "15880:13:3", + "nodeType": "YulFunctionCall", + "src": "15880:13:3" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "15856:6:3", + "nodeType": "YulIdentifier", + "src": "15856:6:3" + }, + "nativeSrc": "15856:38:3", + "nodeType": "YulFunctionCall", + "src": "15856:38:3" + }, + "nativeSrc": "15856:38:3", + "nodeType": "YulExpressionStatement", + "src": "15856:38:3" + } + ] + }, + "documentation": "@solidity memory-safe-assembly", + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 1529, + "isOffset": false, + "isSlot": false, + "src": "15871:6:3", + "valueSize": 1 + }, + { + "declaration": 1529, + "isOffset": false, + "isSlot": false, + "src": "15886:6:3", + "valueSize": 1 + } + ], + "id": 1540, + "nodeType": "InlineAssembly", + "src": "15821:95:3" + } + ] + }, + "id": 1542, + "nodeType": "IfStatement", + "src": "15585:349:3", + "trueBody": { + "id": 1539, + "nodeType": "Block", + "src": "15609:129:3", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 1536, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1486, + "src": "15716:2:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1535, + "name": "ERC1155InvalidReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 490, + "src": "15693:22:3", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 1537, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15693:26:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 1538, + "nodeType": "RevertStatement", + "src": "15686:33:3" + } + ] + } + } + ] + }, + "errorName": "", + "id": 1544, + "nodeType": "TryCatchClause", + "parameters": { + "id": 1530, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1529, + "mutability": "mutable", + "name": "reason", + "nameLocation": "15559:6:3", + "nodeType": "VariableDeclaration", + "scope": 1544, + "src": "15546:19:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1528, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "15546:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "15545:21:3" + }, + "src": "15539:409:3" + } + ], + "externalCall": { + "arguments": [ + { + "id": 1506, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1482, + "src": "15236:8:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1507, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "15246:4:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1508, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1489, + "src": "15252:3:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "id": 1509, + "name": "values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1492, + "src": "15257:6:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "id": 1510, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1494, + "src": "15265:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "arguments": [ + { + "id": 1503, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1486, + "src": "15209:2:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1502, + "name": "IERC1155Receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1731, + "src": "15192:16:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC1155Receiver_$1731_$", + "typeString": "type(contract IERC1155Receiver)" + } + }, + "id": 1504, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15192:20:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC1155Receiver_$1731", + "typeString": "contract IERC1155Receiver" + } + }, + "id": 1505, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15213:22:3", + "memberName": "onERC1155BatchReceived", + "nodeType": "MemberAccess", + "referencedDeclaration": 1730, + "src": "15192:43:3", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", + "typeString": "function (address,address,uint256[] memory,uint256[] memory,bytes memory) external returns (bytes4)" + } + }, + "id": 1511, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15192:78:3", + "tryCall": true, + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "id": 1545, + "nodeType": "TryStatement", + "src": "15188:760:3" + } + ] + } + } + ] + }, + "documentation": { + "id": 1480, + "nodeType": "StructuredDocumentation", + "src": "14741:177:3", + "text": " @dev Performs a batch acceptance check by calling {IERC1155-onERC1155BatchReceived} on the `to` address\n if it contains code at the moment of execution." + }, + "id": 1549, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_doSafeBatchTransferAcceptanceCheck", + "nameLocation": "14932:35:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1495, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1482, + "mutability": "mutable", + "name": "operator", + "nameLocation": "14985:8:3", + "nodeType": "VariableDeclaration", + "scope": 1549, + "src": "14977:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1481, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14977:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1484, + "mutability": "mutable", + "name": "from", + "nameLocation": "15011:4:3", + "nodeType": "VariableDeclaration", + "scope": 1549, + "src": "15003:12:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1483, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15003:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1486, + "mutability": "mutable", + "name": "to", + "nameLocation": "15033:2:3", + "nodeType": "VariableDeclaration", + "scope": 1549, + "src": "15025:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1485, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15025:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1489, + "mutability": "mutable", + "name": "ids", + "nameLocation": "15062:3:3", + "nodeType": "VariableDeclaration", + "scope": 1549, + "src": "15045:20:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1487, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15045:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1488, + "nodeType": "ArrayTypeName", + "src": "15045:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1492, + "mutability": "mutable", + "name": "values", + "nameLocation": "15092:6:3", + "nodeType": "VariableDeclaration", + "scope": 1549, + "src": "15075:23:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1490, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15075:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1491, + "nodeType": "ArrayTypeName", + "src": "15075:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1494, + "mutability": "mutable", + "name": "data", + "nameLocation": "15121:4:3", + "nodeType": "VariableDeclaration", + "scope": 1549, + "src": "15108:17:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1493, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "15108:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "14967:164:3" + }, + "returnParameters": { + "id": 1496, + "nodeType": "ParameterList", + "parameters": [], + "src": "15140:0:3" + }, + "scope": 1566, + "src": "14923:1041:3", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 1564, + "nodeType": "Block", + "src": "16238:691:3", + "statements": [ + { + "AST": { + "nativeSrc": "16300:623:3", + "nodeType": "YulBlock", + "src": "16300:623:3", + "statements": [ + { + "nativeSrc": "16358:21:3", + "nodeType": "YulAssignment", + "src": "16358:21:3", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "16374:4:3", + "nodeType": "YulLiteral", + "src": "16374:4:3", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "16368:5:3", + "nodeType": "YulIdentifier", + "src": "16368:5:3" + }, + "nativeSrc": "16368:11:3", + "nodeType": "YulFunctionCall", + "src": "16368:11:3" + }, + "variableNames": [ + { + "name": "array1", + "nativeSrc": "16358:6:3", + "nodeType": "YulIdentifier", + "src": "16358:6:3" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array1", + "nativeSrc": "16436:6:3", + "nodeType": "YulIdentifier", + "src": "16436:6:3" + }, + { + "kind": "number", + "nativeSrc": "16444:1:3", + "nodeType": "YulLiteral", + "src": "16444:1:3", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "16429:6:3", + "nodeType": "YulIdentifier", + "src": "16429:6:3" + }, + "nativeSrc": "16429:17:3", + "nodeType": "YulFunctionCall", + "src": "16429:17:3" + }, + "nativeSrc": "16429:17:3", + "nodeType": "YulExpressionStatement", + "src": "16429:17:3" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "array1", + "nativeSrc": "16567:6:3", + "nodeType": "YulIdentifier", + "src": "16567:6:3" + }, + { + "kind": "number", + "nativeSrc": "16575:4:3", + "nodeType": "YulLiteral", + "src": "16575:4:3", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16563:3:3", + "nodeType": "YulIdentifier", + "src": "16563:3:3" + }, + "nativeSrc": "16563:17:3", + "nodeType": "YulFunctionCall", + "src": "16563:17:3" + }, + { + "name": "element1", + "nativeSrc": "16582:8:3", + "nodeType": "YulIdentifier", + "src": "16582:8:3" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "16556:6:3", + "nodeType": "YulIdentifier", + "src": "16556:6:3" + }, + "nativeSrc": "16556:35:3", + "nodeType": "YulFunctionCall", + "src": "16556:35:3" + }, + "nativeSrc": "16556:35:3", + "nodeType": "YulExpressionStatement", + "src": "16556:35:3" + }, + { + "nativeSrc": "16682:27:3", + "nodeType": "YulAssignment", + "src": "16682:27:3", + "value": { + "arguments": [ + { + "name": "array1", + "nativeSrc": "16696:6:3", + "nodeType": "YulIdentifier", + "src": "16696:6:3" + }, + { + "kind": "number", + "nativeSrc": "16704:4:3", + "nodeType": "YulLiteral", + "src": "16704:4:3", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16692:3:3", + "nodeType": "YulIdentifier", + "src": "16692:3:3" + }, + "nativeSrc": "16692:17:3", + "nodeType": "YulFunctionCall", + "src": "16692:17:3" + }, + "variableNames": [ + { + "name": "array2", + "nativeSrc": "16682:6:3", + "nodeType": "YulIdentifier", + "src": "16682:6:3" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array2", + "nativeSrc": "16729:6:3", + "nodeType": "YulIdentifier", + "src": "16729:6:3" + }, + { + "kind": "number", + "nativeSrc": "16737:1:3", + "nodeType": "YulLiteral", + "src": "16737:1:3", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "16722:6:3", + "nodeType": "YulIdentifier", + "src": "16722:6:3" + }, + "nativeSrc": "16722:17:3", + "nodeType": "YulFunctionCall", + "src": "16722:17:3" + }, + "nativeSrc": "16722:17:3", + "nodeType": "YulExpressionStatement", + "src": "16722:17:3" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "array2", + "nativeSrc": "16763:6:3", + "nodeType": "YulIdentifier", + "src": "16763:6:3" + }, + { + "kind": "number", + "nativeSrc": "16771:4:3", + "nodeType": "YulLiteral", + "src": "16771:4:3", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16759:3:3", + "nodeType": "YulIdentifier", + "src": "16759:3:3" + }, + "nativeSrc": "16759:17:3", + "nodeType": "YulFunctionCall", + "src": "16759:17:3" + }, + { + "name": "element2", + "nativeSrc": "16778:8:3", + "nodeType": "YulIdentifier", + "src": "16778:8:3" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "16752:6:3", + "nodeType": "YulIdentifier", + "src": "16752:6:3" + }, + "nativeSrc": "16752:35:3", + "nodeType": "YulFunctionCall", + "src": "16752:35:3" + }, + "nativeSrc": "16752:35:3", + "nodeType": "YulExpressionStatement", + "src": "16752:35:3" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "16889:4:3", + "nodeType": "YulLiteral", + "src": "16889:4:3", + "type": "", + "value": "0x40" + }, + { + "arguments": [ + { + "name": "array2", + "nativeSrc": "16899:6:3", + "nodeType": "YulIdentifier", + "src": "16899:6:3" + }, + { + "kind": "number", + "nativeSrc": "16907:4:3", + "nodeType": "YulLiteral", + "src": "16907:4:3", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16895:3:3", + "nodeType": "YulIdentifier", + "src": "16895:3:3" + }, + "nativeSrc": "16895:17:3", + "nodeType": "YulFunctionCall", + "src": "16895:17:3" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "16882:6:3", + "nodeType": "YulIdentifier", + "src": "16882:6:3" + }, + "nativeSrc": "16882:31:3", + "nodeType": "YulFunctionCall", + "src": "16882:31:3" + }, + "nativeSrc": "16882:31:3", + "nodeType": "YulExpressionStatement", + "src": "16882:31:3" + } + ] + }, + "documentation": "@solidity memory-safe-assembly", + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 1558, + "isOffset": false, + "isSlot": false, + "src": "16358:6:3", + "valueSize": 1 + }, + { + "declaration": 1558, + "isOffset": false, + "isSlot": false, + "src": "16436:6:3", + "valueSize": 1 + }, + { + "declaration": 1558, + "isOffset": false, + "isSlot": false, + "src": "16567:6:3", + "valueSize": 1 + }, + { + "declaration": 1558, + "isOffset": false, + "isSlot": false, + "src": "16696:6:3", + "valueSize": 1 + }, + { + "declaration": 1561, + "isOffset": false, + "isSlot": false, + "src": "16682:6:3", + "valueSize": 1 + }, + { + "declaration": 1561, + "isOffset": false, + "isSlot": false, + "src": "16729:6:3", + "valueSize": 1 + }, + { + "declaration": 1561, + "isOffset": false, + "isSlot": false, + "src": "16763:6:3", + "valueSize": 1 + }, + { + "declaration": 1561, + "isOffset": false, + "isSlot": false, + "src": "16899:6:3", + "valueSize": 1 + }, + { + "declaration": 1552, + "isOffset": false, + "isSlot": false, + "src": "16582:8:3", + "valueSize": 1 + }, + { + "declaration": 1554, + "isOffset": false, + "isSlot": false, + "src": "16778:8:3", + "valueSize": 1 + } + ], + "id": 1563, + "nodeType": "InlineAssembly", + "src": "16291:632:3" + } + ] + }, + "documentation": { + "id": 1550, + "nodeType": "StructuredDocumentation", + "src": "15970:105:3", + "text": " @dev Creates an array in memory with only one value for each of the elements provided." + }, + "id": 1565, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_asSingletonArrays", + "nameLocation": "16089:18:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1555, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1552, + "mutability": "mutable", + "name": "element1", + "nameLocation": "16125:8:3", + "nodeType": "VariableDeclaration", + "scope": 1565, + "src": "16117:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1551, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16117:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1554, + "mutability": "mutable", + "name": "element2", + "nameLocation": "16151:8:3", + "nodeType": "VariableDeclaration", + "scope": 1565, + "src": "16143:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1553, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16143:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "16107:58:3" + }, + "returnParameters": { + "id": 1562, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1558, + "mutability": "mutable", + "name": "array1", + "nameLocation": "16205:6:3", + "nodeType": "VariableDeclaration", + "scope": 1565, + "src": "16188:23:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1556, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16188:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1557, + "nodeType": "ArrayTypeName", + "src": "16188:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1561, + "mutability": "mutable", + "name": "array2", + "nameLocation": "16230:6:3", + "nodeType": "VariableDeclaration", + "scope": 1565, + "src": "16213:23:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1559, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16213:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1560, + "nodeType": "ArrayTypeName", + "src": "16213:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "16187:50:3" + }, + "scope": 1566, + "src": "16080:849:3", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + } + ], + "scope": 1567, + "src": "727:16204:3", + "usedErrors": [ + 480, + 485, + 490, + 497, + 502, + 507, + 514 + ], + "usedEvents": [ + 1586, + 1601, + 1610, + 1617 + ] + } + ], + "src": "109:16823:3" + }, + "id": 3 + }, + "@openzeppelin/contracts/token/ERC1155/IERC1155.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC1155/IERC1155.sol", + "exportedSymbols": { + "IERC1155": [ + 1689 + ], + "IERC165": [ + 2556 + ] + }, + "id": 1690, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1568, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "110:24:4" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/introspection/IERC165.sol", + "file": "../../utils/introspection/IERC165.sol", + "id": 1570, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1690, + "sourceUnit": 2557, + "src": "136:62:4", + "symbolAliases": [ + { + "foreign": { + "id": 1569, + "name": "IERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2556, + "src": "144:7:4", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 1572, + "name": "IERC165", + "nameLocations": [ + "358:7:4" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2556, + "src": "358:7:4" + }, + "id": 1573, + "nodeType": "InheritanceSpecifier", + "src": "358:7:4" + } + ], + "canonicalName": "IERC1155", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 1571, + "nodeType": "StructuredDocumentation", + "src": "200:135:4", + "text": " @dev Required interface of an ERC1155 compliant contract, as defined in the\n https://eips.ethereum.org/EIPS/eip-1155[EIP]." + }, + "fullyImplemented": false, + "id": 1689, + "linearizedBaseContracts": [ + 1689, + 2556 + ], + "name": "IERC1155", + "nameLocation": "346:8:4", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": { + "id": 1574, + "nodeType": "StructuredDocumentation", + "src": "372:125:4", + "text": " @dev Emitted when `value` amount of tokens of type `id` are transferred from `from` to `to` by `operator`." + }, + "eventSelector": "c3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62", + "id": 1586, + "name": "TransferSingle", + "nameLocation": "508:14:4", + "nodeType": "EventDefinition", + "parameters": { + "id": 1585, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1576, + "indexed": true, + "mutability": "mutable", + "name": "operator", + "nameLocation": "539:8:4", + "nodeType": "VariableDeclaration", + "scope": 1586, + "src": "523:24:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1575, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "523:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1578, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nameLocation": "565:4:4", + "nodeType": "VariableDeclaration", + "scope": 1586, + "src": "549:20:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1577, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "549:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1580, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nameLocation": "587:2:4", + "nodeType": "VariableDeclaration", + "scope": 1586, + "src": "571:18:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1579, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "571:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1582, + "indexed": false, + "mutability": "mutable", + "name": "id", + "nameLocation": "599:2:4", + "nodeType": "VariableDeclaration", + "scope": 1586, + "src": "591:10:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1581, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "591:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1584, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nameLocation": "611:5:4", + "nodeType": "VariableDeclaration", + "scope": 1586, + "src": "603:13:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1583, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "603:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "522:95:4" + }, + "src": "502:116:4" + }, + { + "anonymous": false, + "documentation": { + "id": 1587, + "nodeType": "StructuredDocumentation", + "src": "624:144:4", + "text": " @dev Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all\n transfers." + }, + "eventSelector": "4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb", + "id": 1601, + "name": "TransferBatch", + "nameLocation": "779:13:4", + "nodeType": "EventDefinition", + "parameters": { + "id": 1600, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1589, + "indexed": true, + "mutability": "mutable", + "name": "operator", + "nameLocation": "818:8:4", + "nodeType": "VariableDeclaration", + "scope": 1601, + "src": "802:24:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1588, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "802:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1591, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nameLocation": "852:4:4", + "nodeType": "VariableDeclaration", + "scope": 1601, + "src": "836:20:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1590, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "836:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1593, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nameLocation": "882:2:4", + "nodeType": "VariableDeclaration", + "scope": 1601, + "src": "866:18:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1592, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "866:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1596, + "indexed": false, + "mutability": "mutable", + "name": "ids", + "nameLocation": "904:3:4", + "nodeType": "VariableDeclaration", + "scope": 1601, + "src": "894:13:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1594, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "894:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1595, + "nodeType": "ArrayTypeName", + "src": "894:9:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1599, + "indexed": false, + "mutability": "mutable", + "name": "values", + "nameLocation": "927:6:4", + "nodeType": "VariableDeclaration", + "scope": 1601, + "src": "917:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1597, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "917:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1598, + "nodeType": "ArrayTypeName", + "src": "917:9:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "792:147:4" + }, + "src": "773:167:4" + }, + { + "anonymous": false, + "documentation": { + "id": 1602, + "nodeType": "StructuredDocumentation", + "src": "946:147:4", + "text": " @dev Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to\n `approved`." + }, + "eventSelector": "17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31", + "id": 1610, + "name": "ApprovalForAll", + "nameLocation": "1104:14:4", + "nodeType": "EventDefinition", + "parameters": { + "id": 1609, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1604, + "indexed": true, + "mutability": "mutable", + "name": "account", + "nameLocation": "1135:7:4", + "nodeType": "VariableDeclaration", + "scope": 1610, + "src": "1119:23:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1603, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1119:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1606, + "indexed": true, + "mutability": "mutable", + "name": "operator", + "nameLocation": "1160:8:4", + "nodeType": "VariableDeclaration", + "scope": 1610, + "src": "1144:24:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1605, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1144:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1608, + "indexed": false, + "mutability": "mutable", + "name": "approved", + "nameLocation": "1175:8:4", + "nodeType": "VariableDeclaration", + "scope": 1610, + "src": "1170:13:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1607, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1170:4:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1118:66:4" + }, + "src": "1098:87:4" + }, + { + "anonymous": false, + "documentation": { + "id": 1611, + "nodeType": "StructuredDocumentation", + "src": "1191:343:4", + "text": " @dev Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI.\n If an {URI} event was emitted for `id`, the standard\n https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value\n returned by {IERC1155MetadataURI-uri}." + }, + "eventSelector": "6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b", + "id": 1617, + "name": "URI", + "nameLocation": "1545:3:4", + "nodeType": "EventDefinition", + "parameters": { + "id": 1616, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1613, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nameLocation": "1556:5:4", + "nodeType": "VariableDeclaration", + "scope": 1617, + "src": "1549:12:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1612, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1549:6:4", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1615, + "indexed": true, + "mutability": "mutable", + "name": "id", + "nameLocation": "1579:2:4", + "nodeType": "VariableDeclaration", + "scope": 1617, + "src": "1563:18:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1614, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1563:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1548:34:4" + }, + "src": "1539:44:4" + }, + { + "documentation": { + "id": 1618, + "nodeType": "StructuredDocumentation", + "src": "1589:172:4", + "text": " @dev Returns the value of tokens of token type `id` owned by `account`.\n Requirements:\n - `account` cannot be the zero address." + }, + "functionSelector": "00fdd58e", + "id": 1627, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "1775:9:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1623, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1620, + "mutability": "mutable", + "name": "account", + "nameLocation": "1793:7:4", + "nodeType": "VariableDeclaration", + "scope": 1627, + "src": "1785:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1619, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1785:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1622, + "mutability": "mutable", + "name": "id", + "nameLocation": "1810:2:4", + "nodeType": "VariableDeclaration", + "scope": 1627, + "src": "1802:10:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1621, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1802:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1784:29:4" + }, + "returnParameters": { + "id": 1626, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1625, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1627, + "src": "1837:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1624, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1837:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1836:9:4" + }, + "scope": 1689, + "src": "1766:80:4", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 1628, + "nodeType": "StructuredDocumentation", + "src": "1852:188:4", + "text": " @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {balanceOf}.\n Requirements:\n - `accounts` and `ids` must have the same length." + }, + "functionSelector": "4e1273f4", + "id": 1640, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOfBatch", + "nameLocation": "2054:14:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1635, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1631, + "mutability": "mutable", + "name": "accounts", + "nameLocation": "2097:8:4", + "nodeType": "VariableDeclaration", + "scope": 1640, + "src": "2078:27:4", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1629, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2078:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1630, + "nodeType": "ArrayTypeName", + "src": "2078:9:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1634, + "mutability": "mutable", + "name": "ids", + "nameLocation": "2134:3:4", + "nodeType": "VariableDeclaration", + "scope": 1640, + "src": "2115:22:4", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1632, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2115:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1633, + "nodeType": "ArrayTypeName", + "src": "2115:9:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "2068:75:4" + }, + "returnParameters": { + "id": 1639, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1638, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1640, + "src": "2167:16:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1636, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2167:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1637, + "nodeType": "ArrayTypeName", + "src": "2167:9:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "2166:18:4" + }, + "scope": 1689, + "src": "2045:140:4", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 1641, + "nodeType": "StructuredDocumentation", + "src": "2191:248:4", + "text": " @dev Grants or revokes permission to `operator` to transfer the caller's tokens, according to `approved`,\n Emits an {ApprovalForAll} event.\n Requirements:\n - `operator` cannot be the caller." + }, + "functionSelector": "a22cb465", + "id": 1648, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nameLocation": "2453:17:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1646, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1643, + "mutability": "mutable", + "name": "operator", + "nameLocation": "2479:8:4", + "nodeType": "VariableDeclaration", + "scope": 1648, + "src": "2471:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1642, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2471:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1645, + "mutability": "mutable", + "name": "approved", + "nameLocation": "2494:8:4", + "nodeType": "VariableDeclaration", + "scope": 1648, + "src": "2489:13:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1644, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2489:4:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2470:33:4" + }, + "returnParameters": { + "id": 1647, + "nodeType": "ParameterList", + "parameters": [], + "src": "2512:0:4" + }, + "scope": 1689, + "src": "2444:69:4", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 1649, + "nodeType": "StructuredDocumentation", + "src": "2519:135:4", + "text": " @dev Returns true if `operator` is approved to transfer ``account``'s tokens.\n See {setApprovalForAll}." + }, + "functionSelector": "e985e9c5", + "id": 1658, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nameLocation": "2668:16:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1654, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1651, + "mutability": "mutable", + "name": "account", + "nameLocation": "2693:7:4", + "nodeType": "VariableDeclaration", + "scope": 1658, + "src": "2685:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1650, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2685:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1653, + "mutability": "mutable", + "name": "operator", + "nameLocation": "2710:8:4", + "nodeType": "VariableDeclaration", + "scope": 1658, + "src": "2702:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1652, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2702:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2684:35:4" + }, + "returnParameters": { + "id": 1657, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1656, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1658, + "src": "2743:4:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1655, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2743:4:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2742:6:4" + }, + "scope": 1689, + "src": "2659:90:4", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 1659, + "nodeType": "StructuredDocumentation", + "src": "2755:910:4", + "text": " @dev Transfers a `value` amount of tokens of type `id` from `from` to `to`.\n WARNING: This function can potentially allow a reentrancy attack when transferring tokens\n to an untrusted contract, when invoking {onERC1155Received} on the receiver.\n Ensure to follow the checks-effects-interactions pattern and consider employing\n reentrancy guards when interacting with untrusted contracts.\n Emits a {TransferSingle} event.\n Requirements:\n - `to` cannot be the zero address.\n - If the caller is not `from`, it must have been approved to spend ``from``'s tokens via {setApprovalForAll}.\n - `from` must have a balance of tokens of type `id` of at least `value` amount.\n - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the\n acceptance magic value." + }, + "functionSelector": "f242432a", + "id": 1672, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nameLocation": "3679:16:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1670, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1661, + "mutability": "mutable", + "name": "from", + "nameLocation": "3704:4:4", + "nodeType": "VariableDeclaration", + "scope": 1672, + "src": "3696:12:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1660, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3696:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1663, + "mutability": "mutable", + "name": "to", + "nameLocation": "3718:2:4", + "nodeType": "VariableDeclaration", + "scope": 1672, + "src": "3710:10:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1662, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3710:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1665, + "mutability": "mutable", + "name": "id", + "nameLocation": "3730:2:4", + "nodeType": "VariableDeclaration", + "scope": 1672, + "src": "3722:10:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1664, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3722:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1667, + "mutability": "mutable", + "name": "value", + "nameLocation": "3742:5:4", + "nodeType": "VariableDeclaration", + "scope": 1672, + "src": "3734:13:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1666, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3734:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1669, + "mutability": "mutable", + "name": "data", + "nameLocation": "3764:4:4", + "nodeType": "VariableDeclaration", + "scope": 1672, + "src": "3749:19:4", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1668, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3749:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "3695:74:4" + }, + "returnParameters": { + "id": 1671, + "nodeType": "ParameterList", + "parameters": [], + "src": "3778:0:4" + }, + "scope": 1689, + "src": "3670:109:4", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 1673, + "nodeType": "StructuredDocumentation", + "src": "3785:814:4", + "text": " @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {safeTransferFrom}.\n WARNING: This function can potentially allow a reentrancy attack when transferring tokens\n to an untrusted contract, when invoking {onERC1155BatchReceived} on the receiver.\n Ensure to follow the checks-effects-interactions pattern and consider employing\n reentrancy guards when interacting with untrusted contracts.\n Emits either a {TransferSingle} or a {TransferBatch} event, depending on the length of the array arguments.\n Requirements:\n - `ids` and `values` must have the same length.\n - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the\n acceptance magic value." + }, + "functionSelector": "2eb2c2d6", + "id": 1688, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeBatchTransferFrom", + "nameLocation": "4613:21:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1686, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1675, + "mutability": "mutable", + "name": "from", + "nameLocation": "4652:4:4", + "nodeType": "VariableDeclaration", + "scope": 1688, + "src": "4644:12:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1674, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4644:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1677, + "mutability": "mutable", + "name": "to", + "nameLocation": "4674:2:4", + "nodeType": "VariableDeclaration", + "scope": 1688, + "src": "4666:10:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1676, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4666:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1680, + "mutability": "mutable", + "name": "ids", + "nameLocation": "4705:3:4", + "nodeType": "VariableDeclaration", + "scope": 1688, + "src": "4686:22:4", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1678, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4686:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1679, + "nodeType": "ArrayTypeName", + "src": "4686:9:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1683, + "mutability": "mutable", + "name": "values", + "nameLocation": "4737:6:4", + "nodeType": "VariableDeclaration", + "scope": 1688, + "src": "4718:25:4", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1681, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4718:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1682, + "nodeType": "ArrayTypeName", + "src": "4718:9:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1685, + "mutability": "mutable", + "name": "data", + "nameLocation": "4768:4:4", + "nodeType": "VariableDeclaration", + "scope": 1688, + "src": "4753:19:4", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1684, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4753:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "4634:144:4" + }, + "returnParameters": { + "id": 1687, + "nodeType": "ParameterList", + "parameters": [], + "src": "4787:0:4" + }, + "scope": 1689, + "src": "4604:184:4", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1690, + "src": "336:4454:4", + "usedErrors": [], + "usedEvents": [ + 1586, + 1601, + 1610, + 1617 + ] + } + ], + "src": "110:4681:4" + }, + "id": 4 + }, + "@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol", + "exportedSymbols": { + "IERC1155Receiver": [ + 1731 + ], + "IERC165": [ + 2556 + ] + }, + "id": 1732, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1691, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "118:24:5" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/introspection/IERC165.sol", + "file": "../../utils/introspection/IERC165.sol", + "id": 1693, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1732, + "sourceUnit": 2557, + "src": "144:62:5", + "symbolAliases": [ + { + "foreign": { + "id": 1692, + "name": "IERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2556, + "src": "152:7:5", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 1695, + "name": "IERC165", + "nameLocations": [ + "357:7:5" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2556, + "src": "357:7:5" + }, + "id": 1696, + "nodeType": "InheritanceSpecifier", + "src": "357:7:5" + } + ], + "canonicalName": "IERC1155Receiver", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 1694, + "nodeType": "StructuredDocumentation", + "src": "208:118:5", + "text": " @dev Interface that must be implemented by smart contracts in order to receive\n ERC-1155 token transfers." + }, + "fullyImplemented": false, + "id": 1731, + "linearizedBaseContracts": [ + 1731, + 2556 + ], + "name": "IERC1155Receiver", + "nameLocation": "337:16:5", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 1697, + "nodeType": "StructuredDocumentation", + "src": "371:826:5", + "text": " @dev Handles the receipt of a single ERC1155 token type. This function is\n called at the end of a `safeTransferFrom` after the balance has been updated.\n NOTE: To accept the transfer, this must return\n `bytes4(keccak256(\"onERC1155Received(address,address,uint256,uint256,bytes)\"))`\n (i.e. 0xf23a6e61, or its own function selector).\n @param operator The address which initiated the transfer (i.e. msg.sender)\n @param from The address which previously owned the token\n @param id The ID of the token being transferred\n @param value The amount of tokens being transferred\n @param data Additional data with no specified format\n @return `bytes4(keccak256(\"onERC1155Received(address,address,uint256,uint256,bytes)\"))` if transfer is allowed" + }, + "functionSelector": "f23a6e61", + "id": 1712, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "onERC1155Received", + "nameLocation": "1211:17:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1708, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1699, + "mutability": "mutable", + "name": "operator", + "nameLocation": "1246:8:5", + "nodeType": "VariableDeclaration", + "scope": 1712, + "src": "1238:16:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1698, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1238:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1701, + "mutability": "mutable", + "name": "from", + "nameLocation": "1272:4:5", + "nodeType": "VariableDeclaration", + "scope": 1712, + "src": "1264:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1700, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1264:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1703, + "mutability": "mutable", + "name": "id", + "nameLocation": "1294:2:5", + "nodeType": "VariableDeclaration", + "scope": 1712, + "src": "1286:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1702, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1286:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1705, + "mutability": "mutable", + "name": "value", + "nameLocation": "1314:5:5", + "nodeType": "VariableDeclaration", + "scope": 1712, + "src": "1306:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1704, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1306:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1707, + "mutability": "mutable", + "name": "data", + "nameLocation": "1344:4:5", + "nodeType": "VariableDeclaration", + "scope": 1712, + "src": "1329:19:5", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1706, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1329:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "1228:126:5" + }, + "returnParameters": { + "id": 1711, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1710, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1712, + "src": "1373:6:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 1709, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "1373:6:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "1372:8:5" + }, + "scope": 1731, + "src": "1202:179:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 1713, + "nodeType": "StructuredDocumentation", + "src": "1387:994:5", + "text": " @dev Handles the receipt of a multiple ERC1155 token types. This function\n is called at the end of a `safeBatchTransferFrom` after the balances have\n been updated.\n NOTE: To accept the transfer(s), this must return\n `bytes4(keccak256(\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\"))`\n (i.e. 0xbc197c81, or its own function selector).\n @param operator The address which initiated the batch transfer (i.e. msg.sender)\n @param from The address which previously owned the token\n @param ids An array containing ids of each token being transferred (order and length must match values array)\n @param values An array containing amounts of each token being transferred (order and length must match ids array)\n @param data Additional data with no specified format\n @return `bytes4(keccak256(\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\"))` if transfer is allowed" + }, + "functionSelector": "bc197c81", + "id": 1730, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "onERC1155BatchReceived", + "nameLocation": "2395:22:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1726, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1715, + "mutability": "mutable", + "name": "operator", + "nameLocation": "2435:8:5", + "nodeType": "VariableDeclaration", + "scope": 1730, + "src": "2427:16:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1714, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2427:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1717, + "mutability": "mutable", + "name": "from", + "nameLocation": "2461:4:5", + "nodeType": "VariableDeclaration", + "scope": 1730, + "src": "2453:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1716, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2453:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1720, + "mutability": "mutable", + "name": "ids", + "nameLocation": "2494:3:5", + "nodeType": "VariableDeclaration", + "scope": 1730, + "src": "2475:22:5", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1718, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2475:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1719, + "nodeType": "ArrayTypeName", + "src": "2475:9:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1723, + "mutability": "mutable", + "name": "values", + "nameLocation": "2526:6:5", + "nodeType": "VariableDeclaration", + "scope": 1730, + "src": "2507:25:5", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1721, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2507:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1722, + "nodeType": "ArrayTypeName", + "src": "2507:9:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1725, + "mutability": "mutable", + "name": "data", + "nameLocation": "2557:4:5", + "nodeType": "VariableDeclaration", + "scope": 1730, + "src": "2542:19:5", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1724, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2542:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "2417:150:5" + }, + "returnParameters": { + "id": 1729, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1728, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1730, + "src": "2586:6:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 1727, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "2586:6:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "2585:8:5" + }, + "scope": 1731, + "src": "2386:208:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1732, + "src": "327:2269:5", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "118:2479:5" + }, + "id": 5 + }, + "@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol", + "exportedSymbols": { + "IERC1155": [ + 1689 + ], + "IERC1155MetadataURI": [ + 1747 + ] + }, + "id": 1748, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1733, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "132:24:6" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC1155/IERC1155.sol", + "file": "../IERC1155.sol", + "id": 1735, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1748, + "sourceUnit": 1690, + "src": "158:41:6", + "symbolAliases": [ + { + "foreign": { + "id": 1734, + "name": "IERC1155", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1689, + "src": "166:8:6", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 1737, + "name": "IERC1155", + "nameLocations": [ + "399:8:6" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1689, + "src": "399:8:6" + }, + "id": 1738, + "nodeType": "InheritanceSpecifier", + "src": "399:8:6" + } + ], + "canonicalName": "IERC1155MetadataURI", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 1736, + "nodeType": "StructuredDocumentation", + "src": "201:164:6", + "text": " @dev Interface of the optional ERC1155MetadataExtension interface, as defined\n in the https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[EIP]." + }, + "fullyImplemented": false, + "id": 1747, + "linearizedBaseContracts": [ + 1747, + 1689, + 2556 + ], + "name": "IERC1155MetadataURI", + "nameLocation": "376:19:6", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 1739, + "nodeType": "StructuredDocumentation", + "src": "414:192:6", + "text": " @dev Returns the URI for token type `id`.\n If the `\\{id\\}` substring is present in the URI, it must be replaced by\n clients with the actual token type ID." + }, + "functionSelector": "0e89341c", + "id": 1746, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "uri", + "nameLocation": "620:3:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1742, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1741, + "mutability": "mutable", + "name": "id", + "nameLocation": "632:2:6", + "nodeType": "VariableDeclaration", + "scope": 1746, + "src": "624:10:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1740, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "624:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "623:12:6" + }, + "returnParameters": { + "id": 1745, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1744, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1746, + "src": "659:13:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1743, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "659:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "658:15:6" + }, + "scope": 1747, + "src": "611:63:6", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1748, + "src": "366:310:6", + "usedErrors": [], + "usedEvents": [ + 1586, + 1601, + 1610, + 1617 + ] + } + ], + "src": "132:545:6" + }, + "id": 6 + }, + "@openzeppelin/contracts/utils/Arrays.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/Arrays.sol", + "exportedSymbols": { + "Arrays": [ + 1930 + ], + "Math": [ + 3610 + ], + "StorageSlot": [ + 2070 + ] + }, + "id": 1931, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1749, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "100:24:7" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/StorageSlot.sol", + "file": "./StorageSlot.sol", + "id": 1751, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1931, + "sourceUnit": 2071, + "src": "126:46:7", + "symbolAliases": [ + { + "foreign": { + "id": 1750, + "name": "StorageSlot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2070, + "src": "134:11:7", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/math/Math.sol", + "file": "./math/Math.sol", + "id": 1753, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1931, + "sourceUnit": 3611, + "src": "173:37:7", + "symbolAliases": [ + { + "foreign": { + "id": 1752, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3610, + "src": "181:4:7", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "Arrays", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 1754, + "nodeType": "StructuredDocumentation", + "src": "212:63:7", + "text": " @dev Collection of functions related to array types." + }, + "fullyImplemented": true, + "id": 1930, + "linearizedBaseContracts": [ + 1930 + ], + "name": "Arrays", + "nameLocation": "284:6:7", + "nodeType": "ContractDefinition", + "nodes": [ + { + "global": false, + "id": 1757, + "libraryName": { + "id": 1755, + "name": "StorageSlot", + "nameLocations": [ + "303:11:7" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2070, + "src": "303:11:7" + }, + "nodeType": "UsingForDirective", + "src": "297:30:7", + "typeName": { + "id": 1756, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "319:7:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + }, + { + "body": { + "id": 1839, + "nodeType": "Block", + "src": "843:834:7", + "statements": [ + { + "assignments": [ + 1769 + ], + "declarations": [ + { + "constant": false, + "id": 1769, + "mutability": "mutable", + "name": "low", + "nameLocation": "861:3:7", + "nodeType": "VariableDeclaration", + "scope": 1839, + "src": "853:11:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1768, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "853:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1771, + "initialValue": { + "hexValue": "30", + "id": 1770, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "867:1:7", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "853:15:7" + }, + { + "assignments": [ + 1773 + ], + "declarations": [ + { + "constant": false, + "id": 1773, + "mutability": "mutable", + "name": "high", + "nameLocation": "886:4:7", + "nodeType": "VariableDeclaration", + "scope": 1839, + "src": "878:12:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1772, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "878:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1776, + "initialValue": { + "expression": { + "id": 1774, + "name": "array", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1761, + "src": "893:5:7", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[] storage pointer" + } + }, + "id": 1775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "899:6:7", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "893:12:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "878:27:7" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1779, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1777, + "name": "high", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1773, + "src": "920:4:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 1778, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "928:1:7", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "920:9:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1783, + "nodeType": "IfStatement", + "src": "916:48:7", + "trueBody": { + "id": 1782, + "nodeType": "Block", + "src": "931:33:7", + "statements": [ + { + "expression": { + "hexValue": "30", + "id": 1780, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "952:1:7", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 1767, + "id": 1781, + "nodeType": "Return", + "src": "945:8:7" + } + ] + } + }, + { + "body": { + "id": 1815, + "nodeType": "Block", + "src": "993:423:7", + "statements": [ + { + "assignments": [ + 1788 + ], + "declarations": [ + { + "constant": false, + "id": 1788, + "mutability": "mutable", + "name": "mid", + "nameLocation": "1015:3:7", + "nodeType": "VariableDeclaration", + "scope": 1815, + "src": "1007:11:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1787, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1007:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1794, + "initialValue": { + "arguments": [ + { + "id": 1791, + "name": "low", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1769, + "src": "1034:3:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1792, + "name": "high", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1773, + "src": "1039:4:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 1789, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3610, + "src": "1021:4:7", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$3610_$", + "typeString": "type(library Math)" + } + }, + "id": 1790, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1026:7:7", + "memberName": "average", + "nodeType": "MemberAccess", + "referencedDeclaration": 2784, + "src": "1021:12:7", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1793, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1021:23:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1007:37:7" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1801, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 1796, + "name": "array", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1761, + "src": "1282:5:7", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[] storage pointer" + } + }, + { + "id": 1797, + "name": "mid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1788, + "src": "1289:3:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[] storage pointer" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1795, + "name": "unsafeAccess", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1861, + 1882, + 1903 + ], + "referencedDeclaration": 1903, + "src": "1269:12:7", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$_t_struct$_Uint256Slot_$1975_storage_ptr_$", + "typeString": "function (uint256[] storage pointer,uint256) pure returns (struct StorageSlot.Uint256Slot storage pointer)" + } + }, + "id": 1798, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1269:24:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Uint256Slot_$1975_storage_ptr", + "typeString": "struct StorageSlot.Uint256Slot storage pointer" + } + }, + "id": 1799, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1294:5:7", + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": 1974, + "src": "1269:30:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 1800, + "name": "element", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1763, + "src": "1302:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1269:40:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1813, + "nodeType": "Block", + "src": "1360:46:7", + "statements": [ + { + "expression": { + "id": 1811, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1807, + "name": "low", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1769, + "src": "1378:3:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1810, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1808, + "name": "mid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1788, + "src": "1384:3:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 1809, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1390:1:7", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1384:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1378:13:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1812, + "nodeType": "ExpressionStatement", + "src": "1378:13:7" + } + ] + }, + "id": 1814, + "nodeType": "IfStatement", + "src": "1265:141:7", + "trueBody": { + "id": 1806, + "nodeType": "Block", + "src": "1311:43:7", + "statements": [ + { + "expression": { + "id": 1804, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1802, + "name": "high", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1773, + "src": "1329:4:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1803, + "name": "mid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1788, + "src": "1336:3:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1329:10:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1805, + "nodeType": "ExpressionStatement", + "src": "1329:10:7" + } + ] + } + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1786, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1784, + "name": "low", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1769, + "src": "981:3:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 1785, + "name": "high", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1773, + "src": "987:4:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "981:10:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1816, + "nodeType": "WhileStatement", + "src": "974:442:7" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1829, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1819, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1817, + "name": "low", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1769, + "src": "1533:3:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1818, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1539:1:7", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1533:7:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1828, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 1821, + "name": "array", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1761, + "src": "1557:5:7", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[] storage pointer" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1824, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1822, + "name": "low", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1769, + "src": "1564:3:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 1823, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1570:1:7", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1564:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[] storage pointer" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1820, + "name": "unsafeAccess", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1861, + 1882, + 1903 + ], + "referencedDeclaration": 1903, + "src": "1544:12:7", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$_t_struct$_Uint256Slot_$1975_storage_ptr_$", + "typeString": "function (uint256[] storage pointer,uint256) pure returns (struct StorageSlot.Uint256Slot storage pointer)" + } + }, + "id": 1825, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1544:28:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Uint256Slot_$1975_storage_ptr", + "typeString": "struct StorageSlot.Uint256Slot storage pointer" + } + }, + "id": 1826, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1573:5:7", + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": 1974, + "src": "1544:34:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 1827, + "name": "element", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1763, + "src": "1582:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1544:45:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1533:56:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1837, + "nodeType": "Block", + "src": "1636:35:7", + "statements": [ + { + "expression": { + "id": 1835, + "name": "low", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1769, + "src": "1657:3:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1767, + "id": 1836, + "nodeType": "Return", + "src": "1650:10:7" + } + ] + }, + "id": 1838, + "nodeType": "IfStatement", + "src": "1529:142:7", + "trueBody": { + "id": 1834, + "nodeType": "Block", + "src": "1591:39:7", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1832, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1830, + "name": "low", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1769, + "src": "1612:3:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 1831, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1618:1:7", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1612:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1767, + "id": 1833, + "nodeType": "Return", + "src": "1605:14:7" + } + ] + } + } + ] + }, + "documentation": { + "id": 1758, + "nodeType": "StructuredDocumentation", + "src": "333:407:7", + "text": " @dev Searches a sorted `array` and returns the first index that contains\n a value greater or equal to `element`. If no such index exists (i.e. all\n values in the array are strictly less than `element`), the array length is\n returned. Time complexity O(log n).\n `array` is expected to be sorted in ascending order, and to contain no\n repeated elements." + }, + "id": 1840, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "findUpperBound", + "nameLocation": "754:14:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1764, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1761, + "mutability": "mutable", + "name": "array", + "nameLocation": "787:5:7", + "nodeType": "VariableDeclaration", + "scope": 1840, + "src": "769:23:7", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1759, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "769:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1760, + "nodeType": "ArrayTypeName", + "src": "769:9:7", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1763, + "mutability": "mutable", + "name": "element", + "nameLocation": "802:7:7", + "nodeType": "VariableDeclaration", + "scope": 1840, + "src": "794:15:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1762, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "794:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "768:42:7" + }, + "returnParameters": { + "id": 1767, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1766, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1840, + "src": "834:7:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1765, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "834:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "833:9:7" + }, + "scope": 1930, + "src": "745:932:7", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1860, + "nodeType": "Block", + "src": "1993:459:7", + "statements": [ + { + "assignments": [ + 1853 + ], + "declarations": [ + { + "constant": false, + "id": 1853, + "mutability": "mutable", + "name": "slot", + "nameLocation": "2011:4:7", + "nodeType": "VariableDeclaration", + "scope": 1860, + "src": "2003:12:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1852, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2003:7:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 1854, + "nodeType": "VariableDeclarationStatement", + "src": "2003:12:7" + }, + { + "AST": { + "nativeSrc": "2316:92:7", + "nodeType": "YulBlock", + "src": "2316:92:7", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2337:1:7", + "nodeType": "YulLiteral", + "src": "2337:1:7", + "type": "", + "value": "0" + }, + { + "name": "arr.slot", + "nativeSrc": "2340:8:7", + "nodeType": "YulIdentifier", + "src": "2340:8:7" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2330:6:7", + "nodeType": "YulIdentifier", + "src": "2330:6:7" + }, + "nativeSrc": "2330:19:7", + "nodeType": "YulFunctionCall", + "src": "2330:19:7" + }, + "nativeSrc": "2330:19:7", + "nodeType": "YulExpressionStatement", + "src": "2330:19:7" + }, + { + "nativeSrc": "2362:36:7", + "nodeType": "YulAssignment", + "src": "2362:36:7", + "value": { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2384:1:7", + "nodeType": "YulLiteral", + "src": "2384:1:7", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "2387:4:7", + "nodeType": "YulLiteral", + "src": "2387:4:7", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nativeSrc": "2374:9:7", + "nodeType": "YulIdentifier", + "src": "2374:9:7" + }, + "nativeSrc": "2374:18:7", + "nodeType": "YulFunctionCall", + "src": "2374:18:7" + }, + { + "name": "pos", + "nativeSrc": "2394:3:7", + "nodeType": "YulIdentifier", + "src": "2394:3:7" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2370:3:7", + "nodeType": "YulIdentifier", + "src": "2370:3:7" + }, + "nativeSrc": "2370:28:7", + "nodeType": "YulFunctionCall", + "src": "2370:28:7" + }, + "variableNames": [ + { + "name": "slot", + "nativeSrc": "2362:4:7", + "nodeType": "YulIdentifier", + "src": "2362:4:7" + } + ] + } + ] + }, + "documentation": "@solidity memory-safe-assembly", + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 1844, + "isOffset": false, + "isSlot": true, + "src": "2340:8:7", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 1846, + "isOffset": false, + "isSlot": false, + "src": "2394:3:7", + "valueSize": 1 + }, + { + "declaration": 1853, + "isOffset": false, + "isSlot": false, + "src": "2362:4:7", + "valueSize": 1 + } + ], + "id": 1855, + "nodeType": "InlineAssembly", + "src": "2307:101:7" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 1856, + "name": "slot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1853, + "src": "2424:4:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 1857, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2429:14:7", + "memberName": "getAddressSlot", + "nodeType": "MemberAccess", + "referencedDeclaration": 1992, + "src": "2424:19:7", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$1966_storage_ptr_$attached_to$_t_bytes32_$", + "typeString": "function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)" + } + }, + "id": 1858, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2424:21:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSlot_$1966_storage_ptr", + "typeString": "struct StorageSlot.AddressSlot storage pointer" + } + }, + "functionReturnParameters": 1851, + "id": 1859, + "nodeType": "Return", + "src": "2417:28:7" + } + ] + }, + "documentation": { + "id": 1841, + "nodeType": "StructuredDocumentation", + "src": "1683:191:7", + "text": " @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n WARNING: Only use if you are certain `pos` is lower than the array length." + }, + "id": 1861, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "unsafeAccess", + "nameLocation": "1888:12:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1847, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1844, + "mutability": "mutable", + "name": "arr", + "nameLocation": "1919:3:7", + "nodeType": "VariableDeclaration", + "scope": 1861, + "src": "1901:21:7", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1842, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1901:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1843, + "nodeType": "ArrayTypeName", + "src": "1901:9:7", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1846, + "mutability": "mutable", + "name": "pos", + "nameLocation": "1932:3:7", + "nodeType": "VariableDeclaration", + "scope": 1861, + "src": "1924:11:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1845, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1924:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1900:36:7" + }, + "returnParameters": { + "id": 1851, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1850, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1861, + "src": "1960:31:7", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSlot_$1966_storage_ptr", + "typeString": "struct StorageSlot.AddressSlot" + }, + "typeName": { + "id": 1849, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1848, + "name": "StorageSlot.AddressSlot", + "nameLocations": [ + "1960:11:7", + "1972:11:7" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1966, + "src": "1960:23:7" + }, + "referencedDeclaration": 1966, + "src": "1960:23:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSlot_$1966_storage_ptr", + "typeString": "struct StorageSlot.AddressSlot" + } + }, + "visibility": "internal" + } + ], + "src": "1959:33:7" + }, + "scope": 1930, + "src": "1879:573:7", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1881, + "nodeType": "Block", + "src": "2768:459:7", + "statements": [ + { + "assignments": [ + 1874 + ], + "declarations": [ + { + "constant": false, + "id": 1874, + "mutability": "mutable", + "name": "slot", + "nameLocation": "2786:4:7", + "nodeType": "VariableDeclaration", + "scope": 1881, + "src": "2778:12:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1873, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2778:7:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 1875, + "nodeType": "VariableDeclarationStatement", + "src": "2778:12:7" + }, + { + "AST": { + "nativeSrc": "3091:92:7", + "nodeType": "YulBlock", + "src": "3091:92:7", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3112:1:7", + "nodeType": "YulLiteral", + "src": "3112:1:7", + "type": "", + "value": "0" + }, + { + "name": "arr.slot", + "nativeSrc": "3115:8:7", + "nodeType": "YulIdentifier", + "src": "3115:8:7" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3105:6:7", + "nodeType": "YulIdentifier", + "src": "3105:6:7" + }, + "nativeSrc": "3105:19:7", + "nodeType": "YulFunctionCall", + "src": "3105:19:7" + }, + "nativeSrc": "3105:19:7", + "nodeType": "YulExpressionStatement", + "src": "3105:19:7" + }, + { + "nativeSrc": "3137:36:7", + "nodeType": "YulAssignment", + "src": "3137:36:7", + "value": { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3159:1:7", + "nodeType": "YulLiteral", + "src": "3159:1:7", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "3162:4:7", + "nodeType": "YulLiteral", + "src": "3162:4:7", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nativeSrc": "3149:9:7", + "nodeType": "YulIdentifier", + "src": "3149:9:7" + }, + "nativeSrc": "3149:18:7", + "nodeType": "YulFunctionCall", + "src": "3149:18:7" + }, + { + "name": "pos", + "nativeSrc": "3169:3:7", + "nodeType": "YulIdentifier", + "src": "3169:3:7" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3145:3:7", + "nodeType": "YulIdentifier", + "src": "3145:3:7" + }, + "nativeSrc": "3145:28:7", + "nodeType": "YulFunctionCall", + "src": "3145:28:7" + }, + "variableNames": [ + { + "name": "slot", + "nativeSrc": "3137:4:7", + "nodeType": "YulIdentifier", + "src": "3137:4:7" + } + ] + } + ] + }, + "documentation": "@solidity memory-safe-assembly", + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 1865, + "isOffset": false, + "isSlot": true, + "src": "3115:8:7", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 1867, + "isOffset": false, + "isSlot": false, + "src": "3169:3:7", + "valueSize": 1 + }, + { + "declaration": 1874, + "isOffset": false, + "isSlot": false, + "src": "3137:4:7", + "valueSize": 1 + } + ], + "id": 1876, + "nodeType": "InlineAssembly", + "src": "3082:101:7" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 1877, + "name": "slot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1874, + "src": "3199:4:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 1878, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3204:14:7", + "memberName": "getBytes32Slot", + "nodeType": "MemberAccess", + "referencedDeclaration": 2014, + "src": "3199:19:7", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$1972_storage_ptr_$attached_to$_t_bytes32_$", + "typeString": "function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)" + } + }, + "id": 1879, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3199:21:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Slot_$1972_storage_ptr", + "typeString": "struct StorageSlot.Bytes32Slot storage pointer" + } + }, + "functionReturnParameters": 1872, + "id": 1880, + "nodeType": "Return", + "src": "3192:28:7" + } + ] + }, + "documentation": { + "id": 1862, + "nodeType": "StructuredDocumentation", + "src": "2458:191:7", + "text": " @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n WARNING: Only use if you are certain `pos` is lower than the array length." + }, + "id": 1882, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "unsafeAccess", + "nameLocation": "2663:12:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1868, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1865, + "mutability": "mutable", + "name": "arr", + "nameLocation": "2694:3:7", + "nodeType": "VariableDeclaration", + "scope": 1882, + "src": "2676:21:7", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 1863, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2676:7:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 1864, + "nodeType": "ArrayTypeName", + "src": "2676:9:7", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1867, + "mutability": "mutable", + "name": "pos", + "nameLocation": "2707:3:7", + "nodeType": "VariableDeclaration", + "scope": 1882, + "src": "2699:11:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1866, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2699:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2675:36:7" + }, + "returnParameters": { + "id": 1872, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1871, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1882, + "src": "2735:31:7", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Slot_$1972_storage_ptr", + "typeString": "struct StorageSlot.Bytes32Slot" + }, + "typeName": { + "id": 1870, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1869, + "name": "StorageSlot.Bytes32Slot", + "nameLocations": [ + "2735:11:7", + "2747:11:7" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1972, + "src": "2735:23:7" + }, + "referencedDeclaration": 1972, + "src": "2735:23:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Slot_$1972_storage_ptr", + "typeString": "struct StorageSlot.Bytes32Slot" + } + }, + "visibility": "internal" + } + ], + "src": "2734:33:7" + }, + "scope": 1930, + "src": "2654:573:7", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1902, + "nodeType": "Block", + "src": "3543:459:7", + "statements": [ + { + "assignments": [ + 1895 + ], + "declarations": [ + { + "constant": false, + "id": 1895, + "mutability": "mutable", + "name": "slot", + "nameLocation": "3561:4:7", + "nodeType": "VariableDeclaration", + "scope": 1902, + "src": "3553:12:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1894, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3553:7:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 1896, + "nodeType": "VariableDeclarationStatement", + "src": "3553:12:7" + }, + { + "AST": { + "nativeSrc": "3866:92:7", + "nodeType": "YulBlock", + "src": "3866:92:7", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3887:1:7", + "nodeType": "YulLiteral", + "src": "3887:1:7", + "type": "", + "value": "0" + }, + { + "name": "arr.slot", + "nativeSrc": "3890:8:7", + "nodeType": "YulIdentifier", + "src": "3890:8:7" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3880:6:7", + "nodeType": "YulIdentifier", + "src": "3880:6:7" + }, + "nativeSrc": "3880:19:7", + "nodeType": "YulFunctionCall", + "src": "3880:19:7" + }, + "nativeSrc": "3880:19:7", + "nodeType": "YulExpressionStatement", + "src": "3880:19:7" + }, + { + "nativeSrc": "3912:36:7", + "nodeType": "YulAssignment", + "src": "3912:36:7", + "value": { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3934:1:7", + "nodeType": "YulLiteral", + "src": "3934:1:7", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "3937:4:7", + "nodeType": "YulLiteral", + "src": "3937:4:7", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nativeSrc": "3924:9:7", + "nodeType": "YulIdentifier", + "src": "3924:9:7" + }, + "nativeSrc": "3924:18:7", + "nodeType": "YulFunctionCall", + "src": "3924:18:7" + }, + { + "name": "pos", + "nativeSrc": "3944:3:7", + "nodeType": "YulIdentifier", + "src": "3944:3:7" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3920:3:7", + "nodeType": "YulIdentifier", + "src": "3920:3:7" + }, + "nativeSrc": "3920:28:7", + "nodeType": "YulFunctionCall", + "src": "3920:28:7" + }, + "variableNames": [ + { + "name": "slot", + "nativeSrc": "3912:4:7", + "nodeType": "YulIdentifier", + "src": "3912:4:7" + } + ] + } + ] + }, + "documentation": "@solidity memory-safe-assembly", + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 1886, + "isOffset": false, + "isSlot": true, + "src": "3890:8:7", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 1888, + "isOffset": false, + "isSlot": false, + "src": "3944:3:7", + "valueSize": 1 + }, + { + "declaration": 1895, + "isOffset": false, + "isSlot": false, + "src": "3912:4:7", + "valueSize": 1 + } + ], + "id": 1897, + "nodeType": "InlineAssembly", + "src": "3857:101:7" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 1898, + "name": "slot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1895, + "src": "3974:4:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 1899, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3979:14:7", + "memberName": "getUint256Slot", + "nodeType": "MemberAccess", + "referencedDeclaration": 2025, + "src": "3974:19:7", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Uint256Slot_$1975_storage_ptr_$attached_to$_t_bytes32_$", + "typeString": "function (bytes32) pure returns (struct StorageSlot.Uint256Slot storage pointer)" + } + }, + "id": 1900, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3974:21:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Uint256Slot_$1975_storage_ptr", + "typeString": "struct StorageSlot.Uint256Slot storage pointer" + } + }, + "functionReturnParameters": 1893, + "id": 1901, + "nodeType": "Return", + "src": "3967:28:7" + } + ] + }, + "documentation": { + "id": 1883, + "nodeType": "StructuredDocumentation", + "src": "3233:191:7", + "text": " @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n WARNING: Only use if you are certain `pos` is lower than the array length." + }, + "id": 1903, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "unsafeAccess", + "nameLocation": "3438:12:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1889, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1886, + "mutability": "mutable", + "name": "arr", + "nameLocation": "3469:3:7", + "nodeType": "VariableDeclaration", + "scope": 1903, + "src": "3451:21:7", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1884, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3451:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1885, + "nodeType": "ArrayTypeName", + "src": "3451:9:7", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1888, + "mutability": "mutable", + "name": "pos", + "nameLocation": "3482:3:7", + "nodeType": "VariableDeclaration", + "scope": 1903, + "src": "3474:11:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1887, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3474:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3450:36:7" + }, + "returnParameters": { + "id": 1893, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1892, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1903, + "src": "3510:31:7", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Uint256Slot_$1975_storage_ptr", + "typeString": "struct StorageSlot.Uint256Slot" + }, + "typeName": { + "id": 1891, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1890, + "name": "StorageSlot.Uint256Slot", + "nameLocations": [ + "3510:11:7", + "3522:11:7" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1975, + "src": "3510:23:7" + }, + "referencedDeclaration": 1975, + "src": "3510:23:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Uint256Slot_$1975_storage_ptr", + "typeString": "struct StorageSlot.Uint256Slot" + } + }, + "visibility": "internal" + } + ], + "src": "3509:33:7" + }, + "scope": 1930, + "src": "3429:573:7", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1915, + "nodeType": "Block", + "src": "4303:98:7", + "statements": [ + { + "AST": { + "nativeSrc": "4322:73:7", + "nodeType": "YulBlock", + "src": "4322:73:7", + "statements": [ + { + "nativeSrc": "4336:49:7", + "nodeType": "YulAssignment", + "src": "4336:49:7", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "arr", + "nativeSrc": "4357:3:7", + "nodeType": "YulIdentifier", + "src": "4357:3:7" + }, + { + "kind": "number", + "nativeSrc": "4362:4:7", + "nodeType": "YulLiteral", + "src": "4362:4:7", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4353:3:7", + "nodeType": "YulIdentifier", + "src": "4353:3:7" + }, + "nativeSrc": "4353:14:7", + "nodeType": "YulFunctionCall", + "src": "4353:14:7" + }, + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "4373:3:7", + "nodeType": "YulIdentifier", + "src": "4373:3:7" + }, + { + "kind": "number", + "nativeSrc": "4378:4:7", + "nodeType": "YulLiteral", + "src": "4378:4:7", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "4369:3:7", + "nodeType": "YulIdentifier", + "src": "4369:3:7" + }, + "nativeSrc": "4369:14:7", + "nodeType": "YulFunctionCall", + "src": "4369:14:7" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4349:3:7", + "nodeType": "YulIdentifier", + "src": "4349:3:7" + }, + "nativeSrc": "4349:35:7", + "nodeType": "YulFunctionCall", + "src": "4349:35:7" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "4343:5:7", + "nodeType": "YulIdentifier", + "src": "4343:5:7" + }, + "nativeSrc": "4343:42:7", + "nodeType": "YulFunctionCall", + "src": "4343:42:7" + }, + "variableNames": [ + { + "name": "res", + "nativeSrc": "4336:3:7", + "nodeType": "YulIdentifier", + "src": "4336:3:7" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 1907, + "isOffset": false, + "isSlot": false, + "src": "4357:3:7", + "valueSize": 1 + }, + { + "declaration": 1909, + "isOffset": false, + "isSlot": false, + "src": "4373:3:7", + "valueSize": 1 + }, + { + "declaration": 1912, + "isOffset": false, + "isSlot": false, + "src": "4336:3:7", + "valueSize": 1 + } + ], + "id": 1914, + "nodeType": "InlineAssembly", + "src": "4313:82:7" + } + ] + }, + "documentation": { + "id": 1904, + "nodeType": "StructuredDocumentation", + "src": "4008:191:7", + "text": " @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n WARNING: Only use if you are certain `pos` is lower than the array length." + }, + "id": 1916, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "unsafeMemoryAccess", + "nameLocation": "4213:18:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1910, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1907, + "mutability": "mutable", + "name": "arr", + "nameLocation": "4249:3:7", + "nodeType": "VariableDeclaration", + "scope": 1916, + "src": "4232:20:7", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1905, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4232:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1906, + "nodeType": "ArrayTypeName", + "src": "4232:9:7", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1909, + "mutability": "mutable", + "name": "pos", + "nameLocation": "4262:3:7", + "nodeType": "VariableDeclaration", + "scope": 1916, + "src": "4254:11:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1908, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4254:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4231:35:7" + }, + "returnParameters": { + "id": 1913, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1912, + "mutability": "mutable", + "name": "res", + "nameLocation": "4298:3:7", + "nodeType": "VariableDeclaration", + "scope": 1916, + "src": "4290:11:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1911, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4290:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4289:13:7" + }, + "scope": 1930, + "src": "4204:197:7", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1928, + "nodeType": "Block", + "src": "4702:98:7", + "statements": [ + { + "AST": { + "nativeSrc": "4721:73:7", + "nodeType": "YulBlock", + "src": "4721:73:7", + "statements": [ + { + "nativeSrc": "4735:49:7", + "nodeType": "YulAssignment", + "src": "4735:49:7", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "arr", + "nativeSrc": "4756:3:7", + "nodeType": "YulIdentifier", + "src": "4756:3:7" + }, + { + "kind": "number", + "nativeSrc": "4761:4:7", + "nodeType": "YulLiteral", + "src": "4761:4:7", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4752:3:7", + "nodeType": "YulIdentifier", + "src": "4752:3:7" + }, + "nativeSrc": "4752:14:7", + "nodeType": "YulFunctionCall", + "src": "4752:14:7" + }, + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "4772:3:7", + "nodeType": "YulIdentifier", + "src": "4772:3:7" + }, + { + "kind": "number", + "nativeSrc": "4777:4:7", + "nodeType": "YulLiteral", + "src": "4777:4:7", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "4768:3:7", + "nodeType": "YulIdentifier", + "src": "4768:3:7" + }, + "nativeSrc": "4768:14:7", + "nodeType": "YulFunctionCall", + "src": "4768:14:7" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4748:3:7", + "nodeType": "YulIdentifier", + "src": "4748:3:7" + }, + "nativeSrc": "4748:35:7", + "nodeType": "YulFunctionCall", + "src": "4748:35:7" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "4742:5:7", + "nodeType": "YulIdentifier", + "src": "4742:5:7" + }, + "nativeSrc": "4742:42:7", + "nodeType": "YulFunctionCall", + "src": "4742:42:7" + }, + "variableNames": [ + { + "name": "res", + "nativeSrc": "4735:3:7", + "nodeType": "YulIdentifier", + "src": "4735:3:7" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 1920, + "isOffset": false, + "isSlot": false, + "src": "4756:3:7", + "valueSize": 1 + }, + { + "declaration": 1922, + "isOffset": false, + "isSlot": false, + "src": "4772:3:7", + "valueSize": 1 + }, + { + "declaration": 1925, + "isOffset": false, + "isSlot": false, + "src": "4735:3:7", + "valueSize": 1 + } + ], + "id": 1927, + "nodeType": "InlineAssembly", + "src": "4712:82:7" + } + ] + }, + "documentation": { + "id": 1917, + "nodeType": "StructuredDocumentation", + "src": "4407:191:7", + "text": " @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n WARNING: Only use if you are certain `pos` is lower than the array length." + }, + "id": 1929, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "unsafeMemoryAccess", + "nameLocation": "4612:18:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1923, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1920, + "mutability": "mutable", + "name": "arr", + "nameLocation": "4648:3:7", + "nodeType": "VariableDeclaration", + "scope": 1929, + "src": "4631:20:7", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1918, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4631:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1919, + "nodeType": "ArrayTypeName", + "src": "4631:9:7", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1922, + "mutability": "mutable", + "name": "pos", + "nameLocation": "4661:3:7", + "nodeType": "VariableDeclaration", + "scope": 1929, + "src": "4653:11:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1921, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4653:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4630:35:7" + }, + "returnParameters": { + "id": 1926, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1925, + "mutability": "mutable", + "name": "res", + "nameLocation": "4697:3:7", + "nodeType": "VariableDeclaration", + "scope": 1929, + "src": "4689:11:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1924, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4689:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4688:13:7" + }, + "scope": 1930, + "src": "4603:197:7", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 1931, + "src": "276:4526:7", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "100:4703:7" + }, + "id": 7 + }, + "@openzeppelin/contracts/utils/Context.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/Context.sol", + "exportedSymbols": { + "Context": [ + 1960 + ] + }, + "id": 1961, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1932, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "101:24:8" + }, + { + "abstract": true, + "baseContracts": [], + "canonicalName": "Context", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 1933, + "nodeType": "StructuredDocumentation", + "src": "127:496:8", + "text": " @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts." + }, + "fullyImplemented": true, + "id": 1960, + "linearizedBaseContracts": [ + 1960 + ], + "name": "Context", + "nameLocation": "642:7:8", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 1941, + "nodeType": "Block", + "src": "718:34:8", + "statements": [ + { + "expression": { + "expression": { + "id": 1938, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "735:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1939, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "739:6:8", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "735:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 1937, + "id": 1940, + "nodeType": "Return", + "src": "728:17:8" + } + ] + }, + "id": 1942, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgSender", + "nameLocation": "665:10:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1934, + "nodeType": "ParameterList", + "parameters": [], + "src": "675:2:8" + }, + "returnParameters": { + "id": 1937, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1936, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1942, + "src": "709:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1935, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "709:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "708:9:8" + }, + "scope": 1960, + "src": "656:96:8", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1950, + "nodeType": "Block", + "src": "825:32:8", + "statements": [ + { + "expression": { + "expression": { + "id": 1947, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "842:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1948, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "846:4:8", + "memberName": "data", + "nodeType": "MemberAccess", + "src": "842:8:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "functionReturnParameters": 1946, + "id": 1949, + "nodeType": "Return", + "src": "835:15:8" + } + ] + }, + "id": 1951, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgData", + "nameLocation": "767:8:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1943, + "nodeType": "ParameterList", + "parameters": [], + "src": "775:2:8" + }, + "returnParameters": { + "id": 1946, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1945, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1951, + "src": "809:14:8", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1944, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "809:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "808:16:8" + }, + "scope": 1960, + "src": "758:99:8", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1958, + "nodeType": "Block", + "src": "935:25:8", + "statements": [ + { + "expression": { + "hexValue": "30", + "id": 1956, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "952:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 1955, + "id": 1957, + "nodeType": "Return", + "src": "945:8:8" + } + ] + }, + "id": 1959, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_contextSuffixLength", + "nameLocation": "872:20:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1952, + "nodeType": "ParameterList", + "parameters": [], + "src": "892:2:8" + }, + "returnParameters": { + "id": 1955, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1954, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1959, + "src": "926:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1953, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "926:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "925:9:8" + }, + "scope": 1960, + "src": "863:97:8", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 1961, + "src": "624:338:8", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "101:862:8" + }, + "id": 8 + }, + "@openzeppelin/contracts/utils/StorageSlot.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/StorageSlot.sol", + "exportedSymbols": { + "StorageSlot": [ + 2070 + ] + }, + "id": 2071, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1962, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "193:24:9" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "StorageSlot", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 1963, + "nodeType": "StructuredDocumentation", + "src": "219:1025:9", + "text": " @dev Library for reading and writing primitive types to specific storage slots.\n Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.\n This library helps with reading and writing to such slots without the need for inline assembly.\n The functions in this library return Slot structs that contain a `value` member that can be used to read or write.\n Example usage to set ERC1967 implementation slot:\n ```solidity\n contract ERC1967 {\n bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\n function _getImplementation() internal view returns (address) {\n return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\n }\n function _setImplementation(address newImplementation) internal {\n require(newImplementation.code.length > 0);\n StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\n }\n }\n ```" + }, + "fullyImplemented": true, + "id": 2070, + "linearizedBaseContracts": [ + 2070 + ], + "name": "StorageSlot", + "nameLocation": "1253:11:9", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "StorageSlot.AddressSlot", + "id": 1966, + "members": [ + { + "constant": false, + "id": 1965, + "mutability": "mutable", + "name": "value", + "nameLocation": "1308:5:9", + "nodeType": "VariableDeclaration", + "scope": 1966, + "src": "1300:13:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1964, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1300:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "name": "AddressSlot", + "nameLocation": "1278:11:9", + "nodeType": "StructDefinition", + "scope": 2070, + "src": "1271:49:9", + "visibility": "public" + }, + { + "canonicalName": "StorageSlot.BooleanSlot", + "id": 1969, + "members": [ + { + "constant": false, + "id": 1968, + "mutability": "mutable", + "name": "value", + "nameLocation": "1360:5:9", + "nodeType": "VariableDeclaration", + "scope": 1969, + "src": "1355:10:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1967, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1355:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "name": "BooleanSlot", + "nameLocation": "1333:11:9", + "nodeType": "StructDefinition", + "scope": 2070, + "src": "1326:46:9", + "visibility": "public" + }, + { + "canonicalName": "StorageSlot.Bytes32Slot", + "id": 1972, + "members": [ + { + "constant": false, + "id": 1971, + "mutability": "mutable", + "name": "value", + "nameLocation": "1415:5:9", + "nodeType": "VariableDeclaration", + "scope": 1972, + "src": "1407:13:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1970, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1407:7:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "name": "Bytes32Slot", + "nameLocation": "1385:11:9", + "nodeType": "StructDefinition", + "scope": 2070, + "src": "1378:49:9", + "visibility": "public" + }, + { + "canonicalName": "StorageSlot.Uint256Slot", + "id": 1975, + "members": [ + { + "constant": false, + "id": 1974, + "mutability": "mutable", + "name": "value", + "nameLocation": "1470:5:9", + "nodeType": "VariableDeclaration", + "scope": 1975, + "src": "1462:13:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1973, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1462:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "Uint256Slot", + "nameLocation": "1440:11:9", + "nodeType": "StructDefinition", + "scope": 2070, + "src": "1433:49:9", + "visibility": "public" + }, + { + "canonicalName": "StorageSlot.StringSlot", + "id": 1978, + "members": [ + { + "constant": false, + "id": 1977, + "mutability": "mutable", + "name": "value", + "nameLocation": "1523:5:9", + "nodeType": "VariableDeclaration", + "scope": 1978, + "src": "1516:12:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1976, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1516:6:9", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "name": "StringSlot", + "nameLocation": "1495:10:9", + "nodeType": "StructDefinition", + "scope": 2070, + "src": "1488:47:9", + "visibility": "public" + }, + { + "canonicalName": "StorageSlot.BytesSlot", + "id": 1981, + "members": [ + { + "constant": false, + "id": 1980, + "mutability": "mutable", + "name": "value", + "nameLocation": "1574:5:9", + "nodeType": "VariableDeclaration", + "scope": 1981, + "src": "1568:11:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1979, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1568:5:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "name": "BytesSlot", + "nameLocation": "1548:9:9", + "nodeType": "StructDefinition", + "scope": 2070, + "src": "1541:45:9", + "visibility": "public" + }, + { + "body": { + "id": 1991, + "nodeType": "Block", + "src": "1768:106:9", + "statements": [ + { + "AST": { + "nativeSrc": "1830:38:9", + "nodeType": "YulBlock", + "src": "1830:38:9", + "statements": [ + { + "nativeSrc": "1844:14:9", + "nodeType": "YulAssignment", + "src": "1844:14:9", + "value": { + "name": "slot", + "nativeSrc": "1854:4:9", + "nodeType": "YulIdentifier", + "src": "1854:4:9" + }, + "variableNames": [ + { + "name": "r.slot", + "nativeSrc": "1844:6:9", + "nodeType": "YulIdentifier", + "src": "1844:6:9" + } + ] + } + ] + }, + "documentation": "@solidity memory-safe-assembly", + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 1988, + "isOffset": false, + "isSlot": true, + "src": "1844:6:9", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 1984, + "isOffset": false, + "isSlot": false, + "src": "1854:4:9", + "valueSize": 1 + } + ], + "id": 1990, + "nodeType": "InlineAssembly", + "src": "1821:47:9" + } + ] + }, + "documentation": { + "id": 1982, + "nodeType": "StructuredDocumentation", + "src": "1592:87:9", + "text": " @dev Returns an `AddressSlot` with member `value` located at `slot`." + }, + "id": 1992, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getAddressSlot", + "nameLocation": "1693:14:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1985, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1984, + "mutability": "mutable", + "name": "slot", + "nameLocation": "1716:4:9", + "nodeType": "VariableDeclaration", + "scope": 1992, + "src": "1708:12:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1983, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1708:7:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "1707:14:9" + }, + "returnParameters": { + "id": 1989, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1988, + "mutability": "mutable", + "name": "r", + "nameLocation": "1765:1:9", + "nodeType": "VariableDeclaration", + "scope": 1992, + "src": "1745:21:9", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSlot_$1966_storage_ptr", + "typeString": "struct StorageSlot.AddressSlot" + }, + "typeName": { + "id": 1987, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1986, + "name": "AddressSlot", + "nameLocations": [ + "1745:11:9" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1966, + "src": "1745:11:9" + }, + "referencedDeclaration": 1966, + "src": "1745:11:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSlot_$1966_storage_ptr", + "typeString": "struct StorageSlot.AddressSlot" + } + }, + "visibility": "internal" + } + ], + "src": "1744:23:9" + }, + "scope": 2070, + "src": "1684:190:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2002, + "nodeType": "Block", + "src": "2056:106:9", + "statements": [ + { + "AST": { + "nativeSrc": "2118:38:9", + "nodeType": "YulBlock", + "src": "2118:38:9", + "statements": [ + { + "nativeSrc": "2132:14:9", + "nodeType": "YulAssignment", + "src": "2132:14:9", + "value": { + "name": "slot", + "nativeSrc": "2142:4:9", + "nodeType": "YulIdentifier", + "src": "2142:4:9" + }, + "variableNames": [ + { + "name": "r.slot", + "nativeSrc": "2132:6:9", + "nodeType": "YulIdentifier", + "src": "2132:6:9" + } + ] + } + ] + }, + "documentation": "@solidity memory-safe-assembly", + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 1999, + "isOffset": false, + "isSlot": true, + "src": "2132:6:9", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 1995, + "isOffset": false, + "isSlot": false, + "src": "2142:4:9", + "valueSize": 1 + } + ], + "id": 2001, + "nodeType": "InlineAssembly", + "src": "2109:47:9" + } + ] + }, + "documentation": { + "id": 1993, + "nodeType": "StructuredDocumentation", + "src": "1880:87:9", + "text": " @dev Returns an `BooleanSlot` with member `value` located at `slot`." + }, + "id": 2003, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getBooleanSlot", + "nameLocation": "1981:14:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1996, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1995, + "mutability": "mutable", + "name": "slot", + "nameLocation": "2004:4:9", + "nodeType": "VariableDeclaration", + "scope": 2003, + "src": "1996:12:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1994, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1996:7:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "1995:14:9" + }, + "returnParameters": { + "id": 2000, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1999, + "mutability": "mutable", + "name": "r", + "nameLocation": "2053:1:9", + "nodeType": "VariableDeclaration", + "scope": 2003, + "src": "2033:21:9", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BooleanSlot_$1969_storage_ptr", + "typeString": "struct StorageSlot.BooleanSlot" + }, + "typeName": { + "id": 1998, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1997, + "name": "BooleanSlot", + "nameLocations": [ + "2033:11:9" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1969, + "src": "2033:11:9" + }, + "referencedDeclaration": 1969, + "src": "2033:11:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BooleanSlot_$1969_storage_ptr", + "typeString": "struct StorageSlot.BooleanSlot" + } + }, + "visibility": "internal" + } + ], + "src": "2032:23:9" + }, + "scope": 2070, + "src": "1972:190:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2013, + "nodeType": "Block", + "src": "2344:106:9", + "statements": [ + { + "AST": { + "nativeSrc": "2406:38:9", + "nodeType": "YulBlock", + "src": "2406:38:9", + "statements": [ + { + "nativeSrc": "2420:14:9", + "nodeType": "YulAssignment", + "src": "2420:14:9", + "value": { + "name": "slot", + "nativeSrc": "2430:4:9", + "nodeType": "YulIdentifier", + "src": "2430:4:9" + }, + "variableNames": [ + { + "name": "r.slot", + "nativeSrc": "2420:6:9", + "nodeType": "YulIdentifier", + "src": "2420:6:9" + } + ] + } + ] + }, + "documentation": "@solidity memory-safe-assembly", + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 2010, + "isOffset": false, + "isSlot": true, + "src": "2420:6:9", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 2006, + "isOffset": false, + "isSlot": false, + "src": "2430:4:9", + "valueSize": 1 + } + ], + "id": 2012, + "nodeType": "InlineAssembly", + "src": "2397:47:9" + } + ] + }, + "documentation": { + "id": 2004, + "nodeType": "StructuredDocumentation", + "src": "2168:87:9", + "text": " @dev Returns an `Bytes32Slot` with member `value` located at `slot`." + }, + "id": 2014, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getBytes32Slot", + "nameLocation": "2269:14:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2007, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2006, + "mutability": "mutable", + "name": "slot", + "nameLocation": "2292:4:9", + "nodeType": "VariableDeclaration", + "scope": 2014, + "src": "2284:12:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2005, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2284:7:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2283:14:9" + }, + "returnParameters": { + "id": 2011, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2010, + "mutability": "mutable", + "name": "r", + "nameLocation": "2341:1:9", + "nodeType": "VariableDeclaration", + "scope": 2014, + "src": "2321:21:9", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Slot_$1972_storage_ptr", + "typeString": "struct StorageSlot.Bytes32Slot" + }, + "typeName": { + "id": 2009, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2008, + "name": "Bytes32Slot", + "nameLocations": [ + "2321:11:9" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1972, + "src": "2321:11:9" + }, + "referencedDeclaration": 1972, + "src": "2321:11:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Slot_$1972_storage_ptr", + "typeString": "struct StorageSlot.Bytes32Slot" + } + }, + "visibility": "internal" + } + ], + "src": "2320:23:9" + }, + "scope": 2070, + "src": "2260:190:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2024, + "nodeType": "Block", + "src": "2632:106:9", + "statements": [ + { + "AST": { + "nativeSrc": "2694:38:9", + "nodeType": "YulBlock", + "src": "2694:38:9", + "statements": [ + { + "nativeSrc": "2708:14:9", + "nodeType": "YulAssignment", + "src": "2708:14:9", + "value": { + "name": "slot", + "nativeSrc": "2718:4:9", + "nodeType": "YulIdentifier", + "src": "2718:4:9" + }, + "variableNames": [ + { + "name": "r.slot", + "nativeSrc": "2708:6:9", + "nodeType": "YulIdentifier", + "src": "2708:6:9" + } + ] + } + ] + }, + "documentation": "@solidity memory-safe-assembly", + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 2021, + "isOffset": false, + "isSlot": true, + "src": "2708:6:9", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 2017, + "isOffset": false, + "isSlot": false, + "src": "2718:4:9", + "valueSize": 1 + } + ], + "id": 2023, + "nodeType": "InlineAssembly", + "src": "2685:47:9" + } + ] + }, + "documentation": { + "id": 2015, + "nodeType": "StructuredDocumentation", + "src": "2456:87:9", + "text": " @dev Returns an `Uint256Slot` with member `value` located at `slot`." + }, + "id": 2025, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getUint256Slot", + "nameLocation": "2557:14:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2018, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2017, + "mutability": "mutable", + "name": "slot", + "nameLocation": "2580:4:9", + "nodeType": "VariableDeclaration", + "scope": 2025, + "src": "2572:12:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2016, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2572:7:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2571:14:9" + }, + "returnParameters": { + "id": 2022, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2021, + "mutability": "mutable", + "name": "r", + "nameLocation": "2629:1:9", + "nodeType": "VariableDeclaration", + "scope": 2025, + "src": "2609:21:9", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Uint256Slot_$1975_storage_ptr", + "typeString": "struct StorageSlot.Uint256Slot" + }, + "typeName": { + "id": 2020, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2019, + "name": "Uint256Slot", + "nameLocations": [ + "2609:11:9" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1975, + "src": "2609:11:9" + }, + "referencedDeclaration": 1975, + "src": "2609:11:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Uint256Slot_$1975_storage_ptr", + "typeString": "struct StorageSlot.Uint256Slot" + } + }, + "visibility": "internal" + } + ], + "src": "2608:23:9" + }, + "scope": 2070, + "src": "2548:190:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2035, + "nodeType": "Block", + "src": "2917:106:9", + "statements": [ + { + "AST": { + "nativeSrc": "2979:38:9", + "nodeType": "YulBlock", + "src": "2979:38:9", + "statements": [ + { + "nativeSrc": "2993:14:9", + "nodeType": "YulAssignment", + "src": "2993:14:9", + "value": { + "name": "slot", + "nativeSrc": "3003:4:9", + "nodeType": "YulIdentifier", + "src": "3003:4:9" + }, + "variableNames": [ + { + "name": "r.slot", + "nativeSrc": "2993:6:9", + "nodeType": "YulIdentifier", + "src": "2993:6:9" + } + ] + } + ] + }, + "documentation": "@solidity memory-safe-assembly", + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 2032, + "isOffset": false, + "isSlot": true, + "src": "2993:6:9", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 2028, + "isOffset": false, + "isSlot": false, + "src": "3003:4:9", + "valueSize": 1 + } + ], + "id": 2034, + "nodeType": "InlineAssembly", + "src": "2970:47:9" + } + ] + }, + "documentation": { + "id": 2026, + "nodeType": "StructuredDocumentation", + "src": "2744:86:9", + "text": " @dev Returns an `StringSlot` with member `value` located at `slot`." + }, + "id": 2036, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getStringSlot", + "nameLocation": "2844:13:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2029, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2028, + "mutability": "mutable", + "name": "slot", + "nameLocation": "2866:4:9", + "nodeType": "VariableDeclaration", + "scope": 2036, + "src": "2858:12:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2027, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2858:7:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2857:14:9" + }, + "returnParameters": { + "id": 2033, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2032, + "mutability": "mutable", + "name": "r", + "nameLocation": "2914:1:9", + "nodeType": "VariableDeclaration", + "scope": 2036, + "src": "2895:20:9", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StringSlot_$1978_storage_ptr", + "typeString": "struct StorageSlot.StringSlot" + }, + "typeName": { + "id": 2031, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2030, + "name": "StringSlot", + "nameLocations": [ + "2895:10:9" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1978, + "src": "2895:10:9" + }, + "referencedDeclaration": 1978, + "src": "2895:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StringSlot_$1978_storage_ptr", + "typeString": "struct StorageSlot.StringSlot" + } + }, + "visibility": "internal" + } + ], + "src": "2894:22:9" + }, + "scope": 2070, + "src": "2835:188:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2046, + "nodeType": "Block", + "src": "3225:112:9", + "statements": [ + { + "AST": { + "nativeSrc": "3287:44:9", + "nodeType": "YulBlock", + "src": "3287:44:9", + "statements": [ + { + "nativeSrc": "3301:20:9", + "nodeType": "YulAssignment", + "src": "3301:20:9", + "value": { + "name": "store.slot", + "nativeSrc": "3311:10:9", + "nodeType": "YulIdentifier", + "src": "3311:10:9" + }, + "variableNames": [ + { + "name": "r.slot", + "nativeSrc": "3301:6:9", + "nodeType": "YulIdentifier", + "src": "3301:6:9" + } + ] + } + ] + }, + "documentation": "@solidity memory-safe-assembly", + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 2043, + "isOffset": false, + "isSlot": true, + "src": "3301:6:9", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 2039, + "isOffset": false, + "isSlot": true, + "src": "3311:10:9", + "suffix": "slot", + "valueSize": 1 + } + ], + "id": 2045, + "nodeType": "InlineAssembly", + "src": "3278:53:9" + } + ] + }, + "documentation": { + "id": 2037, + "nodeType": "StructuredDocumentation", + "src": "3029:101:9", + "text": " @dev Returns an `StringSlot` representation of the string storage pointer `store`." + }, + "id": 2047, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getStringSlot", + "nameLocation": "3144:13:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2040, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2039, + "mutability": "mutable", + "name": "store", + "nameLocation": "3173:5:9", + "nodeType": "VariableDeclaration", + "scope": 2047, + "src": "3158:20:9", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2038, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3158:6:9", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "3157:22:9" + }, + "returnParameters": { + "id": 2044, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2043, + "mutability": "mutable", + "name": "r", + "nameLocation": "3222:1:9", + "nodeType": "VariableDeclaration", + "scope": 2047, + "src": "3203:20:9", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StringSlot_$1978_storage_ptr", + "typeString": "struct StorageSlot.StringSlot" + }, + "typeName": { + "id": 2042, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2041, + "name": "StringSlot", + "nameLocations": [ + "3203:10:9" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1978, + "src": "3203:10:9" + }, + "referencedDeclaration": 1978, + "src": "3203:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StringSlot_$1978_storage_ptr", + "typeString": "struct StorageSlot.StringSlot" + } + }, + "visibility": "internal" + } + ], + "src": "3202:22:9" + }, + "scope": 2070, + "src": "3135:202:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2057, + "nodeType": "Block", + "src": "3513:106:9", + "statements": [ + { + "AST": { + "nativeSrc": "3575:38:9", + "nodeType": "YulBlock", + "src": "3575:38:9", + "statements": [ + { + "nativeSrc": "3589:14:9", + "nodeType": "YulAssignment", + "src": "3589:14:9", + "value": { + "name": "slot", + "nativeSrc": "3599:4:9", + "nodeType": "YulIdentifier", + "src": "3599:4:9" + }, + "variableNames": [ + { + "name": "r.slot", + "nativeSrc": "3589:6:9", + "nodeType": "YulIdentifier", + "src": "3589:6:9" + } + ] + } + ] + }, + "documentation": "@solidity memory-safe-assembly", + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 2054, + "isOffset": false, + "isSlot": true, + "src": "3589:6:9", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 2050, + "isOffset": false, + "isSlot": false, + "src": "3599:4:9", + "valueSize": 1 + } + ], + "id": 2056, + "nodeType": "InlineAssembly", + "src": "3566:47:9" + } + ] + }, + "documentation": { + "id": 2048, + "nodeType": "StructuredDocumentation", + "src": "3343:85:9", + "text": " @dev Returns an `BytesSlot` with member `value` located at `slot`." + }, + "id": 2058, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getBytesSlot", + "nameLocation": "3442:12:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2051, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2050, + "mutability": "mutable", + "name": "slot", + "nameLocation": "3463:4:9", + "nodeType": "VariableDeclaration", + "scope": 2058, + "src": "3455:12:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2049, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3455:7:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "3454:14:9" + }, + "returnParameters": { + "id": 2055, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2054, + "mutability": "mutable", + "name": "r", + "nameLocation": "3510:1:9", + "nodeType": "VariableDeclaration", + "scope": 2058, + "src": "3492:19:9", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BytesSlot_$1981_storage_ptr", + "typeString": "struct StorageSlot.BytesSlot" + }, + "typeName": { + "id": 2053, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2052, + "name": "BytesSlot", + "nameLocations": [ + "3492:9:9" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1981, + "src": "3492:9:9" + }, + "referencedDeclaration": 1981, + "src": "3492:9:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BytesSlot_$1981_storage_ptr", + "typeString": "struct StorageSlot.BytesSlot" + } + }, + "visibility": "internal" + } + ], + "src": "3491:21:9" + }, + "scope": 2070, + "src": "3433:186:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2068, + "nodeType": "Block", + "src": "3816:112:9", + "statements": [ + { + "AST": { + "nativeSrc": "3878:44:9", + "nodeType": "YulBlock", + "src": "3878:44:9", + "statements": [ + { + "nativeSrc": "3892:20:9", + "nodeType": "YulAssignment", + "src": "3892:20:9", + "value": { + "name": "store.slot", + "nativeSrc": "3902:10:9", + "nodeType": "YulIdentifier", + "src": "3902:10:9" + }, + "variableNames": [ + { + "name": "r.slot", + "nativeSrc": "3892:6:9", + "nodeType": "YulIdentifier", + "src": "3892:6:9" + } + ] + } + ] + }, + "documentation": "@solidity memory-safe-assembly", + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 2065, + "isOffset": false, + "isSlot": true, + "src": "3892:6:9", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 2061, + "isOffset": false, + "isSlot": true, + "src": "3902:10:9", + "suffix": "slot", + "valueSize": 1 + } + ], + "id": 2067, + "nodeType": "InlineAssembly", + "src": "3869:53:9" + } + ] + }, + "documentation": { + "id": 2059, + "nodeType": "StructuredDocumentation", + "src": "3625:99:9", + "text": " @dev Returns an `BytesSlot` representation of the bytes storage pointer `store`." + }, + "id": 2069, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getBytesSlot", + "nameLocation": "3738:12:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2062, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2061, + "mutability": "mutable", + "name": "store", + "nameLocation": "3765:5:9", + "nodeType": "VariableDeclaration", + "scope": 2069, + "src": "3751:19:9", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2060, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3751:5:9", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "3750:21:9" + }, + "returnParameters": { + "id": 2066, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2065, + "mutability": "mutable", + "name": "r", + "nameLocation": "3813:1:9", + "nodeType": "VariableDeclaration", + "scope": 2069, + "src": "3795:19:9", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BytesSlot_$1981_storage_ptr", + "typeString": "struct StorageSlot.BytesSlot" + }, + "typeName": { + "id": 2064, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2063, + "name": "BytesSlot", + "nameLocations": [ + "3795:9:9" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1981, + "src": "3795:9:9" + }, + "referencedDeclaration": 1981, + "src": "3795:9:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BytesSlot_$1981_storage_ptr", + "typeString": "struct StorageSlot.BytesSlot" + } + }, + "visibility": "internal" + } + ], + "src": "3794:21:9" + }, + "scope": 2070, + "src": "3729:199:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 2071, + "src": "1245:2685:9", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "193:3738:9" + }, + "id": 9 + }, + "@openzeppelin/contracts/utils/Strings.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/Strings.sol", + "exportedSymbols": { + "Math": [ + 3610 + ], + "SignedMath": [ + 3715 + ], + "Strings": [ + 2325 + ] + }, + "id": 2326, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2072, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "101:24:10" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/math/Math.sol", + "file": "./math/Math.sol", + "id": 2074, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2326, + "sourceUnit": 3611, + "src": "127:37:10", + "symbolAliases": [ + { + "foreign": { + "id": 2073, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3610, + "src": "135:4:10", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/math/SignedMath.sol", + "file": "./math/SignedMath.sol", + "id": 2076, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2326, + "sourceUnit": 3716, + "src": "165:49:10", + "symbolAliases": [ + { + "foreign": { + "id": 2075, + "name": "SignedMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3715, + "src": "173:10:10", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "Strings", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 2077, + "nodeType": "StructuredDocumentation", + "src": "216:34:10", + "text": " @dev String operations." + }, + "fullyImplemented": true, + "id": 2325, + "linearizedBaseContracts": [ + 2325 + ], + "name": "Strings", + "nameLocation": "259:7:10", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 2080, + "mutability": "constant", + "name": "HEX_DIGITS", + "nameLocation": "298:10:10", + "nodeType": "VariableDeclaration", + "scope": 2325, + "src": "273:56:10", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes16", + "typeString": "bytes16" + }, + "typeName": { + "id": 2078, + "name": "bytes16", + "nodeType": "ElementaryTypeName", + "src": "273:7:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes16", + "typeString": "bytes16" + } + }, + "value": { + "hexValue": "30313233343536373839616263646566", + "id": 2079, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "311:18:10", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cb29997ed99ead0db59ce4d12b7d3723198c827273e5796737c926d78019c39f", + "typeString": "literal_string \"0123456789abcdef\"" + }, + "value": "0123456789abcdef" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 2083, + "mutability": "constant", + "name": "ADDRESS_LENGTH", + "nameLocation": "358:14:10", + "nodeType": "VariableDeclaration", + "scope": 2325, + "src": "335:42:10", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2081, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "335:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": { + "hexValue": "3230", + "id": 2082, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "375:2:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_20_by_1", + "typeString": "int_const 20" + }, + "value": "20" + }, + "visibility": "private" + }, + { + "documentation": { + "id": 2084, + "nodeType": "StructuredDocumentation", + "src": "384:81:10", + "text": " @dev The `value` string doesn't fit in the specified `length`." + }, + "errorSelector": "e22e27eb", + "id": 2090, + "name": "StringsInsufficientHexLength", + "nameLocation": "476:28:10", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 2089, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2086, + "mutability": "mutable", + "name": "value", + "nameLocation": "513:5:10", + "nodeType": "VariableDeclaration", + "scope": 2090, + "src": "505:13:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2085, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "505:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2088, + "mutability": "mutable", + "name": "length", + "nameLocation": "528:6:10", + "nodeType": "VariableDeclaration", + "scope": 2090, + "src": "520:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2087, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "520:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "504:31:10" + }, + "src": "470:66:10" + }, + { + "body": { + "id": 2137, + "nodeType": "Block", + "src": "708:627:10", + "statements": [ + { + "id": 2136, + "nodeType": "UncheckedBlock", + "src": "718:611:10", + "statements": [ + { + "assignments": [ + 2099 + ], + "declarations": [ + { + "constant": false, + "id": 2099, + "mutability": "mutable", + "name": "length", + "nameLocation": "750:6:10", + "nodeType": "VariableDeclaration", + "scope": 2136, + "src": "742:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2098, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "742:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2106, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2105, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 2102, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2093, + "src": "770:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 2100, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3610, + "src": "759:4:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$3610_$", + "typeString": "type(library Math)" + } + }, + "id": 2101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "764:5:10", + "memberName": "log10", + "nodeType": "MemberAccess", + "referencedDeclaration": 3430, + "src": "759:10:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 2103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "759:17:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 2104, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "779:1:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "759:21:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "742:38:10" + }, + { + "assignments": [ + 2108 + ], + "declarations": [ + { + "constant": false, + "id": 2108, + "mutability": "mutable", + "name": "buffer", + "nameLocation": "808:6:10", + "nodeType": "VariableDeclaration", + "scope": 2136, + "src": "794:20:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2107, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "794:6:10", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 2113, + "initialValue": { + "arguments": [ + { + "id": 2111, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2099, + "src": "828:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2110, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "817:10:10", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_string_memory_ptr_$", + "typeString": "function (uint256) pure returns (string memory)" + }, + "typeName": { + "id": 2109, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "821:6:10", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + } + }, + "id": 2112, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "817:18:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "794:41:10" + }, + { + "assignments": [ + 2115 + ], + "declarations": [ + { + "constant": false, + "id": 2115, + "mutability": "mutable", + "name": "ptr", + "nameLocation": "857:3:10", + "nodeType": "VariableDeclaration", + "scope": 2136, + "src": "849:11:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2114, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "849:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2116, + "nodeType": "VariableDeclarationStatement", + "src": "849:11:10" + }, + { + "AST": { + "nativeSrc": "930:67:10", + "nodeType": "YulBlock", + "src": "930:67:10", + "statements": [ + { + "nativeSrc": "948:35:10", + "nodeType": "YulAssignment", + "src": "948:35:10", + "value": { + "arguments": [ + { + "name": "buffer", + "nativeSrc": "959:6:10", + "nodeType": "YulIdentifier", + "src": "959:6:10" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "971:2:10", + "nodeType": "YulLiteral", + "src": "971:2:10", + "type": "", + "value": "32" + }, + { + "name": "length", + "nativeSrc": "975:6:10", + "nodeType": "YulIdentifier", + "src": "975:6:10" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "967:3:10", + "nodeType": "YulIdentifier", + "src": "967:3:10" + }, + "nativeSrc": "967:15:10", + "nodeType": "YulFunctionCall", + "src": "967:15:10" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "955:3:10", + "nodeType": "YulIdentifier", + "src": "955:3:10" + }, + "nativeSrc": "955:28:10", + "nodeType": "YulFunctionCall", + "src": "955:28:10" + }, + "variableNames": [ + { + "name": "ptr", + "nativeSrc": "948:3:10", + "nodeType": "YulIdentifier", + "src": "948:3:10" + } + ] + } + ] + }, + "documentation": "@solidity memory-safe-assembly", + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 2108, + "isOffset": false, + "isSlot": false, + "src": "959:6:10", + "valueSize": 1 + }, + { + "declaration": 2099, + "isOffset": false, + "isSlot": false, + "src": "975:6:10", + "valueSize": 1 + }, + { + "declaration": 2115, + "isOffset": false, + "isSlot": false, + "src": "948:3:10", + "valueSize": 1 + } + ], + "id": 2117, + "nodeType": "InlineAssembly", + "src": "921:76:10" + }, + { + "body": { + "id": 2132, + "nodeType": "Block", + "src": "1023:269:10", + "statements": [ + { + "expression": { + "id": 2120, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "--", + "prefix": false, + "src": "1041:5:10", + "subExpression": { + "id": 2119, + "name": "ptr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2115, + "src": "1041:3:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2121, + "nodeType": "ExpressionStatement", + "src": "1041:5:10" + }, + { + "AST": { + "nativeSrc": "1124:86:10", + "nodeType": "YulBlock", + "src": "1124:86:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "1154:3:10", + "nodeType": "YulIdentifier", + "src": "1154:3:10" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1168:5:10", + "nodeType": "YulIdentifier", + "src": "1168:5:10" + }, + { + "kind": "number", + "nativeSrc": "1175:2:10", + "nodeType": "YulLiteral", + "src": "1175:2:10", + "type": "", + "value": "10" + } + ], + "functionName": { + "name": "mod", + "nativeSrc": "1164:3:10", + "nodeType": "YulIdentifier", + "src": "1164:3:10" + }, + "nativeSrc": "1164:14:10", + "nodeType": "YulFunctionCall", + "src": "1164:14:10" + }, + { + "name": "HEX_DIGITS", + "nativeSrc": "1180:10:10", + "nodeType": "YulIdentifier", + "src": "1180:10:10" + } + ], + "functionName": { + "name": "byte", + "nativeSrc": "1159:4:10", + "nodeType": "YulIdentifier", + "src": "1159:4:10" + }, + "nativeSrc": "1159:32:10", + "nodeType": "YulFunctionCall", + "src": "1159:32:10" + } + ], + "functionName": { + "name": "mstore8", + "nativeSrc": "1146:7:10", + "nodeType": "YulIdentifier", + "src": "1146:7:10" + }, + "nativeSrc": "1146:46:10", + "nodeType": "YulFunctionCall", + "src": "1146:46:10" + }, + "nativeSrc": "1146:46:10", + "nodeType": "YulExpressionStatement", + "src": "1146:46:10" + } + ] + }, + "documentation": "@solidity memory-safe-assembly", + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 2080, + "isOffset": false, + "isSlot": false, + "src": "1180:10:10", + "valueSize": 1 + }, + { + "declaration": 2115, + "isOffset": false, + "isSlot": false, + "src": "1154:3:10", + "valueSize": 1 + }, + { + "declaration": 2093, + "isOffset": false, + "isSlot": false, + "src": "1168:5:10", + "valueSize": 1 + } + ], + "id": 2122, + "nodeType": "InlineAssembly", + "src": "1115:95:10" + }, + { + "expression": { + "id": 2125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2123, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2093, + "src": "1227:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "hexValue": "3130", + "id": 2124, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1236:2:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "src": "1227:11:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2126, + "nodeType": "ExpressionStatement", + "src": "1227:11:10" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2129, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2127, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2093, + "src": "1260:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2128, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1269:1:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1260:10:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2131, + "nodeType": "IfStatement", + "src": "1256:21:10", + "trueBody": { + "id": 2130, + "nodeType": "Break", + "src": "1272:5:10" + } + } + ] + }, + "condition": { + "hexValue": "74727565", + "id": 2118, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1017:4:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "id": 2133, + "nodeType": "WhileStatement", + "src": "1010:282:10" + }, + { + "expression": { + "id": 2134, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2108, + "src": "1312:6:10", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2097, + "id": 2135, + "nodeType": "Return", + "src": "1305:13:10" + } + ] + } + ] + }, + "documentation": { + "id": 2091, + "nodeType": "StructuredDocumentation", + "src": "542:90:10", + "text": " @dev Converts a `uint256` to its ASCII `string` decimal representation." + }, + "id": 2138, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toString", + "nameLocation": "646:8:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2094, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2093, + "mutability": "mutable", + "name": "value", + "nameLocation": "663:5:10", + "nodeType": "VariableDeclaration", + "scope": 2138, + "src": "655:13:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2092, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "655:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "654:15:10" + }, + "returnParameters": { + "id": 2097, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2096, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2138, + "src": "693:13:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2095, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "693:6:10", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "692:15:10" + }, + "scope": 2325, + "src": "637:698:10", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2163, + "nodeType": "Block", + "src": "1511:92:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 2151, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2149, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2141, + "src": "1542:5:10", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "hexValue": "30", + "id": 2150, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1550:1:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1542:9:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "hexValue": "", + "id": 2153, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1560:2:10", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + }, + "id": 2154, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "1542:20:10", + "trueExpression": { + "hexValue": "2d", + "id": 2152, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1554:3:10", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d3b8281179950f98149eefdb158d0e1acb56f56e8e343aa9fefafa7e36959561", + "typeString": "literal_string \"-\"" + }, + "value": "-" + }, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "id": 2158, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2141, + "src": "1588:5:10", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "expression": { + "id": 2156, + "name": "SignedMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3715, + "src": "1573:10:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SignedMath_$3715_$", + "typeString": "type(library SignedMath)" + } + }, + "id": 2157, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1584:3:10", + "memberName": "abs", + "nodeType": "MemberAccess", + "referencedDeclaration": 3714, + "src": "1573:14:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_int256_$returns$_t_uint256_$", + "typeString": "function (int256) pure returns (uint256)" + } + }, + "id": 2159, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1573:21:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2155, + "name": "toString", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2138, + "src": "1564:8:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$", + "typeString": "function (uint256) pure returns (string memory)" + } + }, + "id": 2160, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1564:31:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "id": 2147, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1528:6:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 2146, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1528:6:10", + "typeDescriptions": {} + } + }, + "id": 2148, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1535:6:10", + "memberName": "concat", + "nodeType": "MemberAccess", + "src": "1528:13:10", + "typeDescriptions": { + "typeIdentifier": "t_function_stringconcat_pure$__$returns$_t_string_memory_ptr_$", + "typeString": "function () pure returns (string memory)" + } + }, + "id": 2161, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1528:68:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2145, + "id": 2162, + "nodeType": "Return", + "src": "1521:75:10" + } + ] + }, + "documentation": { + "id": 2139, + "nodeType": "StructuredDocumentation", + "src": "1341:89:10", + "text": " @dev Converts a `int256` to its ASCII `string` decimal representation." + }, + "id": 2164, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toStringSigned", + "nameLocation": "1444:14:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2142, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2141, + "mutability": "mutable", + "name": "value", + "nameLocation": "1466:5:10", + "nodeType": "VariableDeclaration", + "scope": 2164, + "src": "1459:12:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 2140, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "1459:6:10", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "1458:14:10" + }, + "returnParameters": { + "id": 2145, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2144, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2164, + "src": "1496:13:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2143, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1496:6:10", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1495:15:10" + }, + "scope": 2325, + "src": "1435:168:10", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2183, + "nodeType": "Block", + "src": "1782:100:10", + "statements": [ + { + "id": 2182, + "nodeType": "UncheckedBlock", + "src": "1792:84:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2173, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2167, + "src": "1835:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 2176, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2167, + "src": "1854:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 2174, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3610, + "src": "1842:4:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$3610_$", + "typeString": "type(library Math)" + } + }, + "id": 2175, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1847:6:10", + "memberName": "log256", + "nodeType": "MemberAccess", + "referencedDeclaration": 3552, + "src": "1842:11:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 2177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1842:18:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 2178, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1863:1:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1842:22:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2172, + "name": "toHexString", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2184, + 2267, + 2287 + ], + "referencedDeclaration": 2267, + "src": "1823:11:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$", + "typeString": "function (uint256,uint256) pure returns (string memory)" + } + }, + "id": 2180, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1823:42:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2171, + "id": 2181, + "nodeType": "Return", + "src": "1816:49:10" + } + ] + } + ] + }, + "documentation": { + "id": 2165, + "nodeType": "StructuredDocumentation", + "src": "1609:94:10", + "text": " @dev Converts a `uint256` to its ASCII `string` hexadecimal representation." + }, + "id": 2184, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toHexString", + "nameLocation": "1717:11:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2168, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2167, + "mutability": "mutable", + "name": "value", + "nameLocation": "1737:5:10", + "nodeType": "VariableDeclaration", + "scope": 2184, + "src": "1729:13:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2166, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1729:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1728:15:10" + }, + "returnParameters": { + "id": 2171, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2170, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2184, + "src": "1767:13:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2169, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1767:6:10", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1766:15:10" + }, + "scope": 2325, + "src": "1708:174:10", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2266, + "nodeType": "Block", + "src": "2095:435:10", + "statements": [ + { + "assignments": [ + 2195 + ], + "declarations": [ + { + "constant": false, + "id": 2195, + "mutability": "mutable", + "name": "localValue", + "nameLocation": "2113:10:10", + "nodeType": "VariableDeclaration", + "scope": 2266, + "src": "2105:18:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2194, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2105:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2197, + "initialValue": { + "id": 2196, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2187, + "src": "2126:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2105:26:10" + }, + { + "assignments": [ + 2199 + ], + "declarations": [ + { + "constant": false, + "id": 2199, + "mutability": "mutable", + "name": "buffer", + "nameLocation": "2154:6:10", + "nodeType": "VariableDeclaration", + "scope": 2266, + "src": "2141:19:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2198, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2141:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 2208, + "initialValue": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2206, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2204, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 2202, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2173:1:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2203, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2189, + "src": "2177:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2173:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "32", + "id": 2205, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2186:1:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "2173:14:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2201, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "2163:9:10", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (uint256) pure returns (bytes memory)" + }, + "typeName": { + "id": 2200, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2167:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + } + }, + "id": 2207, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2163:25:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2141:47:10" + }, + { + "expression": { + "id": 2213, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 2209, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2199, + "src": "2198:6:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2211, + "indexExpression": { + "hexValue": "30", + "id": 2210, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2205:1:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2198:9:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 2212, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2210:3:10", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d", + "typeString": "literal_string \"0\"" + }, + "value": "0" + }, + "src": "2198:15:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 2214, + "nodeType": "ExpressionStatement", + "src": "2198:15:10" + }, + { + "expression": { + "id": 2219, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 2215, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2199, + "src": "2223:6:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2217, + "indexExpression": { + "hexValue": "31", + "id": 2216, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2230:1:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2223:9:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "78", + "id": 2218, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2235:3:10", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7521d1cadbcfa91eec65aa16715b94ffc1c9654ba57ea2ef1a2127bca1127a83", + "typeString": "literal_string \"x\"" + }, + "value": "x" + }, + "src": "2223:15:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 2220, + "nodeType": "ExpressionStatement", + "src": "2223:15:10" + }, + { + "body": { + "id": 2249, + "nodeType": "Block", + "src": "2293:95:10", + "statements": [ + { + "expression": { + "id": 2243, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 2235, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2199, + "src": "2307:6:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2237, + "indexExpression": { + "id": 2236, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2222, + "src": "2314:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2307:9:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "baseExpression": { + "id": 2238, + "name": "HEX_DIGITS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2080, + "src": "2319:10:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes16", + "typeString": "bytes16" + } + }, + "id": 2242, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2241, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2239, + "name": "localValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2195, + "src": "2330:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "hexValue": "307866", + "id": 2240, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2343:3:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_15_by_1", + "typeString": "int_const 15" + }, + "value": "0xf" + }, + "src": "2330:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2319:28:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "src": "2307:40:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 2244, + "nodeType": "ExpressionStatement", + "src": "2307:40:10" + }, + { + "expression": { + "id": 2247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2245, + "name": "localValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2195, + "src": "2361:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "34", + "id": 2246, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2376:1:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "2361:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2248, + "nodeType": "ExpressionStatement", + "src": "2361:16:10" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2231, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2229, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2222, + "src": "2281:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "31", + "id": 2230, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2285:1:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "2281:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2250, + "initializationExpression": { + "assignments": [ + 2222 + ], + "declarations": [ + { + "constant": false, + "id": 2222, + "mutability": "mutable", + "name": "i", + "nameLocation": "2261:1:10", + "nodeType": "VariableDeclaration", + "scope": 2250, + "src": "2253:9:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2221, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2253:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2228, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2225, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 2223, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2265:1:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2224, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2189, + "src": "2269:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2265:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 2226, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2278:1:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "2265:14:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2253:26:10" + }, + "isSimpleCounterLoop": false, + "loopExpression": { + "expression": { + "id": 2233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "--", + "prefix": true, + "src": "2288:3:10", + "subExpression": { + "id": 2232, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2222, + "src": "2290:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2234, + "nodeType": "ExpressionStatement", + "src": "2288:3:10" + }, + "nodeType": "ForStatement", + "src": "2248:140:10" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2253, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2251, + "name": "localValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2195, + "src": "2401:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2252, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2415:1:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2401:15:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2260, + "nodeType": "IfStatement", + "src": "2397:96:10", + "trueBody": { + "id": 2259, + "nodeType": "Block", + "src": "2418:75:10", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 2255, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2187, + "src": "2468:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 2256, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2189, + "src": "2475:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2254, + "name": "StringsInsufficientHexLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2090, + "src": "2439:28:10", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint256,uint256) pure returns (error)" + } + }, + "id": 2257, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2439:43:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 2258, + "nodeType": "RevertStatement", + "src": "2432:50:10" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 2263, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2199, + "src": "2516:6:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2262, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2509:6:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 2261, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2509:6:10", + "typeDescriptions": {} + } + }, + "id": 2264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2509:14:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2193, + "id": 2265, + "nodeType": "Return", + "src": "2502:21:10" + } + ] + }, + "documentation": { + "id": 2185, + "nodeType": "StructuredDocumentation", + "src": "1888:112:10", + "text": " @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length." + }, + "id": 2267, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toHexString", + "nameLocation": "2014:11:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2190, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2187, + "mutability": "mutable", + "name": "value", + "nameLocation": "2034:5:10", + "nodeType": "VariableDeclaration", + "scope": 2267, + "src": "2026:13:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2186, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2026:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2189, + "mutability": "mutable", + "name": "length", + "nameLocation": "2049:6:10", + "nodeType": "VariableDeclaration", + "scope": 2267, + "src": "2041:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2188, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2041:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2025:31:10" + }, + "returnParameters": { + "id": 2193, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2192, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2267, + "src": "2080:13:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2191, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2080:6:10", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2079:15:10" + }, + "scope": 2325, + "src": "2005:525:10", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2286, + "nodeType": "Block", + "src": "2762:75:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 2280, + "name": "addr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2270, + "src": "2807:4:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2279, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2799:7:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2278, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "2799:7:10", + "typeDescriptions": {} + } + }, + "id": 2281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2799:13:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2277, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2791:7:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2276, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2791:7:10", + "typeDescriptions": {} + } + }, + "id": 2282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2791:22:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 2283, + "name": "ADDRESS_LENGTH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2083, + "src": "2815:14:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 2275, + "name": "toHexString", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2184, + 2267, + 2287 + ], + "referencedDeclaration": 2267, + "src": "2779:11:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$", + "typeString": "function (uint256,uint256) pure returns (string memory)" + } + }, + "id": 2284, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2779:51:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2274, + "id": 2285, + "nodeType": "Return", + "src": "2772:58:10" + } + ] + }, + "documentation": { + "id": 2268, + "nodeType": "StructuredDocumentation", + "src": "2536:148:10", + "text": " @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal\n representation." + }, + "id": 2287, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toHexString", + "nameLocation": "2698:11:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2271, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2270, + "mutability": "mutable", + "name": "addr", + "nameLocation": "2718:4:10", + "nodeType": "VariableDeclaration", + "scope": 2287, + "src": "2710:12:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2269, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2710:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2709:14:10" + }, + "returnParameters": { + "id": 2274, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2273, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2287, + "src": "2747:13:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2272, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2747:6:10", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2746:15:10" + }, + "scope": 2325, + "src": "2689:148:10", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2323, + "nodeType": "Block", + "src": "2992:104:10", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2321, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2307, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 2299, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2290, + "src": "3015:1:10", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2298, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3009:5:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 2297, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3009:5:10", + "typeDescriptions": {} + } + }, + "id": 2300, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3009:8:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2301, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3018:6:10", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "3009:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 2304, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2292, + "src": "3034:1:10", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2303, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3028:5:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 2302, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3028:5:10", + "typeDescriptions": {} + } + }, + "id": 2305, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3028:8:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3037:6:10", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "3028:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3009:34:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 2320, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "arguments": [ + { + "id": 2311, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2290, + "src": "3063:1:10", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2310, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3057:5:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 2309, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3057:5:10", + "typeDescriptions": {} + } + }, + "id": 2312, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3057:8:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2308, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "3047:9:10", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 2313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3047:19:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "arguments": [ + { + "id": 2317, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2292, + "src": "3086:1:10", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2316, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3080:5:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 2315, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3080:5:10", + "typeDescriptions": {} + } + }, + "id": 2318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3080:8:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2314, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "3070:9:10", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 2319, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3070:19:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "3047:42:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3009:80:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2296, + "id": 2322, + "nodeType": "Return", + "src": "3002:87:10" + } + ] + }, + "documentation": { + "id": 2288, + "nodeType": "StructuredDocumentation", + "src": "2843:66:10", + "text": " @dev Returns true if the two strings are equal." + }, + "id": 2324, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "equal", + "nameLocation": "2923:5:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2293, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2290, + "mutability": "mutable", + "name": "a", + "nameLocation": "2943:1:10", + "nodeType": "VariableDeclaration", + "scope": 2324, + "src": "2929:15:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2289, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2929:6:10", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2292, + "mutability": "mutable", + "name": "b", + "nameLocation": "2960:1:10", + "nodeType": "VariableDeclaration", + "scope": 2324, + "src": "2946:15:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2291, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2946:6:10", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2928:34:10" + }, + "returnParameters": { + "id": 2296, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2295, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2324, + "src": "2986:4:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2294, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2986:4:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2985:6:10" + }, + "scope": 2325, + "src": "2914:182:10", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 2326, + "src": "251:2847:10", + "usedErrors": [ + 2090 + ], + "usedEvents": [] + } + ], + "src": "101:2998:10" + }, + "id": 10 + }, + "@openzeppelin/contracts/utils/introspection/ERC165.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/introspection/ERC165.sol", + "exportedSymbols": { + "ERC165": [ + 2349 + ], + "IERC165": [ + 2556 + ] + }, + "id": 2350, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2327, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "114:24:11" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/introspection/IERC165.sol", + "file": "./IERC165.sol", + "id": 2329, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2350, + "sourceUnit": 2557, + "src": "140:38:11", + "symbolAliases": [ + { + "foreign": { + "id": 2328, + "name": "IERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2556, + "src": "148:7:11", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 2331, + "name": "IERC165", + "nameLocations": [ + "687:7:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2556, + "src": "687:7:11" + }, + "id": 2332, + "nodeType": "InheritanceSpecifier", + "src": "687:7:11" + } + ], + "canonicalName": "ERC165", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 2330, + "nodeType": "StructuredDocumentation", + "src": "180:478:11", + "text": " @dev Implementation of the {IERC165} interface.\n Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\n for the additional interface id that will be supported. For example:\n ```solidity\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n }\n ```" + }, + "fullyImplemented": true, + "id": 2349, + "linearizedBaseContracts": [ + 2349, + 2556 + ], + "name": "ERC165", + "nameLocation": "677:6:11", + "nodeType": "ContractDefinition", + "nodes": [ + { + "baseFunctions": [ + 2555 + ], + "body": { + "id": 2347, + "nodeType": "Block", + "src": "844:64:11", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 2345, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2340, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2335, + "src": "861:11:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 2342, + "name": "IERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2556, + "src": "881:7:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC165_$2556_$", + "typeString": "type(contract IERC165)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_contract$_IERC165_$2556_$", + "typeString": "type(contract IERC165)" + } + ], + "id": 2341, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "876:4:11", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 2343, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "876:13:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_contract$_IERC165_$2556", + "typeString": "type(contract IERC165)" + } + }, + "id": 2344, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "890:11:11", + "memberName": "interfaceId", + "nodeType": "MemberAccess", + "src": "876:25:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "861:40:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2339, + "id": 2346, + "nodeType": "Return", + "src": "854:47:11" + } + ] + }, + "documentation": { + "id": 2333, + "nodeType": "StructuredDocumentation", + "src": "701:56:11", + "text": " @dev See {IERC165-supportsInterface}." + }, + "functionSelector": "01ffc9a7", + "id": 2348, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nameLocation": "771:17:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2336, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2335, + "mutability": "mutable", + "name": "interfaceId", + "nameLocation": "796:11:11", + "nodeType": "VariableDeclaration", + "scope": 2348, + "src": "789:18:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2334, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "789:6:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "788:20:11" + }, + "returnParameters": { + "id": 2339, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2338, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2348, + "src": "838:4:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2337, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "838:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "837:6:11" + }, + "scope": 2349, + "src": "762:146:11", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + } + ], + "scope": 2350, + "src": "659:251:11", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "114:797:11" + }, + "id": 11 + }, + "@openzeppelin/contracts/utils/introspection/ERC165Checker.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/introspection/ERC165Checker.sol", + "exportedSymbols": { + "ERC165Checker": [ + 2544 + ], + "IERC165": [ + 2556 + ] + }, + "id": 2545, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2351, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "121:24:12" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/introspection/IERC165.sol", + "file": "./IERC165.sol", + "id": 2353, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2545, + "sourceUnit": 2557, + "src": "147:38:12", + "symbolAliases": [ + { + "foreign": { + "id": 2352, + "name": "IERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2556, + "src": "155:7:12", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "ERC165Checker", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 2354, + "nodeType": "StructuredDocumentation", + "src": "187:277:12", + "text": " @dev Library used to query support of an interface declared via {IERC165}.\n Note that these functions return the actual result of the query: they do not\n `revert` if an interface is not supported. It is up to the caller to decide\n what to do in these cases." + }, + "fullyImplemented": true, + "id": 2544, + "linearizedBaseContracts": [ + 2544 + ], + "name": "ERC165Checker", + "nameLocation": "473:13:12", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 2357, + "mutability": "constant", + "name": "INTERFACE_ID_INVALID", + "nameLocation": "591:20:12", + "nodeType": "VariableDeclaration", + "scope": 2544, + "src": "567:57:12", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2355, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "567:6:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30786666666666666666", + "id": 2356, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "614:10:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_4294967295_by_1", + "typeString": "int_const 4294967295" + }, + "value": "0xffffffff" + }, + "visibility": "private" + }, + { + "body": { + "id": 2379, + "nodeType": "Block", + "src": "789:356:12", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2377, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 2366, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2360, + "src": "1023:7:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "arguments": [ + { + "id": 2368, + "name": "IERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2556, + "src": "1037:7:12", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC165_$2556_$", + "typeString": "type(contract IERC165)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_contract$_IERC165_$2556_$", + "typeString": "type(contract IERC165)" + } + ], + "id": 2367, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "1032:4:12", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 2369, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1032:13:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_contract$_IERC165_$2556", + "typeString": "type(contract IERC165)" + } + }, + "id": 2370, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "1046:11:12", + "memberName": "interfaceId", + "nodeType": "MemberAccess", + "src": "1032:25:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 2365, + "name": "supportsERC165InterfaceUnchecked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2543, + "src": "990:32:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$", + "typeString": "function (address,bytes4) view returns (bool)" + } + }, + "id": 2371, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "990:68:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "id": 2376, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "1074:64:12", + "subExpression": { + "arguments": [ + { + "id": 2373, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2360, + "src": "1108:7:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2374, + "name": "INTERFACE_ID_INVALID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2357, + "src": "1117:20:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 2372, + "name": "supportsERC165InterfaceUnchecked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2543, + "src": "1075:32:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$", + "typeString": "function (address,bytes4) view returns (bool)" + } + }, + "id": 2375, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1075:63:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "990:148:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2364, + "id": 2378, + "nodeType": "Return", + "src": "971:167:12" + } + ] + }, + "documentation": { + "id": 2358, + "nodeType": "StructuredDocumentation", + "src": "631:83:12", + "text": " @dev Returns true if `account` supports the {IERC165} interface." + }, + "id": 2380, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsERC165", + "nameLocation": "728:14:12", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2361, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2360, + "mutability": "mutable", + "name": "account", + "nameLocation": "751:7:12", + "nodeType": "VariableDeclaration", + "scope": 2380, + "src": "743:15:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2359, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "743:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "742:17:12" + }, + "returnParameters": { + "id": 2364, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2363, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2380, + "src": "783:4:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2362, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "783:4:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "782:6:12" + }, + "scope": 2544, + "src": "719:426:12", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2399, + "nodeType": "Block", + "src": "1456:189:12", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2397, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 2391, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2383, + "src": "1572:7:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2390, + "name": "supportsERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2380, + "src": "1557:14:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 2392, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1557:23:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "arguments": [ + { + "id": 2394, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2383, + "src": "1617:7:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2395, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2385, + "src": "1626:11:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 2393, + "name": "supportsERC165InterfaceUnchecked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2543, + "src": "1584:32:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$", + "typeString": "function (address,bytes4) view returns (bool)" + } + }, + "id": 2396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1584:54:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1557:81:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2389, + "id": 2398, + "nodeType": "Return", + "src": "1550:88:12" + } + ] + }, + "documentation": { + "id": 2381, + "nodeType": "StructuredDocumentation", + "src": "1151:207:12", + "text": " @dev Returns true if `account` supports the interface defined by\n `interfaceId`. Support for {IERC165} itself is queried automatically.\n See {IERC165-supportsInterface}." + }, + "id": 2400, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nameLocation": "1372:17:12", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2386, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2383, + "mutability": "mutable", + "name": "account", + "nameLocation": "1398:7:12", + "nodeType": "VariableDeclaration", + "scope": 2400, + "src": "1390:15:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2382, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1390:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2385, + "mutability": "mutable", + "name": "interfaceId", + "nameLocation": "1414:11:12", + "nodeType": "VariableDeclaration", + "scope": 2400, + "src": "1407:18:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2384, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "1407:6:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "1389:37:12" + }, + "returnParameters": { + "id": 2389, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2388, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2400, + "src": "1450:4:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2387, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1450:4:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1449:6:12" + }, + "scope": 2544, + "src": "1363:282:12", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2455, + "nodeType": "Block", + "src": "2131:560:12", + "statements": [ + { + "assignments": [ + 2416 + ], + "declarations": [ + { + "constant": false, + "id": 2416, + "mutability": "mutable", + "name": "interfaceIdsSupported", + "nameLocation": "2254:21:12", + "nodeType": "VariableDeclaration", + "scope": 2455, + "src": "2240:35:12", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", + "typeString": "bool[]" + }, + "typeName": { + "baseType": { + "id": 2414, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2240:4:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2415, + "nodeType": "ArrayTypeName", + "src": "2240:6:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$dyn_storage_ptr", + "typeString": "bool[]" + } + }, + "visibility": "internal" + } + ], + "id": 2423, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 2420, + "name": "interfaceIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2406, + "src": "2289:12:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes4_$dyn_memory_ptr", + "typeString": "bytes4[] memory" + } + }, + "id": 2421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2302:6:12", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2289:19:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2419, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "2278:10:12", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bool_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (bool[] memory)" + }, + "typeName": { + "baseType": { + "id": 2417, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2282:4:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2418, + "nodeType": "ArrayTypeName", + "src": "2282:6:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$dyn_storage_ptr", + "typeString": "bool[]" + } + } + }, + "id": 2422, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2278:31:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", + "typeString": "bool[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2240:69:12" + }, + { + "condition": { + "arguments": [ + { + "id": 2425, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2403, + "src": "2381:7:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2424, + "name": "supportsERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2380, + "src": "2366:14:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 2426, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2366:23:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2452, + "nodeType": "IfStatement", + "src": "2362:284:12", + "trueBody": { + "id": 2451, + "nodeType": "Block", + "src": "2391:255:12", + "statements": [ + { + "body": { + "id": 2449, + "nodeType": "Block", + "src": "2518:118:12", + "statements": [ + { + "expression": { + "id": 2447, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 2438, + "name": "interfaceIdsSupported", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2416, + "src": "2536:21:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", + "typeString": "bool[] memory" + } + }, + "id": 2440, + "indexExpression": { + "id": 2439, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2428, + "src": "2558:1:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2536:24:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 2442, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2403, + "src": "2596:7:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "baseExpression": { + "id": 2443, + "name": "interfaceIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2406, + "src": "2605:12:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes4_$dyn_memory_ptr", + "typeString": "bytes4[] memory" + } + }, + "id": 2445, + "indexExpression": { + "id": 2444, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2428, + "src": "2618:1:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2605:15:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 2441, + "name": "supportsERC165InterfaceUnchecked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2543, + "src": "2563:32:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$", + "typeString": "function (address,bytes4) view returns (bool)" + } + }, + "id": 2446, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2563:58:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "2536:85:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2448, + "nodeType": "ExpressionStatement", + "src": "2536:85:12" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2431, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2428, + "src": "2488:1:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 2432, + "name": "interfaceIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2406, + "src": "2492:12:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes4_$dyn_memory_ptr", + "typeString": "bytes4[] memory" + } + }, + "id": 2433, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2505:6:12", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2492:19:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2488:23:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2450, + "initializationExpression": { + "assignments": [ + 2428 + ], + "declarations": [ + { + "constant": false, + "id": 2428, + "mutability": "mutable", + "name": "i", + "nameLocation": "2481:1:12", + "nodeType": "VariableDeclaration", + "scope": 2450, + "src": "2473:9:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2427, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2473:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2430, + "initialValue": { + "hexValue": "30", + "id": 2429, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2485:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "2473:13:12" + }, + "isSimpleCounterLoop": true, + "loopExpression": { + "expression": { + "id": 2436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "2513:3:12", + "subExpression": { + "id": 2435, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2428, + "src": "2513:1:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2437, + "nodeType": "ExpressionStatement", + "src": "2513:3:12" + }, + "nodeType": "ForStatement", + "src": "2468:168:12" + } + ] + } + }, + { + "expression": { + "id": 2453, + "name": "interfaceIdsSupported", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2416, + "src": "2663:21:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", + "typeString": "bool[] memory" + } + }, + "functionReturnParameters": 2411, + "id": 2454, + "nodeType": "Return", + "src": "2656:28:12" + } + ] + }, + "documentation": { + "id": 2401, + "nodeType": "StructuredDocumentation", + "src": "1651:336:12", + "text": " @dev Returns a boolean array where each value corresponds to the\n interfaces passed in and whether they're supported or not. This allows\n you to batch check interfaces for a contract where your expectation\n is that some interfaces may not be supported.\n See {IERC165-supportsInterface}." + }, + "id": 2456, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getSupportedInterfaces", + "nameLocation": "2001:22:12", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2407, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2403, + "mutability": "mutable", + "name": "account", + "nameLocation": "2041:7:12", + "nodeType": "VariableDeclaration", + "scope": 2456, + "src": "2033:15:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2402, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2033:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2406, + "mutability": "mutable", + "name": "interfaceIds", + "nameLocation": "2074:12:12", + "nodeType": "VariableDeclaration", + "scope": 2456, + "src": "2058:28:12", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes4_$dyn_memory_ptr", + "typeString": "bytes4[]" + }, + "typeName": { + "baseType": { + "id": 2404, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "2058:6:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "id": 2405, + "nodeType": "ArrayTypeName", + "src": "2058:8:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes4_$dyn_storage_ptr", + "typeString": "bytes4[]" + } + }, + "visibility": "internal" + } + ], + "src": "2023:69:12" + }, + "returnParameters": { + "id": 2411, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2410, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2456, + "src": "2116:13:12", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", + "typeString": "bool[]" + }, + "typeName": { + "baseType": { + "id": 2408, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2116:4:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2409, + "nodeType": "ArrayTypeName", + "src": "2116:6:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$dyn_storage_ptr", + "typeString": "bool[]" + } + }, + "visibility": "internal" + } + ], + "src": "2115:15:12" + }, + "scope": 2544, + "src": "1992:699:12", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2501, + "nodeType": "Block", + "src": "3133:436:12", + "statements": [ + { + "condition": { + "id": 2470, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "3189:24:12", + "subExpression": { + "arguments": [ + { + "id": 2468, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2459, + "src": "3205:7:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2467, + "name": "supportsERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2380, + "src": "3190:14:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 2469, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3190:23:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2474, + "nodeType": "IfStatement", + "src": "3185:67:12", + "trueBody": { + "id": 2473, + "nodeType": "Block", + "src": "3215:37:12", + "statements": [ + { + "expression": { + "hexValue": "66616c7365", + "id": 2471, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3236:5:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 2466, + "id": 2472, + "nodeType": "Return", + "src": "3229:12:12" + } + ] + } + }, + { + "body": { + "id": 2497, + "nodeType": "Block", + "src": "3371:134:12", + "statements": [ + { + "condition": { + "id": 2492, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "3389:59:12", + "subExpression": { + "arguments": [ + { + "id": 2487, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2459, + "src": "3423:7:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "baseExpression": { + "id": 2488, + "name": "interfaceIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2462, + "src": "3432:12:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes4_$dyn_memory_ptr", + "typeString": "bytes4[] memory" + } + }, + "id": 2490, + "indexExpression": { + "id": 2489, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2476, + "src": "3445:1:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3432:15:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 2486, + "name": "supportsERC165InterfaceUnchecked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2543, + "src": "3390:32:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$", + "typeString": "function (address,bytes4) view returns (bool)" + } + }, + "id": 2491, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3390:58:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2496, + "nodeType": "IfStatement", + "src": "3385:110:12", + "trueBody": { + "id": 2495, + "nodeType": "Block", + "src": "3450:45:12", + "statements": [ + { + "expression": { + "hexValue": "66616c7365", + "id": 2493, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3475:5:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 2466, + "id": 2494, + "nodeType": "Return", + "src": "3468:12:12" + } + ] + } + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2482, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2479, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2476, + "src": "3341:1:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 2480, + "name": "interfaceIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2462, + "src": "3345:12:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes4_$dyn_memory_ptr", + "typeString": "bytes4[] memory" + } + }, + "id": 2481, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3358:6:12", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "3345:19:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3341:23:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2498, + "initializationExpression": { + "assignments": [ + 2476 + ], + "declarations": [ + { + "constant": false, + "id": 2476, + "mutability": "mutable", + "name": "i", + "nameLocation": "3334:1:12", + "nodeType": "VariableDeclaration", + "scope": 2498, + "src": "3326:9:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2475, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3326:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2478, + "initialValue": { + "hexValue": "30", + "id": 2477, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3338:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "3326:13:12" + }, + "isSimpleCounterLoop": true, + "loopExpression": { + "expression": { + "id": 2484, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "3366:3:12", + "subExpression": { + "id": 2483, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2476, + "src": "3366:1:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2485, + "nodeType": "ExpressionStatement", + "src": "3366:3:12" + }, + "nodeType": "ForStatement", + "src": "3321:184:12" + }, + { + "expression": { + "hexValue": "74727565", + "id": 2499, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3558:4:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 2466, + "id": 2500, + "nodeType": "Return", + "src": "3551:11:12" + } + ] + }, + "documentation": { + "id": 2457, + "nodeType": "StructuredDocumentation", + "src": "2697:324:12", + "text": " @dev Returns true if `account` supports all the interfaces defined in\n `interfaceIds`. Support for {IERC165} itself is queried automatically.\n Batch-querying can lead to gas savings by skipping repeated checks for\n {IERC165} support.\n See {IERC165-supportsInterface}." + }, + "id": 2502, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsAllInterfaces", + "nameLocation": "3035:21:12", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2463, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2459, + "mutability": "mutable", + "name": "account", + "nameLocation": "3065:7:12", + "nodeType": "VariableDeclaration", + "scope": 2502, + "src": "3057:15:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2458, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3057:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2462, + "mutability": "mutable", + "name": "interfaceIds", + "nameLocation": "3090:12:12", + "nodeType": "VariableDeclaration", + "scope": 2502, + "src": "3074:28:12", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes4_$dyn_memory_ptr", + "typeString": "bytes4[]" + }, + "typeName": { + "baseType": { + "id": 2460, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "3074:6:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "id": 2461, + "nodeType": "ArrayTypeName", + "src": "3074:8:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes4_$dyn_storage_ptr", + "typeString": "bytes4[]" + } + }, + "visibility": "internal" + } + ], + "src": "3056:47:12" + }, + "returnParameters": { + "id": 2466, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2465, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2502, + "src": "3127:4:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2464, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3127:4:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "3126:6:12" + }, + "scope": 2544, + "src": "3026:543:12", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2542, + "nodeType": "Block", + "src": "4505:524:12", + "statements": [ + { + "assignments": [ + 2513 + ], + "declarations": [ + { + "constant": false, + "id": 2513, + "mutability": "mutable", + "name": "encodedParams", + "nameLocation": "4552:13:12", + "nodeType": "VariableDeclaration", + "scope": 2542, + "src": "4539:26:12", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2512, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4539:5:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 2521, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 2516, + "name": "IERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2556, + "src": "4583:7:12", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC165_$2556_$", + "typeString": "type(contract IERC165)" + } + }, + "id": 2517, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "4591:17:12", + "memberName": "supportsInterface", + "nodeType": "MemberAccess", + "referencedDeclaration": 2555, + "src": "4583:25:12", + "typeDescriptions": { + "typeIdentifier": "t_function_declaration_view$_t_bytes4_$returns$_t_bool_$", + "typeString": "function IERC165.supportsInterface(bytes4) view returns (bool)" + } + }, + { + "components": [ + { + "id": 2518, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2507, + "src": "4611:11:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "id": 2519, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4610:13:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_function_declaration_view$_t_bytes4_$returns$_t_bool_$", + "typeString": "function IERC165.supportsInterface(bytes4) view returns (bool)" + }, + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "expression": { + "id": 2514, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "4568:3:12", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2515, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "4572:10:12", + "memberName": "encodeCall", + "nodeType": "MemberAccess", + "src": "4568:14:12", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 2520, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4568:56:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4539:85:12" + }, + { + "assignments": [ + 2523 + ], + "declarations": [ + { + "constant": false, + "id": 2523, + "mutability": "mutable", + "name": "success", + "nameLocation": "4671:7:12", + "nodeType": "VariableDeclaration", + "scope": 2542, + "src": "4666:12:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2522, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4666:4:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 2524, + "nodeType": "VariableDeclarationStatement", + "src": "4666:12:12" + }, + { + "assignments": [ + 2526 + ], + "declarations": [ + { + "constant": false, + "id": 2526, + "mutability": "mutable", + "name": "returnSize", + "nameLocation": "4696:10:12", + "nodeType": "VariableDeclaration", + "scope": 2542, + "src": "4688:18:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2525, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4688:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2527, + "nodeType": "VariableDeclarationStatement", + "src": "4688:18:12" + }, + { + "assignments": [ + 2529 + ], + "declarations": [ + { + "constant": false, + "id": 2529, + "mutability": "mutable", + "name": "returnValue", + "nameLocation": "4724:11:12", + "nodeType": "VariableDeclaration", + "scope": 2542, + "src": "4716:19:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2528, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4716:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2530, + "nodeType": "VariableDeclarationStatement", + "src": "4716:19:12" + }, + { + "AST": { + "nativeSrc": "4754:203:12", + "nodeType": "YulBlock", + "src": "4754:203:12", + "statements": [ + { + "nativeSrc": "4768:97:12", + "nodeType": "YulAssignment", + "src": "4768:97:12", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4790:5:12", + "nodeType": "YulLiteral", + "src": "4790:5:12", + "type": "", + "value": "30000" + }, + { + "name": "account", + "nativeSrc": "4797:7:12", + "nodeType": "YulIdentifier", + "src": "4797:7:12" + }, + { + "arguments": [ + { + "name": "encodedParams", + "nativeSrc": "4810:13:12", + "nodeType": "YulIdentifier", + "src": "4810:13:12" + }, + { + "kind": "number", + "nativeSrc": "4825:4:12", + "nodeType": "YulLiteral", + "src": "4825:4:12", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4806:3:12", + "nodeType": "YulIdentifier", + "src": "4806:3:12" + }, + "nativeSrc": "4806:24:12", + "nodeType": "YulFunctionCall", + "src": "4806:24:12" + }, + { + "arguments": [ + { + "name": "encodedParams", + "nativeSrc": "4838:13:12", + "nodeType": "YulIdentifier", + "src": "4838:13:12" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "4832:5:12", + "nodeType": "YulIdentifier", + "src": "4832:5:12" + }, + "nativeSrc": "4832:20:12", + "nodeType": "YulFunctionCall", + "src": "4832:20:12" + }, + { + "kind": "number", + "nativeSrc": "4854:4:12", + "nodeType": "YulLiteral", + "src": "4854:4:12", + "type": "", + "value": "0x00" + }, + { + "kind": "number", + "nativeSrc": "4860:4:12", + "nodeType": "YulLiteral", + "src": "4860:4:12", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "staticcall", + "nativeSrc": "4779:10:12", + "nodeType": "YulIdentifier", + "src": "4779:10:12" + }, + "nativeSrc": "4779:86:12", + "nodeType": "YulFunctionCall", + "src": "4779:86:12" + }, + "variableNames": [ + { + "name": "success", + "nativeSrc": "4768:7:12", + "nodeType": "YulIdentifier", + "src": "4768:7:12" + } + ] + }, + { + "nativeSrc": "4878:30:12", + "nodeType": "YulAssignment", + "src": "4878:30:12", + "value": { + "arguments": [], + "functionName": { + "name": "returndatasize", + "nativeSrc": "4892:14:12", + "nodeType": "YulIdentifier", + "src": "4892:14:12" + }, + "nativeSrc": "4892:16:12", + "nodeType": "YulFunctionCall", + "src": "4892:16:12" + }, + "variableNames": [ + { + "name": "returnSize", + "nativeSrc": "4878:10:12", + "nodeType": "YulIdentifier", + "src": "4878:10:12" + } + ] + }, + { + "nativeSrc": "4921:26:12", + "nodeType": "YulAssignment", + "src": "4921:26:12", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4942:4:12", + "nodeType": "YulLiteral", + "src": "4942:4:12", + "type": "", + "value": "0x00" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "4936:5:12", + "nodeType": "YulIdentifier", + "src": "4936:5:12" + }, + "nativeSrc": "4936:11:12", + "nodeType": "YulFunctionCall", + "src": "4936:11:12" + }, + "variableNames": [ + { + "name": "returnValue", + "nativeSrc": "4921:11:12", + "nodeType": "YulIdentifier", + "src": "4921:11:12" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 2505, + "isOffset": false, + "isSlot": false, + "src": "4797:7:12", + "valueSize": 1 + }, + { + "declaration": 2513, + "isOffset": false, + "isSlot": false, + "src": "4810:13:12", + "valueSize": 1 + }, + { + "declaration": 2513, + "isOffset": false, + "isSlot": false, + "src": "4838:13:12", + "valueSize": 1 + }, + { + "declaration": 2526, + "isOffset": false, + "isSlot": false, + "src": "4878:10:12", + "valueSize": 1 + }, + { + "declaration": 2529, + "isOffset": false, + "isSlot": false, + "src": "4921:11:12", + "valueSize": 1 + }, + { + "declaration": 2523, + "isOffset": false, + "isSlot": false, + "src": "4768:7:12", + "valueSize": 1 + } + ], + "id": 2531, + "nodeType": "InlineAssembly", + "src": "4745:212:12" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2540, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2536, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2532, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2523, + "src": "4974:7:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2535, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2533, + "name": "returnSize", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2526, + "src": "4985:10:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "hexValue": "30783230", + "id": 2534, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4999:4:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "0x20" + }, + "src": "4985:18:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4974:29:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2539, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2537, + "name": "returnValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2529, + "src": "5007:11:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2538, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5021:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5007:15:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4974:48:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2511, + "id": 2541, + "nodeType": "Return", + "src": "4967:55:12" + } + ] + }, + "documentation": { + "id": 2503, + "nodeType": "StructuredDocumentation", + "src": "3575:817:12", + "text": " @notice Query if a contract implements an interface, does not check ERC165 support\n @param account The address of the contract to query for support of an interface\n @param interfaceId The interface identifier, as specified in ERC-165\n @return true if the contract at account indicates support of the interface with\n identifier interfaceId, false otherwise\n @dev Assumes that account contains a contract that supports ERC165, otherwise\n the behavior of this method is undefined. This precondition can be checked\n with {supportsERC165}.\n Some precompiled contracts will falsely indicate support for a given interface, so caution\n should be exercised when using this function.\n Interface identification is specified in ERC-165." + }, + "id": 2543, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsERC165InterfaceUnchecked", + "nameLocation": "4406:32:12", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2508, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2505, + "mutability": "mutable", + "name": "account", + "nameLocation": "4447:7:12", + "nodeType": "VariableDeclaration", + "scope": 2543, + "src": "4439:15:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2504, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4439:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2507, + "mutability": "mutable", + "name": "interfaceId", + "nameLocation": "4463:11:12", + "nodeType": "VariableDeclaration", + "scope": 2543, + "src": "4456:18:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2506, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "4456:6:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "4438:37:12" + }, + "returnParameters": { + "id": 2511, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2510, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2543, + "src": "4499:4:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2509, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4499:4:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "4498:6:12" + }, + "scope": 2544, + "src": "4397:632:12", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 2545, + "src": "465:4566:12", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "121:4911:12" + }, + "id": 12 + }, + "@openzeppelin/contracts/utils/introspection/IERC165.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/introspection/IERC165.sol", + "exportedSymbols": { + "IERC165": [ + 2556 + ] + }, + "id": 2557, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2546, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "115:24:13" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC165", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 2547, + "nodeType": "StructuredDocumentation", + "src": "141:279:13", + "text": " @dev Interface of the ERC165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[EIP].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}." + }, + "fullyImplemented": false, + "id": 2556, + "linearizedBaseContracts": [ + 2556 + ], + "name": "IERC165", + "nameLocation": "431:7:13", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 2548, + "nodeType": "StructuredDocumentation", + "src": "445:340:13", + "text": " @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas." + }, + "functionSelector": "01ffc9a7", + "id": 2555, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nameLocation": "799:17:13", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2551, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2550, + "mutability": "mutable", + "name": "interfaceId", + "nameLocation": "824:11:13", + "nodeType": "VariableDeclaration", + "scope": 2555, + "src": "817:18:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2549, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "817:6:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "816:20:13" + }, + "returnParameters": { + "id": 2554, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2553, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2555, + "src": "860:4:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2552, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "860:4:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "859:6:13" + }, + "scope": 2556, + "src": "790:76:13", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 2557, + "src": "421:447:13", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "115:754:13" + }, + "id": 13 + }, + "@openzeppelin/contracts/utils/math/Math.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/math/Math.sol", + "exportedSymbols": { + "Math": [ + 3610 + ] + }, + "id": 3611, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2558, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "103:24:14" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "Math", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 2559, + "nodeType": "StructuredDocumentation", + "src": "129:73:14", + "text": " @dev Standard math utilities missing in the Solidity language." + }, + "fullyImplemented": true, + "id": 3610, + "linearizedBaseContracts": [ + 3610 + ], + "name": "Math", + "nameLocation": "211:4:14", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 2560, + "nodeType": "StructuredDocumentation", + "src": "222:50:14", + "text": " @dev Muldiv operation overflow." + }, + "errorSelector": "227bc153", + "id": 2562, + "name": "MathOverflowedMulDiv", + "nameLocation": "283:20:14", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 2561, + "nodeType": "ParameterList", + "parameters": [], + "src": "303:2:14" + }, + "src": "277:29:14" + }, + { + "canonicalName": "Math.Rounding", + "id": 2567, + "members": [ + { + "id": 2563, + "name": "Floor", + "nameLocation": "336:5:14", + "nodeType": "EnumValue", + "src": "336:5:14" + }, + { + "id": 2564, + "name": "Ceil", + "nameLocation": "379:4:14", + "nodeType": "EnumValue", + "src": "379:4:14" + }, + { + "id": 2565, + "name": "Trunc", + "nameLocation": "421:5:14", + "nodeType": "EnumValue", + "src": "421:5:14" + }, + { + "id": 2566, + "name": "Expand", + "nameLocation": "451:6:14", + "nodeType": "EnumValue", + "src": "451:6:14" + } + ], + "name": "Rounding", + "nameLocation": "317:8:14", + "nodeType": "EnumDefinition", + "src": "312:169:14" + }, + { + "body": { + "id": 2598, + "nodeType": "Block", + "src": "661:140:14", + "statements": [ + { + "id": 2597, + "nodeType": "UncheckedBlock", + "src": "671:124:14", + "statements": [ + { + "assignments": [ + 2580 + ], + "declarations": [ + { + "constant": false, + "id": 2580, + "mutability": "mutable", + "name": "c", + "nameLocation": "703:1:14", + "nodeType": "VariableDeclaration", + "scope": 2597, + "src": "695:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2579, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "695:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2584, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2583, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2581, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2570, + "src": "707:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 2582, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2572, + "src": "711:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "707:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "695:17:14" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2587, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2585, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2580, + "src": "730:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 2586, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2570, + "src": "734:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "730:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2592, + "nodeType": "IfStatement", + "src": "726:28:14", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 2588, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "745:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 2589, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "752:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 2590, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "744:10:14", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 2578, + "id": 2591, + "nodeType": "Return", + "src": "737:17:14" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 2593, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "776:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "id": 2594, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2580, + "src": "782:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2595, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "775:9:14", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 2578, + "id": 2596, + "nodeType": "Return", + "src": "768:16:14" + } + ] + } + ] + }, + "documentation": { + "id": 2568, + "nodeType": "StructuredDocumentation", + "src": "487:93:14", + "text": " @dev Returns the addition of two unsigned integers, with an overflow flag." + }, + "id": 2599, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryAdd", + "nameLocation": "594:6:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2573, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2570, + "mutability": "mutable", + "name": "a", + "nameLocation": "609:1:14", + "nodeType": "VariableDeclaration", + "scope": 2599, + "src": "601:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2569, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "601:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2572, + "mutability": "mutable", + "name": "b", + "nameLocation": "620:1:14", + "nodeType": "VariableDeclaration", + "scope": 2599, + "src": "612:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2571, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "612:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "600:22:14" + }, + "returnParameters": { + "id": 2578, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2575, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2599, + "src": "646:4:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2574, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "646:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2577, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2599, + "src": "652:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2576, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "652:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "645:15:14" + }, + "scope": 3610, + "src": "585:216:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2626, + "nodeType": "Block", + "src": "984:113:14", + "statements": [ + { + "id": 2625, + "nodeType": "UncheckedBlock", + "src": "994:97:14", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2613, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2611, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2604, + "src": "1022:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 2612, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "1026:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1022:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2618, + "nodeType": "IfStatement", + "src": "1018:28:14", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 2614, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1037:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 2615, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1044:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 2616, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1036:10:14", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 2610, + "id": 2617, + "nodeType": "Return", + "src": "1029:17:14" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 2619, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1068:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2622, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2620, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "1074:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 2621, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2604, + "src": "1078:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1074:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2623, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1067:13:14", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 2610, + "id": 2624, + "nodeType": "Return", + "src": "1060:20:14" + } + ] + } + ] + }, + "documentation": { + "id": 2600, + "nodeType": "StructuredDocumentation", + "src": "807:96:14", + "text": " @dev Returns the subtraction of two unsigned integers, with an overflow flag." + }, + "id": 2627, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "trySub", + "nameLocation": "917:6:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2605, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2602, + "mutability": "mutable", + "name": "a", + "nameLocation": "932:1:14", + "nodeType": "VariableDeclaration", + "scope": 2627, + "src": "924:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2601, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "924:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2604, + "mutability": "mutable", + "name": "b", + "nameLocation": "943:1:14", + "nodeType": "VariableDeclaration", + "scope": 2627, + "src": "935:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2603, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "935:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "923:22:14" + }, + "returnParameters": { + "id": 2610, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2607, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2627, + "src": "969:4:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2606, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "969:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2609, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2627, + "src": "975:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2608, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "975:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "968:15:14" + }, + "scope": 3610, + "src": "908:189:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2668, + "nodeType": "Block", + "src": "1283:417:14", + "statements": [ + { + "id": 2667, + "nodeType": "UncheckedBlock", + "src": "1293:401:14", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2639, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2630, + "src": "1551:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2640, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1556:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1551:6:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2646, + "nodeType": "IfStatement", + "src": "1547:28:14", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 2642, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1567:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "hexValue": "30", + "id": 2643, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1573:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 2644, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1566:9:14", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 2638, + "id": 2645, + "nodeType": "Return", + "src": "1559:16:14" + } + }, + { + "assignments": [ + 2648 + ], + "declarations": [ + { + "constant": false, + "id": 2648, + "mutability": "mutable", + "name": "c", + "nameLocation": "1597:1:14", + "nodeType": "VariableDeclaration", + "scope": 2667, + "src": "1589:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2647, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1589:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2652, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2651, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2649, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2630, + "src": "1601:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2650, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2632, + "src": "1605:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1601:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1589:17:14" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2655, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2653, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2648, + "src": "1624:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 2654, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2630, + "src": "1628:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1624:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 2656, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2632, + "src": "1633:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1624:10:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2662, + "nodeType": "IfStatement", + "src": "1620:33:14", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 2658, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1644:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 2659, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1651:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 2660, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1643:10:14", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 2638, + "id": 2661, + "nodeType": "Return", + "src": "1636:17:14" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 2663, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1675:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "id": 2664, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2648, + "src": "1681:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2665, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1674:9:14", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 2638, + "id": 2666, + "nodeType": "Return", + "src": "1667:16:14" + } + ] + } + ] + }, + "documentation": { + "id": 2628, + "nodeType": "StructuredDocumentation", + "src": "1103:99:14", + "text": " @dev Returns the multiplication of two unsigned integers, with an overflow flag." + }, + "id": 2669, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryMul", + "nameLocation": "1216:6:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2633, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2630, + "mutability": "mutable", + "name": "a", + "nameLocation": "1231:1:14", + "nodeType": "VariableDeclaration", + "scope": 2669, + "src": "1223:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2629, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1223:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2632, + "mutability": "mutable", + "name": "b", + "nameLocation": "1242:1:14", + "nodeType": "VariableDeclaration", + "scope": 2669, + "src": "1234:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2631, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1234:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1222:22:14" + }, + "returnParameters": { + "id": 2638, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2635, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2669, + "src": "1268:4:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2634, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1268:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2637, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2669, + "src": "1274:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2636, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1274:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1267:15:14" + }, + "scope": 3610, + "src": "1207:493:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2696, + "nodeType": "Block", + "src": "1887:114:14", + "statements": [ + { + "id": 2695, + "nodeType": "UncheckedBlock", + "src": "1897:98:14", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2683, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2681, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2674, + "src": "1925:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2682, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1930:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1925:6:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2688, + "nodeType": "IfStatement", + "src": "1921:29:14", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 2684, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1941:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 2685, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1948:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 2686, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1940:10:14", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 2680, + "id": 2687, + "nodeType": "Return", + "src": "1933:17:14" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 2689, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1972:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2692, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2690, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2672, + "src": "1978:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 2691, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2674, + "src": "1982:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1978:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2693, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1971:13:14", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 2680, + "id": 2694, + "nodeType": "Return", + "src": "1964:20:14" + } + ] + } + ] + }, + "documentation": { + "id": 2670, + "nodeType": "StructuredDocumentation", + "src": "1706:100:14", + "text": " @dev Returns the division of two unsigned integers, with a division by zero flag." + }, + "id": 2697, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryDiv", + "nameLocation": "1820:6:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2675, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2672, + "mutability": "mutable", + "name": "a", + "nameLocation": "1835:1:14", + "nodeType": "VariableDeclaration", + "scope": 2697, + "src": "1827:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2671, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1827:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2674, + "mutability": "mutable", + "name": "b", + "nameLocation": "1846:1:14", + "nodeType": "VariableDeclaration", + "scope": 2697, + "src": "1838:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2673, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1838:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1826:22:14" + }, + "returnParameters": { + "id": 2680, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2677, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2697, + "src": "1872:4:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2676, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1872:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2679, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2697, + "src": "1878:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2678, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1878:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1871:15:14" + }, + "scope": 3610, + "src": "1811:190:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2724, + "nodeType": "Block", + "src": "2198:114:14", + "statements": [ + { + "id": 2723, + "nodeType": "UncheckedBlock", + "src": "2208:98:14", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2711, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2709, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2702, + "src": "2236:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2710, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2241:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2236:6:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2716, + "nodeType": "IfStatement", + "src": "2232:29:14", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 2712, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2252:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 2713, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2259:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 2714, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2251:10:14", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 2708, + "id": 2715, + "nodeType": "Return", + "src": "2244:17:14" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 2717, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2283:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2720, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2718, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2700, + "src": "2289:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 2719, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2702, + "src": "2293:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2289:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2721, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2282:13:14", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 2708, + "id": 2722, + "nodeType": "Return", + "src": "2275:20:14" + } + ] + } + ] + }, + "documentation": { + "id": 2698, + "nodeType": "StructuredDocumentation", + "src": "2007:110:14", + "text": " @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag." + }, + "id": 2725, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryMod", + "nameLocation": "2131:6:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2703, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2700, + "mutability": "mutable", + "name": "a", + "nameLocation": "2146:1:14", + "nodeType": "VariableDeclaration", + "scope": 2725, + "src": "2138:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2699, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2138:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2702, + "mutability": "mutable", + "name": "b", + "nameLocation": "2157:1:14", + "nodeType": "VariableDeclaration", + "scope": 2725, + "src": "2149:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2701, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2149:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2137:22:14" + }, + "returnParameters": { + "id": 2708, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2705, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2725, + "src": "2183:4:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2704, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2183:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2707, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2725, + "src": "2189:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2706, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2189:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2182:15:14" + }, + "scope": 3610, + "src": "2122:190:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2742, + "nodeType": "Block", + "src": "2449:37:14", + "statements": [ + { + "expression": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2737, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2735, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2728, + "src": "2466:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 2736, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2730, + "src": "2470:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2466:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "id": 2739, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2730, + "src": "2478:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2740, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "2466:13:14", + "trueExpression": { + "id": 2738, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2728, + "src": "2474:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2734, + "id": 2741, + "nodeType": "Return", + "src": "2459:20:14" + } + ] + }, + "documentation": { + "id": 2726, + "nodeType": "StructuredDocumentation", + "src": "2318:59:14", + "text": " @dev Returns the largest of two numbers." + }, + "id": 2743, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "max", + "nameLocation": "2391:3:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2731, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2728, + "mutability": "mutable", + "name": "a", + "nameLocation": "2403:1:14", + "nodeType": "VariableDeclaration", + "scope": 2743, + "src": "2395:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2727, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2395:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2730, + "mutability": "mutable", + "name": "b", + "nameLocation": "2414:1:14", + "nodeType": "VariableDeclaration", + "scope": 2743, + "src": "2406:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2729, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2406:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2394:22:14" + }, + "returnParameters": { + "id": 2734, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2733, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2743, + "src": "2440:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2732, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2440:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2439:9:14" + }, + "scope": 3610, + "src": "2382:104:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2760, + "nodeType": "Block", + "src": "2624:37:14", + "statements": [ + { + "expression": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2753, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2746, + "src": "2641:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 2754, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2748, + "src": "2645:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2641:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "id": 2757, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2748, + "src": "2653:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2758, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "2641:13:14", + "trueExpression": { + "id": 2756, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2746, + "src": "2649:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2752, + "id": 2759, + "nodeType": "Return", + "src": "2634:20:14" + } + ] + }, + "documentation": { + "id": 2744, + "nodeType": "StructuredDocumentation", + "src": "2492:60:14", + "text": " @dev Returns the smallest of two numbers." + }, + "id": 2761, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "min", + "nameLocation": "2566:3:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2749, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2746, + "mutability": "mutable", + "name": "a", + "nameLocation": "2578:1:14", + "nodeType": "VariableDeclaration", + "scope": 2761, + "src": "2570:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2745, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2570:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2748, + "mutability": "mutable", + "name": "b", + "nameLocation": "2589:1:14", + "nodeType": "VariableDeclaration", + "scope": 2761, + "src": "2581:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2747, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2581:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2569:22:14" + }, + "returnParameters": { + "id": 2752, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2751, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2761, + "src": "2615:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2750, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2615:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2614:9:14" + }, + "scope": 3610, + "src": "2557:104:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2783, + "nodeType": "Block", + "src": "2845:82:14", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2781, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2771, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2764, + "src": "2900:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "id": 2772, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2766, + "src": "2904:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2900:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2774, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2899:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2777, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2775, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2764, + "src": "2910:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "^", + "rightExpression": { + "id": 2776, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2766, + "src": "2914:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2910:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2778, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2909:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "32", + "id": 2779, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2919:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "2909:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2899:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2770, + "id": 2782, + "nodeType": "Return", + "src": "2892:28:14" + } + ] + }, + "documentation": { + "id": 2762, + "nodeType": "StructuredDocumentation", + "src": "2667:102:14", + "text": " @dev Returns the average of two numbers. The result is rounded towards\n zero." + }, + "id": 2784, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "average", + "nameLocation": "2783:7:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2767, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2764, + "mutability": "mutable", + "name": "a", + "nameLocation": "2799:1:14", + "nodeType": "VariableDeclaration", + "scope": 2784, + "src": "2791:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2763, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2791:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2766, + "mutability": "mutable", + "name": "b", + "nameLocation": "2810:1:14", + "nodeType": "VariableDeclaration", + "scope": 2784, + "src": "2802:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2765, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2802:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2790:22:14" + }, + "returnParameters": { + "id": 2770, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2769, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2784, + "src": "2836:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2768, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2836:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2835:9:14" + }, + "scope": 3610, + "src": "2774:153:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2817, + "nodeType": "Block", + "src": "3219:260:14", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2796, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2794, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2789, + "src": "3233:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2795, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3238:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3233:6:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2802, + "nodeType": "IfStatement", + "src": "3229:127:14", + "trueBody": { + "id": 2801, + "nodeType": "Block", + "src": "3241:115:14", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2799, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2797, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2787, + "src": "3340:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 2798, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2789, + "src": "3344:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3340:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2793, + "id": 2800, + "nodeType": "Return", + "src": "3333:12:14" + } + ] + } + }, + { + "expression": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2805, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2803, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2787, + "src": "3444:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2804, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3449:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3444:6:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2814, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2812, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2809, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2807, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2787, + "src": "3458:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2808, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3462:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "3458:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2810, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "3457:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 2811, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2789, + "src": "3467:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3457:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 2813, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3471:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "3457:15:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "3444:28:14", + "trueExpression": { + "hexValue": "30", + "id": 2806, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3453:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2793, + "id": 2816, + "nodeType": "Return", + "src": "3437:35:14" + } + ] + }, + "documentation": { + "id": 2785, + "nodeType": "StructuredDocumentation", + "src": "2933:210:14", + "text": " @dev Returns the ceiling of the division of two numbers.\n This differs from standard division with `/` in that it rounds towards infinity instead\n of rounding towards zero." + }, + "id": 2818, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "ceilDiv", + "nameLocation": "3157:7:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2790, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2787, + "mutability": "mutable", + "name": "a", + "nameLocation": "3173:1:14", + "nodeType": "VariableDeclaration", + "scope": 2818, + "src": "3165:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2786, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3165:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2789, + "mutability": "mutable", + "name": "b", + "nameLocation": "3184:1:14", + "nodeType": "VariableDeclaration", + "scope": 2818, + "src": "3176:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2788, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3176:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3164:22:14" + }, + "returnParameters": { + "id": 2793, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2792, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2818, + "src": "3210:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2791, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3210:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3209:9:14" + }, + "scope": 3610, + "src": "3148:331:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2943, + "nodeType": "Block", + "src": "3901:4018:14", + "statements": [ + { + "id": 2942, + "nodeType": "UncheckedBlock", + "src": "3911:4002:14", + "statements": [ + { + "assignments": [ + 2831 + ], + "declarations": [ + { + "constant": false, + "id": 2831, + "mutability": "mutable", + "name": "prod0", + "nameLocation": "4240:5:14", + "nodeType": "VariableDeclaration", + "scope": 2942, + "src": "4232:13:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2830, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4232:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2835, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2834, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2832, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2821, + "src": "4248:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2833, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2823, + "src": "4252:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4248:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4232:21:14" + }, + { + "assignments": [ + 2837 + ], + "declarations": [ + { + "constant": false, + "id": 2837, + "mutability": "mutable", + "name": "prod1", + "nameLocation": "4320:5:14", + "nodeType": "VariableDeclaration", + "scope": 2942, + "src": "4312:13:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2836, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4312:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2838, + "nodeType": "VariableDeclarationStatement", + "src": "4312:13:14" + }, + { + "AST": { + "nativeSrc": "4392:122:14", + "nodeType": "YulBlock", + "src": "4392:122:14", + "statements": [ + { + "nativeSrc": "4410:30:14", + "nodeType": "YulVariableDeclaration", + "src": "4410:30:14", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "4427:1:14", + "nodeType": "YulIdentifier", + "src": "4427:1:14" + }, + { + "name": "y", + "nativeSrc": "4430:1:14", + "nodeType": "YulIdentifier", + "src": "4430:1:14" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4437:1:14", + "nodeType": "YulLiteral", + "src": "4437:1:14", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "4433:3:14", + "nodeType": "YulIdentifier", + "src": "4433:3:14" + }, + "nativeSrc": "4433:6:14", + "nodeType": "YulFunctionCall", + "src": "4433:6:14" + } + ], + "functionName": { + "name": "mulmod", + "nativeSrc": "4420:6:14", + "nodeType": "YulIdentifier", + "src": "4420:6:14" + }, + "nativeSrc": "4420:20:14", + "nodeType": "YulFunctionCall", + "src": "4420:20:14" + }, + "variables": [ + { + "name": "mm", + "nativeSrc": "4414:2:14", + "nodeType": "YulTypedName", + "src": "4414:2:14", + "type": "" + } + ] + }, + { + "nativeSrc": "4457:43:14", + "nodeType": "YulAssignment", + "src": "4457:43:14", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "mm", + "nativeSrc": "4474:2:14", + "nodeType": "YulIdentifier", + "src": "4474:2:14" + }, + { + "name": "prod0", + "nativeSrc": "4478:5:14", + "nodeType": "YulIdentifier", + "src": "4478:5:14" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "4470:3:14", + "nodeType": "YulIdentifier", + "src": "4470:3:14" + }, + "nativeSrc": "4470:14:14", + "nodeType": "YulFunctionCall", + "src": "4470:14:14" + }, + { + "arguments": [ + { + "name": "mm", + "nativeSrc": "4489:2:14", + "nodeType": "YulIdentifier", + "src": "4489:2:14" + }, + { + "name": "prod0", + "nativeSrc": "4493:5:14", + "nodeType": "YulIdentifier", + "src": "4493:5:14" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "4486:2:14", + "nodeType": "YulIdentifier", + "src": "4486:2:14" + }, + "nativeSrc": "4486:13:14", + "nodeType": "YulFunctionCall", + "src": "4486:13:14" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "4466:3:14", + "nodeType": "YulIdentifier", + "src": "4466:3:14" + }, + "nativeSrc": "4466:34:14", + "nodeType": "YulFunctionCall", + "src": "4466:34:14" + }, + "variableNames": [ + { + "name": "prod1", + "nativeSrc": "4457:5:14", + "nodeType": "YulIdentifier", + "src": "4457:5:14" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 2831, + "isOffset": false, + "isSlot": false, + "src": "4478:5:14", + "valueSize": 1 + }, + { + "declaration": 2831, + "isOffset": false, + "isSlot": false, + "src": "4493:5:14", + "valueSize": 1 + }, + { + "declaration": 2837, + "isOffset": false, + "isSlot": false, + "src": "4457:5:14", + "valueSize": 1 + }, + { + "declaration": 2821, + "isOffset": false, + "isSlot": false, + "src": "4427:1:14", + "valueSize": 1 + }, + { + "declaration": 2823, + "isOffset": false, + "isSlot": false, + "src": "4430:1:14", + "valueSize": 1 + } + ], + "id": 2839, + "nodeType": "InlineAssembly", + "src": "4383:131:14" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2842, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2840, + "name": "prod1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2837, + "src": "4595:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2841, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4604:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4595:10:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2848, + "nodeType": "IfStatement", + "src": "4591:368:14", + "trueBody": { + "id": 2847, + "nodeType": "Block", + "src": "4607:352:14", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2843, + "name": "prod0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2831, + "src": "4925:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 2844, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2825, + "src": "4933:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4925:19:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2829, + "id": 2846, + "nodeType": "Return", + "src": "4918:26:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2851, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2849, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2825, + "src": "5065:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 2850, + "name": "prod1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2837, + "src": "5080:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5065:20:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2856, + "nodeType": "IfStatement", + "src": "5061:88:14", + "trueBody": { + "id": 2855, + "nodeType": "Block", + "src": "5087:62:14", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2852, + "name": "MathOverflowedMulDiv", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2562, + "src": "5112:20:14", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 2853, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5112:22:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 2854, + "nodeType": "RevertStatement", + "src": "5105:29:14" + } + ] + } + }, + { + "assignments": [ + 2858 + ], + "declarations": [ + { + "constant": false, + "id": 2858, + "mutability": "mutable", + "name": "remainder", + "nameLocation": "5412:9:14", + "nodeType": "VariableDeclaration", + "scope": 2942, + "src": "5404:17:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2857, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5404:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2859, + "nodeType": "VariableDeclarationStatement", + "src": "5404:17:14" + }, + { + "AST": { + "nativeSrc": "5444:291:14", + "nodeType": "YulBlock", + "src": "5444:291:14", + "statements": [ + { + "nativeSrc": "5513:38:14", + "nodeType": "YulAssignment", + "src": "5513:38:14", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "5533:1:14", + "nodeType": "YulIdentifier", + "src": "5533:1:14" + }, + { + "name": "y", + "nativeSrc": "5536:1:14", + "nodeType": "YulIdentifier", + "src": "5536:1:14" + }, + { + "name": "denominator", + "nativeSrc": "5539:11:14", + "nodeType": "YulIdentifier", + "src": "5539:11:14" + } + ], + "functionName": { + "name": "mulmod", + "nativeSrc": "5526:6:14", + "nodeType": "YulIdentifier", + "src": "5526:6:14" + }, + "nativeSrc": "5526:25:14", + "nodeType": "YulFunctionCall", + "src": "5526:25:14" + }, + "variableNames": [ + { + "name": "remainder", + "nativeSrc": "5513:9:14", + "nodeType": "YulIdentifier", + "src": "5513:9:14" + } + ] + }, + { + "nativeSrc": "5633:41:14", + "nodeType": "YulAssignment", + "src": "5633:41:14", + "value": { + "arguments": [ + { + "name": "prod1", + "nativeSrc": "5646:5:14", + "nodeType": "YulIdentifier", + "src": "5646:5:14" + }, + { + "arguments": [ + { + "name": "remainder", + "nativeSrc": "5656:9:14", + "nodeType": "YulIdentifier", + "src": "5656:9:14" + }, + { + "name": "prod0", + "nativeSrc": "5667:5:14", + "nodeType": "YulIdentifier", + "src": "5667:5:14" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "5653:2:14", + "nodeType": "YulIdentifier", + "src": "5653:2:14" + }, + "nativeSrc": "5653:20:14", + "nodeType": "YulFunctionCall", + "src": "5653:20:14" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5642:3:14", + "nodeType": "YulIdentifier", + "src": "5642:3:14" + }, + "nativeSrc": "5642:32:14", + "nodeType": "YulFunctionCall", + "src": "5642:32:14" + }, + "variableNames": [ + { + "name": "prod1", + "nativeSrc": "5633:5:14", + "nodeType": "YulIdentifier", + "src": "5633:5:14" + } + ] + }, + { + "nativeSrc": "5691:30:14", + "nodeType": "YulAssignment", + "src": "5691:30:14", + "value": { + "arguments": [ + { + "name": "prod0", + "nativeSrc": "5704:5:14", + "nodeType": "YulIdentifier", + "src": "5704:5:14" + }, + { + "name": "remainder", + "nativeSrc": "5711:9:14", + "nodeType": "YulIdentifier", + "src": "5711:9:14" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5700:3:14", + "nodeType": "YulIdentifier", + "src": "5700:3:14" + }, + "nativeSrc": "5700:21:14", + "nodeType": "YulFunctionCall", + "src": "5700:21:14" + }, + "variableNames": [ + { + "name": "prod0", + "nativeSrc": "5691:5:14", + "nodeType": "YulIdentifier", + "src": "5691:5:14" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 2825, + "isOffset": false, + "isSlot": false, + "src": "5539:11:14", + "valueSize": 1 + }, + { + "declaration": 2831, + "isOffset": false, + "isSlot": false, + "src": "5667:5:14", + "valueSize": 1 + }, + { + "declaration": 2831, + "isOffset": false, + "isSlot": false, + "src": "5691:5:14", + "valueSize": 1 + }, + { + "declaration": 2831, + "isOffset": false, + "isSlot": false, + "src": "5704:5:14", + "valueSize": 1 + }, + { + "declaration": 2837, + "isOffset": false, + "isSlot": false, + "src": "5633:5:14", + "valueSize": 1 + }, + { + "declaration": 2837, + "isOffset": false, + "isSlot": false, + "src": "5646:5:14", + "valueSize": 1 + }, + { + "declaration": 2858, + "isOffset": false, + "isSlot": false, + "src": "5513:9:14", + "valueSize": 1 + }, + { + "declaration": 2858, + "isOffset": false, + "isSlot": false, + "src": "5656:9:14", + "valueSize": 1 + }, + { + "declaration": 2858, + "isOffset": false, + "isSlot": false, + "src": "5711:9:14", + "valueSize": 1 + }, + { + "declaration": 2821, + "isOffset": false, + "isSlot": false, + "src": "5533:1:14", + "valueSize": 1 + }, + { + "declaration": 2823, + "isOffset": false, + "isSlot": false, + "src": "5536:1:14", + "valueSize": 1 + } + ], + "id": 2860, + "nodeType": "InlineAssembly", + "src": "5435:300:14" + }, + { + "assignments": [ + 2862 + ], + "declarations": [ + { + "constant": false, + "id": 2862, + "mutability": "mutable", + "name": "twos", + "nameLocation": "5947:4:14", + "nodeType": "VariableDeclaration", + "scope": 2942, + "src": "5939:12:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2861, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5939:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2869, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2863, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2825, + "src": "5954:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2866, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "30", + "id": 2864, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5969:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 2865, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2825, + "src": "5973:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5969:15:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2867, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "5968:17:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5954:31:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5939:46:14" + }, + { + "AST": { + "nativeSrc": "6008:362:14", + "nodeType": "YulBlock", + "src": "6008:362:14", + "statements": [ + { + "nativeSrc": "6073:37:14", + "nodeType": "YulAssignment", + "src": "6073:37:14", + "value": { + "arguments": [ + { + "name": "denominator", + "nativeSrc": "6092:11:14", + "nodeType": "YulIdentifier", + "src": "6092:11:14" + }, + { + "name": "twos", + "nativeSrc": "6105:4:14", + "nodeType": "YulIdentifier", + "src": "6105:4:14" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "6088:3:14", + "nodeType": "YulIdentifier", + "src": "6088:3:14" + }, + "nativeSrc": "6088:22:14", + "nodeType": "YulFunctionCall", + "src": "6088:22:14" + }, + "variableNames": [ + { + "name": "denominator", + "nativeSrc": "6073:11:14", + "nodeType": "YulIdentifier", + "src": "6073:11:14" + } + ] + }, + { + "nativeSrc": "6177:25:14", + "nodeType": "YulAssignment", + "src": "6177:25:14", + "value": { + "arguments": [ + { + "name": "prod0", + "nativeSrc": "6190:5:14", + "nodeType": "YulIdentifier", + "src": "6190:5:14" + }, + { + "name": "twos", + "nativeSrc": "6197:4:14", + "nodeType": "YulIdentifier", + "src": "6197:4:14" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "6186:3:14", + "nodeType": "YulIdentifier", + "src": "6186:3:14" + }, + "nativeSrc": "6186:16:14", + "nodeType": "YulFunctionCall", + "src": "6186:16:14" + }, + "variableNames": [ + { + "name": "prod0", + "nativeSrc": "6177:5:14", + "nodeType": "YulIdentifier", + "src": "6177:5:14" + } + ] + }, + { + "nativeSrc": "6317:39:14", + "nodeType": "YulAssignment", + "src": "6317:39:14", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6337:1:14", + "nodeType": "YulLiteral", + "src": "6337:1:14", + "type": "", + "value": "0" + }, + { + "name": "twos", + "nativeSrc": "6340:4:14", + "nodeType": "YulIdentifier", + "src": "6340:4:14" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "6333:3:14", + "nodeType": "YulIdentifier", + "src": "6333:3:14" + }, + "nativeSrc": "6333:12:14", + "nodeType": "YulFunctionCall", + "src": "6333:12:14" + }, + { + "name": "twos", + "nativeSrc": "6347:4:14", + "nodeType": "YulIdentifier", + "src": "6347:4:14" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "6329:3:14", + "nodeType": "YulIdentifier", + "src": "6329:3:14" + }, + "nativeSrc": "6329:23:14", + "nodeType": "YulFunctionCall", + "src": "6329:23:14" + }, + { + "kind": "number", + "nativeSrc": "6354:1:14", + "nodeType": "YulLiteral", + "src": "6354:1:14", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6325:3:14", + "nodeType": "YulIdentifier", + "src": "6325:3:14" + }, + "nativeSrc": "6325:31:14", + "nodeType": "YulFunctionCall", + "src": "6325:31:14" + }, + "variableNames": [ + { + "name": "twos", + "nativeSrc": "6317:4:14", + "nodeType": "YulIdentifier", + "src": "6317:4:14" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 2825, + "isOffset": false, + "isSlot": false, + "src": "6073:11:14", + "valueSize": 1 + }, + { + "declaration": 2825, + "isOffset": false, + "isSlot": false, + "src": "6092:11:14", + "valueSize": 1 + }, + { + "declaration": 2831, + "isOffset": false, + "isSlot": false, + "src": "6177:5:14", + "valueSize": 1 + }, + { + "declaration": 2831, + "isOffset": false, + "isSlot": false, + "src": "6190:5:14", + "valueSize": 1 + }, + { + "declaration": 2862, + "isOffset": false, + "isSlot": false, + "src": "6105:4:14", + "valueSize": 1 + }, + { + "declaration": 2862, + "isOffset": false, + "isSlot": false, + "src": "6197:4:14", + "valueSize": 1 + }, + { + "declaration": 2862, + "isOffset": false, + "isSlot": false, + "src": "6317:4:14", + "valueSize": 1 + }, + { + "declaration": 2862, + "isOffset": false, + "isSlot": false, + "src": "6340:4:14", + "valueSize": 1 + }, + { + "declaration": 2862, + "isOffset": false, + "isSlot": false, + "src": "6347:4:14", + "valueSize": 1 + } + ], + "id": 2870, + "nodeType": "InlineAssembly", + "src": "5999:371:14" + }, + { + "expression": { + "id": 2875, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2871, + "name": "prod0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2831, + "src": "6436:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "|=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2874, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2872, + "name": "prod1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2837, + "src": "6445:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2873, + "name": "twos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2862, + "src": "6453:4:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6445:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6436:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2876, + "nodeType": "ExpressionStatement", + "src": "6436:21:14" + }, + { + "assignments": [ + 2878 + ], + "declarations": [ + { + "constant": false, + "id": 2878, + "mutability": "mutable", + "name": "inverse", + "nameLocation": "6783:7:14", + "nodeType": "VariableDeclaration", + "scope": 2942, + "src": "6775:15:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2877, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6775:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2885, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2884, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2881, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "33", + "id": 2879, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6794:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2880, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2825, + "src": "6798:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6794:15:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2882, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "6793:17:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "^", + "rightExpression": { + "hexValue": "32", + "id": 2883, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6813:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "6793:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6775:39:14" + }, + { + "expression": { + "id": 2892, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2886, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2878, + "src": "7031:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2891, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 2887, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7042:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2888, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2825, + "src": "7046:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2889, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2878, + "src": "7060:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7046:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7042:25:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7031:36:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2893, + "nodeType": "ExpressionStatement", + "src": "7031:36:14" + }, + { + "expression": { + "id": 2900, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2894, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2878, + "src": "7100:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2899, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 2895, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7111:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2898, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2896, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2825, + "src": "7115:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2897, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2878, + "src": "7129:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7115:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7111:25:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7100:36:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2901, + "nodeType": "ExpressionStatement", + "src": "7100:36:14" + }, + { + "expression": { + "id": 2908, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2902, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2878, + "src": "7170:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2907, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 2903, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7181:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2906, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2904, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2825, + "src": "7185:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2905, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2878, + "src": "7199:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7185:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7181:25:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7170:36:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2909, + "nodeType": "ExpressionStatement", + "src": "7170:36:14" + }, + { + "expression": { + "id": 2916, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2910, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2878, + "src": "7240:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2915, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 2911, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7251:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2914, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2912, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2825, + "src": "7255:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2913, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2878, + "src": "7269:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7255:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7251:25:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7240:36:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2917, + "nodeType": "ExpressionStatement", + "src": "7240:36:14" + }, + { + "expression": { + "id": 2924, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2918, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2878, + "src": "7310:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2923, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 2919, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7321:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2922, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2920, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2825, + "src": "7325:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2921, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2878, + "src": "7339:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7325:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7321:25:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7310:36:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2925, + "nodeType": "ExpressionStatement", + "src": "7310:36:14" + }, + { + "expression": { + "id": 2932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2926, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2878, + "src": "7381:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 2927, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7392:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2930, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2928, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2825, + "src": "7396:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2929, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2878, + "src": "7410:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7396:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7392:25:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7381:36:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2933, + "nodeType": "ExpressionStatement", + "src": "7381:36:14" + }, + { + "expression": { + "id": 2938, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2934, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2828, + "src": "7851:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2937, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2935, + "name": "prod0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2831, + "src": "7860:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2936, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2878, + "src": "7868:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7860:15:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7851:24:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2939, + "nodeType": "ExpressionStatement", + "src": "7851:24:14" + }, + { + "expression": { + "id": 2940, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2828, + "src": "7896:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2829, + "id": 2941, + "nodeType": "Return", + "src": "7889:13:14" + } + ] + } + ] + }, + "documentation": { + "id": 2819, + "nodeType": "StructuredDocumentation", + "src": "3485:313:14", + "text": " @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or\n denominator == 0.\n @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv) with further edits by\n Uniswap Labs also under MIT license." + }, + "id": 2944, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mulDiv", + "nameLocation": "3812:6:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2826, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2821, + "mutability": "mutable", + "name": "x", + "nameLocation": "3827:1:14", + "nodeType": "VariableDeclaration", + "scope": 2944, + "src": "3819:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2820, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3819:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2823, + "mutability": "mutable", + "name": "y", + "nameLocation": "3838:1:14", + "nodeType": "VariableDeclaration", + "scope": 2944, + "src": "3830:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2822, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3830:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2825, + "mutability": "mutable", + "name": "denominator", + "nameLocation": "3849:11:14", + "nodeType": "VariableDeclaration", + "scope": 2944, + "src": "3841:19:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2824, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3841:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3818:43:14" + }, + "returnParameters": { + "id": 2829, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2828, + "mutability": "mutable", + "name": "result", + "nameLocation": "3893:6:14", + "nodeType": "VariableDeclaration", + "scope": 2944, + "src": "3885:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2827, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3885:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3884:16:14" + }, + "scope": 3610, + "src": "3803:4116:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2986, + "nodeType": "Block", + "src": "8161:192:14", + "statements": [ + { + "assignments": [ + 2960 + ], + "declarations": [ + { + "constant": false, + "id": 2960, + "mutability": "mutable", + "name": "result", + "nameLocation": "8179:6:14", + "nodeType": "VariableDeclaration", + "scope": 2986, + "src": "8171:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2959, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8171:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2966, + "initialValue": { + "arguments": [ + { + "id": 2962, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2947, + "src": "8195:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 2963, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2949, + "src": "8198:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 2964, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2951, + "src": "8201:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2961, + "name": "mulDiv", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2944, + 2987 + ], + "referencedDeclaration": 2944, + "src": "8188:6:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 2965, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8188:25:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8171:42:14" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 2968, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2954, + "src": "8244:8:14", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2567", + "typeString": "enum Math.Rounding" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_Rounding_$2567", + "typeString": "enum Math.Rounding" + } + ], + "id": 2967, + "name": "unsignedRoundsUp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3609, + "src": "8227:16:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$2567_$returns$_t_bool_$", + "typeString": "function (enum Math.Rounding) pure returns (bool)" + } + }, + "id": 2969, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8227:26:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 2971, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2947, + "src": "8264:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 2972, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2949, + "src": "8267:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 2973, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2951, + "src": "8270:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2970, + "name": "mulmod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -16, + "src": "8257:6:14", + "typeDescriptions": { + "typeIdentifier": "t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 2974, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8257:25:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2975, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8285:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8257:29:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "8227:59:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2983, + "nodeType": "IfStatement", + "src": "8223:101:14", + "trueBody": { + "id": 2982, + "nodeType": "Block", + "src": "8288:36:14", + "statements": [ + { + "expression": { + "id": 2980, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2978, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2960, + "src": "8302:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 2979, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8312:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "8302:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2981, + "nodeType": "ExpressionStatement", + "src": "8302:11:14" + } + ] + } + }, + { + "expression": { + "id": 2984, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2960, + "src": "8340:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2958, + "id": 2985, + "nodeType": "Return", + "src": "8333:13:14" + } + ] + }, + "documentation": { + "id": 2945, + "nodeType": "StructuredDocumentation", + "src": "7925:121:14", + "text": " @notice Calculates x * y / denominator with full precision, following the selected rounding direction." + }, + "id": 2987, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mulDiv", + "nameLocation": "8060:6:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2955, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2947, + "mutability": "mutable", + "name": "x", + "nameLocation": "8075:1:14", + "nodeType": "VariableDeclaration", + "scope": 2987, + "src": "8067:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2946, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8067:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2949, + "mutability": "mutable", + "name": "y", + "nameLocation": "8086:1:14", + "nodeType": "VariableDeclaration", + "scope": 2987, + "src": "8078:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2948, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8078:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2951, + "mutability": "mutable", + "name": "denominator", + "nameLocation": "8097:11:14", + "nodeType": "VariableDeclaration", + "scope": 2987, + "src": "8089:19:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2950, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8089:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2954, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "8119:8:14", + "nodeType": "VariableDeclaration", + "scope": 2987, + "src": "8110:17:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2567", + "typeString": "enum Math.Rounding" + }, + "typeName": { + "id": 2953, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2952, + "name": "Rounding", + "nameLocations": [ + "8110:8:14" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2567, + "src": "8110:8:14" + }, + "referencedDeclaration": 2567, + "src": "8110:8:14", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2567", + "typeString": "enum Math.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "8066:62:14" + }, + "returnParameters": { + "id": 2958, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2957, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2987, + "src": "8152:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2956, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8152:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8151:9:14" + }, + "scope": 3610, + "src": "8051:302:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3098, + "nodeType": "Block", + "src": "8644:1585:14", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2997, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2995, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2990, + "src": "8658:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2996, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8663:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8658:6:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3001, + "nodeType": "IfStatement", + "src": "8654:45:14", + "trueBody": { + "id": 3000, + "nodeType": "Block", + "src": "8666:33:14", + "statements": [ + { + "expression": { + "hexValue": "30", + "id": 2998, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8687:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 2994, + "id": 2999, + "nodeType": "Return", + "src": "8680:8:14" + } + ] + } + }, + { + "assignments": [ + 3003 + ], + "declarations": [ + { + "constant": false, + "id": 3003, + "mutability": "mutable", + "name": "result", + "nameLocation": "9386:6:14", + "nodeType": "VariableDeclaration", + "scope": 3098, + "src": "9378:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3002, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9378:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3012, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3011, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 3004, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9395:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 3006, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2990, + "src": "9406:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3005, + "name": "log2", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3266, + 3301 + ], + "referencedDeclaration": 3266, + "src": "9401:4:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 3007, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9401:7:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 3008, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9412:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "9401:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3010, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "9400:14:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9395:19:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9378:36:14" + }, + { + "id": 3097, + "nodeType": "UncheckedBlock", + "src": "9815:408:14", + "statements": [ + { + "expression": { + "id": 3022, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3013, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3003, + "src": "9839:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3021, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3018, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3014, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3003, + "src": "9849:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3017, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3015, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2990, + "src": "9858:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 3016, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3003, + "src": "9862:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9858:10:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9849:19:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3019, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "9848:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 3020, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9873:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "9848:26:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9839:35:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3023, + "nodeType": "ExpressionStatement", + "src": "9839:35:14" + }, + { + "expression": { + "id": 3033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3024, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3003, + "src": "9888:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3032, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3029, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3025, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3003, + "src": "9898:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3028, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3026, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2990, + "src": "9907:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 3027, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3003, + "src": "9911:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9907:10:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9898:19:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3030, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "9897:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 3031, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9922:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "9897:26:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9888:35:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3034, + "nodeType": "ExpressionStatement", + "src": "9888:35:14" + }, + { + "expression": { + "id": 3044, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3035, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3003, + "src": "9937:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3043, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3040, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3036, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3003, + "src": "9947:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3039, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3037, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2990, + "src": "9956:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 3038, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3003, + "src": "9960:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9956:10:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9947:19:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3041, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "9946:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 3042, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9971:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "9946:26:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9937:35:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3045, + "nodeType": "ExpressionStatement", + "src": "9937:35:14" + }, + { + "expression": { + "id": 3055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3046, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3003, + "src": "9986:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3054, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3051, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3047, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3003, + "src": "9996:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3050, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3048, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2990, + "src": "10005:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 3049, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3003, + "src": "10009:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10005:10:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9996:19:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3052, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "9995:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 3053, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10020:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "9995:26:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9986:35:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3056, + "nodeType": "ExpressionStatement", + "src": "9986:35:14" + }, + { + "expression": { + "id": 3066, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3057, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3003, + "src": "10035:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3065, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3058, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3003, + "src": "10045:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3059, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2990, + "src": "10054:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 3060, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3003, + "src": "10058:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10054:10:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10045:19:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3063, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "10044:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 3064, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10069:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "10044:26:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10035:35:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3067, + "nodeType": "ExpressionStatement", + "src": "10035:35:14" + }, + { + "expression": { + "id": 3077, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3068, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3003, + "src": "10084:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3076, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3073, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3069, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3003, + "src": "10094:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3072, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3070, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2990, + "src": "10103:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 3071, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3003, + "src": "10107:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10103:10:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10094:19:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3074, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "10093:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 3075, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10118:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "10093:26:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10084:35:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3078, + "nodeType": "ExpressionStatement", + "src": "10084:35:14" + }, + { + "expression": { + "id": 3088, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3079, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3003, + "src": "10133:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3087, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3084, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3080, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3003, + "src": "10143:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3083, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3081, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2990, + "src": "10152:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 3082, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3003, + "src": "10156:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10152:10:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10143:19:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3085, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "10142:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 3086, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10167:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "10142:26:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10133:35:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3089, + "nodeType": "ExpressionStatement", + "src": "10133:35:14" + }, + { + "expression": { + "arguments": [ + { + "id": 3091, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3003, + "src": "10193:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3092, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2990, + "src": "10201:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 3093, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3003, + "src": "10205:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10201:10:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3090, + "name": "min", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2761, + "src": "10189:3:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 3095, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10189:23:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2994, + "id": 3096, + "nodeType": "Return", + "src": "10182:30:14" + } + ] + } + ] + }, + "documentation": { + "id": 2988, + "nodeType": "StructuredDocumentation", + "src": "8359:223:14", + "text": " @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded\n towards zero.\n Inspired by Henry S. Warren, Jr.'s \"Hacker's Delight\" (Chapter 11)." + }, + "id": 3099, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sqrt", + "nameLocation": "8596:4:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2991, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2990, + "mutability": "mutable", + "name": "a", + "nameLocation": "8609:1:14", + "nodeType": "VariableDeclaration", + "scope": 3099, + "src": "8601:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2989, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8601:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8600:11:14" + }, + "returnParameters": { + "id": 2994, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2993, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3099, + "src": "8635:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2992, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8635:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8634:9:14" + }, + "scope": 3610, + "src": "8587:1642:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3133, + "nodeType": "Block", + "src": "10405:164:14", + "statements": [ + { + "id": 3132, + "nodeType": "UncheckedBlock", + "src": "10415:148:14", + "statements": [ + { + "assignments": [ + 3111 + ], + "declarations": [ + { + "constant": false, + "id": 3111, + "mutability": "mutable", + "name": "result", + "nameLocation": "10447:6:14", + "nodeType": "VariableDeclaration", + "scope": 3132, + "src": "10439:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3110, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10439:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3115, + "initialValue": { + "arguments": [ + { + "id": 3113, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3102, + "src": "10461:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3112, + "name": "sqrt", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3099, + 3134 + ], + "referencedDeclaration": 3099, + "src": "10456:4:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 3114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10456:7:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10439:24:14" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3130, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3116, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3111, + "src": "10484:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 3118, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3105, + "src": "10511:8:14", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2567", + "typeString": "enum Math.Rounding" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_Rounding_$2567", + "typeString": "enum Math.Rounding" + } + ], + "id": 3117, + "name": "unsignedRoundsUp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3609, + "src": "10494:16:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$2567_$returns$_t_bool_$", + "typeString": "function (enum Math.Rounding) pure returns (bool)" + } + }, + "id": 3119, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10494:26:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3124, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3122, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3120, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3111, + "src": "10524:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 3121, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3111, + "src": "10533:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10524:15:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 3123, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3102, + "src": "10542:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10524:19:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "10494:49:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "hexValue": "30", + "id": 3127, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10550:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 3128, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "10494:57:14", + "trueExpression": { + "hexValue": "31", + "id": 3126, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10546:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "id": 3129, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "10493:59:14", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "10484:68:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3109, + "id": 3131, + "nodeType": "Return", + "src": "10477:75:14" + } + ] + } + ] + }, + "documentation": { + "id": 3100, + "nodeType": "StructuredDocumentation", + "src": "10235:89:14", + "text": " @notice Calculates sqrt(a), following the selected rounding direction." + }, + "id": 3134, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sqrt", + "nameLocation": "10338:4:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3106, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3102, + "mutability": "mutable", + "name": "a", + "nameLocation": "10351:1:14", + "nodeType": "VariableDeclaration", + "scope": 3134, + "src": "10343:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3101, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10343:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3105, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "10363:8:14", + "nodeType": "VariableDeclaration", + "scope": 3134, + "src": "10354:17:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2567", + "typeString": "enum Math.Rounding" + }, + "typeName": { + "id": 3104, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3103, + "name": "Rounding", + "nameLocations": [ + "10354:8:14" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2567, + "src": "10354:8:14" + }, + "referencedDeclaration": 2567, + "src": "10354:8:14", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2567", + "typeString": "enum Math.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "10342:30:14" + }, + "returnParameters": { + "id": 3109, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3108, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3134, + "src": "10396:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3107, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10396:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10395:9:14" + }, + "scope": 3610, + "src": "10329:240:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3265, + "nodeType": "Block", + "src": "10760:922:14", + "statements": [ + { + "assignments": [ + 3143 + ], + "declarations": [ + { + "constant": false, + "id": 3143, + "mutability": "mutable", + "name": "result", + "nameLocation": "10778:6:14", + "nodeType": "VariableDeclaration", + "scope": 3265, + "src": "10770:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3142, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10770:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3145, + "initialValue": { + "hexValue": "30", + "id": 3144, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10787:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "10770:18:14" + }, + { + "id": 3262, + "nodeType": "UncheckedBlock", + "src": "10798:855:14", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3148, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3146, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3137, + "src": "10826:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "313238", + "id": 3147, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10835:3:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + "value": "128" + }, + "src": "10826:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3149, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10841:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "10826:16:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3160, + "nodeType": "IfStatement", + "src": "10822:99:14", + "trueBody": { + "id": 3159, + "nodeType": "Block", + "src": "10844:77:14", + "statements": [ + { + "expression": { + "id": 3153, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3151, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3137, + "src": "10862:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "313238", + "id": 3152, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10872:3:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + "value": "128" + }, + "src": "10862:13:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3154, + "nodeType": "ExpressionStatement", + "src": "10862:13:14" + }, + { + "expression": { + "id": 3157, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3155, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3143, + "src": "10893:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "313238", + "id": 3156, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10903:3:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + "value": "128" + }, + "src": "10893:13:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3158, + "nodeType": "ExpressionStatement", + "src": "10893:13:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3165, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3163, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3161, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3137, + "src": "10938:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "3634", + "id": 3162, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10947:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "10938:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3164, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10952:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "10938:15:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3175, + "nodeType": "IfStatement", + "src": "10934:96:14", + "trueBody": { + "id": 3174, + "nodeType": "Block", + "src": "10955:75:14", + "statements": [ + { + "expression": { + "id": 3168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3166, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3137, + "src": "10973:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "3634", + "id": 3167, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10983:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "10973:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3169, + "nodeType": "ExpressionStatement", + "src": "10973:12:14" + }, + { + "expression": { + "id": 3172, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3170, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3143, + "src": "11003:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3634", + "id": 3171, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11013:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "11003:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3173, + "nodeType": "ExpressionStatement", + "src": "11003:12:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3180, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3178, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3176, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3137, + "src": "11047:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "3332", + "id": 3177, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11056:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "11047:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3179, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11061:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11047:15:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3190, + "nodeType": "IfStatement", + "src": "11043:96:14", + "trueBody": { + "id": 3189, + "nodeType": "Block", + "src": "11064:75:14", + "statements": [ + { + "expression": { + "id": 3183, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3181, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3137, + "src": "11082:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "3332", + "id": 3182, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11092:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "11082:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3184, + "nodeType": "ExpressionStatement", + "src": "11082:12:14" + }, + { + "expression": { + "id": 3187, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3185, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3143, + "src": "11112:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3332", + "id": 3186, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11122:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "11112:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3188, + "nodeType": "ExpressionStatement", + "src": "11112:12:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3195, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3193, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3191, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3137, + "src": "11156:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "3136", + "id": 3192, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11165:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "11156:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3194, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11170:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11156:15:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3205, + "nodeType": "IfStatement", + "src": "11152:96:14", + "trueBody": { + "id": 3204, + "nodeType": "Block", + "src": "11173:75:14", + "statements": [ + { + "expression": { + "id": 3198, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3196, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3137, + "src": "11191:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "3136", + "id": 3197, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11201:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "11191:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3199, + "nodeType": "ExpressionStatement", + "src": "11191:12:14" + }, + { + "expression": { + "id": 3202, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3200, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3143, + "src": "11221:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3136", + "id": 3201, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11231:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "11221:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3203, + "nodeType": "ExpressionStatement", + "src": "11221:12:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3210, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3208, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3206, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3137, + "src": "11265:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "38", + "id": 3207, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11274:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "11265:10:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3209, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11278:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11265:14:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3220, + "nodeType": "IfStatement", + "src": "11261:93:14", + "trueBody": { + "id": 3219, + "nodeType": "Block", + "src": "11281:73:14", + "statements": [ + { + "expression": { + "id": 3213, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3211, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3137, + "src": "11299:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "38", + "id": 3212, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11309:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "11299:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3214, + "nodeType": "ExpressionStatement", + "src": "11299:11:14" + }, + { + "expression": { + "id": 3217, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3215, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3143, + "src": "11328:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "38", + "id": 3216, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11338:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "11328:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3218, + "nodeType": "ExpressionStatement", + "src": "11328:11:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3225, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3223, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3221, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3137, + "src": "11371:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "34", + "id": 3222, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11380:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "11371:10:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3224, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11384:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11371:14:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3235, + "nodeType": "IfStatement", + "src": "11367:93:14", + "trueBody": { + "id": 3234, + "nodeType": "Block", + "src": "11387:73:14", + "statements": [ + { + "expression": { + "id": 3228, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3226, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3137, + "src": "11405:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "34", + "id": 3227, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11415:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "11405:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3229, + "nodeType": "ExpressionStatement", + "src": "11405:11:14" + }, + { + "expression": { + "id": 3232, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3230, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3143, + "src": "11434:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "34", + "id": 3231, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11444:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "11434:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3233, + "nodeType": "ExpressionStatement", + "src": "11434:11:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3240, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3236, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3137, + "src": "11477:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "32", + "id": 3237, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11486:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "11477:10:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3239, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11490:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11477:14:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3250, + "nodeType": "IfStatement", + "src": "11473:93:14", + "trueBody": { + "id": 3249, + "nodeType": "Block", + "src": "11493:73:14", + "statements": [ + { + "expression": { + "id": 3243, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3241, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3137, + "src": "11511:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "32", + "id": 3242, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11521:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "11511:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3244, + "nodeType": "ExpressionStatement", + "src": "11511:11:14" + }, + { + "expression": { + "id": 3247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3245, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3143, + "src": "11540:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "32", + "id": 3246, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11550:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "11540:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3248, + "nodeType": "ExpressionStatement", + "src": "11540:11:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3255, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3253, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3251, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3137, + "src": "11583:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 3252, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11592:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "11583:10:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3254, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11596:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11583:14:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3261, + "nodeType": "IfStatement", + "src": "11579:64:14", + "trueBody": { + "id": 3260, + "nodeType": "Block", + "src": "11599:44:14", + "statements": [ + { + "expression": { + "id": 3258, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3256, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3143, + "src": "11617:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 3257, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11627:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "11617:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3259, + "nodeType": "ExpressionStatement", + "src": "11617:11:14" + } + ] + } + } + ] + }, + { + "expression": { + "id": 3263, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3143, + "src": "11669:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3141, + "id": 3264, + "nodeType": "Return", + "src": "11662:13:14" + } + ] + }, + "documentation": { + "id": 3135, + "nodeType": "StructuredDocumentation", + "src": "10575:119:14", + "text": " @dev Return the log in base 2 of a positive value rounded towards zero.\n Returns 0 if given 0." + }, + "id": 3266, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log2", + "nameLocation": "10708:4:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3138, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3137, + "mutability": "mutable", + "name": "value", + "nameLocation": "10721:5:14", + "nodeType": "VariableDeclaration", + "scope": 3266, + "src": "10713:13:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3136, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10713:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10712:15:14" + }, + "returnParameters": { + "id": 3141, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3140, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3266, + "src": "10751:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3139, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10751:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10750:9:14" + }, + "scope": 3610, + "src": "10699:983:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3300, + "nodeType": "Block", + "src": "11915:168:14", + "statements": [ + { + "id": 3299, + "nodeType": "UncheckedBlock", + "src": "11925:152:14", + "statements": [ + { + "assignments": [ + 3278 + ], + "declarations": [ + { + "constant": false, + "id": 3278, + "mutability": "mutable", + "name": "result", + "nameLocation": "11957:6:14", + "nodeType": "VariableDeclaration", + "scope": 3299, + "src": "11949:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3277, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11949:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3282, + "initialValue": { + "arguments": [ + { + "id": 3280, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3269, + "src": "11971:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3279, + "name": "log2", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3266, + 3301 + ], + "referencedDeclaration": 3266, + "src": "11966:4:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 3281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11966:11:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11949:28:14" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3297, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3283, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3278, + "src": "11998:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3292, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 3285, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3272, + "src": "12025:8:14", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2567", + "typeString": "enum Math.Rounding" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_Rounding_$2567", + "typeString": "enum Math.Rounding" + } + ], + "id": 3284, + "name": "unsignedRoundsUp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3609, + "src": "12008:16:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$2567_$returns$_t_bool_$", + "typeString": "function (enum Math.Rounding) pure returns (bool)" + } + }, + "id": 3286, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12008:26:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3291, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3289, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 3287, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12038:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "id": 3288, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3278, + "src": "12043:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12038:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 3290, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3269, + "src": "12052:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12038:19:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "12008:49:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "hexValue": "30", + "id": 3294, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12064:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 3295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "12008:57:14", + "trueExpression": { + "hexValue": "31", + "id": 3293, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12060:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "id": 3296, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12007:59:14", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "11998:68:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3276, + "id": 3298, + "nodeType": "Return", + "src": "11991:75:14" + } + ] + } + ] + }, + "documentation": { + "id": 3267, + "nodeType": "StructuredDocumentation", + "src": "11688:142:14", + "text": " @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n Returns 0 if given 0." + }, + "id": 3301, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log2", + "nameLocation": "11844:4:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3273, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3269, + "mutability": "mutable", + "name": "value", + "nameLocation": "11857:5:14", + "nodeType": "VariableDeclaration", + "scope": 3301, + "src": "11849:13:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3268, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11849:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3272, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "11873:8:14", + "nodeType": "VariableDeclaration", + "scope": 3301, + "src": "11864:17:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2567", + "typeString": "enum Math.Rounding" + }, + "typeName": { + "id": 3271, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3270, + "name": "Rounding", + "nameLocations": [ + "11864:8:14" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2567, + "src": "11864:8:14" + }, + "referencedDeclaration": 2567, + "src": "11864:8:14", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2567", + "typeString": "enum Math.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "11848:34:14" + }, + "returnParameters": { + "id": 3276, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3275, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3301, + "src": "11906:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3274, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11906:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11905:9:14" + }, + "scope": 3610, + "src": "11835:248:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3429, + "nodeType": "Block", + "src": "12276:854:14", + "statements": [ + { + "assignments": [ + 3310 + ], + "declarations": [ + { + "constant": false, + "id": 3310, + "mutability": "mutable", + "name": "result", + "nameLocation": "12294:6:14", + "nodeType": "VariableDeclaration", + "scope": 3429, + "src": "12286:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3309, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12286:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3312, + "initialValue": { + "hexValue": "30", + "id": 3311, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12303:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "12286:18:14" + }, + { + "id": 3426, + "nodeType": "UncheckedBlock", + "src": "12314:787:14", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3317, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3313, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "12342:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(57 digits omitted)...0000" + }, + "id": 3316, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 3314, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12351:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3634", + "id": 3315, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12357:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "12351:8:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(57 digits omitted)...0000" + } + }, + "src": "12342:17:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3329, + "nodeType": "IfStatement", + "src": "12338:103:14", + "trueBody": { + "id": 3328, + "nodeType": "Block", + "src": "12361:80:14", + "statements": [ + { + "expression": { + "id": 3322, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3318, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "12379:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(57 digits omitted)...0000" + }, + "id": 3321, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 3319, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12388:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3634", + "id": 3320, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12394:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "12388:8:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(57 digits omitted)...0000" + } + }, + "src": "12379:17:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3323, + "nodeType": "ExpressionStatement", + "src": "12379:17:14" + }, + { + "expression": { + "id": 3326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3324, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3310, + "src": "12414:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3634", + "id": 3325, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12424:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "12414:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3327, + "nodeType": "ExpressionStatement", + "src": "12414:12:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3334, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3330, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "12458:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_100000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(25 digits omitted)...0000" + }, + "id": 3333, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 3331, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12467:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3332", + "id": 3332, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12473:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "12467:8:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(25 digits omitted)...0000" + } + }, + "src": "12458:17:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3346, + "nodeType": "IfStatement", + "src": "12454:103:14", + "trueBody": { + "id": 3345, + "nodeType": "Block", + "src": "12477:80:14", + "statements": [ + { + "expression": { + "id": 3339, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3335, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "12495:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_rational_100000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(25 digits omitted)...0000" + }, + "id": 3338, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 3336, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12504:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3332", + "id": 3337, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12510:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "12504:8:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(25 digits omitted)...0000" + } + }, + "src": "12495:17:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3340, + "nodeType": "ExpressionStatement", + "src": "12495:17:14" + }, + { + "expression": { + "id": 3343, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3341, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3310, + "src": "12530:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3332", + "id": 3342, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12540:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "12530:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3344, + "nodeType": "ExpressionStatement", + "src": "12530:12:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3351, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3347, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "12574:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_10000000000000000_by_1", + "typeString": "int_const 10000000000000000" + }, + "id": 3350, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 3348, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12583:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3136", + "id": 3349, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12589:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "12583:8:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000000000000000_by_1", + "typeString": "int_const 10000000000000000" + } + }, + "src": "12574:17:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3363, + "nodeType": "IfStatement", + "src": "12570:103:14", + "trueBody": { + "id": 3362, + "nodeType": "Block", + "src": "12593:80:14", + "statements": [ + { + "expression": { + "id": 3356, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3352, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "12611:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_rational_10000000000000000_by_1", + "typeString": "int_const 10000000000000000" + }, + "id": 3355, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 3353, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12620:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3136", + "id": 3354, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12626:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "12620:8:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000000000000000_by_1", + "typeString": "int_const 10000000000000000" + } + }, + "src": "12611:17:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3357, + "nodeType": "ExpressionStatement", + "src": "12611:17:14" + }, + { + "expression": { + "id": 3360, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3358, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3310, + "src": "12646:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3136", + "id": 3359, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12656:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "12646:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3361, + "nodeType": "ExpressionStatement", + "src": "12646:12:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3364, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "12690:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_100000000_by_1", + "typeString": "int_const 100000000" + }, + "id": 3367, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 3365, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12699:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "38", + "id": 3366, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12705:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "12699:7:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000_by_1", + "typeString": "int_const 100000000" + } + }, + "src": "12690:16:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3380, + "nodeType": "IfStatement", + "src": "12686:100:14", + "trueBody": { + "id": 3379, + "nodeType": "Block", + "src": "12708:78:14", + "statements": [ + { + "expression": { + "id": 3373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3369, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "12726:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_rational_100000000_by_1", + "typeString": "int_const 100000000" + }, + "id": 3372, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 3370, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12735:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "38", + "id": 3371, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12741:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "12735:7:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000_by_1", + "typeString": "int_const 100000000" + } + }, + "src": "12726:16:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3374, + "nodeType": "ExpressionStatement", + "src": "12726:16:14" + }, + { + "expression": { + "id": 3377, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3375, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3310, + "src": "12760:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "38", + "id": 3376, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12770:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "12760:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3378, + "nodeType": "ExpressionStatement", + "src": "12760:11:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3385, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3381, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "12803:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + }, + "id": 3384, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 3382, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12812:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "34", + "id": 3383, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12818:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "12812:7:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + } + }, + "src": "12803:16:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3397, + "nodeType": "IfStatement", + "src": "12799:100:14", + "trueBody": { + "id": 3396, + "nodeType": "Block", + "src": "12821:78:14", + "statements": [ + { + "expression": { + "id": 3390, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3386, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "12839:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + }, + "id": 3389, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 3387, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12848:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "34", + "id": 3388, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12854:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "12848:7:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + } + }, + "src": "12839:16:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3391, + "nodeType": "ExpressionStatement", + "src": "12839:16:14" + }, + { + "expression": { + "id": 3394, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3392, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3310, + "src": "12873:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "34", + "id": 3393, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12883:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "12873:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3395, + "nodeType": "ExpressionStatement", + "src": "12873:11:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3398, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "12916:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "id": 3401, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 3399, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12925:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "32", + "id": 3400, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12931:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "12925:7:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + } + }, + "src": "12916:16:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3414, + "nodeType": "IfStatement", + "src": "12912:100:14", + "trueBody": { + "id": 3413, + "nodeType": "Block", + "src": "12934:78:14", + "statements": [ + { + "expression": { + "id": 3407, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3403, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "12952:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "id": 3406, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 3404, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12961:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "32", + "id": 3405, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12967:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "12961:7:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + } + }, + "src": "12952:16:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3408, + "nodeType": "ExpressionStatement", + "src": "12952:16:14" + }, + { + "expression": { + "id": 3411, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3409, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3310, + "src": "12986:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "32", + "id": 3410, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12996:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "12986:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3412, + "nodeType": "ExpressionStatement", + "src": "12986:11:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3419, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3415, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "13029:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "id": 3418, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 3416, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13038:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "31", + "id": 3417, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13044:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "13038:7:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + } + }, + "src": "13029:16:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3425, + "nodeType": "IfStatement", + "src": "13025:66:14", + "trueBody": { + "id": 3424, + "nodeType": "Block", + "src": "13047:44:14", + "statements": [ + { + "expression": { + "id": 3422, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3420, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3310, + "src": "13065:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 3421, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13075:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "13065:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3423, + "nodeType": "ExpressionStatement", + "src": "13065:11:14" + } + ] + } + } + ] + }, + { + "expression": { + "id": 3427, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3310, + "src": "13117:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3308, + "id": 3428, + "nodeType": "Return", + "src": "13110:13:14" + } + ] + }, + "documentation": { + "id": 3302, + "nodeType": "StructuredDocumentation", + "src": "12089:120:14", + "text": " @dev Return the log in base 10 of a positive value rounded towards zero.\n Returns 0 if given 0." + }, + "id": 3430, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log10", + "nameLocation": "12223:5:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3305, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3304, + "mutability": "mutable", + "name": "value", + "nameLocation": "12237:5:14", + "nodeType": "VariableDeclaration", + "scope": 3430, + "src": "12229:13:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3303, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12229:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12228:15:14" + }, + "returnParameters": { + "id": 3308, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3307, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3430, + "src": "12267:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3306, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12267:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12266:9:14" + }, + "scope": 3610, + "src": "12214:916:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3464, + "nodeType": "Block", + "src": "13365:170:14", + "statements": [ + { + "id": 3463, + "nodeType": "UncheckedBlock", + "src": "13375:154:14", + "statements": [ + { + "assignments": [ + 3442 + ], + "declarations": [ + { + "constant": false, + "id": 3442, + "mutability": "mutable", + "name": "result", + "nameLocation": "13407:6:14", + "nodeType": "VariableDeclaration", + "scope": 3463, + "src": "13399:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3441, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13399:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3446, + "initialValue": { + "arguments": [ + { + "id": 3444, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3433, + "src": "13422:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3443, + "name": "log10", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3430, + 3465 + ], + "referencedDeclaration": 3430, + "src": "13416:5:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 3445, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13416:12:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13399:29:14" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3447, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3442, + "src": "13449:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 3449, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3436, + "src": "13476:8:14", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2567", + "typeString": "enum Math.Rounding" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_Rounding_$2567", + "typeString": "enum Math.Rounding" + } + ], + "id": 3448, + "name": "unsignedRoundsUp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3609, + "src": "13459:16:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$2567_$returns$_t_bool_$", + "typeString": "function (enum Math.Rounding) pure returns (bool)" + } + }, + "id": 3450, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13459:26:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 3451, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13489:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "id": 3452, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3442, + "src": "13495:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13489:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 3454, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3433, + "src": "13504:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13489:20:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "13459:50:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "hexValue": "30", + "id": 3458, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13516:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 3459, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "13459:58:14", + "trueExpression": { + "hexValue": "31", + "id": 3457, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13512:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "id": 3460, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "13458:60:14", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "13449:69:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3440, + "id": 3462, + "nodeType": "Return", + "src": "13442:76:14" + } + ] + } + ] + }, + "documentation": { + "id": 3431, + "nodeType": "StructuredDocumentation", + "src": "13136:143:14", + "text": " @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n Returns 0 if given 0." + }, + "id": 3465, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log10", + "nameLocation": "13293:5:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3437, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3433, + "mutability": "mutable", + "name": "value", + "nameLocation": "13307:5:14", + "nodeType": "VariableDeclaration", + "scope": 3465, + "src": "13299:13:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3432, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13299:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3436, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "13323:8:14", + "nodeType": "VariableDeclaration", + "scope": 3465, + "src": "13314:17:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2567", + "typeString": "enum Math.Rounding" + }, + "typeName": { + "id": 3435, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3434, + "name": "Rounding", + "nameLocations": [ + "13314:8:14" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2567, + "src": "13314:8:14" + }, + "referencedDeclaration": 2567, + "src": "13314:8:14", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2567", + "typeString": "enum Math.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "13298:34:14" + }, + "returnParameters": { + "id": 3440, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3439, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3465, + "src": "13356:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3438, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13356:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13355:9:14" + }, + "scope": 3610, + "src": "13284:251:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3551, + "nodeType": "Block", + "src": "13855:600:14", + "statements": [ + { + "assignments": [ + 3474 + ], + "declarations": [ + { + "constant": false, + "id": 3474, + "mutability": "mutable", + "name": "result", + "nameLocation": "13873:6:14", + "nodeType": "VariableDeclaration", + "scope": 3551, + "src": "13865:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3473, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13865:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3476, + "initialValue": { + "hexValue": "30", + "id": 3475, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13882:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "13865:18:14" + }, + { + "id": 3548, + "nodeType": "UncheckedBlock", + "src": "13893:533:14", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3481, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3479, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3477, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3468, + "src": "13921:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "313238", + "id": 3478, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13930:3:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + "value": "128" + }, + "src": "13921:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3480, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13936:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "13921:16:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3491, + "nodeType": "IfStatement", + "src": "13917:98:14", + "trueBody": { + "id": 3490, + "nodeType": "Block", + "src": "13939:76:14", + "statements": [ + { + "expression": { + "id": 3484, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3482, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3468, + "src": "13957:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "313238", + "id": 3483, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13967:3:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + "value": "128" + }, + "src": "13957:13:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3485, + "nodeType": "ExpressionStatement", + "src": "13957:13:14" + }, + { + "expression": { + "id": 3488, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3486, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3474, + "src": "13988:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3136", + "id": 3487, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13998:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "13988:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3489, + "nodeType": "ExpressionStatement", + "src": "13988:12:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3496, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3494, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3492, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3468, + "src": "14032:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "3634", + "id": 3493, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14041:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "14032:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3495, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14046:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14032:15:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3506, + "nodeType": "IfStatement", + "src": "14028:95:14", + "trueBody": { + "id": 3505, + "nodeType": "Block", + "src": "14049:74:14", + "statements": [ + { + "expression": { + "id": 3499, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3497, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3468, + "src": "14067:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "3634", + "id": 3498, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14077:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "14067:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3500, + "nodeType": "ExpressionStatement", + "src": "14067:12:14" + }, + { + "expression": { + "id": 3503, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3501, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3474, + "src": "14097:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "38", + "id": 3502, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14107:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "14097:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3504, + "nodeType": "ExpressionStatement", + "src": "14097:11:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3511, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3509, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3507, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3468, + "src": "14140:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "3332", + "id": 3508, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14149:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "14140:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3510, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14154:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14140:15:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3521, + "nodeType": "IfStatement", + "src": "14136:95:14", + "trueBody": { + "id": 3520, + "nodeType": "Block", + "src": "14157:74:14", + "statements": [ + { + "expression": { + "id": 3514, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3512, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3468, + "src": "14175:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "3332", + "id": 3513, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14185:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "14175:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3515, + "nodeType": "ExpressionStatement", + "src": "14175:12:14" + }, + { + "expression": { + "id": 3518, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3516, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3474, + "src": "14205:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "34", + "id": 3517, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14215:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "14205:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3519, + "nodeType": "ExpressionStatement", + "src": "14205:11:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3526, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3524, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3522, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3468, + "src": "14248:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "3136", + "id": 3523, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14257:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "14248:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3525, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14262:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14248:15:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3536, + "nodeType": "IfStatement", + "src": "14244:95:14", + "trueBody": { + "id": 3535, + "nodeType": "Block", + "src": "14265:74:14", + "statements": [ + { + "expression": { + "id": 3529, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3527, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3468, + "src": "14283:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "3136", + "id": 3528, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14293:2:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "14283:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3530, + "nodeType": "ExpressionStatement", + "src": "14283:12:14" + }, + { + "expression": { + "id": 3533, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3531, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3474, + "src": "14313:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "32", + "id": 3532, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14323:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "14313:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3534, + "nodeType": "ExpressionStatement", + "src": "14313:11:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3541, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3539, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3537, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3468, + "src": "14356:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "38", + "id": 3538, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14365:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "14356:10:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3540, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14369:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14356:14:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3547, + "nodeType": "IfStatement", + "src": "14352:64:14", + "trueBody": { + "id": 3546, + "nodeType": "Block", + "src": "14372:44:14", + "statements": [ + { + "expression": { + "id": 3544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3542, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3474, + "src": "14390:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 3543, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14400:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "14390:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3545, + "nodeType": "ExpressionStatement", + "src": "14390:11:14" + } + ] + } + } + ] + }, + { + "expression": { + "id": 3549, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3474, + "src": "14442:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3472, + "id": 3550, + "nodeType": "Return", + "src": "14435:13:14" + } + ] + }, + "documentation": { + "id": 3466, + "nodeType": "StructuredDocumentation", + "src": "13541:246:14", + "text": " @dev Return the log in base 256 of a positive value rounded towards zero.\n Returns 0 if given 0.\n Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string." + }, + "id": 3552, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log256", + "nameLocation": "13801:6:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3469, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3468, + "mutability": "mutable", + "name": "value", + "nameLocation": "13816:5:14", + "nodeType": "VariableDeclaration", + "scope": 3552, + "src": "13808:13:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3467, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13808:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13807:15:14" + }, + "returnParameters": { + "id": 3472, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3471, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3552, + "src": "13846:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3470, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13846:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13845:9:14" + }, + "scope": 3610, + "src": "13792:663:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3589, + "nodeType": "Block", + "src": "14692:177:14", + "statements": [ + { + "id": 3588, + "nodeType": "UncheckedBlock", + "src": "14702:161:14", + "statements": [ + { + "assignments": [ + 3564 + ], + "declarations": [ + { + "constant": false, + "id": 3564, + "mutability": "mutable", + "name": "result", + "nameLocation": "14734:6:14", + "nodeType": "VariableDeclaration", + "scope": 3588, + "src": "14726:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3563, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14726:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3568, + "initialValue": { + "arguments": [ + { + "id": 3566, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3555, + "src": "14750:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3565, + "name": "log256", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3552, + 3590 + ], + "referencedDeclaration": 3552, + "src": "14743:6:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 3567, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14743:13:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14726:30:14" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3586, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3569, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3564, + "src": "14777:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3581, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 3571, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3558, + "src": "14804:8:14", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2567", + "typeString": "enum Math.Rounding" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_Rounding_$2567", + "typeString": "enum Math.Rounding" + } + ], + "id": 3570, + "name": "unsignedRoundsUp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3609, + "src": "14787:16:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$2567_$returns$_t_bool_$", + "typeString": "function (enum Math.Rounding) pure returns (bool)" + } + }, + "id": 3572, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14787:26:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3580, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3578, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 3573, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14817:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3574, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3564, + "src": "14823:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "33", + "id": 3575, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14833:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "14823:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3577, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "14822:13:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14817:18:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 3579, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3555, + "src": "14838:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14817:26:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14787:56:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "hexValue": "30", + "id": 3583, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14850:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 3584, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "14787:64:14", + "trueExpression": { + "hexValue": "31", + "id": 3582, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14846:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "id": 3585, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "14786:66:14", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "14777:75:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3562, + "id": 3587, + "nodeType": "Return", + "src": "14770:82:14" + } + ] + } + ] + }, + "documentation": { + "id": 3553, + "nodeType": "StructuredDocumentation", + "src": "14461:144:14", + "text": " @dev Return the log in base 256, following the selected rounding direction, of a positive value.\n Returns 0 if given 0." + }, + "id": 3590, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log256", + "nameLocation": "14619:6:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3559, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3555, + "mutability": "mutable", + "name": "value", + "nameLocation": "14634:5:14", + "nodeType": "VariableDeclaration", + "scope": 3590, + "src": "14626:13:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3554, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14626:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3558, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "14650:8:14", + "nodeType": "VariableDeclaration", + "scope": 3590, + "src": "14641:17:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2567", + "typeString": "enum Math.Rounding" + }, + "typeName": { + "id": 3557, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3556, + "name": "Rounding", + "nameLocations": [ + "14641:8:14" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2567, + "src": "14641:8:14" + }, + "referencedDeclaration": 2567, + "src": "14641:8:14", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2567", + "typeString": "enum Math.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "14625:34:14" + }, + "returnParameters": { + "id": 3562, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3561, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3590, + "src": "14683:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3560, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14683:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14682:9:14" + }, + "scope": 3610, + "src": "14610:259:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3608, + "nodeType": "Block", + "src": "15067:48:14", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 3606, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 3604, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 3601, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3594, + "src": "15090:8:14", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2567", + "typeString": "enum Math.Rounding" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_Rounding_$2567", + "typeString": "enum Math.Rounding" + } + ], + "id": 3600, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15084:5:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 3599, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "15084:5:14", + "typeDescriptions": {} + } + }, + "id": 3602, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15084:15:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "hexValue": "32", + "id": 3603, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15102:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "15084:19:14", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 3605, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15107:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "15084:24:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3598, + "id": 3607, + "nodeType": "Return", + "src": "15077:31:14" + } + ] + }, + "documentation": { + "id": 3591, + "nodeType": "StructuredDocumentation", + "src": "14875:113:14", + "text": " @dev Returns whether a provided rounding mode is considered rounding up for unsigned integers." + }, + "id": 3609, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "unsignedRoundsUp", + "nameLocation": "15002:16:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3595, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3594, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "15028:8:14", + "nodeType": "VariableDeclaration", + "scope": 3609, + "src": "15019:17:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2567", + "typeString": "enum Math.Rounding" + }, + "typeName": { + "id": 3593, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3592, + "name": "Rounding", + "nameLocations": [ + "15019:8:14" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2567, + "src": "15019:8:14" + }, + "referencedDeclaration": 2567, + "src": "15019:8:14", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$2567", + "typeString": "enum Math.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "15018:19:14" + }, + "returnParameters": { + "id": 3598, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3597, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3609, + "src": "15061:4:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3596, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "15061:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "15060:6:14" + }, + "scope": 3610, + "src": "14993:122:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 3611, + "src": "203:14914:14", + "usedErrors": [ + 2562 + ], + "usedEvents": [] + } + ], + "src": "103:15015:14" + }, + "id": 14 + }, + "@openzeppelin/contracts/utils/math/SignedMath.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/math/SignedMath.sol", + "exportedSymbols": { + "SignedMath": [ + 3715 + ] + }, + "id": 3716, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3612, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "109:24:15" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "SignedMath", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 3613, + "nodeType": "StructuredDocumentation", + "src": "135:80:15", + "text": " @dev Standard signed math utilities missing in the Solidity language." + }, + "fullyImplemented": true, + "id": 3715, + "linearizedBaseContracts": [ + 3715 + ], + "name": "SignedMath", + "nameLocation": "224:10:15", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 3630, + "nodeType": "Block", + "src": "376:37:15", + "statements": [ + { + "expression": { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 3625, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3623, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3616, + "src": "393:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 3624, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3618, + "src": "397:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "393:5:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "id": 3627, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3618, + "src": "405:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "id": 3628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "393:13:15", + "trueExpression": { + "id": 3626, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3616, + "src": "401:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "functionReturnParameters": 3622, + "id": 3629, + "nodeType": "Return", + "src": "386:20:15" + } + ] + }, + "documentation": { + "id": 3614, + "nodeType": "StructuredDocumentation", + "src": "241:66:15", + "text": " @dev Returns the largest of two signed numbers." + }, + "id": 3631, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "max", + "nameLocation": "321:3:15", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3619, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3616, + "mutability": "mutable", + "name": "a", + "nameLocation": "332:1:15", + "nodeType": "VariableDeclaration", + "scope": 3631, + "src": "325:8:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 3615, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "325:6:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3618, + "mutability": "mutable", + "name": "b", + "nameLocation": "342:1:15", + "nodeType": "VariableDeclaration", + "scope": 3631, + "src": "335:8:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 3617, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "335:6:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "324:20:15" + }, + "returnParameters": { + "id": 3622, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3621, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3631, + "src": "368:6:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 3620, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "368:6:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "367:8:15" + }, + "scope": 3715, + "src": "312:101:15", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3648, + "nodeType": "Block", + "src": "555:37:15", + "statements": [ + { + "expression": { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 3643, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3641, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3634, + "src": "572:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 3642, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3636, + "src": "576:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "572:5:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "id": 3645, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3636, + "src": "584:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "id": 3646, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "572:13:15", + "trueExpression": { + "id": 3644, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3634, + "src": "580:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "functionReturnParameters": 3640, + "id": 3647, + "nodeType": "Return", + "src": "565:20:15" + } + ] + }, + "documentation": { + "id": 3632, + "nodeType": "StructuredDocumentation", + "src": "419:67:15", + "text": " @dev Returns the smallest of two signed numbers." + }, + "id": 3649, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "min", + "nameLocation": "500:3:15", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3637, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3634, + "mutability": "mutable", + "name": "a", + "nameLocation": "511:1:15", + "nodeType": "VariableDeclaration", + "scope": 3649, + "src": "504:8:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 3633, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "504:6:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3636, + "mutability": "mutable", + "name": "b", + "nameLocation": "521:1:15", + "nodeType": "VariableDeclaration", + "scope": 3649, + "src": "514:8:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 3635, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "514:6:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "503:20:15" + }, + "returnParameters": { + "id": 3640, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3639, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3649, + "src": "547:6:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 3638, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "547:6:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "546:8:15" + }, + "scope": 3715, + "src": "491:101:15", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3692, + "nodeType": "Block", + "src": "797:162:15", + "statements": [ + { + "assignments": [ + 3660 + ], + "declarations": [ + { + "constant": false, + "id": 3660, + "mutability": "mutable", + "name": "x", + "nameLocation": "866:1:15", + "nodeType": "VariableDeclaration", + "scope": 3692, + "src": "859:8:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 3659, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "859:6:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "id": 3673, + "initialValue": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 3672, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 3663, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3661, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3652, + "src": "871:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "id": 3662, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3654, + "src": "875:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "871:5:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 3664, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "870:7:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 3670, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 3667, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3665, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3652, + "src": "882:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "^", + "rightExpression": { + "id": 3666, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3654, + "src": "886:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "882:5:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 3668, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "881:7:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 3669, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "892:1:15", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "881:12:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 3671, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "880:14:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "870:24:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "859:35:15" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 3690, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3674, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3660, + "src": "911:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 3688, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3682, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 3679, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3660, + "src": "931:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 3678, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "923:7:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 3677, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "923:7:15", + "typeDescriptions": {} + } + }, + "id": 3680, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "923:10:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "323535", + "id": 3681, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "937:3:15", + "typeDescriptions": { + "typeIdentifier": "t_rational_255_by_1", + "typeString": "int_const 255" + }, + "value": "255" + }, + "src": "923:17:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3676, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "916:6:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int256_$", + "typeString": "type(int256)" + }, + "typeName": { + "id": 3675, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "916:6:15", + "typeDescriptions": {} + } + }, + "id": 3683, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "916:25:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 3686, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3684, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3652, + "src": "945:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "^", + "rightExpression": { + "id": 3685, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3654, + "src": "949:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "945:5:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 3687, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "944:7:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "916:35:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 3689, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "915:37:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "911:41:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "functionReturnParameters": 3658, + "id": 3691, + "nodeType": "Return", + "src": "904:48:15" + } + ] + }, + "documentation": { + "id": 3650, + "nodeType": "StructuredDocumentation", + "src": "598:126:15", + "text": " @dev Returns the average of two signed numbers without overflow.\n The result is rounded towards zero." + }, + "id": 3693, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "average", + "nameLocation": "738:7:15", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3655, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3652, + "mutability": "mutable", + "name": "a", + "nameLocation": "753:1:15", + "nodeType": "VariableDeclaration", + "scope": 3693, + "src": "746:8:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 3651, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "746:6:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3654, + "mutability": "mutable", + "name": "b", + "nameLocation": "763:1:15", + "nodeType": "VariableDeclaration", + "scope": 3693, + "src": "756:8:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 3653, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "756:6:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "745:20:15" + }, + "returnParameters": { + "id": 3658, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3657, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3693, + "src": "789:6:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 3656, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "789:6:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "788:8:15" + }, + "scope": 3715, + "src": "729:230:15", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3713, + "nodeType": "Block", + "src": "1103:158:15", + "statements": [ + { + "id": 3712, + "nodeType": "UncheckedBlock", + "src": "1113:142:15", + "statements": [ + { + "expression": { + "arguments": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 3705, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3703, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3696, + "src": "1228:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "hexValue": "30", + "id": 3704, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1233:1:15", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1228:6:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "id": 3708, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "1241:2:15", + "subExpression": { + "id": 3707, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3696, + "src": "1242:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "id": 3709, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "1228:15:15", + "trueExpression": { + "id": 3706, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3696, + "src": "1237:1:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 3702, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1220:7:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 3701, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1220:7:15", + "typeDescriptions": {} + } + }, + "id": 3710, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1220:24:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3700, + "id": 3711, + "nodeType": "Return", + "src": "1213:31:15" + } + ] + } + ] + }, + "documentation": { + "id": 3694, + "nodeType": "StructuredDocumentation", + "src": "965:78:15", + "text": " @dev Returns the absolute unsigned value of a signed value." + }, + "id": 3714, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "abs", + "nameLocation": "1057:3:15", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3697, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3696, + "mutability": "mutable", + "name": "n", + "nameLocation": "1068:1:15", + "nodeType": "VariableDeclaration", + "scope": 3714, + "src": "1061:8:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 3695, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "1061:6:15", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "1060:10:15" + }, + "returnParameters": { + "id": 3700, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3699, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3714, + "src": "1094:7:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3698, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1094:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1093:9:15" + }, + "scope": 3715, + "src": "1048:213:15", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 3716, + "src": "216:1047:15", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "109:1155:15" + }, + "id": 15 + }, + "contracts/Engagement.sol": { + "ast": { + "absolutePath": "contracts/Engagement.sol", + "exportedSymbols": { + "AccessControl": [ + 295 + ], + "Arrays": [ + 1930 + ], + "Context": [ + 1960 + ], + "ERC1155": [ + 1566 + ], + "ERC165": [ + 2349 + ], + "ERC165Checker": [ + 2544 + ], + "Engagement": [ + 4029 + ], + "IAccessControl": [ + 378 + ], + "IERC1155": [ + 1689 + ], + "IERC1155Errors": [ + 515 + ], + "IERC1155MetadataURI": [ + 1747 + ], + "IERC1155Receiver": [ + 1731 + ], + "IERC165": [ + 2556 + ], + "IEngagement": [ + 4117 + ], + "Math": [ + 3610 + ], + "SignedMath": [ + 3715 + ], + "Strings": [ + 2325 + ] + }, + "id": 4030, + "license": "UNLICENSED", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3717, + "literals": [ + "solidity", + "0.8", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "39:23:16" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC1155/ERC1155.sol", + "file": "@openzeppelin/contracts/token/ERC1155/ERC1155.sol", + "id": 3718, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 4030, + "sourceUnit": 1567, + "src": "64:59:16", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/access/AccessControl.sol", + "file": "@openzeppelin/contracts/access/AccessControl.sol", + "id": 3719, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 4030, + "sourceUnit": 296, + "src": "124:58:16", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Strings.sol", + "file": "@openzeppelin/contracts/utils/Strings.sol", + "id": 3720, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 4030, + "sourceUnit": 2326, + "src": "183:51:16", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/introspection/ERC165Checker.sol", + "file": "@openzeppelin/contracts/utils/introspection/ERC165Checker.sol", + "id": 3721, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 4030, + "sourceUnit": 2545, + "src": "235:71:16", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "contracts/IEngagement.sol", + "file": "./IEngagement.sol", + "id": 3722, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 4030, + "sourceUnit": 4118, + "src": "307:27:16", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 3723, + "name": "IEngagement", + "nameLocations": [ + "359:11:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4117, + "src": "359:11:16" + }, + "id": 3724, + "nodeType": "InheritanceSpecifier", + "src": "359:11:16" + }, + { + "baseName": { + "id": 3725, + "name": "ERC1155", + "nameLocations": [ + "372:7:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1566, + "src": "372:7:16" + }, + "id": 3726, + "nodeType": "InheritanceSpecifier", + "src": "372:7:16" + }, + { + "baseName": { + "id": 3727, + "name": "AccessControl", + "nameLocations": [ + "381:13:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 295, + "src": "381:13:16" + }, + "id": 3728, + "nodeType": "InheritanceSpecifier", + "src": "381:13:16" + } + ], + "canonicalName": "Engagement", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 4029, + "linearizedBaseContracts": [ + 4029, + 295, + 1566, + 515, + 1747, + 1689, + 2349, + 2556, + 378, + 1960, + 4117 + ], + "name": "Engagement", + "nameLocation": "345:10:16", + "nodeType": "ContractDefinition", + "nodes": [ + { + "global": false, + "id": 3731, + "libraryName": { + "id": 3729, + "name": "ERC165Checker", + "nameLocations": [ + "407:13:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2544, + "src": "407:13:16" + }, + "nodeType": "UsingForDirective", + "src": "401:32:16", + "typeName": { + "id": 3730, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "425:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + { + "constant": false, + "id": 3733, + "mutability": "mutable", + "name": "_counter", + "nameLocation": "452:8:16", + "nodeType": "VariableDeclaration", + "scope": 4029, + "src": "439:21:16", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3732, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "439:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 3735, + "mutability": "mutable", + "name": "_tokenURI", + "nameLocation": "481:9:16", + "nodeType": "VariableDeclaration", + "scope": 4029, + "src": "466:24:16", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 3734, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "466:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "body": { + "id": 3757, + "nodeType": "Block", + "src": "546:129:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3744, + "name": "tokenURI_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3737, + "src": "575:9:16", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 3743, + "name": "requireNonEmptyURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3792, + "src": "556:18:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 3745, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "556:29:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3746, + "nodeType": "ExpressionStatement", + "src": "556:29:16" + }, + { + "expression": { + "arguments": [ + { + "id": 3748, + "name": "DEFAULT_ADMIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29, + "src": "606:18:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 3749, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "626:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3750, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "630:6:16", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "626:10:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3747, + "name": "_grantRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 256, + "src": "595:10:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) returns (bool)" + } + }, + "id": 3751, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "595:42:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3752, + "nodeType": "ExpressionStatement", + "src": "595:42:16" + }, + { + "expression": { + "id": 3755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3753, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3735, + "src": "647:9:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 3754, + "name": "tokenURI_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3737, + "src": "659:9:16", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "647:21:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3756, + "nodeType": "ExpressionStatement", + "src": "647:21:16" + } + ] + }, + "id": 3758, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "hexValue": "", + "id": 3740, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "542:2:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "id": 3741, + "kind": "baseConstructorSpecifier", + "modifierName": { + "id": 3739, + "name": "ERC1155", + "nameLocations": [ + "534:7:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1566, + "src": "534:7:16" + }, + "nodeType": "ModifierInvocation", + "src": "534:11:16" + } + ], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3738, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3737, + "mutability": "mutable", + "name": "tokenURI_", + "nameLocation": "523:9:16", + "nodeType": "VariableDeclaration", + "scope": 3758, + "src": "509:23:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3736, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "509:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "508:25:16" + }, + "returnParameters": { + "id": 3742, + "nodeType": "ParameterList", + "parameters": [], + "src": "546:0:16" + }, + "scope": 4029, + "src": "497:178:16", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3772, + "nodeType": "Block", + "src": "731:90:16", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3765, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3763, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3760, + "src": "745:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 3764, + "name": "_counter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3733, + "src": "756:8:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "745:19:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3771, + "nodeType": "IfStatement", + "src": "741:74:16", + "trueBody": { + "id": 3770, + "nodeType": "Block", + "src": "766:49:16", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 3767, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3760, + "src": "796:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3766, + "name": "NotFound", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4063, + "src": "787:8:16", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint256) pure returns (error)" + } + }, + "id": 3768, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "787:17:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 3769, + "nodeType": "RevertStatement", + "src": "780:24:16" + } + ] + } + } + ] + }, + "id": 3773, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkTokenId", + "nameLocation": "690:13:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3761, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3760, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "709:7:16", + "nodeType": "VariableDeclaration", + "scope": 3773, + "src": "704:12:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3759, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "704:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "703:14:16" + }, + "returnParameters": { + "id": 3762, + "nodeType": "ParameterList", + "parameters": [], + "src": "731:0:16" + }, + "scope": 4029, + "src": "681:140:16", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 3791, + "nodeType": "Block", + "src": "891:110:16", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3784, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 3780, + "name": "newUri", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3775, + "src": "911:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 3779, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "905:5:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 3778, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "905:5:16", + "typeDescriptions": {} + } + }, + "id": 3781, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "905:13:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3782, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "919:6:16", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "905:20:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 3783, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "929:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "905:25:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3790, + "nodeType": "IfStatement", + "src": "901:94:16", + "trueBody": { + "id": 3789, + "nodeType": "Block", + "src": "932:63:16", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "5552492063616e6e6f7420626520656d707479", + "id": 3786, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "962:21:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231", + "typeString": "literal_string \"URI cannot be empty\"" + }, + "value": "URI cannot be empty" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231", + "typeString": "literal_string \"URI cannot be empty\"" + } + ], + "id": 3785, + "name": "URIEmpty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4079, + "src": "953:8:16", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_string_memory_ptr_$returns$_t_error_$", + "typeString": "function (string memory) pure returns (error)" + } + }, + "id": 3787, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "953:31:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 3788, + "nodeType": "RevertStatement", + "src": "946:38:16" + } + ] + } + } + ] + }, + "id": 3792, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "requireNonEmptyURI", + "nameLocation": "836:18:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3776, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3775, + "mutability": "mutable", + "name": "newUri", + "nameLocation": "869:6:16", + "nodeType": "VariableDeclaration", + "scope": 3792, + "src": "855:20:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3774, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "855:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "854:22:16" + }, + "returnParameters": { + "id": 3777, + "nodeType": "ParameterList", + "parameters": [], + "src": "891:0:16" + }, + "scope": 4029, + "src": "827:174:16", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3801, + "nodeType": "Block", + "src": "1043:50:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3797, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3794, + "src": "1067:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3796, + "name": "_checkTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3773, + "src": "1053:13:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$__$", + "typeString": "function (uint256) view" + } + }, + "id": 3798, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1053:22:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3799, + "nodeType": "ExpressionStatement", + "src": "1053:22:16" + }, + { + "id": 3800, + "nodeType": "PlaceholderStatement", + "src": "1085:1:16" + } + ] + }, + "id": 3802, + "name": "validTokenId", + "nameLocation": "1016:12:16", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 3795, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3794, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "1034:7:16", + "nodeType": "VariableDeclaration", + "scope": 3802, + "src": "1029:12:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3793, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1029:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1028:14:16" + }, + "src": "1007:86:16", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3820, + "nodeType": "Block", + "src": "1154:114:16", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3811, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3808, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3804, + "src": "1168:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "id": 3809, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1179:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3810, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1183:6:16", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1179:10:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1168:21:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3818, + "nodeType": "IfStatement", + "src": "1164:87:16", + "trueBody": { + "id": 3817, + "nodeType": "Block", + "src": "1191:60:16", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 3813, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3804, + "src": "1223:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3814, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3806, + "src": "1232:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3812, + "name": "NotAllowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4075, + "src": "1212:10:16", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$_t_uint256_$returns$_t_error_$", + "typeString": "function (address,uint256) pure returns (error)" + } + }, + "id": 3815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1212:28:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 3816, + "nodeType": "RevertStatement", + "src": "1205:35:16" + } + ] + } + }, + { + "id": 3819, + "nodeType": "PlaceholderStatement", + "src": "1260:1:16" + } + ] + }, + "id": 3821, + "name": "onlyTokenOwner", + "nameLocation": "1108:14:16", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 3807, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3804, + "mutability": "mutable", + "name": "account", + "nameLocation": "1131:7:16", + "nodeType": "VariableDeclaration", + "scope": 3821, + "src": "1123:15:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3803, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1123:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3806, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "1145:7:16", + "nodeType": "VariableDeclaration", + "scope": 3821, + "src": "1140:12:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3805, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1140:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1122:31:16" + }, + "src": "1099:169:16", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3839, + "nodeType": "Block", + "src": "1322:140:16", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3831, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 3827, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3823, + "src": "1342:7:16", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 3826, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1336:5:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 3825, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1336:5:16", + "typeDescriptions": {} + } + }, + "id": 3828, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1336:14:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3829, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1351:6:16", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "1336:21:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 3830, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1361:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1336:26:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3837, + "nodeType": "IfStatement", + "src": "1332:113:16", + "trueBody": { + "id": 3836, + "nodeType": "Block", + "src": "1364:81:16", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "4163636f756e742063616e6e6f7420626520656d707479", + "id": 3833, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1408:25:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c2ef5cec3cd5807ca7e192fb77bd9e3da1378958f99ebf24571ab659b0b36619", + "typeString": "literal_string \"Account cannot be empty\"" + }, + "value": "Account cannot be empty" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c2ef5cec3cd5807ca7e192fb77bd9e3da1378958f99ebf24571ab659b0b36619", + "typeString": "literal_string \"Account cannot be empty\"" + } + ], + "id": 3832, + "name": "EmptyAccountNotAllowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4083, + "src": "1385:22:16", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_string_memory_ptr_$returns$_t_error_$", + "typeString": "function (string memory) pure returns (error)" + } + }, + "id": 3834, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1385:49:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 3835, + "nodeType": "RevertStatement", + "src": "1378:56:16" + } + ] + } + }, + { + "id": 3838, + "nodeType": "PlaceholderStatement", + "src": "1454:1:16" + } + ] + }, + "id": 3840, + "name": "nonEmptyAccount", + "nameLocation": "1283:15:16", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 3824, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3823, + "mutability": "mutable", + "name": "account", + "nameLocation": "1313:7:16", + "nodeType": "VariableDeclaration", + "scope": 3840, + "src": "1299:21:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3822, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1299:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1298:23:16" + }, + "src": "1274:188:16", + "virtual": false, + "visibility": "internal" + }, + { + "baseFunctions": [ + 4088 + ], + "body": { + "id": 3847, + "nodeType": "Block", + "src": "1516:32:16", + "statements": [ + { + "expression": { + "id": 3845, + "name": "_counter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3733, + "src": "1533:8:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3844, + "id": 3846, + "nodeType": "Return", + "src": "1526:15:16" + } + ] + }, + "functionSelector": "61bc221a", + "id": 3848, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "counter", + "nameLocation": "1477:7:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3841, + "nodeType": "ParameterList", + "parameters": [], + "src": "1484:2:16" + }, + "returnParameters": { + "id": 3844, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3843, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3848, + "src": "1510:4:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3842, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1510:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1509:6:16" + }, + "scope": 4029, + "src": "1468:80:16", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 4091 + ], + "body": { + "id": 3875, + "nodeType": "Block", + "src": "1580:176:16", + "statements": [ + { + "assignments": [ + 3852 + ], + "declarations": [ + { + "constant": false, + "id": 3852, + "mutability": "mutable", + "name": "counterCache", + "nameLocation": "1595:12:16", + "nodeType": "VariableDeclaration", + "scope": 3875, + "src": "1590:17:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3851, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1590:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3854, + "initialValue": { + "id": 3853, + "name": "_counter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3733, + "src": "1610:8:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1590:28:16" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 3856, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1634:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3857, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1638:6:16", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1634:10:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3858, + "name": "counterCache", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3852, + "src": "1646:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "31", + "id": 3859, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1660:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + { + "hexValue": "", + "id": 3860, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1663:2:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 3855, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1241, + "src": "1628:5:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,uint256,bytes memory)" + } + }, + "id": 3861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1628:38:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3862, + "nodeType": "ExpressionStatement", + "src": "1628:38:16" + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "id": 3864, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1687:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1691:6:16", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1687:10:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3866, + "name": "counterCache", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3852, + "src": "1699:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3863, + "name": "Issue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4037, + "src": "1681:5:16", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 3867, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1681:31:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3868, + "nodeType": "EmitStatement", + "src": "1676:36:16" + }, + { + "expression": { + "id": 3873, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3869, + "name": "_counter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3733, + "src": "1722:8:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3872, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3870, + "name": "counterCache", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3852, + "src": "1733:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 3871, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1748:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1733:16:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1722:27:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3874, + "nodeType": "ExpressionStatement", + "src": "1722:27:16" + } + ] + }, + "functionSelector": "d383f646", + "id": 3876, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "issue", + "nameLocation": "1563:5:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3849, + "nodeType": "ParameterList", + "parameters": [], + "src": "1568:2:16" + }, + "returnParameters": { + "id": 3850, + "nodeType": "ParameterList", + "parameters": [], + "src": "1580:0:16" + }, + "scope": 4029, + "src": "1554:202:16", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 4102 + ], + "body": { + "id": 3917, + "nodeType": "Block", + "src": "1917:195:16", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3896, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 3892, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3878, + "src": "1941:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3893, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3880, + "src": "1950:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3891, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 635, + "src": "1931:9:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (address,uint256) view returns (uint256)" + } + }, + "id": 3894, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1931:27:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "hexValue": "31", + "id": 3895, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1962:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1931:32:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3903, + "nodeType": "IfStatement", + "src": "1927:97:16", + "trueBody": { + "id": 3902, + "nodeType": "Block", + "src": "1965:59:16", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 3898, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3878, + "src": "1996:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3899, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3880, + "src": "2005:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3897, + "name": "MintLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4069, + "src": "1986:9:16", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$_t_uint256_$returns$_t_error_$", + "typeString": "function (address,uint256) pure returns (error)" + } + }, + "id": 3900, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1986:27:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 3901, + "nodeType": "RevertStatement", + "src": "1979:34:16" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 3905, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3878, + "src": "2039:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3906, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3880, + "src": "2048:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "31", + "id": 3907, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2057:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + { + "id": 3908, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3884, + "src": "2060:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 3904, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1241, + "src": "2033:5:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,uint256,bytes memory)" + } + }, + "id": 3909, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2033:32:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3910, + "nodeType": "ExpressionStatement", + "src": "2033:32:16" + }, + { + "eventCall": { + "arguments": [ + { + "id": 3912, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3878, + "src": "2085:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3913, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3880, + "src": "2094:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "31", + "id": 3914, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2103:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "id": 3911, + "name": "Mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4045, + "src": "2080:4:16", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256)" + } + }, + "id": 3915, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2080:25:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3916, + "nodeType": "EmitStatement", + "src": "2075:30:16" + } + ] + }, + "functionSelector": "731133e9", + "id": 3918, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 3888, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3880, + "src": "1908:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3889, + "kind": "modifierInvocation", + "modifierName": { + "id": 3887, + "name": "validTokenId", + "nameLocations": [ + "1895:12:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3802, + "src": "1895:12:16" + }, + "nodeType": "ModifierInvocation", + "src": "1895:21:16" + } + ], + "name": "mint", + "nameLocation": "1771:4:16", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 3886, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1886:8:16" + }, + "parameters": { + "id": 3885, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3878, + "mutability": "mutable", + "name": "account", + "nameLocation": "1793:7:16", + "nodeType": "VariableDeclaration", + "scope": 3918, + "src": "1785:15:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3877, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1785:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3880, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "1815:7:16", + "nodeType": "VariableDeclaration", + "scope": 3918, + "src": "1810:12:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3879, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1810:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3882, + "mutability": "mutable", + "name": "amount", + "nameLocation": "1837:6:16", + "nodeType": "VariableDeclaration", + "scope": 3918, + "src": "1832:11:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3881, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1832:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3884, + "mutability": "mutable", + "name": "data", + "nameLocation": "1866:4:16", + "nodeType": "VariableDeclaration", + "scope": 3918, + "src": "1853:17:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3883, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1853:5:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "1775:101:16" + }, + "returnParameters": { + "id": 3890, + "nodeType": "ParameterList", + "parameters": [], + "src": "1917:0:16" + }, + "scope": 4029, + "src": "1762:350:16", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 4111 + ], + "body": { + "id": 3947, + "nodeType": "Block", + "src": "2279:83:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3936, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3920, + "src": "2295:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3937, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3922, + "src": "2304:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "31", + "id": 3938, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2313:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "id": 3935, + "name": "_burn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1332, + "src": "2289:5:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256)" + } + }, + "id": 3939, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2289:26:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3940, + "nodeType": "ExpressionStatement", + "src": "2289:26:16" + }, + { + "eventCall": { + "arguments": [ + { + "id": 3942, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3920, + "src": "2335:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3943, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3922, + "src": "2344:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "31", + "id": 3944, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2353:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "id": 3941, + "name": "Burn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4053, + "src": "2330:4:16", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256)" + } + }, + "id": 3945, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2330:25:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3946, + "nodeType": "EmitStatement", + "src": "2325:30:16" + } + ] + }, + "functionSelector": "f5298aca", + "id": 3948, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 3928, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3922, + "src": "2237:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3929, + "kind": "modifierInvocation", + "modifierName": { + "id": 3927, + "name": "validTokenId", + "nameLocations": [ + "2224:12:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3802, + "src": "2224:12:16" + }, + "nodeType": "ModifierInvocation", + "src": "2224:21:16" + }, + { + "arguments": [ + { + "id": 3931, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3920, + "src": "2261:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3932, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3922, + "src": "2270:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3933, + "kind": "modifierInvocation", + "modifierName": { + "id": 3930, + "name": "onlyTokenOwner", + "nameLocations": [ + "2246:14:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3821, + "src": "2246:14:16" + }, + "nodeType": "ModifierInvocation", + "src": "2246:32:16" + } + ], + "name": "burn", + "nameLocation": "2127:4:16", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 3926, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2215:8:16" + }, + "parameters": { + "id": 3925, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3920, + "mutability": "mutable", + "name": "account", + "nameLocation": "2149:7:16", + "nodeType": "VariableDeclaration", + "scope": 3948, + "src": "2141:15:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3919, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2141:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3922, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "2171:7:16", + "nodeType": "VariableDeclaration", + "scope": 3948, + "src": "2166:12:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3921, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2166:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3924, + "mutability": "mutable", + "name": "amount", + "nameLocation": "2193:6:16", + "nodeType": "VariableDeclaration", + "scope": 3948, + "src": "2188:11:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3923, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2188:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2131:74:16" + }, + "returnParameters": { + "id": 3934, + "nodeType": "ParameterList", + "parameters": [], + "src": "2279:0:16" + }, + "scope": 4029, + "src": "2118:244:16", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 62, + 607 + ], + "body": { + "id": 3973, + "nodeType": "Block", + "src": "2489:142:16", + "statements": [ + { + "condition": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "arguments": [ + { + "id": 3960, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "2511:4:16", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Engagement_$4029", + "typeString": "contract Engagement" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Engagement_$4029", + "typeString": "contract Engagement" + } + ], + "id": 3959, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2503:7:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3958, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2503:7:16", + "typeDescriptions": {} + } + }, + "id": 3961, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2503:13:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3962, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2517:14:16", + "memberName": "supportsERC165", + "nodeType": "MemberAccess", + "referencedDeclaration": 2380, + "src": "2503:28:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$attached_to$_t_address_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 3963, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2503:30:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3970, + "nodeType": "IfStatement", + "src": "2499:104:16", + "trueBody": { + "id": 3969, + "nodeType": "Block", + "src": "2535:68:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3966, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3950, + "src": "2580:11:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "expression": { + "id": 3964, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "2556:5:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_Engagement_$4029_$", + "typeString": "type(contract super Engagement)" + } + }, + "id": 3965, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2562:17:16", + "memberName": "supportsInterface", + "nodeType": "MemberAccess", + "referencedDeclaration": 62, + "src": "2556:23:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$", + "typeString": "function (bytes4) view returns (bool)" + } + }, + "id": 3967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2556:36:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3957, + "id": 3968, + "nodeType": "Return", + "src": "2549:43:16" + } + ] + } + }, + { + "expression": { + "hexValue": "66616c7365", + "id": 3971, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2619:5:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 3957, + "id": 3972, + "nodeType": "Return", + "src": "2612:12:16" + } + ] + }, + "functionSelector": "01ffc9a7", + "id": 3974, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nameLocation": "2377:17:16", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 3954, + "nodeType": "OverrideSpecifier", + "overrides": [ + { + "id": 3952, + "name": "AccessControl", + "nameLocations": [ + "2450:13:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 295, + "src": "2450:13:16" + }, + { + "id": 3953, + "name": "ERC1155", + "nameLocations": [ + "2465:7:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1566, + "src": "2465:7:16" + } + ], + "src": "2441:32:16" + }, + "parameters": { + "id": 3951, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3950, + "mutability": "mutable", + "name": "interfaceId", + "nameLocation": "2411:11:16", + "nodeType": "VariableDeclaration", + "scope": 3974, + "src": "2404:18:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 3949, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "2404:6:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "2394:34:16" + }, + "returnParameters": { + "id": 3957, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3956, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3974, + "src": "2483:4:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3955, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2483:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2482:6:16" + }, + "scope": 4029, + "src": "2368:263:16", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 4116 + ], + "body": { + "id": 3995, + "nodeType": "Block", + "src": "2720:119:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3983, + "name": "newURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3976, + "src": "2749:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 3982, + "name": "requireNonEmptyURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3792, + "src": "2730:18:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 3984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2730:26:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3985, + "nodeType": "ExpressionStatement", + "src": "2730:26:16" + }, + { + "eventCall": { + "arguments": [ + { + "id": 3987, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3735, + "src": "2786:9:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + { + "id": 3988, + "name": "newURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3976, + "src": "2797:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 3986, + "name": "BaseURIUpdated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4059, + "src": "2771:14:16", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory,string memory)" + } + }, + "id": 3989, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2771:33:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3990, + "nodeType": "EmitStatement", + "src": "2766:38:16" + }, + { + "expression": { + "id": 3993, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3991, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3735, + "src": "2814:9:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 3992, + "name": "newURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3976, + "src": "2826:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "2814:18:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3994, + "nodeType": "ExpressionStatement", + "src": "2814:18:16" + } + ] + }, + "functionSelector": "931688cb", + "id": 3996, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 3979, + "name": "DEFAULT_ADMIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29, + "src": "2700:18:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 3980, + "kind": "modifierInvocation", + "modifierName": { + "id": 3978, + "name": "onlyRole", + "nameLocations": [ + "2691:8:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 40, + "src": "2691:8:16" + }, + "nodeType": "ModifierInvocation", + "src": "2691:28:16" + } + ], + "name": "updateBaseURI", + "nameLocation": "2646:13:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3977, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3976, + "mutability": "mutable", + "name": "newURI", + "nameLocation": "2674:6:16", + "nodeType": "VariableDeclaration", + "scope": 3996, + "src": "2660:20:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3975, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2660:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2659:22:16" + }, + "returnParameters": { + "id": 3981, + "nodeType": "ParameterList", + "parameters": [], + "src": "2720:0:16" + }, + "scope": 4029, + "src": "2637:202:16", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 4027, + "nodeType": "Block", + "src": "3000:174:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 4015, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3735, + "src": "3070:9:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + { + "hexValue": "2f6170692f76312f6e66742f", + "id": 4016, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3080:14:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_dffb04a525cd02c1927009e9978b1b3a31e2219941c628b0e1a278e1253e73d7", + "typeString": "literal_string \"/api/v1/nft/\"" + }, + "value": "/api/v1/nft/" + }, + { + "arguments": [ + { + "id": 4019, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3998, + "src": "3112:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 4017, + "name": "Strings", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2325, + "src": "3095:7:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Strings_$2325_$", + "typeString": "type(library Strings)" + } + }, + "id": 4018, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3103:8:16", + "memberName": "toString", + "nodeType": "MemberAccess", + "referencedDeclaration": 2138, + "src": "3095:16:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$", + "typeString": "function (uint256) pure returns (string memory)" + } + }, + "id": 4020, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3095:25:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "hexValue": "2f", + "id": 4021, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3121:3:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527", + "typeString": "literal_string \"/\"" + }, + "value": "/" + }, + { + "id": 4022, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4000, + "src": "3125:7:16", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "hexValue": "2f72657075746174696f6e2d73636f7265", + "id": 4023, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3133:19:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_55265a2701bc64b88c772eaa96e74946d09782e358d6aba22dcae17933df0a55", + "typeString": "literal_string \"/reputation-score\"" + }, + "value": "/reputation-score" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + }, + { + "typeIdentifier": "t_stringliteral_dffb04a525cd02c1927009e9978b1b3a31e2219941c628b0e1a278e1253e73d7", + "typeString": "literal_string \"/api/v1/nft/\"" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527", + "typeString": "literal_string \"/\"" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_stringliteral_55265a2701bc64b88c772eaa96e74946d09782e358d6aba22dcae17933df0a55", + "typeString": "literal_string \"/reputation-score\"" + } + ], + "expression": { + "id": 4013, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "3053:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 4014, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "3057:12:16", + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "src": "3053:16:16", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 4024, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3053:100:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 4012, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3029:6:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 4011, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3029:6:16", + "typeDescriptions": {} + } + }, + "id": 4025, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3029:138:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 4010, + "id": 4026, + "nodeType": "Return", + "src": "3010:157:16" + } + ] + }, + "functionSelector": "76b676f1", + "id": 4028, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 4003, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3998, + "src": "2942:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4004, + "kind": "modifierInvocation", + "modifierName": { + "id": 4002, + "name": "validTokenId", + "nameLocations": [ + "2929:12:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3802, + "src": "2929:12:16" + }, + "nodeType": "ModifierInvocation", + "src": "2929:21:16" + }, + { + "arguments": [ + { + "id": 4006, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4000, + "src": "2967:7:16", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "id": 4007, + "kind": "modifierInvocation", + "modifierName": { + "id": 4005, + "name": "nonEmptyAccount", + "nameLocations": [ + "2951:15:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3840, + "src": "2951:15:16" + }, + "nodeType": "ModifierInvocation", + "src": "2951:24:16" + } + ], + "name": "uri", + "nameLocation": "2854:3:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4001, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3998, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "2872:7:16", + "nodeType": "VariableDeclaration", + "scope": 4028, + "src": "2867:12:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3997, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2867:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4000, + "mutability": "mutable", + "name": "account", + "nameLocation": "2903:7:16", + "nodeType": "VariableDeclaration", + "scope": 4028, + "src": "2889:21:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3999, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2889:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2857:59:16" + }, + "returnParameters": { + "id": 4010, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4009, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4028, + "src": "2985:13:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4008, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2985:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2984:15:16" + }, + "scope": 4029, + "src": "2845:329:16", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "scope": 4030, + "src": "336:2840:16", + "usedErrors": [ + 305, + 308, + 480, + 485, + 490, + 497, + 502, + 507, + 514, + 4063, + 4069, + 4075, + 4079, + 4083 + ], + "usedEvents": [ + 317, + 326, + 335, + 1586, + 1601, + 1610, + 1617, + 4037, + 4045, + 4053, + 4059 + ] + } + ], + "src": "39:3138:16" + }, + "id": 16 + }, + "contracts/IEngagement.sol": { + "ast": { + "absolutePath": "contracts/IEngagement.sol", + "exportedSymbols": { + "IEngagement": [ + 4117 + ] + }, + "id": 4118, + "license": "UNLICENSED", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4031, + "literals": [ + "solidity", + "0.8", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "39:23:17" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IEngagement", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 4117, + "linearizedBaseContracts": [ + 4117 + ], + "name": "IEngagement", + "nameLocation": "74:11:17", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "eventSelector": "c65a3f767206d2fdcede0b094a4840e01c0dd0be1888b5ba800346eaa0123c16", + "id": 4037, + "name": "Issue", + "nameLocation": "98:5:17", + "nodeType": "EventDefinition", + "parameters": { + "id": 4036, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4033, + "indexed": true, + "mutability": "mutable", + "name": "account", + "nameLocation": "120:7:17", + "nodeType": "VariableDeclaration", + "scope": 4037, + "src": "104:23:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4032, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "104:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4035, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "142:7:17", + "nodeType": "VariableDeclaration", + "scope": 4037, + "src": "129:20:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4034, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "129:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "103:47:17" + }, + "src": "92:59:17" + }, + { + "anonymous": false, + "eventSelector": "4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f", + "id": 4045, + "name": "Mint", + "nameLocation": "162:4:17", + "nodeType": "EventDefinition", + "parameters": { + "id": 4044, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4039, + "indexed": true, + "mutability": "mutable", + "name": "account", + "nameLocation": "183:7:17", + "nodeType": "VariableDeclaration", + "scope": 4045, + "src": "167:23:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4038, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "167:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4041, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "205:7:17", + "nodeType": "VariableDeclaration", + "scope": 4045, + "src": "192:20:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4040, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "192:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4043, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nameLocation": "219:6:17", + "nodeType": "VariableDeclaration", + "scope": 4045, + "src": "214:11:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4042, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "214:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "166:60:17" + }, + "src": "156:71:17" + }, + { + "anonymous": false, + "eventSelector": "49995e5dd6158cf69ad3e9777c46755a1a826a446c6416992167462dad033b2a", + "id": 4053, + "name": "Burn", + "nameLocation": "238:4:17", + "nodeType": "EventDefinition", + "parameters": { + "id": 4052, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4047, + "indexed": true, + "mutability": "mutable", + "name": "account", + "nameLocation": "259:7:17", + "nodeType": "VariableDeclaration", + "scope": 4053, + "src": "243:23:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4046, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "243:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4049, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "281:7:17", + "nodeType": "VariableDeclaration", + "scope": 4053, + "src": "268:20:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4048, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "268:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4051, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nameLocation": "295:6:17", + "nodeType": "VariableDeclaration", + "scope": 4053, + "src": "290:11:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4050, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "290:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "242:60:17" + }, + "src": "232:71:17" + }, + { + "anonymous": false, + "eventSelector": "309b29ded109b9e28fb9885757b3e0096eb75c51d23aa4635d68bcd569f6adc1", + "id": 4059, + "name": "BaseURIUpdated", + "nameLocation": "314:14:17", + "nodeType": "EventDefinition", + "parameters": { + "id": 4058, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4055, + "indexed": false, + "mutability": "mutable", + "name": "oldURI", + "nameLocation": "336:6:17", + "nodeType": "VariableDeclaration", + "scope": 4059, + "src": "329:13:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4054, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "329:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4057, + "indexed": false, + "mutability": "mutable", + "name": "newURI", + "nameLocation": "351:6:17", + "nodeType": "VariableDeclaration", + "scope": 4059, + "src": "344:13:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4056, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "344:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "328:30:17" + }, + "src": "308:51:17" + }, + { + "errorSelector": "c80a970c", + "id": 4063, + "name": "NotFound", + "nameLocation": "371:8:17", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 4062, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4061, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "385:7:17", + "nodeType": "VariableDeclaration", + "scope": 4063, + "src": "380:12:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4060, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "380:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "379:14:17" + }, + "src": "365:29:17" + }, + { + "errorSelector": "788d2556", + "id": 4069, + "name": "MintLimit", + "nameLocation": "405:9:17", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 4068, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4065, + "mutability": "mutable", + "name": "account", + "nameLocation": "423:7:17", + "nodeType": "VariableDeclaration", + "scope": 4069, + "src": "415:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4064, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "415:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4067, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "437:7:17", + "nodeType": "VariableDeclaration", + "scope": 4069, + "src": "432:12:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4066, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "432:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "414:31:17" + }, + "src": "399:47:17" + }, + { + "errorSelector": "8626cc03", + "id": 4075, + "name": "NotAllowed", + "nameLocation": "457:10:17", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 4074, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4071, + "mutability": "mutable", + "name": "account", + "nameLocation": "476:7:17", + "nodeType": "VariableDeclaration", + "scope": 4075, + "src": "468:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4070, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "468:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4073, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "490:7:17", + "nodeType": "VariableDeclaration", + "scope": 4075, + "src": "485:12:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4072, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "485:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "467:31:17" + }, + "src": "451:48:17" + }, + { + "errorSelector": "1897cf66", + "id": 4079, + "name": "URIEmpty", + "nameLocation": "510:8:17", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 4078, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4077, + "mutability": "mutable", + "name": "message", + "nameLocation": "526:7:17", + "nodeType": "VariableDeclaration", + "scope": 4079, + "src": "519:14:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4076, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "519:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "518:16:17" + }, + "src": "504:31:17" + }, + { + "errorSelector": "c29f9db3", + "id": 4083, + "name": "EmptyAccountNotAllowed", + "nameLocation": "546:22:17", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 4082, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4081, + "mutability": "mutable", + "name": "message", + "nameLocation": "576:7:17", + "nodeType": "VariableDeclaration", + "scope": 4083, + "src": "569:14:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4080, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "569:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "568:16:17" + }, + "src": "540:45:17" + }, + { + "functionSelector": "61bc221a", + "id": 4088, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "counter", + "nameLocation": "600:7:17", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4084, + "nodeType": "ParameterList", + "parameters": [], + "src": "607:2:17" + }, + "returnParameters": { + "id": 4087, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4086, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4088, + "src": "633:4:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4085, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "633:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "632:6:17" + }, + "scope": 4117, + "src": "591:48:17", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "d383f646", + "id": 4091, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "issue", + "nameLocation": "654:5:17", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4089, + "nodeType": "ParameterList", + "parameters": [], + "src": "659:2:17" + }, + "returnParameters": { + "id": 4090, + "nodeType": "ParameterList", + "parameters": [], + "src": "670:0:17" + }, + "scope": 4117, + "src": "645:26:17", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "731133e9", + "id": 4102, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "mint", + "nameLocation": "686:4:17", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4100, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4093, + "mutability": "mutable", + "name": "account", + "nameLocation": "708:7:17", + "nodeType": "VariableDeclaration", + "scope": 4102, + "src": "700:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4092, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "700:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4095, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "730:7:17", + "nodeType": "VariableDeclaration", + "scope": 4102, + "src": "725:12:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4094, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "725:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4097, + "mutability": "mutable", + "name": "amount", + "nameLocation": "752:6:17", + "nodeType": "VariableDeclaration", + "scope": 4102, + "src": "747:11:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4096, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "747:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4099, + "mutability": "mutable", + "name": "data", + "nameLocation": "781:4:17", + "nodeType": "VariableDeclaration", + "scope": 4102, + "src": "768:17:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4098, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "768:5:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "690:101:17" + }, + "returnParameters": { + "id": 4101, + "nodeType": "ParameterList", + "parameters": [], + "src": "800:0:17" + }, + "scope": 4117, + "src": "677:124:17", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "f5298aca", + "id": 4111, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "burn", + "nameLocation": "816:4:17", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4109, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4104, + "mutability": "mutable", + "name": "account", + "nameLocation": "829:7:17", + "nodeType": "VariableDeclaration", + "scope": 4111, + "src": "821:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4103, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "821:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4106, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "843:7:17", + "nodeType": "VariableDeclaration", + "scope": 4111, + "src": "838:12:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4105, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "838:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4108, + "mutability": "mutable", + "name": "amount", + "nameLocation": "857:6:17", + "nodeType": "VariableDeclaration", + "scope": 4111, + "src": "852:11:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4107, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "852:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "820:44:17" + }, + "returnParameters": { + "id": 4110, + "nodeType": "ParameterList", + "parameters": [], + "src": "873:0:17" + }, + "scope": 4117, + "src": "807:67:17", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "931688cb", + "id": 4116, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "updateBaseURI", + "nameLocation": "889:13:17", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4114, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4113, + "mutability": "mutable", + "name": "newURI", + "nameLocation": "917:6:17", + "nodeType": "VariableDeclaration", + "scope": 4116, + "src": "903:20:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4112, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "903:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "902:22:17" + }, + "returnParameters": { + "id": 4115, + "nodeType": "ParameterList", + "parameters": [], + "src": "933:0:17" + }, + "scope": 4117, + "src": "880:54:17", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 4118, + "src": "64:872:17", + "usedErrors": [ + 4063, + 4069, + 4075, + 4079, + 4083 + ], + "usedEvents": [ + 4037, + 4045, + 4053, + 4059 + ] + } + ], + "src": "39:898:17" + }, + "id": 17 + } + }, + "contracts": { + "@openzeppelin/contracts/access/AccessControl.sol": { + "AccessControl": { + "abi": [ + { + "inputs": [], + "name": "AccessControlBadConfirmation", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "neededRole", + "type": "bytes32" + } + ], + "name": "AccessControlUnauthorizedAccount", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "callerConfirmation", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "DEFAULT_ADMIN_ROLE()": "a217fddf", + "getRoleAdmin(bytes32)": "248a9ca3", + "grantRole(bytes32,address)": "2f2ff15d", + "hasRole(bytes32,address)": "91d14854", + "renounceRole(bytes32,address)": "36568abe", + "revokeRole(bytes32,address)": "d547741f", + "supportsInterface(bytes4)": "01ffc9a7" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module that allows children to implement role-based access control mechanisms. This is a lightweight version that doesn't allow enumerating role members except through off-chain means by accessing the contract event logs. Some applications may benefit from on-chain enumerability, for those cases see {AccessControlEnumerable}. Roles are referred to by their `bytes32` identifier. These should be exposed in the external API and be unique. The best way to achieve this is by using `public constant` hash digests: ```solidity bytes32 public constant MY_ROLE = keccak256(\\\"MY_ROLE\\\"); ``` Roles can be used to represent a set of permissions. To restrict access to a function call, use {hasRole}: ```solidity function foo() public { require(hasRole(MY_ROLE, msg.sender)); ... } ``` Roles can be granted and revoked dynamically via the {grantRole} and {revokeRole} functions. Each role has an associated admin role, and only accounts that have a role's admin role can call {grantRole} and {revokeRole}. By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means that only accounts with this role will be able to grant or revoke other roles. More complex role relationships can be created by using {_setRoleAdmin}. WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to grant and revoke this role. Extra precautions should be taken to secure accounts that have been granted it. We recommend using {AccessControlDefaultAdminRules} to enforce additional security measures for this role.\",\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}]},\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/AccessControl.sol\":\"AccessControl\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80\",\"dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/access/IAccessControl.sol": { + "IAccessControl": { + "abi": [ + { + "inputs": [], + "name": "AccessControlBadConfirmation", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "neededRole", + "type": "bytes32" + } + ], + "name": "AccessControlUnauthorizedAccount", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "callerConfirmation", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "getRoleAdmin(bytes32)": "248a9ca3", + "grantRole(bytes32,address)": "2f2ff15d", + "hasRole(bytes32,address)": "91d14854", + "renounceRole(bytes32,address)": "36568abe", + "revokeRole(bytes32,address)": "d547741f" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"External interface of AccessControl declared to support ERC165 detection.\",\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}]},\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {AccessControl-_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":\"IAccessControl\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/interfaces/draft-IERC6093.sol": { + "IERC1155Errors": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC1155InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC1155InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "idsLength", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "valuesLength", + "type": "uint256" + } + ], + "name": "ERC1155InvalidArrayLength", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "ERC1155InvalidOperator", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC1155InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC1155InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC1155MissingApprovalForAll", + "type": "error" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC1155InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idsLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"valuesLength\",\"type\":\"uint256\"}],\"name\":\"ERC1155InvalidArrayLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC1155MissingApprovalForAll\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC1155 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 tokens.\",\"errors\":{\"ERC1155InsufficientBalance(address,uint256,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC1155InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC1155InvalidArrayLength(uint256,uint256)\":[{\"details\":\"Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation. Used in batch transfers.\",\"params\":{\"idsLength\":\"Length of the array of token identifiers\",\"valuesLength\":\"Length of the array of token amounts\"}}],\"ERC1155InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC1155InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC1155InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC1155MissingApprovalForAll(address,address)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"owner\":\"Address of the current owner of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC1155Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]}},\"version\":1}" + }, + "IERC20Errors": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientAllowance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC20InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC20InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC20InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "ERC20InvalidSpender", + "type": "error" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC20 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 tokens.\",\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC20Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]}},\"version\":1}" + }, + "IERC721Errors": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721IncorrectOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721InsufficientApproval", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC721InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "ERC721InvalidOperator", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721InvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC721InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC721InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721NonexistentToken", + "type": "error" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC721 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC721 tokens.\",\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC721Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/token/ERC1155/ERC1155.sol": { + "ERC1155": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC1155InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC1155InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "idsLength", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "valuesLength", + "type": "uint256" + } + ], + "name": "ERC1155InvalidArrayLength", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "ERC1155InvalidOperator", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC1155InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC1155InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC1155MissingApprovalForAll", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + }, + { + "indexed": false, + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + } + ], + "name": "TransferBatch", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "TransferSingle", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "string", + "name": "value", + "type": "string" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "URI", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "accounts", + "type": "address[]" + }, + { + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + } + ], + "name": "balanceOfBatch", + "outputs": [ + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + }, + { + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeBatchTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "uri", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "balanceOf(address,uint256)": "00fdd58e", + "balanceOfBatch(address[],uint256[])": "4e1273f4", + "isApprovedForAll(address,address)": "e985e9c5", + "safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)": "2eb2c2d6", + "safeTransferFrom(address,address,uint256,uint256,bytes)": "f242432a", + "setApprovalForAll(address,bool)": "a22cb465", + "supportsInterface(bytes4)": "01ffc9a7", + "uri(uint256)": "0e89341c" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC1155InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idsLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"valuesLength\",\"type\":\"uint256\"}],\"name\":\"ERC1155InvalidArrayLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC1155MissingApprovalForAll\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"TransferBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"TransferSingle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"URI\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"}],\"name\":\"balanceOfBatch\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeBatchTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"uri\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the basic standard multi-token. See https://eips.ethereum.org/EIPS/eip-1155 Originally based on code by Enjin: https://github.com/enjin/erc-1155\",\"errors\":{\"ERC1155InsufficientBalance(address,uint256,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC1155InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC1155InvalidArrayLength(uint256,uint256)\":[{\"details\":\"Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation. Used in batch transfers.\",\"params\":{\"idsLength\":\"Length of the array of token identifiers\",\"valuesLength\":\"Length of the array of token amounts\"}}],\"ERC1155InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC1155InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC1155InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC1155MissingApprovalForAll(address,address)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"owner\":\"Address of the current owner of a token.\"}}]},\"events\":{\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to `approved`.\"},\"TransferBatch(address,address,address,uint256[],uint256[])\":{\"details\":\"Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all transfers.\"},\"TransferSingle(address,address,address,uint256,uint256)\":{\"details\":\"Emitted when `value` amount of tokens of type `id` are transferred from `from` to `to` by `operator`.\"},\"URI(string,uint256)\":{\"details\":\"Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI. If an {URI} event was emitted for `id`, the standard https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value returned by {IERC1155MetadataURI-uri}.\"}},\"kind\":\"dev\",\"methods\":{\"balanceOf(address,uint256)\":{\"details\":\"See {IERC1155-balanceOf}.\"},\"balanceOfBatch(address[],uint256[])\":{\"details\":\"See {IERC1155-balanceOfBatch}. Requirements: - `accounts` and `ids` must have the same length.\"},\"constructor\":{\"details\":\"See {_setURI}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC1155-isApprovedForAll}.\"},\"safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)\":{\"details\":\"See {IERC1155-safeBatchTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,uint256,bytes)\":{\"details\":\"See {IERC1155-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC1155-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"uri(uint256)\":{\"details\":\"See {IERC1155MetadataURI-uri}. This implementation returns the same URI for *all* token types. It relies on the token type ID substitution mechanism https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the EIP]. Clients calling this function must replace the `\\\\{id\\\\}` substring with the actual token type ID.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC1155/ERC1155.sol\":\"ERC1155\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"@openzeppelin/contracts/token/ERC1155/ERC1155.sol\":{\"keccak256\":\"0xd9b0b8ee1ac6dfee14eb1ad4383a4739dbaa0f2036594bb3a16f0408085dadde\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6309805132e519162d1134c67df22dd963323a9208b4f41344a4c13ed63c1026\",\"dweb:/ipfs/QmTBPHnf6qbtAD4NVnKVFmubUHRqMDPLkseR6apxTUpsQo\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0x6caffc9cfdc623eca9f87a686071708af5d5c17454d65022843fdddbc53c0cce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ecf8c7ed1f8ff443c181f64496ae380ee02e61dcd2ed120e1e997837a926f182\",\"dweb:/ipfs/QmWASYTrZPF2MrcpC3EBmxx6RgtZ5Fr4jwrsmB7ZF7qhDC\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0xb69597a63b202e28401128bed6a6d259e8730191274471af7303eafb247881a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://25addbda49a578b3318130585601344c5149a5549d749adf88e9685349a46b23\",\"dweb:/ipfs/Qme2DuD8gpsve1ZvaSMQpBwMdpU7yAtekDwr7gUp8dX4zX\"]},\"@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol\":{\"keccak256\":\"0xe92b5e199b963d108ad6e06feeede151ba23849e0d064956535489ff967ffe68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://280e17738a67b06dae02fec32982bd48a8ab71d8df95e9975ae03532634bc522\",\"dweb:/ipfs/QmecjsNcFgy2mMjuNfRDkLpAYMRWnh5o73fw1Bj2rCso2z\"]},\"@openzeppelin/contracts/utils/Arrays.sol\":{\"keccak256\":\"0x8806d620b6571932b662cfd48fbd518d4f70df1f88a23b5724cacde64a77bda1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8043304c8f9e1c1dc4a41935efa067daa77ad7abbae1fda41f015d53fbf327a5\",\"dweb:/ipfs/QmTrF2hSkRZoN9EEu8zdEhBpGNZ7RxzCdXf9ydzc2HQ3tM\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/token/ERC1155/IERC1155.sol": { + "IERC1155": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + }, + { + "indexed": false, + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + } + ], + "name": "TransferBatch", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "TransferSingle", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "string", + "name": "value", + "type": "string" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "URI", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "accounts", + "type": "address[]" + }, + { + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + } + ], + "name": "balanceOfBatch", + "outputs": [ + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + }, + { + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeBatchTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "balanceOf(address,uint256)": "00fdd58e", + "balanceOfBatch(address[],uint256[])": "4e1273f4", + "isApprovedForAll(address,address)": "e985e9c5", + "safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)": "2eb2c2d6", + "safeTransferFrom(address,address,uint256,uint256,bytes)": "f242432a", + "setApprovalForAll(address,bool)": "a22cb465", + "supportsInterface(bytes4)": "01ffc9a7" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"TransferBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"TransferSingle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"URI\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"}],\"name\":\"balanceOfBatch\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeBatchTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Required interface of an ERC1155 compliant contract, as defined in the https://eips.ethereum.org/EIPS/eip-1155[EIP].\",\"events\":{\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to `approved`.\"},\"TransferBatch(address,address,address,uint256[],uint256[])\":{\"details\":\"Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all transfers.\"},\"TransferSingle(address,address,address,uint256,uint256)\":{\"details\":\"Emitted when `value` amount of tokens of type `id` are transferred from `from` to `to` by `operator`.\"},\"URI(string,uint256)\":{\"details\":\"Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI. If an {URI} event was emitted for `id`, the standard https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value returned by {IERC1155MetadataURI-uri}.\"}},\"kind\":\"dev\",\"methods\":{\"balanceOf(address,uint256)\":{\"details\":\"Returns the value of tokens of token type `id` owned by `account`. Requirements: - `account` cannot be the zero address.\"},\"balanceOfBatch(address[],uint256[])\":{\"details\":\"xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {balanceOf}. Requirements: - `accounts` and `ids` must have the same length.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns true if `operator` is approved to transfer ``account``'s tokens. See {setApprovalForAll}.\"},\"safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)\":{\"details\":\"xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {safeTransferFrom}. WARNING: This function can potentially allow a reentrancy attack when transferring tokens to an untrusted contract, when invoking {onERC1155BatchReceived} on the receiver. Ensure to follow the checks-effects-interactions pattern and consider employing reentrancy guards when interacting with untrusted contracts. Emits either a {TransferSingle} or a {TransferBatch} event, depending on the length of the array arguments. Requirements: - `ids` and `values` must have the same length. - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the acceptance magic value.\"},\"safeTransferFrom(address,address,uint256,uint256,bytes)\":{\"details\":\"Transfers a `value` amount of tokens of type `id` from `from` to `to`. WARNING: This function can potentially allow a reentrancy attack when transferring tokens to an untrusted contract, when invoking {onERC1155Received} on the receiver. Ensure to follow the checks-effects-interactions pattern and consider employing reentrancy guards when interacting with untrusted contracts. Emits a {TransferSingle} event. Requirements: - `to` cannot be the zero address. - If the caller is not `from`, it must have been approved to spend ``from``'s tokens via {setApprovalForAll}. - `from` must have a balance of tokens of type `id` of at least `value` amount. - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the acceptance magic value.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Grants or revokes permission to `operator` to transfer the caller's tokens, according to `approved`, Emits an {ApprovalForAll} event. Requirements: - `operator` cannot be the caller.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":\"IERC1155\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0x6caffc9cfdc623eca9f87a686071708af5d5c17454d65022843fdddbc53c0cce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ecf8c7ed1f8ff443c181f64496ae380ee02e61dcd2ed120e1e997837a926f182\",\"dweb:/ipfs/QmWASYTrZPF2MrcpC3EBmxx6RgtZ5Fr4jwrsmB7ZF7qhDC\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol": { + "IERC1155Receiver": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + }, + { + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "onERC1155BatchReceived", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "onERC1155Received", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)": "bc197c81", + "onERC1155Received(address,address,uint256,uint256,bytes)": "f23a6e61", + "supportsInterface(bytes4)": "01ffc9a7" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC1155BatchReceived\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC1155Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface that must be implemented by smart contracts in order to receive ERC-1155 token transfers.\",\"kind\":\"dev\",\"methods\":{\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\":{\"details\":\"Handles the receipt of a multiple ERC1155 token types. This function is called at the end of a `safeBatchTransferFrom` after the balances have been updated. NOTE: To accept the transfer(s), this must return `bytes4(keccak256(\\\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\\\"))` (i.e. 0xbc197c81, or its own function selector).\",\"params\":{\"data\":\"Additional data with no specified format\",\"from\":\"The address which previously owned the token\",\"ids\":\"An array containing ids of each token being transferred (order and length must match values array)\",\"operator\":\"The address which initiated the batch transfer (i.e. msg.sender)\",\"values\":\"An array containing amounts of each token being transferred (order and length must match ids array)\"},\"returns\":{\"_0\":\"`bytes4(keccak256(\\\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\\\"))` if transfer is allowed\"}},\"onERC1155Received(address,address,uint256,uint256,bytes)\":{\"details\":\"Handles the receipt of a single ERC1155 token type. This function is called at the end of a `safeTransferFrom` after the balance has been updated. NOTE: To accept the transfer, this must return `bytes4(keccak256(\\\"onERC1155Received(address,address,uint256,uint256,bytes)\\\"))` (i.e. 0xf23a6e61, or its own function selector).\",\"params\":{\"data\":\"Additional data with no specified format\",\"from\":\"The address which previously owned the token\",\"id\":\"The ID of the token being transferred\",\"operator\":\"The address which initiated the transfer (i.e. msg.sender)\",\"value\":\"The amount of tokens being transferred\"},\"returns\":{\"_0\":\"`bytes4(keccak256(\\\"onERC1155Received(address,address,uint256,uint256,bytes)\\\"))` if transfer is allowed\"}},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":\"IERC1155Receiver\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0xb69597a63b202e28401128bed6a6d259e8730191274471af7303eafb247881a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://25addbda49a578b3318130585601344c5149a5549d749adf88e9685349a46b23\",\"dweb:/ipfs/Qme2DuD8gpsve1ZvaSMQpBwMdpU7yAtekDwr7gUp8dX4zX\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol": { + "IERC1155MetadataURI": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + }, + { + "indexed": false, + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + } + ], + "name": "TransferBatch", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "TransferSingle", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "string", + "name": "value", + "type": "string" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "URI", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "accounts", + "type": "address[]" + }, + { + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + } + ], + "name": "balanceOfBatch", + "outputs": [ + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + }, + { + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeBatchTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "uri", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "balanceOf(address,uint256)": "00fdd58e", + "balanceOfBatch(address[],uint256[])": "4e1273f4", + "isApprovedForAll(address,address)": "e985e9c5", + "safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)": "2eb2c2d6", + "safeTransferFrom(address,address,uint256,uint256,bytes)": "f242432a", + "setApprovalForAll(address,bool)": "a22cb465", + "supportsInterface(bytes4)": "01ffc9a7", + "uri(uint256)": "0e89341c" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"TransferBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"TransferSingle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"URI\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"}],\"name\":\"balanceOfBatch\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeBatchTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"uri\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the optional ERC1155MetadataExtension interface, as defined in the https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[EIP].\",\"events\":{\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to `approved`.\"},\"TransferBatch(address,address,address,uint256[],uint256[])\":{\"details\":\"Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all transfers.\"},\"TransferSingle(address,address,address,uint256,uint256)\":{\"details\":\"Emitted when `value` amount of tokens of type `id` are transferred from `from` to `to` by `operator`.\"},\"URI(string,uint256)\":{\"details\":\"Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI. If an {URI} event was emitted for `id`, the standard https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value returned by {IERC1155MetadataURI-uri}.\"}},\"kind\":\"dev\",\"methods\":{\"balanceOf(address,uint256)\":{\"details\":\"Returns the value of tokens of token type `id` owned by `account`. Requirements: - `account` cannot be the zero address.\"},\"balanceOfBatch(address[],uint256[])\":{\"details\":\"xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {balanceOf}. Requirements: - `accounts` and `ids` must have the same length.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns true if `operator` is approved to transfer ``account``'s tokens. See {setApprovalForAll}.\"},\"safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)\":{\"details\":\"xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {safeTransferFrom}. WARNING: This function can potentially allow a reentrancy attack when transferring tokens to an untrusted contract, when invoking {onERC1155BatchReceived} on the receiver. Ensure to follow the checks-effects-interactions pattern and consider employing reentrancy guards when interacting with untrusted contracts. Emits either a {TransferSingle} or a {TransferBatch} event, depending on the length of the array arguments. Requirements: - `ids` and `values` must have the same length. - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the acceptance magic value.\"},\"safeTransferFrom(address,address,uint256,uint256,bytes)\":{\"details\":\"Transfers a `value` amount of tokens of type `id` from `from` to `to`. WARNING: This function can potentially allow a reentrancy attack when transferring tokens to an untrusted contract, when invoking {onERC1155Received} on the receiver. Ensure to follow the checks-effects-interactions pattern and consider employing reentrancy guards when interacting with untrusted contracts. Emits a {TransferSingle} event. Requirements: - `to` cannot be the zero address. - If the caller is not `from`, it must have been approved to spend ``from``'s tokens via {setApprovalForAll}. - `from` must have a balance of tokens of type `id` of at least `value` amount. - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the acceptance magic value.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Grants or revokes permission to `operator` to transfer the caller's tokens, according to `approved`, Emits an {ApprovalForAll} event. Requirements: - `operator` cannot be the caller.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"uri(uint256)\":{\"details\":\"Returns the URI for token type `id`. If the `\\\\{id\\\\}` substring is present in the URI, it must be replaced by clients with the actual token type ID.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol\":\"IERC1155MetadataURI\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0x6caffc9cfdc623eca9f87a686071708af5d5c17454d65022843fdddbc53c0cce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ecf8c7ed1f8ff443c181f64496ae380ee02e61dcd2ed120e1e997837a926f182\",\"dweb:/ipfs/QmWASYTrZPF2MrcpC3EBmxx6RgtZ5Fr4jwrsmB7ZF7qhDC\"]},\"@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol\":{\"keccak256\":\"0xe92b5e199b963d108ad6e06feeede151ba23849e0d064956535489ff967ffe68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://280e17738a67b06dae02fec32982bd48a8ab71d8df95e9975ae03532634bc522\",\"dweb:/ipfs/QmecjsNcFgy2mMjuNfRDkLpAYMRWnh5o73fw1Bj2rCso2z\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/utils/Arrays.sol": { + "Arrays": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a5e38ab4ed780c0bbd45f12e9dc818f8aee559d3b37c5a74be955ff54d94926164736f6c634300081a0033", + "opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA5 0xE3 DUP11 0xB4 0xED PUSH25 0xC0BBD45F12E9DC818F8AEE559D3B37C5A74BE955FF54D9492 PUSH2 0x6473 PUSH16 0x6C634300081A00330000000000000000 ", + "sourceMap": "276:4526:7:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a5e38ab4ed780c0bbd45f12e9dc818f8aee559d3b37c5a74be955ff54d94926164736f6c634300081a0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA5 0xE3 DUP11 0xB4 0xED PUSH25 0xC0BBD45F12E9DC818F8AEE559D3B37C5A74BE955FF54D9492 PUSH2 0x6473 PUSH16 0x6C634300081A00330000000000000000 ", + "sourceMap": "276:4526:7:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Collection of functions related to array types.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Arrays.sol\":\"Arrays\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Arrays.sol\":{\"keccak256\":\"0x8806d620b6571932b662cfd48fbd518d4f70df1f88a23b5724cacde64a77bda1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8043304c8f9e1c1dc4a41935efa067daa77ad7abbae1fda41f015d53fbf327a5\",\"dweb:/ipfs/QmTrF2hSkRZoN9EEu8zdEhBpGNZ7RxzCdXf9ydzc2HQ3tM\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/utils/Context.sol": { + "Context": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Context.sol\":\"Context\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/utils/StorageSlot.sol": { + "StorageSlot": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201a4bc2888a2d930728f71fd687a9873d474795c5e763ce16209723c5c15981d664736f6c634300081a0033", + "opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 BYTE 0x4B 0xC2 DUP9 DUP11 0x2D SWAP4 SMOD 0x28 0xF7 0x1F 0xD6 DUP8 0xA9 DUP8 RETURNDATASIZE SELFBALANCE SELFBALANCE SWAP6 0xC5 0xE7 PUSH4 0xCE162097 0x23 0xC5 0xC1 MSIZE DUP2 0xD6 PUSH5 0x736F6C6343 STOP ADDMOD BYTE STOP CALLER ", + "sourceMap": "1245:2685:9:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201a4bc2888a2d930728f71fd687a9873d474795c5e763ce16209723c5c15981d664736f6c634300081a0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 BYTE 0x4B 0xC2 DUP9 DUP11 0x2D SWAP4 SMOD 0x28 0xF7 0x1F 0xD6 DUP8 0xA9 DUP8 RETURNDATASIZE SELFBALANCE SELFBALANCE SWAP6 0xC5 0xE7 PUSH4 0xCE162097 0x23 0xC5 0xC1 MSIZE DUP2 0xD6 PUSH5 0x736F6C6343 STOP ADDMOD BYTE STOP CALLER ", + "sourceMap": "1245:2685:9:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library for reading and writing primitive types to specific storage slots. Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts. This library helps with reading and writing to such slots without the need for inline assembly. The functions in this library return Slot structs that contain a `value` member that can be used to read or write. Example usage to set ERC1967 implementation slot: ```solidity contract ERC1967 { bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; function _getImplementation() internal view returns (address) { return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value; } function _setImplementation(address newImplementation) internal { require(newImplementation.code.length > 0); StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation; } } ```\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/StorageSlot.sol\":\"StorageSlot\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/utils/Strings.sol": { + "Strings": { + "abi": [ + { + "inputs": [ + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "length", + "type": "uint256" + } + ], + "name": "StringsInsufficientHexLength", + "type": "error" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e0e72875b864f53a3c539f0dfde34d53065df50d962253ee601271522bd18aa964736f6c634300081a0033", + "opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE0 0xE7 0x28 PUSH22 0xB864F53A3C539F0DFDE34D53065DF50D962253EE6012 PUSH18 0x522BD18AA964736F6C634300081A00330000 ", + "sourceMap": "251:2847:10:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e0e72875b864f53a3c539f0dfde34d53065df50d962253ee601271522bd18aa964736f6c634300081a0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE0 0xE7 0x28 PUSH22 0xB864F53A3C539F0DFDE34D53065DF50D962253EE6012 PUSH18 0x522BD18AA964736F6C634300081A00330000 ", + "sourceMap": "251:2847:10:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"StringsInsufficientHexLength\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"String operations.\",\"errors\":{\"StringsInsufficientHexLength(uint256,uint256)\":[{\"details\":\"The `value` string doesn't fit in the specified `length`.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Strings.sol\":\"Strings\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/utils/introspection/ERC165.sol": { + "ERC165": { + "abi": [ + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "supportsInterface(bytes4)": "01ffc9a7" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC165} interface. Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check for the additional interface id that will be supported. For example: ```solidity function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); } ```\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":\"ERC165\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/utils/introspection/ERC165Checker.sol": { + "ERC165Checker": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220abca560f01582e1c555c4f7ecd2b3772963db14131a5d165691a3b481984eab264736f6c634300081a0033", + "opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xAB 0xCA JUMP 0xF ADD PC 0x2E SHR SSTORE TLOAD 0x4F PUSH31 0xCD2B3772963DB14131A5D165691A3B481984EAB264736F6C634300081A0033 ", + "sourceMap": "465:4566:12:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220abca560f01582e1c555c4f7ecd2b3772963db14131a5d165691a3b481984eab264736f6c634300081a0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xAB 0xCA JUMP 0xF ADD PC 0x2E SHR SSTORE TLOAD 0x4F PUSH31 0xCD2B3772963DB14131A5D165691A3B481984EAB264736F6C634300081A0033 ", + "sourceMap": "465:4566:12:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library used to query support of an interface declared via {IERC165}. Note that these functions return the actual result of the query: they do not `revert` if an interface is not supported. It is up to the caller to decide what to do in these cases.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/introspection/ERC165Checker.sol\":\"ERC165Checker\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0xac3d50e321a48a40b4496970ce725900f13aeb2255b7c1203f5adbe98c4a911a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1d7b235b578347dce2d831a76f122e820a7db7e73fd2e47f13bafdcd61c5b066\",\"dweb:/ipfs/QmVAELwambfJa55HfiCoz1kFFh7iYwRYeW5x8si6AFM4iX\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/utils/introspection/IERC165.sol": { + "IERC165": { + "abi": [ + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "supportsInterface(bytes4)": "01ffc9a7" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[EIP]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":\"IERC165\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/utils/math/Math.sol": { + "Math": { + "abi": [ + { + "inputs": [], + "name": "MathOverflowedMulDiv", + "type": "error" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122073bc26c1c0364e82c73ceb155aaf560608e8f19c0d7353e3374fd24b4f182a2864736f6c634300081a0033", + "opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH20 0xBC26C1C0364E82C73CEB155AAF560608E8F19C0D PUSH20 0x53E3374FD24B4F182A2864736F6C634300081A00 CALLER ", + "sourceMap": "203:14914:14:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122073bc26c1c0364e82c73ceb155aaf560608e8f19c0d7353e3374fd24b4f182a2864736f6c634300081a0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH20 0xBC26C1C0364E82C73CEB155AAF560608E8F19C0D PUSH20 0x53E3374FD24B4F182A2864736F6C634300081A00 CALLER ", + "sourceMap": "203:14914:14:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"MathOverflowedMulDiv\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard math utilities missing in the Solidity language.\",\"errors\":{\"MathOverflowedMulDiv()\":[{\"details\":\"Muldiv operation overflow.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/Math.sol\":\"Math\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/utils/math/SignedMath.sol": { + "SignedMath": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b0a59f8e7b021f06d1fd412a1b4a85ed27707ba8e3837ea55bb2db3f3cc7a7e764736f6c634300081a0033", + "opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB0 0xA5 SWAP16 DUP15 PUSH28 0x21F06D1FD412A1B4A85ED27707BA8E3837EA55BB2DB3F3CC7A7E764 PUSH20 0x6F6C634300081A00330000000000000000000000 ", + "sourceMap": "216:1047:15:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b0a59f8e7b021f06d1fd412a1b4a85ed27707ba8e3837ea55bb2db3f3cc7a7e764736f6c634300081a0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB0 0xA5 SWAP16 DUP15 PUSH28 0x21F06D1FD412A1B4A85ED27707BA8E3837EA55BB2DB3F3CC7A7E764 PUSH20 0x6F6C634300081A00330000000000000000000000 ", + "sourceMap": "216:1047:15:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Standard signed math utilities missing in the Solidity language.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/SignedMath.sol\":\"SignedMath\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]}},\"version\":1}" + } + }, + "contracts/Engagement.sol": { + "Engagement": { + "abi": [ + { + "inputs": [ + { + "internalType": "string", + "name": "tokenURI_", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "AccessControlBadConfirmation", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "neededRole", + "type": "bytes32" + } + ], + "name": "AccessControlUnauthorizedAccount", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC1155InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC1155InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "idsLength", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "valuesLength", + "type": "uint256" + } + ], + "name": "ERC1155InvalidArrayLength", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "ERC1155InvalidOperator", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC1155InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC1155InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC1155MissingApprovalForAll", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "message", + "type": "string" + } + ], + "name": "EmptyAccountNotAllowed", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "MintLimit", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "NotAllowed", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "NotFound", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "message", + "type": "string" + } + ], + "name": "URIEmpty", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "string", + "name": "oldURI", + "type": "string" + }, + { + "indexed": false, + "internalType": "string", + "name": "newURI", + "type": "string" + } + ], + "name": "BaseURIUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Burn", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Issue", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Mint", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + }, + { + "indexed": false, + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + } + ], + "name": "TransferBatch", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "TransferSingle", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "string", + "name": "value", + "type": "string" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "URI", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "accounts", + "type": "address[]" + }, + { + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + } + ], + "name": "balanceOfBatch", + "outputs": [ + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "counter", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "issue", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "callerConfirmation", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + }, + { + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeBatchTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "newURI", + "type": "string" + } + ], + "name": "updateBaseURI", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "uri", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "string", + "name": "account", + "type": "string" + } + ], + "name": "uri", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_3758": { + "entryPoint": null, + "id": 3758, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_576": { + "entryPoint": null, + "id": 576, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_grantRole_256": { + "entryPoint": 229, + "id": 256, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@_msgSender_1942": { + "entryPoint": 590, + "id": 1942, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_setURI_1189": { + "entryPoint": 139, + "id": 1189, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@hasRole_80": { + "entryPoint": 483, + "id": 80, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@requireNonEmptyURI_3792": { + "entryPoint": 158, + "id": 3792, + "parameterSlots": 1, + "returnSlots": 0 + }, + "abi_decode_available_length_t_string_memory_ptr_fromMemory": { + "entryPoint": 859, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_t_string_memory_ptr_fromMemory": { + "entryPoint": 925, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_string_memory_ptr_fromMemory": { + "entryPoint": 971, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231_to_t_string_memory_ptr_fromStack": { + "entryPoint": 1857, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 1892, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_memory": { + "entryPoint": 741, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": 598, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_allocation_size_t_string_memory_ptr": { + "entryPoint": 768, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_dataslot_t_string_storage": { + "entryPoint": 1151, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 1044, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 1799, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "clean_up_bytearray_end_slots_t_string_storage": { + "entryPoint": 1448, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "cleanup_t_uint256": { + "entryPoint": 1283, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clear_storage_range_t_bytes1": { + "entryPoint": 1413, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "convert_t_uint256_to_t_uint256": { + "entryPoint": 1303, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { + "entryPoint": 1589, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 817, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "divide_by_32_ceil": { + "entryPoint": 1172, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_byte_array_length": { + "entryPoint": 1102, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_used_part_and_set_length_of_short_byte_array": { + "entryPoint": 1561, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "finalize_allocation": { + "entryPoint": 692, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "identity": { + "entryPoint": 1293, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "mask_bytes_dynamic": { + "entryPoint": 1531, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "panic_error_0x22": { + "entryPoint": 1055, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 645, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "prepare_store_t_uint256": { + "entryPoint": 1337, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { + "entryPoint": 618, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": { + "entryPoint": 623, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": 613, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 608, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 628, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "shift_left_dynamic": { + "entryPoint": 1188, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "shift_right_unsigned_dynamic": { + "entryPoint": 1518, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "storage_set_to_zero_t_uint256": { + "entryPoint": 1389, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "store_literal_in_memory_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231": { + "entryPoint": 1816, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "update_byte_slice_dynamic32": { + "entryPoint": 1201, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "update_storage_value_t_uint256_to_t_uint256": { + "entryPoint": 1347, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "zero_value_for_split_t_uint256": { + "entryPoint": 1384, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:9394:18", + "nodeType": "YulBlock", + "src": "0:9394:18", + "statements": [ + { + "body": { + "nativeSrc": "47:35:18", + "nodeType": "YulBlock", + "src": "47:35:18", + "statements": [ + { + "nativeSrc": "57:19:18", + "nodeType": "YulAssignment", + "src": "57:19:18", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "73:2:18", + "nodeType": "YulLiteral", + "src": "73:2:18", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "67:5:18", + "nodeType": "YulIdentifier", + "src": "67:5:18" + }, + "nativeSrc": "67:9:18", + "nodeType": "YulFunctionCall", + "src": "67:9:18" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "57:6:18", + "nodeType": "YulIdentifier", + "src": "57:6:18" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nativeSrc": "7:75:18", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "40:6:18", + "nodeType": "YulTypedName", + "src": "40:6:18", + "type": "" + } + ], + "src": "7:75:18" + }, + { + "body": { + "nativeSrc": "177:28:18", + "nodeType": "YulBlock", + "src": "177:28:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "194:1:18", + "nodeType": "YulLiteral", + "src": "194:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "197:1:18", + "nodeType": "YulLiteral", + "src": "197:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "187:6:18", + "nodeType": "YulIdentifier", + "src": "187:6:18" + }, + "nativeSrc": "187:12:18", + "nodeType": "YulFunctionCall", + "src": "187:12:18" + }, + "nativeSrc": "187:12:18", + "nodeType": "YulExpressionStatement", + "src": "187:12:18" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "88:117:18", + "nodeType": "YulFunctionDefinition", + "src": "88:117:18" + }, + { + "body": { + "nativeSrc": "300:28:18", + "nodeType": "YulBlock", + "src": "300:28:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "317:1:18", + "nodeType": "YulLiteral", + "src": "317:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "320:1:18", + "nodeType": "YulLiteral", + "src": "320:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "310:6:18", + "nodeType": "YulIdentifier", + "src": "310:6:18" + }, + "nativeSrc": "310:12:18", + "nodeType": "YulFunctionCall", + "src": "310:12:18" + }, + "nativeSrc": "310:12:18", + "nodeType": "YulExpressionStatement", + "src": "310:12:18" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "211:117:18", + "nodeType": "YulFunctionDefinition", + "src": "211:117:18" + }, + { + "body": { + "nativeSrc": "423:28:18", + "nodeType": "YulBlock", + "src": "423:28:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "440:1:18", + "nodeType": "YulLiteral", + "src": "440:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "443:1:18", + "nodeType": "YulLiteral", + "src": "443:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "433:6:18", + "nodeType": "YulIdentifier", + "src": "433:6:18" + }, + "nativeSrc": "433:12:18", + "nodeType": "YulFunctionCall", + "src": "433:12:18" + }, + "nativeSrc": "433:12:18", + "nodeType": "YulExpressionStatement", + "src": "433:12:18" + } + ] + }, + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "334:117:18", + "nodeType": "YulFunctionDefinition", + "src": "334:117:18" + }, + { + "body": { + "nativeSrc": "546:28:18", + "nodeType": "YulBlock", + "src": "546:28:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "563:1:18", + "nodeType": "YulLiteral", + "src": "563:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "566:1:18", + "nodeType": "YulLiteral", + "src": "566:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "556:6:18", + "nodeType": "YulIdentifier", + "src": "556:6:18" + }, + "nativeSrc": "556:12:18", + "nodeType": "YulFunctionCall", + "src": "556:12:18" + }, + "nativeSrc": "556:12:18", + "nodeType": "YulExpressionStatement", + "src": "556:12:18" + } + ] + }, + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "457:117:18", + "nodeType": "YulFunctionDefinition", + "src": "457:117:18" + }, + { + "body": { + "nativeSrc": "628:54:18", + "nodeType": "YulBlock", + "src": "628:54:18", + "statements": [ + { + "nativeSrc": "638:38:18", + "nodeType": "YulAssignment", + "src": "638:38:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "656:5:18", + "nodeType": "YulIdentifier", + "src": "656:5:18" + }, + { + "kind": "number", + "nativeSrc": "663:2:18", + "nodeType": "YulLiteral", + "src": "663:2:18", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "652:3:18", + "nodeType": "YulIdentifier", + "src": "652:3:18" + }, + "nativeSrc": "652:14:18", + "nodeType": "YulFunctionCall", + "src": "652:14:18" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "672:2:18", + "nodeType": "YulLiteral", + "src": "672:2:18", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "668:3:18", + "nodeType": "YulIdentifier", + "src": "668:3:18" + }, + "nativeSrc": "668:7:18", + "nodeType": "YulFunctionCall", + "src": "668:7:18" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "648:3:18", + "nodeType": "YulIdentifier", + "src": "648:3:18" + }, + "nativeSrc": "648:28:18", + "nodeType": "YulFunctionCall", + "src": "648:28:18" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "638:6:18", + "nodeType": "YulIdentifier", + "src": "638:6:18" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nativeSrc": "580:102:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "611:5:18", + "nodeType": "YulTypedName", + "src": "611:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "621:6:18", + "nodeType": "YulTypedName", + "src": "621:6:18", + "type": "" + } + ], + "src": "580:102:18" + }, + { + "body": { + "nativeSrc": "716:152:18", + "nodeType": "YulBlock", + "src": "716:152:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "733:1:18", + "nodeType": "YulLiteral", + "src": "733:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "736:77:18", + "nodeType": "YulLiteral", + "src": "736:77:18", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "726:6:18", + "nodeType": "YulIdentifier", + "src": "726:6:18" + }, + "nativeSrc": "726:88:18", + "nodeType": "YulFunctionCall", + "src": "726:88:18" + }, + "nativeSrc": "726:88:18", + "nodeType": "YulExpressionStatement", + "src": "726:88:18" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "830:1:18", + "nodeType": "YulLiteral", + "src": "830:1:18", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "833:4:18", + "nodeType": "YulLiteral", + "src": "833:4:18", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "823:6:18", + "nodeType": "YulIdentifier", + "src": "823:6:18" + }, + "nativeSrc": "823:15:18", + "nodeType": "YulFunctionCall", + "src": "823:15:18" + }, + "nativeSrc": "823:15:18", + "nodeType": "YulExpressionStatement", + "src": "823:15:18" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "854:1:18", + "nodeType": "YulLiteral", + "src": "854:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "857:4:18", + "nodeType": "YulLiteral", + "src": "857:4:18", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "847:6:18", + "nodeType": "YulIdentifier", + "src": "847:6:18" + }, + "nativeSrc": "847:15:18", + "nodeType": "YulFunctionCall", + "src": "847:15:18" + }, + "nativeSrc": "847:15:18", + "nodeType": "YulExpressionStatement", + "src": "847:15:18" + } + ] + }, + "name": "panic_error_0x41", + "nativeSrc": "688:180:18", + "nodeType": "YulFunctionDefinition", + "src": "688:180:18" + }, + { + "body": { + "nativeSrc": "917:238:18", + "nodeType": "YulBlock", + "src": "917:238:18", + "statements": [ + { + "nativeSrc": "927:58:18", + "nodeType": "YulVariableDeclaration", + "src": "927:58:18", + "value": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "949:6:18", + "nodeType": "YulIdentifier", + "src": "949:6:18" + }, + { + "arguments": [ + { + "name": "size", + "nativeSrc": "979:4:18", + "nodeType": "YulIdentifier", + "src": "979:4:18" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "957:21:18", + "nodeType": "YulIdentifier", + "src": "957:21:18" + }, + "nativeSrc": "957:27:18", + "nodeType": "YulFunctionCall", + "src": "957:27:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "945:3:18", + "nodeType": "YulIdentifier", + "src": "945:3:18" + }, + "nativeSrc": "945:40:18", + "nodeType": "YulFunctionCall", + "src": "945:40:18" + }, + "variables": [ + { + "name": "newFreePtr", + "nativeSrc": "931:10:18", + "nodeType": "YulTypedName", + "src": "931:10:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "1096:22:18", + "nodeType": "YulBlock", + "src": "1096:22:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "1098:16:18", + "nodeType": "YulIdentifier", + "src": "1098:16:18" + }, + "nativeSrc": "1098:18:18", + "nodeType": "YulFunctionCall", + "src": "1098:18:18" + }, + "nativeSrc": "1098:18:18", + "nodeType": "YulExpressionStatement", + "src": "1098:18:18" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "1039:10:18", + "nodeType": "YulIdentifier", + "src": "1039:10:18" + }, + { + "kind": "number", + "nativeSrc": "1051:18:18", + "nodeType": "YulLiteral", + "src": "1051:18:18", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "1036:2:18", + "nodeType": "YulIdentifier", + "src": "1036:2:18" + }, + "nativeSrc": "1036:34:18", + "nodeType": "YulFunctionCall", + "src": "1036:34:18" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "1075:10:18", + "nodeType": "YulIdentifier", + "src": "1075:10:18" + }, + { + "name": "memPtr", + "nativeSrc": "1087:6:18", + "nodeType": "YulIdentifier", + "src": "1087:6:18" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "1072:2:18", + "nodeType": "YulIdentifier", + "src": "1072:2:18" + }, + "nativeSrc": "1072:22:18", + "nodeType": "YulFunctionCall", + "src": "1072:22:18" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "1033:2:18", + "nodeType": "YulIdentifier", + "src": "1033:2:18" + }, + "nativeSrc": "1033:62:18", + "nodeType": "YulFunctionCall", + "src": "1033:62:18" + }, + "nativeSrc": "1030:88:18", + "nodeType": "YulIf", + "src": "1030:88:18" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1134:2:18", + "nodeType": "YulLiteral", + "src": "1134:2:18", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nativeSrc": "1138:10:18", + "nodeType": "YulIdentifier", + "src": "1138:10:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1127:6:18", + "nodeType": "YulIdentifier", + "src": "1127:6:18" + }, + "nativeSrc": "1127:22:18", + "nodeType": "YulFunctionCall", + "src": "1127:22:18" + }, + "nativeSrc": "1127:22:18", + "nodeType": "YulExpressionStatement", + "src": "1127:22:18" + } + ] + }, + "name": "finalize_allocation", + "nativeSrc": "874:281:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "903:6:18", + "nodeType": "YulTypedName", + "src": "903:6:18", + "type": "" + }, + { + "name": "size", + "nativeSrc": "911:4:18", + "nodeType": "YulTypedName", + "src": "911:4:18", + "type": "" + } + ], + "src": "874:281:18" + }, + { + "body": { + "nativeSrc": "1202:88:18", + "nodeType": "YulBlock", + "src": "1202:88:18", + "statements": [ + { + "nativeSrc": "1212:30:18", + "nodeType": "YulAssignment", + "src": "1212:30:18", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_unbounded", + "nativeSrc": "1222:18:18", + "nodeType": "YulIdentifier", + "src": "1222:18:18" + }, + "nativeSrc": "1222:20:18", + "nodeType": "YulFunctionCall", + "src": "1222:20:18" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "1212:6:18", + "nodeType": "YulIdentifier", + "src": "1212:6:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "1271:6:18", + "nodeType": "YulIdentifier", + "src": "1271:6:18" + }, + { + "name": "size", + "nativeSrc": "1279:4:18", + "nodeType": "YulIdentifier", + "src": "1279:4:18" + } + ], + "functionName": { + "name": "finalize_allocation", + "nativeSrc": "1251:19:18", + "nodeType": "YulIdentifier", + "src": "1251:19:18" + }, + "nativeSrc": "1251:33:18", + "nodeType": "YulFunctionCall", + "src": "1251:33:18" + }, + "nativeSrc": "1251:33:18", + "nodeType": "YulExpressionStatement", + "src": "1251:33:18" + } + ] + }, + "name": "allocate_memory", + "nativeSrc": "1161:129:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "size", + "nativeSrc": "1186:4:18", + "nodeType": "YulTypedName", + "src": "1186:4:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "1195:6:18", + "nodeType": "YulTypedName", + "src": "1195:6:18", + "type": "" + } + ], + "src": "1161:129:18" + }, + { + "body": { + "nativeSrc": "1363:241:18", + "nodeType": "YulBlock", + "src": "1363:241:18", + "statements": [ + { + "body": { + "nativeSrc": "1468:22:18", + "nodeType": "YulBlock", + "src": "1468:22:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "1470:16:18", + "nodeType": "YulIdentifier", + "src": "1470:16:18" + }, + "nativeSrc": "1470:18:18", + "nodeType": "YulFunctionCall", + "src": "1470:18:18" + }, + "nativeSrc": "1470:18:18", + "nodeType": "YulExpressionStatement", + "src": "1470:18:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "1440:6:18", + "nodeType": "YulIdentifier", + "src": "1440:6:18" + }, + { + "kind": "number", + "nativeSrc": "1448:18:18", + "nodeType": "YulLiteral", + "src": "1448:18:18", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "1437:2:18", + "nodeType": "YulIdentifier", + "src": "1437:2:18" + }, + "nativeSrc": "1437:30:18", + "nodeType": "YulFunctionCall", + "src": "1437:30:18" + }, + "nativeSrc": "1434:56:18", + "nodeType": "YulIf", + "src": "1434:56:18" + }, + { + "nativeSrc": "1500:37:18", + "nodeType": "YulAssignment", + "src": "1500:37:18", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "1530:6:18", + "nodeType": "YulIdentifier", + "src": "1530:6:18" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "1508:21:18", + "nodeType": "YulIdentifier", + "src": "1508:21:18" + }, + "nativeSrc": "1508:29:18", + "nodeType": "YulFunctionCall", + "src": "1508:29:18" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "1500:4:18", + "nodeType": "YulIdentifier", + "src": "1500:4:18" + } + ] + }, + { + "nativeSrc": "1574:23:18", + "nodeType": "YulAssignment", + "src": "1574:23:18", + "value": { + "arguments": [ + { + "name": "size", + "nativeSrc": "1586:4:18", + "nodeType": "YulIdentifier", + "src": "1586:4:18" + }, + { + "kind": "number", + "nativeSrc": "1592:4:18", + "nodeType": "YulLiteral", + "src": "1592:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1582:3:18", + "nodeType": "YulIdentifier", + "src": "1582:3:18" + }, + "nativeSrc": "1582:15:18", + "nodeType": "YulFunctionCall", + "src": "1582:15:18" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "1574:4:18", + "nodeType": "YulIdentifier", + "src": "1574:4:18" + } + ] + } + ] + }, + "name": "array_allocation_size_t_string_memory_ptr", + "nativeSrc": "1296:308:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nativeSrc": "1347:6:18", + "nodeType": "YulTypedName", + "src": "1347:6:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nativeSrc": "1358:4:18", + "nodeType": "YulTypedName", + "src": "1358:4:18", + "type": "" + } + ], + "src": "1296:308:18" + }, + { + "body": { + "nativeSrc": "1672:186:18", + "nodeType": "YulBlock", + "src": "1672:186:18", + "statements": [ + { + "nativeSrc": "1683:10:18", + "nodeType": "YulVariableDeclaration", + "src": "1683:10:18", + "value": { + "kind": "number", + "nativeSrc": "1692:1:18", + "nodeType": "YulLiteral", + "src": "1692:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "1687:1:18", + "nodeType": "YulTypedName", + "src": "1687:1:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "1752:63:18", + "nodeType": "YulBlock", + "src": "1752:63:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "1777:3:18", + "nodeType": "YulIdentifier", + "src": "1777:3:18" + }, + { + "name": "i", + "nativeSrc": "1782:1:18", + "nodeType": "YulIdentifier", + "src": "1782:1:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1773:3:18", + "nodeType": "YulIdentifier", + "src": "1773:3:18" + }, + "nativeSrc": "1773:11:18", + "nodeType": "YulFunctionCall", + "src": "1773:11:18" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "1796:3:18", + "nodeType": "YulIdentifier", + "src": "1796:3:18" + }, + { + "name": "i", + "nativeSrc": "1801:1:18", + "nodeType": "YulIdentifier", + "src": "1801:1:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1792:3:18", + "nodeType": "YulIdentifier", + "src": "1792:3:18" + }, + "nativeSrc": "1792:11:18", + "nodeType": "YulFunctionCall", + "src": "1792:11:18" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1786:5:18", + "nodeType": "YulIdentifier", + "src": "1786:5:18" + }, + "nativeSrc": "1786:18:18", + "nodeType": "YulFunctionCall", + "src": "1786:18:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1766:6:18", + "nodeType": "YulIdentifier", + "src": "1766:6:18" + }, + "nativeSrc": "1766:39:18", + "nodeType": "YulFunctionCall", + "src": "1766:39:18" + }, + "nativeSrc": "1766:39:18", + "nodeType": "YulExpressionStatement", + "src": "1766:39:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "1713:1:18", + "nodeType": "YulIdentifier", + "src": "1713:1:18" + }, + { + "name": "length", + "nativeSrc": "1716:6:18", + "nodeType": "YulIdentifier", + "src": "1716:6:18" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "1710:2:18", + "nodeType": "YulIdentifier", + "src": "1710:2:18" + }, + "nativeSrc": "1710:13:18", + "nodeType": "YulFunctionCall", + "src": "1710:13:18" + }, + "nativeSrc": "1702:113:18", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "1724:19:18", + "nodeType": "YulBlock", + "src": "1724:19:18", + "statements": [ + { + "nativeSrc": "1726:15:18", + "nodeType": "YulAssignment", + "src": "1726:15:18", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "1735:1:18", + "nodeType": "YulIdentifier", + "src": "1735:1:18" + }, + { + "kind": "number", + "nativeSrc": "1738:2:18", + "nodeType": "YulLiteral", + "src": "1738:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1731:3:18", + "nodeType": "YulIdentifier", + "src": "1731:3:18" + }, + "nativeSrc": "1731:10:18", + "nodeType": "YulFunctionCall", + "src": "1731:10:18" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "1726:1:18", + "nodeType": "YulIdentifier", + "src": "1726:1:18" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "1706:3:18", + "nodeType": "YulBlock", + "src": "1706:3:18", + "statements": [] + }, + "src": "1702:113:18" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "1835:3:18", + "nodeType": "YulIdentifier", + "src": "1835:3:18" + }, + { + "name": "length", + "nativeSrc": "1840:6:18", + "nodeType": "YulIdentifier", + "src": "1840:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1831:3:18", + "nodeType": "YulIdentifier", + "src": "1831:3:18" + }, + "nativeSrc": "1831:16:18", + "nodeType": "YulFunctionCall", + "src": "1831:16:18" + }, + { + "kind": "number", + "nativeSrc": "1849:1:18", + "nodeType": "YulLiteral", + "src": "1849:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1824:6:18", + "nodeType": "YulIdentifier", + "src": "1824:6:18" + }, + "nativeSrc": "1824:27:18", + "nodeType": "YulFunctionCall", + "src": "1824:27:18" + }, + "nativeSrc": "1824:27:18", + "nodeType": "YulExpressionStatement", + "src": "1824:27:18" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "1610:248:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "1654:3:18", + "nodeType": "YulTypedName", + "src": "1654:3:18", + "type": "" + }, + { + "name": "dst", + "nativeSrc": "1659:3:18", + "nodeType": "YulTypedName", + "src": "1659:3:18", + "type": "" + }, + { + "name": "length", + "nativeSrc": "1664:6:18", + "nodeType": "YulTypedName", + "src": "1664:6:18", + "type": "" + } + ], + "src": "1610:248:18" + }, + { + "body": { + "nativeSrc": "1959:339:18", + "nodeType": "YulBlock", + "src": "1959:339:18", + "statements": [ + { + "nativeSrc": "1969:75:18", + "nodeType": "YulAssignment", + "src": "1969:75:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nativeSrc": "2036:6:18", + "nodeType": "YulIdentifier", + "src": "2036:6:18" + } + ], + "functionName": { + "name": "array_allocation_size_t_string_memory_ptr", + "nativeSrc": "1994:41:18", + "nodeType": "YulIdentifier", + "src": "1994:41:18" + }, + "nativeSrc": "1994:49:18", + "nodeType": "YulFunctionCall", + "src": "1994:49:18" + } + ], + "functionName": { + "name": "allocate_memory", + "nativeSrc": "1978:15:18", + "nodeType": "YulIdentifier", + "src": "1978:15:18" + }, + "nativeSrc": "1978:66:18", + "nodeType": "YulFunctionCall", + "src": "1978:66:18" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "1969:5:18", + "nodeType": "YulIdentifier", + "src": "1969:5:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nativeSrc": "2060:5:18", + "nodeType": "YulIdentifier", + "src": "2060:5:18" + }, + { + "name": "length", + "nativeSrc": "2067:6:18", + "nodeType": "YulIdentifier", + "src": "2067:6:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2053:6:18", + "nodeType": "YulIdentifier", + "src": "2053:6:18" + }, + "nativeSrc": "2053:21:18", + "nodeType": "YulFunctionCall", + "src": "2053:21:18" + }, + "nativeSrc": "2053:21:18", + "nodeType": "YulExpressionStatement", + "src": "2053:21:18" + }, + { + "nativeSrc": "2083:27:18", + "nodeType": "YulVariableDeclaration", + "src": "2083:27:18", + "value": { + "arguments": [ + { + "name": "array", + "nativeSrc": "2098:5:18", + "nodeType": "YulIdentifier", + "src": "2098:5:18" + }, + { + "kind": "number", + "nativeSrc": "2105:4:18", + "nodeType": "YulLiteral", + "src": "2105:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2094:3:18", + "nodeType": "YulIdentifier", + "src": "2094:3:18" + }, + "nativeSrc": "2094:16:18", + "nodeType": "YulFunctionCall", + "src": "2094:16:18" + }, + "variables": [ + { + "name": "dst", + "nativeSrc": "2087:3:18", + "nodeType": "YulTypedName", + "src": "2087:3:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "2148:83:18", + "nodeType": "YulBlock", + "src": "2148:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "2150:77:18", + "nodeType": "YulIdentifier", + "src": "2150:77:18" + }, + "nativeSrc": "2150:79:18", + "nodeType": "YulFunctionCall", + "src": "2150:79:18" + }, + "nativeSrc": "2150:79:18", + "nodeType": "YulExpressionStatement", + "src": "2150:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "2129:3:18", + "nodeType": "YulIdentifier", + "src": "2129:3:18" + }, + { + "name": "length", + "nativeSrc": "2134:6:18", + "nodeType": "YulIdentifier", + "src": "2134:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2125:3:18", + "nodeType": "YulIdentifier", + "src": "2125:3:18" + }, + "nativeSrc": "2125:16:18", + "nodeType": "YulFunctionCall", + "src": "2125:16:18" + }, + { + "name": "end", + "nativeSrc": "2143:3:18", + "nodeType": "YulIdentifier", + "src": "2143:3:18" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "2122:2:18", + "nodeType": "YulIdentifier", + "src": "2122:2:18" + }, + "nativeSrc": "2122:25:18", + "nodeType": "YulFunctionCall", + "src": "2122:25:18" + }, + "nativeSrc": "2119:112:18", + "nodeType": "YulIf", + "src": "2119:112:18" + }, + { + "expression": { + "arguments": [ + { + "name": "src", + "nativeSrc": "2275:3:18", + "nodeType": "YulIdentifier", + "src": "2275:3:18" + }, + { + "name": "dst", + "nativeSrc": "2280:3:18", + "nodeType": "YulIdentifier", + "src": "2280:3:18" + }, + { + "name": "length", + "nativeSrc": "2285:6:18", + "nodeType": "YulIdentifier", + "src": "2285:6:18" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "2240:34:18", + "nodeType": "YulIdentifier", + "src": "2240:34:18" + }, + "nativeSrc": "2240:52:18", + "nodeType": "YulFunctionCall", + "src": "2240:52:18" + }, + "nativeSrc": "2240:52:18", + "nodeType": "YulExpressionStatement", + "src": "2240:52:18" + } + ] + }, + "name": "abi_decode_available_length_t_string_memory_ptr_fromMemory", + "nativeSrc": "1864:434:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "1932:3:18", + "nodeType": "YulTypedName", + "src": "1932:3:18", + "type": "" + }, + { + "name": "length", + "nativeSrc": "1937:6:18", + "nodeType": "YulTypedName", + "src": "1937:6:18", + "type": "" + }, + { + "name": "end", + "nativeSrc": "1945:3:18", + "nodeType": "YulTypedName", + "src": "1945:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "1953:5:18", + "nodeType": "YulTypedName", + "src": "1953:5:18", + "type": "" + } + ], + "src": "1864:434:18" + }, + { + "body": { + "nativeSrc": "2391:282:18", + "nodeType": "YulBlock", + "src": "2391:282:18", + "statements": [ + { + "body": { + "nativeSrc": "2440:83:18", + "nodeType": "YulBlock", + "src": "2440:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "2442:77:18", + "nodeType": "YulIdentifier", + "src": "2442:77:18" + }, + "nativeSrc": "2442:79:18", + "nodeType": "YulFunctionCall", + "src": "2442:79:18" + }, + "nativeSrc": "2442:79:18", + "nodeType": "YulExpressionStatement", + "src": "2442:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "2419:6:18", + "nodeType": "YulIdentifier", + "src": "2419:6:18" + }, + { + "kind": "number", + "nativeSrc": "2427:4:18", + "nodeType": "YulLiteral", + "src": "2427:4:18", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2415:3:18", + "nodeType": "YulIdentifier", + "src": "2415:3:18" + }, + "nativeSrc": "2415:17:18", + "nodeType": "YulFunctionCall", + "src": "2415:17:18" + }, + { + "name": "end", + "nativeSrc": "2434:3:18", + "nodeType": "YulIdentifier", + "src": "2434:3:18" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "2411:3:18", + "nodeType": "YulIdentifier", + "src": "2411:3:18" + }, + "nativeSrc": "2411:27:18", + "nodeType": "YulFunctionCall", + "src": "2411:27:18" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "2404:6:18", + "nodeType": "YulIdentifier", + "src": "2404:6:18" + }, + "nativeSrc": "2404:35:18", + "nodeType": "YulFunctionCall", + "src": "2404:35:18" + }, + "nativeSrc": "2401:122:18", + "nodeType": "YulIf", + "src": "2401:122:18" + }, + { + "nativeSrc": "2532:27:18", + "nodeType": "YulVariableDeclaration", + "src": "2532:27:18", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "2552:6:18", + "nodeType": "YulIdentifier", + "src": "2552:6:18" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "2546:5:18", + "nodeType": "YulIdentifier", + "src": "2546:5:18" + }, + "nativeSrc": "2546:13:18", + "nodeType": "YulFunctionCall", + "src": "2546:13:18" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "2536:6:18", + "nodeType": "YulTypedName", + "src": "2536:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "2568:99:18", + "nodeType": "YulAssignment", + "src": "2568:99:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "2640:6:18", + "nodeType": "YulIdentifier", + "src": "2640:6:18" + }, + { + "kind": "number", + "nativeSrc": "2648:4:18", + "nodeType": "YulLiteral", + "src": "2648:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2636:3:18", + "nodeType": "YulIdentifier", + "src": "2636:3:18" + }, + "nativeSrc": "2636:17:18", + "nodeType": "YulFunctionCall", + "src": "2636:17:18" + }, + { + "name": "length", + "nativeSrc": "2655:6:18", + "nodeType": "YulIdentifier", + "src": "2655:6:18" + }, + { + "name": "end", + "nativeSrc": "2663:3:18", + "nodeType": "YulIdentifier", + "src": "2663:3:18" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_string_memory_ptr_fromMemory", + "nativeSrc": "2577:58:18", + "nodeType": "YulIdentifier", + "src": "2577:58:18" + }, + "nativeSrc": "2577:90:18", + "nodeType": "YulFunctionCall", + "src": "2577:90:18" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "2568:5:18", + "nodeType": "YulIdentifier", + "src": "2568:5:18" + } + ] + } + ] + }, + "name": "abi_decode_t_string_memory_ptr_fromMemory", + "nativeSrc": "2318:355:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "2369:6:18", + "nodeType": "YulTypedName", + "src": "2369:6:18", + "type": "" + }, + { + "name": "end", + "nativeSrc": "2377:3:18", + "nodeType": "YulTypedName", + "src": "2377:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "2385:5:18", + "nodeType": "YulTypedName", + "src": "2385:5:18", + "type": "" + } + ], + "src": "2318:355:18" + }, + { + "body": { + "nativeSrc": "2766:437:18", + "nodeType": "YulBlock", + "src": "2766:437:18", + "statements": [ + { + "body": { + "nativeSrc": "2812:83:18", + "nodeType": "YulBlock", + "src": "2812:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "2814:77:18", + "nodeType": "YulIdentifier", + "src": "2814:77:18" + }, + "nativeSrc": "2814:79:18", + "nodeType": "YulFunctionCall", + "src": "2814:79:18" + }, + "nativeSrc": "2814:79:18", + "nodeType": "YulExpressionStatement", + "src": "2814:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "2787:7:18", + "nodeType": "YulIdentifier", + "src": "2787:7:18" + }, + { + "name": "headStart", + "nativeSrc": "2796:9:18", + "nodeType": "YulIdentifier", + "src": "2796:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "2783:3:18", + "nodeType": "YulIdentifier", + "src": "2783:3:18" + }, + "nativeSrc": "2783:23:18", + "nodeType": "YulFunctionCall", + "src": "2783:23:18" + }, + { + "kind": "number", + "nativeSrc": "2808:2:18", + "nodeType": "YulLiteral", + "src": "2808:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "2779:3:18", + "nodeType": "YulIdentifier", + "src": "2779:3:18" + }, + "nativeSrc": "2779:32:18", + "nodeType": "YulFunctionCall", + "src": "2779:32:18" + }, + "nativeSrc": "2776:119:18", + "nodeType": "YulIf", + "src": "2776:119:18" + }, + { + "nativeSrc": "2905:291:18", + "nodeType": "YulBlock", + "src": "2905:291:18", + "statements": [ + { + "nativeSrc": "2920:38:18", + "nodeType": "YulVariableDeclaration", + "src": "2920:38:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2944:9:18", + "nodeType": "YulIdentifier", + "src": "2944:9:18" + }, + { + "kind": "number", + "nativeSrc": "2955:1:18", + "nodeType": "YulLiteral", + "src": "2955:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2940:3:18", + "nodeType": "YulIdentifier", + "src": "2940:3:18" + }, + "nativeSrc": "2940:17:18", + "nodeType": "YulFunctionCall", + "src": "2940:17:18" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "2934:5:18", + "nodeType": "YulIdentifier", + "src": "2934:5:18" + }, + "nativeSrc": "2934:24:18", + "nodeType": "YulFunctionCall", + "src": "2934:24:18" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "2924:6:18", + "nodeType": "YulTypedName", + "src": "2924:6:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "3005:83:18", + "nodeType": "YulBlock", + "src": "3005:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "3007:77:18", + "nodeType": "YulIdentifier", + "src": "3007:77:18" + }, + "nativeSrc": "3007:79:18", + "nodeType": "YulFunctionCall", + "src": "3007:79:18" + }, + "nativeSrc": "3007:79:18", + "nodeType": "YulExpressionStatement", + "src": "3007:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "2977:6:18", + "nodeType": "YulIdentifier", + "src": "2977:6:18" + }, + { + "kind": "number", + "nativeSrc": "2985:18:18", + "nodeType": "YulLiteral", + "src": "2985:18:18", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "2974:2:18", + "nodeType": "YulIdentifier", + "src": "2974:2:18" + }, + "nativeSrc": "2974:30:18", + "nodeType": "YulFunctionCall", + "src": "2974:30:18" + }, + "nativeSrc": "2971:117:18", + "nodeType": "YulIf", + "src": "2971:117:18" + }, + { + "nativeSrc": "3102:84:18", + "nodeType": "YulAssignment", + "src": "3102:84:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3158:9:18", + "nodeType": "YulIdentifier", + "src": "3158:9:18" + }, + { + "name": "offset", + "nativeSrc": "3169:6:18", + "nodeType": "YulIdentifier", + "src": "3169:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3154:3:18", + "nodeType": "YulIdentifier", + "src": "3154:3:18" + }, + "nativeSrc": "3154:22:18", + "nodeType": "YulFunctionCall", + "src": "3154:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "3178:7:18", + "nodeType": "YulIdentifier", + "src": "3178:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr_fromMemory", + "nativeSrc": "3112:41:18", + "nodeType": "YulIdentifier", + "src": "3112:41:18" + }, + "nativeSrc": "3112:74:18", + "nodeType": "YulFunctionCall", + "src": "3112:74:18" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "3102:6:18", + "nodeType": "YulIdentifier", + "src": "3102:6:18" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_string_memory_ptr_fromMemory", + "nativeSrc": "2679:524:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "2736:9:18", + "nodeType": "YulTypedName", + "src": "2736:9:18", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "2747:7:18", + "nodeType": "YulTypedName", + "src": "2747:7:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "2759:6:18", + "nodeType": "YulTypedName", + "src": "2759:6:18", + "type": "" + } + ], + "src": "2679:524:18" + }, + { + "body": { + "nativeSrc": "3268:40:18", + "nodeType": "YulBlock", + "src": "3268:40:18", + "statements": [ + { + "nativeSrc": "3279:22:18", + "nodeType": "YulAssignment", + "src": "3279:22:18", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "3295:5:18", + "nodeType": "YulIdentifier", + "src": "3295:5:18" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "3289:5:18", + "nodeType": "YulIdentifier", + "src": "3289:5:18" + }, + "nativeSrc": "3289:12:18", + "nodeType": "YulFunctionCall", + "src": "3289:12:18" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "3279:6:18", + "nodeType": "YulIdentifier", + "src": "3279:6:18" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "3209:99:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "3251:5:18", + "nodeType": "YulTypedName", + "src": "3251:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "3261:6:18", + "nodeType": "YulTypedName", + "src": "3261:6:18", + "type": "" + } + ], + "src": "3209:99:18" + }, + { + "body": { + "nativeSrc": "3342:152:18", + "nodeType": "YulBlock", + "src": "3342:152:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3359:1:18", + "nodeType": "YulLiteral", + "src": "3359:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "3362:77:18", + "nodeType": "YulLiteral", + "src": "3362:77:18", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3352:6:18", + "nodeType": "YulIdentifier", + "src": "3352:6:18" + }, + "nativeSrc": "3352:88:18", + "nodeType": "YulFunctionCall", + "src": "3352:88:18" + }, + "nativeSrc": "3352:88:18", + "nodeType": "YulExpressionStatement", + "src": "3352:88:18" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3456:1:18", + "nodeType": "YulLiteral", + "src": "3456:1:18", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "3459:4:18", + "nodeType": "YulLiteral", + "src": "3459:4:18", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3449:6:18", + "nodeType": "YulIdentifier", + "src": "3449:6:18" + }, + "nativeSrc": "3449:15:18", + "nodeType": "YulFunctionCall", + "src": "3449:15:18" + }, + "nativeSrc": "3449:15:18", + "nodeType": "YulExpressionStatement", + "src": "3449:15:18" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3480:1:18", + "nodeType": "YulLiteral", + "src": "3480:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "3483:4:18", + "nodeType": "YulLiteral", + "src": "3483:4:18", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "3473:6:18", + "nodeType": "YulIdentifier", + "src": "3473:6:18" + }, + "nativeSrc": "3473:15:18", + "nodeType": "YulFunctionCall", + "src": "3473:15:18" + }, + "nativeSrc": "3473:15:18", + "nodeType": "YulExpressionStatement", + "src": "3473:15:18" + } + ] + }, + "name": "panic_error_0x22", + "nativeSrc": "3314:180:18", + "nodeType": "YulFunctionDefinition", + "src": "3314:180:18" + }, + { + "body": { + "nativeSrc": "3551:269:18", + "nodeType": "YulBlock", + "src": "3551:269:18", + "statements": [ + { + "nativeSrc": "3561:22:18", + "nodeType": "YulAssignment", + "src": "3561:22:18", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "3575:4:18", + "nodeType": "YulIdentifier", + "src": "3575:4:18" + }, + { + "kind": "number", + "nativeSrc": "3581:1:18", + "nodeType": "YulLiteral", + "src": "3581:1:18", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "3571:3:18", + "nodeType": "YulIdentifier", + "src": "3571:3:18" + }, + "nativeSrc": "3571:12:18", + "nodeType": "YulFunctionCall", + "src": "3571:12:18" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "3561:6:18", + "nodeType": "YulIdentifier", + "src": "3561:6:18" + } + ] + }, + { + "nativeSrc": "3592:38:18", + "nodeType": "YulVariableDeclaration", + "src": "3592:38:18", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "3622:4:18", + "nodeType": "YulIdentifier", + "src": "3622:4:18" + }, + { + "kind": "number", + "nativeSrc": "3628:1:18", + "nodeType": "YulLiteral", + "src": "3628:1:18", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "3618:3:18", + "nodeType": "YulIdentifier", + "src": "3618:3:18" + }, + "nativeSrc": "3618:12:18", + "nodeType": "YulFunctionCall", + "src": "3618:12:18" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "3596:18:18", + "nodeType": "YulTypedName", + "src": "3596:18:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "3669:51:18", + "nodeType": "YulBlock", + "src": "3669:51:18", + "statements": [ + { + "nativeSrc": "3683:27:18", + "nodeType": "YulAssignment", + "src": "3683:27:18", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "3697:6:18", + "nodeType": "YulIdentifier", + "src": "3697:6:18" + }, + { + "kind": "number", + "nativeSrc": "3705:4:18", + "nodeType": "YulLiteral", + "src": "3705:4:18", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "3693:3:18", + "nodeType": "YulIdentifier", + "src": "3693:3:18" + }, + "nativeSrc": "3693:17:18", + "nodeType": "YulFunctionCall", + "src": "3693:17:18" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "3683:6:18", + "nodeType": "YulIdentifier", + "src": "3683:6:18" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "3649:18:18", + "nodeType": "YulIdentifier", + "src": "3649:18:18" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "3642:6:18", + "nodeType": "YulIdentifier", + "src": "3642:6:18" + }, + "nativeSrc": "3642:26:18", + "nodeType": "YulFunctionCall", + "src": "3642:26:18" + }, + "nativeSrc": "3639:81:18", + "nodeType": "YulIf", + "src": "3639:81:18" + }, + { + "body": { + "nativeSrc": "3772:42:18", + "nodeType": "YulBlock", + "src": "3772:42:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nativeSrc": "3786:16:18", + "nodeType": "YulIdentifier", + "src": "3786:16:18" + }, + "nativeSrc": "3786:18:18", + "nodeType": "YulFunctionCall", + "src": "3786:18:18" + }, + "nativeSrc": "3786:18:18", + "nodeType": "YulExpressionStatement", + "src": "3786:18:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "3736:18:18", + "nodeType": "YulIdentifier", + "src": "3736:18:18" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "3759:6:18", + "nodeType": "YulIdentifier", + "src": "3759:6:18" + }, + { + "kind": "number", + "nativeSrc": "3767:2:18", + "nodeType": "YulLiteral", + "src": "3767:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "3756:2:18", + "nodeType": "YulIdentifier", + "src": "3756:2:18" + }, + "nativeSrc": "3756:14:18", + "nodeType": "YulFunctionCall", + "src": "3756:14:18" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "3733:2:18", + "nodeType": "YulIdentifier", + "src": "3733:2:18" + }, + "nativeSrc": "3733:38:18", + "nodeType": "YulFunctionCall", + "src": "3733:38:18" + }, + "nativeSrc": "3730:84:18", + "nodeType": "YulIf", + "src": "3730:84:18" + } + ] + }, + "name": "extract_byte_array_length", + "nativeSrc": "3500:320:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "3535:4:18", + "nodeType": "YulTypedName", + "src": "3535:4:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "3544:6:18", + "nodeType": "YulTypedName", + "src": "3544:6:18", + "type": "" + } + ], + "src": "3500:320:18" + }, + { + "body": { + "nativeSrc": "3880:87:18", + "nodeType": "YulBlock", + "src": "3880:87:18", + "statements": [ + { + "nativeSrc": "3890:11:18", + "nodeType": "YulAssignment", + "src": "3890:11:18", + "value": { + "name": "ptr", + "nativeSrc": "3898:3:18", + "nodeType": "YulIdentifier", + "src": "3898:3:18" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "3890:4:18", + "nodeType": "YulIdentifier", + "src": "3890:4:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3918:1:18", + "nodeType": "YulLiteral", + "src": "3918:1:18", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nativeSrc": "3921:3:18", + "nodeType": "YulIdentifier", + "src": "3921:3:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3911:6:18", + "nodeType": "YulIdentifier", + "src": "3911:6:18" + }, + "nativeSrc": "3911:14:18", + "nodeType": "YulFunctionCall", + "src": "3911:14:18" + }, + "nativeSrc": "3911:14:18", + "nodeType": "YulExpressionStatement", + "src": "3911:14:18" + }, + { + "nativeSrc": "3934:26:18", + "nodeType": "YulAssignment", + "src": "3934:26:18", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3952:1:18", + "nodeType": "YulLiteral", + "src": "3952:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "3955:4:18", + "nodeType": "YulLiteral", + "src": "3955:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nativeSrc": "3942:9:18", + "nodeType": "YulIdentifier", + "src": "3942:9:18" + }, + "nativeSrc": "3942:18:18", + "nodeType": "YulFunctionCall", + "src": "3942:18:18" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "3934:4:18", + "nodeType": "YulIdentifier", + "src": "3934:4:18" + } + ] + } + ] + }, + "name": "array_dataslot_t_string_storage", + "nativeSrc": "3826:141:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nativeSrc": "3867:3:18", + "nodeType": "YulTypedName", + "src": "3867:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nativeSrc": "3875:4:18", + "nodeType": "YulTypedName", + "src": "3875:4:18", + "type": "" + } + ], + "src": "3826:141:18" + }, + { + "body": { + "nativeSrc": "4017:49:18", + "nodeType": "YulBlock", + "src": "4017:49:18", + "statements": [ + { + "nativeSrc": "4027:33:18", + "nodeType": "YulAssignment", + "src": "4027:33:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "4045:5:18", + "nodeType": "YulIdentifier", + "src": "4045:5:18" + }, + { + "kind": "number", + "nativeSrc": "4052:2:18", + "nodeType": "YulLiteral", + "src": "4052:2:18", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4041:3:18", + "nodeType": "YulIdentifier", + "src": "4041:3:18" + }, + "nativeSrc": "4041:14:18", + "nodeType": "YulFunctionCall", + "src": "4041:14:18" + }, + { + "kind": "number", + "nativeSrc": "4057:2:18", + "nodeType": "YulLiteral", + "src": "4057:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "4037:3:18", + "nodeType": "YulIdentifier", + "src": "4037:3:18" + }, + "nativeSrc": "4037:23:18", + "nodeType": "YulFunctionCall", + "src": "4037:23:18" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "4027:6:18", + "nodeType": "YulIdentifier", + "src": "4027:6:18" + } + ] + } + ] + }, + "name": "divide_by_32_ceil", + "nativeSrc": "3973:93:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4000:5:18", + "nodeType": "YulTypedName", + "src": "4000:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "4010:6:18", + "nodeType": "YulTypedName", + "src": "4010:6:18", + "type": "" + } + ], + "src": "3973:93:18" + }, + { + "body": { + "nativeSrc": "4125:54:18", + "nodeType": "YulBlock", + "src": "4125:54:18", + "statements": [ + { + "nativeSrc": "4135:37:18", + "nodeType": "YulAssignment", + "src": "4135:37:18", + "value": { + "arguments": [ + { + "name": "bits", + "nativeSrc": "4160:4:18", + "nodeType": "YulIdentifier", + "src": "4160:4:18" + }, + { + "name": "value", + "nativeSrc": "4166:5:18", + "nodeType": "YulIdentifier", + "src": "4166:5:18" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "4156:3:18", + "nodeType": "YulIdentifier", + "src": "4156:3:18" + }, + "nativeSrc": "4156:16:18", + "nodeType": "YulFunctionCall", + "src": "4156:16:18" + }, + "variableNames": [ + { + "name": "newValue", + "nativeSrc": "4135:8:18", + "nodeType": "YulIdentifier", + "src": "4135:8:18" + } + ] + } + ] + }, + "name": "shift_left_dynamic", + "nativeSrc": "4072:107:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nativeSrc": "4100:4:18", + "nodeType": "YulTypedName", + "src": "4100:4:18", + "type": "" + }, + { + "name": "value", + "nativeSrc": "4106:5:18", + "nodeType": "YulTypedName", + "src": "4106:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nativeSrc": "4116:8:18", + "nodeType": "YulTypedName", + "src": "4116:8:18", + "type": "" + } + ], + "src": "4072:107:18" + }, + { + "body": { + "nativeSrc": "4261:317:18", + "nodeType": "YulBlock", + "src": "4261:317:18", + "statements": [ + { + "nativeSrc": "4271:35:18", + "nodeType": "YulVariableDeclaration", + "src": "4271:35:18", + "value": { + "arguments": [ + { + "name": "shiftBytes", + "nativeSrc": "4292:10:18", + "nodeType": "YulIdentifier", + "src": "4292:10:18" + }, + { + "kind": "number", + "nativeSrc": "4304:1:18", + "nodeType": "YulLiteral", + "src": "4304:1:18", + "type": "", + "value": "8" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "4288:3:18", + "nodeType": "YulIdentifier", + "src": "4288:3:18" + }, + "nativeSrc": "4288:18:18", + "nodeType": "YulFunctionCall", + "src": "4288:18:18" + }, + "variables": [ + { + "name": "shiftBits", + "nativeSrc": "4275:9:18", + "nodeType": "YulTypedName", + "src": "4275:9:18", + "type": "" + } + ] + }, + { + "nativeSrc": "4315:109:18", + "nodeType": "YulVariableDeclaration", + "src": "4315:109:18", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nativeSrc": "4346:9:18", + "nodeType": "YulIdentifier", + "src": "4346:9:18" + }, + { + "kind": "number", + "nativeSrc": "4357:66:18", + "nodeType": "YulLiteral", + "src": "4357:66:18", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nativeSrc": "4327:18:18", + "nodeType": "YulIdentifier", + "src": "4327:18:18" + }, + "nativeSrc": "4327:97:18", + "nodeType": "YulFunctionCall", + "src": "4327:97:18" + }, + "variables": [ + { + "name": "mask", + "nativeSrc": "4319:4:18", + "nodeType": "YulTypedName", + "src": "4319:4:18", + "type": "" + } + ] + }, + { + "nativeSrc": "4433:51:18", + "nodeType": "YulAssignment", + "src": "4433:51:18", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nativeSrc": "4464:9:18", + "nodeType": "YulIdentifier", + "src": "4464:9:18" + }, + { + "name": "toInsert", + "nativeSrc": "4475:8:18", + "nodeType": "YulIdentifier", + "src": "4475:8:18" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nativeSrc": "4445:18:18", + "nodeType": "YulIdentifier", + "src": "4445:18:18" + }, + "nativeSrc": "4445:39:18", + "nodeType": "YulFunctionCall", + "src": "4445:39:18" + }, + "variableNames": [ + { + "name": "toInsert", + "nativeSrc": "4433:8:18", + "nodeType": "YulIdentifier", + "src": "4433:8:18" + } + ] + }, + { + "nativeSrc": "4493:30:18", + "nodeType": "YulAssignment", + "src": "4493:30:18", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "4506:5:18", + "nodeType": "YulIdentifier", + "src": "4506:5:18" + }, + { + "arguments": [ + { + "name": "mask", + "nativeSrc": "4517:4:18", + "nodeType": "YulIdentifier", + "src": "4517:4:18" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "4513:3:18", + "nodeType": "YulIdentifier", + "src": "4513:3:18" + }, + "nativeSrc": "4513:9:18", + "nodeType": "YulFunctionCall", + "src": "4513:9:18" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "4502:3:18", + "nodeType": "YulIdentifier", + "src": "4502:3:18" + }, + "nativeSrc": "4502:21:18", + "nodeType": "YulFunctionCall", + "src": "4502:21:18" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "4493:5:18", + "nodeType": "YulIdentifier", + "src": "4493:5:18" + } + ] + }, + { + "nativeSrc": "4532:40:18", + "nodeType": "YulAssignment", + "src": "4532:40:18", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "4545:5:18", + "nodeType": "YulIdentifier", + "src": "4545:5:18" + }, + { + "arguments": [ + { + "name": "toInsert", + "nativeSrc": "4556:8:18", + "nodeType": "YulIdentifier", + "src": "4556:8:18" + }, + { + "name": "mask", + "nativeSrc": "4566:4:18", + "nodeType": "YulIdentifier", + "src": "4566:4:18" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "4552:3:18", + "nodeType": "YulIdentifier", + "src": "4552:3:18" + }, + "nativeSrc": "4552:19:18", + "nodeType": "YulFunctionCall", + "src": "4552:19:18" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "4542:2:18", + "nodeType": "YulIdentifier", + "src": "4542:2:18" + }, + "nativeSrc": "4542:30:18", + "nodeType": "YulFunctionCall", + "src": "4542:30:18" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "4532:6:18", + "nodeType": "YulIdentifier", + "src": "4532:6:18" + } + ] + } + ] + }, + "name": "update_byte_slice_dynamic32", + "nativeSrc": "4185:393:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4222:5:18", + "nodeType": "YulTypedName", + "src": "4222:5:18", + "type": "" + }, + { + "name": "shiftBytes", + "nativeSrc": "4229:10:18", + "nodeType": "YulTypedName", + "src": "4229:10:18", + "type": "" + }, + { + "name": "toInsert", + "nativeSrc": "4241:8:18", + "nodeType": "YulTypedName", + "src": "4241:8:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "4254:6:18", + "nodeType": "YulTypedName", + "src": "4254:6:18", + "type": "" + } + ], + "src": "4185:393:18" + }, + { + "body": { + "nativeSrc": "4629:32:18", + "nodeType": "YulBlock", + "src": "4629:32:18", + "statements": [ + { + "nativeSrc": "4639:16:18", + "nodeType": "YulAssignment", + "src": "4639:16:18", + "value": { + "name": "value", + "nativeSrc": "4650:5:18", + "nodeType": "YulIdentifier", + "src": "4650:5:18" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "4639:7:18", + "nodeType": "YulIdentifier", + "src": "4639:7:18" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nativeSrc": "4584:77:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4611:5:18", + "nodeType": "YulTypedName", + "src": "4611:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "4621:7:18", + "nodeType": "YulTypedName", + "src": "4621:7:18", + "type": "" + } + ], + "src": "4584:77:18" + }, + { + "body": { + "nativeSrc": "4699:28:18", + "nodeType": "YulBlock", + "src": "4699:28:18", + "statements": [ + { + "nativeSrc": "4709:12:18", + "nodeType": "YulAssignment", + "src": "4709:12:18", + "value": { + "name": "value", + "nativeSrc": "4716:5:18", + "nodeType": "YulIdentifier", + "src": "4716:5:18" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "4709:3:18", + "nodeType": "YulIdentifier", + "src": "4709:3:18" + } + ] + } + ] + }, + "name": "identity", + "nativeSrc": "4667:60:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4685:5:18", + "nodeType": "YulTypedName", + "src": "4685:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "4695:3:18", + "nodeType": "YulTypedName", + "src": "4695:3:18", + "type": "" + } + ], + "src": "4667:60:18" + }, + { + "body": { + "nativeSrc": "4793:82:18", + "nodeType": "YulBlock", + "src": "4793:82:18", + "statements": [ + { + "nativeSrc": "4803:66:18", + "nodeType": "YulAssignment", + "src": "4803:66:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "4861:5:18", + "nodeType": "YulIdentifier", + "src": "4861:5:18" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "4843:17:18", + "nodeType": "YulIdentifier", + "src": "4843:17:18" + }, + "nativeSrc": "4843:24:18", + "nodeType": "YulFunctionCall", + "src": "4843:24:18" + } + ], + "functionName": { + "name": "identity", + "nativeSrc": "4834:8:18", + "nodeType": "YulIdentifier", + "src": "4834:8:18" + }, + "nativeSrc": "4834:34:18", + "nodeType": "YulFunctionCall", + "src": "4834:34:18" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "4816:17:18", + "nodeType": "YulIdentifier", + "src": "4816:17:18" + }, + "nativeSrc": "4816:53:18", + "nodeType": "YulFunctionCall", + "src": "4816:53:18" + }, + "variableNames": [ + { + "name": "converted", + "nativeSrc": "4803:9:18", + "nodeType": "YulIdentifier", + "src": "4803:9:18" + } + ] + } + ] + }, + "name": "convert_t_uint256_to_t_uint256", + "nativeSrc": "4733:142:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4773:5:18", + "nodeType": "YulTypedName", + "src": "4773:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nativeSrc": "4783:9:18", + "nodeType": "YulTypedName", + "src": "4783:9:18", + "type": "" + } + ], + "src": "4733:142:18" + }, + { + "body": { + "nativeSrc": "4928:28:18", + "nodeType": "YulBlock", + "src": "4928:28:18", + "statements": [ + { + "nativeSrc": "4938:12:18", + "nodeType": "YulAssignment", + "src": "4938:12:18", + "value": { + "name": "value", + "nativeSrc": "4945:5:18", + "nodeType": "YulIdentifier", + "src": "4945:5:18" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "4938:3:18", + "nodeType": "YulIdentifier", + "src": "4938:3:18" + } + ] + } + ] + }, + "name": "prepare_store_t_uint256", + "nativeSrc": "4881:75:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4914:5:18", + "nodeType": "YulTypedName", + "src": "4914:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "4924:3:18", + "nodeType": "YulTypedName", + "src": "4924:3:18", + "type": "" + } + ], + "src": "4881:75:18" + }, + { + "body": { + "nativeSrc": "5038:193:18", + "nodeType": "YulBlock", + "src": "5038:193:18", + "statements": [ + { + "nativeSrc": "5048:63:18", + "nodeType": "YulVariableDeclaration", + "src": "5048:63:18", + "value": { + "arguments": [ + { + "name": "value_0", + "nativeSrc": "5103:7:18", + "nodeType": "YulIdentifier", + "src": "5103:7:18" + } + ], + "functionName": { + "name": "convert_t_uint256_to_t_uint256", + "nativeSrc": "5072:30:18", + "nodeType": "YulIdentifier", + "src": "5072:30:18" + }, + "nativeSrc": "5072:39:18", + "nodeType": "YulFunctionCall", + "src": "5072:39:18" + }, + "variables": [ + { + "name": "convertedValue_0", + "nativeSrc": "5052:16:18", + "nodeType": "YulTypedName", + "src": "5052:16:18", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "5127:4:18", + "nodeType": "YulIdentifier", + "src": "5127:4:18" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nativeSrc": "5167:4:18", + "nodeType": "YulIdentifier", + "src": "5167:4:18" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "5161:5:18", + "nodeType": "YulIdentifier", + "src": "5161:5:18" + }, + "nativeSrc": "5161:11:18", + "nodeType": "YulFunctionCall", + "src": "5161:11:18" + }, + { + "name": "offset", + "nativeSrc": "5174:6:18", + "nodeType": "YulIdentifier", + "src": "5174:6:18" + }, + { + "arguments": [ + { + "name": "convertedValue_0", + "nativeSrc": "5206:16:18", + "nodeType": "YulIdentifier", + "src": "5206:16:18" + } + ], + "functionName": { + "name": "prepare_store_t_uint256", + "nativeSrc": "5182:23:18", + "nodeType": "YulIdentifier", + "src": "5182:23:18" + }, + "nativeSrc": "5182:41:18", + "nodeType": "YulFunctionCall", + "src": "5182:41:18" + } + ], + "functionName": { + "name": "update_byte_slice_dynamic32", + "nativeSrc": "5133:27:18", + "nodeType": "YulIdentifier", + "src": "5133:27:18" + }, + "nativeSrc": "5133:91:18", + "nodeType": "YulFunctionCall", + "src": "5133:91:18" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "5120:6:18", + "nodeType": "YulIdentifier", + "src": "5120:6:18" + }, + "nativeSrc": "5120:105:18", + "nodeType": "YulFunctionCall", + "src": "5120:105:18" + }, + "nativeSrc": "5120:105:18", + "nodeType": "YulExpressionStatement", + "src": "5120:105:18" + } + ] + }, + "name": "update_storage_value_t_uint256_to_t_uint256", + "nativeSrc": "4962:269:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "5015:4:18", + "nodeType": "YulTypedName", + "src": "5015:4:18", + "type": "" + }, + { + "name": "offset", + "nativeSrc": "5021:6:18", + "nodeType": "YulTypedName", + "src": "5021:6:18", + "type": "" + }, + { + "name": "value_0", + "nativeSrc": "5029:7:18", + "nodeType": "YulTypedName", + "src": "5029:7:18", + "type": "" + } + ], + "src": "4962:269:18" + }, + { + "body": { + "nativeSrc": "5286:24:18", + "nodeType": "YulBlock", + "src": "5286:24:18", + "statements": [ + { + "nativeSrc": "5296:8:18", + "nodeType": "YulAssignment", + "src": "5296:8:18", + "value": { + "kind": "number", + "nativeSrc": "5303:1:18", + "nodeType": "YulLiteral", + "src": "5303:1:18", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "5296:3:18", + "nodeType": "YulIdentifier", + "src": "5296:3:18" + } + ] + } + ] + }, + "name": "zero_value_for_split_t_uint256", + "nativeSrc": "5237:73:18", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "5282:3:18", + "nodeType": "YulTypedName", + "src": "5282:3:18", + "type": "" + } + ], + "src": "5237:73:18" + }, + { + "body": { + "nativeSrc": "5369:136:18", + "nodeType": "YulBlock", + "src": "5369:136:18", + "statements": [ + { + "nativeSrc": "5379:46:18", + "nodeType": "YulVariableDeclaration", + "src": "5379:46:18", + "value": { + "arguments": [], + "functionName": { + "name": "zero_value_for_split_t_uint256", + "nativeSrc": "5393:30:18", + "nodeType": "YulIdentifier", + "src": "5393:30:18" + }, + "nativeSrc": "5393:32:18", + "nodeType": "YulFunctionCall", + "src": "5393:32:18" + }, + "variables": [ + { + "name": "zero_0", + "nativeSrc": "5383:6:18", + "nodeType": "YulTypedName", + "src": "5383:6:18", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "5478:4:18", + "nodeType": "YulIdentifier", + "src": "5478:4:18" + }, + { + "name": "offset", + "nativeSrc": "5484:6:18", + "nodeType": "YulIdentifier", + "src": "5484:6:18" + }, + { + "name": "zero_0", + "nativeSrc": "5492:6:18", + "nodeType": "YulIdentifier", + "src": "5492:6:18" + } + ], + "functionName": { + "name": "update_storage_value_t_uint256_to_t_uint256", + "nativeSrc": "5434:43:18", + "nodeType": "YulIdentifier", + "src": "5434:43:18" + }, + "nativeSrc": "5434:65:18", + "nodeType": "YulFunctionCall", + "src": "5434:65:18" + }, + "nativeSrc": "5434:65:18", + "nodeType": "YulExpressionStatement", + "src": "5434:65:18" + } + ] + }, + "name": "storage_set_to_zero_t_uint256", + "nativeSrc": "5316:189:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "5355:4:18", + "nodeType": "YulTypedName", + "src": "5355:4:18", + "type": "" + }, + { + "name": "offset", + "nativeSrc": "5361:6:18", + "nodeType": "YulTypedName", + "src": "5361:6:18", + "type": "" + } + ], + "src": "5316:189:18" + }, + { + "body": { + "nativeSrc": "5561:136:18", + "nodeType": "YulBlock", + "src": "5561:136:18", + "statements": [ + { + "body": { + "nativeSrc": "5628:63:18", + "nodeType": "YulBlock", + "src": "5628:63:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "start", + "nativeSrc": "5672:5:18", + "nodeType": "YulIdentifier", + "src": "5672:5:18" + }, + { + "kind": "number", + "nativeSrc": "5679:1:18", + "nodeType": "YulLiteral", + "src": "5679:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "storage_set_to_zero_t_uint256", + "nativeSrc": "5642:29:18", + "nodeType": "YulIdentifier", + "src": "5642:29:18" + }, + "nativeSrc": "5642:39:18", + "nodeType": "YulFunctionCall", + "src": "5642:39:18" + }, + "nativeSrc": "5642:39:18", + "nodeType": "YulExpressionStatement", + "src": "5642:39:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "start", + "nativeSrc": "5581:5:18", + "nodeType": "YulIdentifier", + "src": "5581:5:18" + }, + { + "name": "end", + "nativeSrc": "5588:3:18", + "nodeType": "YulIdentifier", + "src": "5588:3:18" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "5578:2:18", + "nodeType": "YulIdentifier", + "src": "5578:2:18" + }, + "nativeSrc": "5578:14:18", + "nodeType": "YulFunctionCall", + "src": "5578:14:18" + }, + "nativeSrc": "5571:120:18", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "5593:26:18", + "nodeType": "YulBlock", + "src": "5593:26:18", + "statements": [ + { + "nativeSrc": "5595:22:18", + "nodeType": "YulAssignment", + "src": "5595:22:18", + "value": { + "arguments": [ + { + "name": "start", + "nativeSrc": "5608:5:18", + "nodeType": "YulIdentifier", + "src": "5608:5:18" + }, + { + "kind": "number", + "nativeSrc": "5615:1:18", + "nodeType": "YulLiteral", + "src": "5615:1:18", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5604:3:18", + "nodeType": "YulIdentifier", + "src": "5604:3:18" + }, + "nativeSrc": "5604:13:18", + "nodeType": "YulFunctionCall", + "src": "5604:13:18" + }, + "variableNames": [ + { + "name": "start", + "nativeSrc": "5595:5:18", + "nodeType": "YulIdentifier", + "src": "5595:5:18" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "5575:2:18", + "nodeType": "YulBlock", + "src": "5575:2:18", + "statements": [] + }, + "src": "5571:120:18" + } + ] + }, + "name": "clear_storage_range_t_bytes1", + "nativeSrc": "5511:186:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "start", + "nativeSrc": "5549:5:18", + "nodeType": "YulTypedName", + "src": "5549:5:18", + "type": "" + }, + { + "name": "end", + "nativeSrc": "5556:3:18", + "nodeType": "YulTypedName", + "src": "5556:3:18", + "type": "" + } + ], + "src": "5511:186:18" + }, + { + "body": { + "nativeSrc": "5782:464:18", + "nodeType": "YulBlock", + "src": "5782:464:18", + "statements": [ + { + "body": { + "nativeSrc": "5808:431:18", + "nodeType": "YulBlock", + "src": "5808:431:18", + "statements": [ + { + "nativeSrc": "5822:54:18", + "nodeType": "YulVariableDeclaration", + "src": "5822:54:18", + "value": { + "arguments": [ + { + "name": "array", + "nativeSrc": "5870:5:18", + "nodeType": "YulIdentifier", + "src": "5870:5:18" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nativeSrc": "5838:31:18", + "nodeType": "YulIdentifier", + "src": "5838:31:18" + }, + "nativeSrc": "5838:38:18", + "nodeType": "YulFunctionCall", + "src": "5838:38:18" + }, + "variables": [ + { + "name": "dataArea", + "nativeSrc": "5826:8:18", + "nodeType": "YulTypedName", + "src": "5826:8:18", + "type": "" + } + ] + }, + { + "nativeSrc": "5889:63:18", + "nodeType": "YulVariableDeclaration", + "src": "5889:63:18", + "value": { + "arguments": [ + { + "name": "dataArea", + "nativeSrc": "5912:8:18", + "nodeType": "YulIdentifier", + "src": "5912:8:18" + }, + { + "arguments": [ + { + "name": "startIndex", + "nativeSrc": "5940:10:18", + "nodeType": "YulIdentifier", + "src": "5940:10:18" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nativeSrc": "5922:17:18", + "nodeType": "YulIdentifier", + "src": "5922:17:18" + }, + "nativeSrc": "5922:29:18", + "nodeType": "YulFunctionCall", + "src": "5922:29:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5908:3:18", + "nodeType": "YulIdentifier", + "src": "5908:3:18" + }, + "nativeSrc": "5908:44:18", + "nodeType": "YulFunctionCall", + "src": "5908:44:18" + }, + "variables": [ + { + "name": "deleteStart", + "nativeSrc": "5893:11:18", + "nodeType": "YulTypedName", + "src": "5893:11:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "6109:27:18", + "nodeType": "YulBlock", + "src": "6109:27:18", + "statements": [ + { + "nativeSrc": "6111:23:18", + "nodeType": "YulAssignment", + "src": "6111:23:18", + "value": { + "name": "dataArea", + "nativeSrc": "6126:8:18", + "nodeType": "YulIdentifier", + "src": "6126:8:18" + }, + "variableNames": [ + { + "name": "deleteStart", + "nativeSrc": "6111:11:18", + "nodeType": "YulIdentifier", + "src": "6111:11:18" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nativeSrc": "6093:10:18", + "nodeType": "YulIdentifier", + "src": "6093:10:18" + }, + { + "kind": "number", + "nativeSrc": "6105:2:18", + "nodeType": "YulLiteral", + "src": "6105:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "6090:2:18", + "nodeType": "YulIdentifier", + "src": "6090:2:18" + }, + "nativeSrc": "6090:18:18", + "nodeType": "YulFunctionCall", + "src": "6090:18:18" + }, + "nativeSrc": "6087:49:18", + "nodeType": "YulIf", + "src": "6087:49:18" + }, + { + "expression": { + "arguments": [ + { + "name": "deleteStart", + "nativeSrc": "6178:11:18", + "nodeType": "YulIdentifier", + "src": "6178:11:18" + }, + { + "arguments": [ + { + "name": "dataArea", + "nativeSrc": "6195:8:18", + "nodeType": "YulIdentifier", + "src": "6195:8:18" + }, + { + "arguments": [ + { + "name": "len", + "nativeSrc": "6223:3:18", + "nodeType": "YulIdentifier", + "src": "6223:3:18" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nativeSrc": "6205:17:18", + "nodeType": "YulIdentifier", + "src": "6205:17:18" + }, + "nativeSrc": "6205:22:18", + "nodeType": "YulFunctionCall", + "src": "6205:22:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6191:3:18", + "nodeType": "YulIdentifier", + "src": "6191:3:18" + }, + "nativeSrc": "6191:37:18", + "nodeType": "YulFunctionCall", + "src": "6191:37:18" + } + ], + "functionName": { + "name": "clear_storage_range_t_bytes1", + "nativeSrc": "6149:28:18", + "nodeType": "YulIdentifier", + "src": "6149:28:18" + }, + "nativeSrc": "6149:80:18", + "nodeType": "YulFunctionCall", + "src": "6149:80:18" + }, + "nativeSrc": "6149:80:18", + "nodeType": "YulExpressionStatement", + "src": "6149:80:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "len", + "nativeSrc": "5799:3:18", + "nodeType": "YulIdentifier", + "src": "5799:3:18" + }, + { + "kind": "number", + "nativeSrc": "5804:2:18", + "nodeType": "YulLiteral", + "src": "5804:2:18", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "5796:2:18", + "nodeType": "YulIdentifier", + "src": "5796:2:18" + }, + "nativeSrc": "5796:11:18", + "nodeType": "YulFunctionCall", + "src": "5796:11:18" + }, + "nativeSrc": "5793:446:18", + "nodeType": "YulIf", + "src": "5793:446:18" + } + ] + }, + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nativeSrc": "5703:543:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "array", + "nativeSrc": "5758:5:18", + "nodeType": "YulTypedName", + "src": "5758:5:18", + "type": "" + }, + { + "name": "len", + "nativeSrc": "5765:3:18", + "nodeType": "YulTypedName", + "src": "5765:3:18", + "type": "" + }, + { + "name": "startIndex", + "nativeSrc": "5770:10:18", + "nodeType": "YulTypedName", + "src": "5770:10:18", + "type": "" + } + ], + "src": "5703:543:18" + }, + { + "body": { + "nativeSrc": "6315:54:18", + "nodeType": "YulBlock", + "src": "6315:54:18", + "statements": [ + { + "nativeSrc": "6325:37:18", + "nodeType": "YulAssignment", + "src": "6325:37:18", + "value": { + "arguments": [ + { + "name": "bits", + "nativeSrc": "6350:4:18", + "nodeType": "YulIdentifier", + "src": "6350:4:18" + }, + { + "name": "value", + "nativeSrc": "6356:5:18", + "nodeType": "YulIdentifier", + "src": "6356:5:18" + } + ], + "functionName": { + "name": "shr", + "nativeSrc": "6346:3:18", + "nodeType": "YulIdentifier", + "src": "6346:3:18" + }, + "nativeSrc": "6346:16:18", + "nodeType": "YulFunctionCall", + "src": "6346:16:18" + }, + "variableNames": [ + { + "name": "newValue", + "nativeSrc": "6325:8:18", + "nodeType": "YulIdentifier", + "src": "6325:8:18" + } + ] + } + ] + }, + "name": "shift_right_unsigned_dynamic", + "nativeSrc": "6252:117:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nativeSrc": "6290:4:18", + "nodeType": "YulTypedName", + "src": "6290:4:18", + "type": "" + }, + { + "name": "value", + "nativeSrc": "6296:5:18", + "nodeType": "YulTypedName", + "src": "6296:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nativeSrc": "6306:8:18", + "nodeType": "YulTypedName", + "src": "6306:8:18", + "type": "" + } + ], + "src": "6252:117:18" + }, + { + "body": { + "nativeSrc": "6426:118:18", + "nodeType": "YulBlock", + "src": "6426:118:18", + "statements": [ + { + "nativeSrc": "6436:68:18", + "nodeType": "YulVariableDeclaration", + "src": "6436:68:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6485:1:18", + "nodeType": "YulLiteral", + "src": "6485:1:18", + "type": "", + "value": "8" + }, + { + "name": "bytes", + "nativeSrc": "6488:5:18", + "nodeType": "YulIdentifier", + "src": "6488:5:18" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "6481:3:18", + "nodeType": "YulIdentifier", + "src": "6481:3:18" + }, + "nativeSrc": "6481:13:18", + "nodeType": "YulFunctionCall", + "src": "6481:13:18" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6500:1:18", + "nodeType": "YulLiteral", + "src": "6500:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "6496:3:18", + "nodeType": "YulIdentifier", + "src": "6496:3:18" + }, + "nativeSrc": "6496:6:18", + "nodeType": "YulFunctionCall", + "src": "6496:6:18" + } + ], + "functionName": { + "name": "shift_right_unsigned_dynamic", + "nativeSrc": "6452:28:18", + "nodeType": "YulIdentifier", + "src": "6452:28:18" + }, + "nativeSrc": "6452:51:18", + "nodeType": "YulFunctionCall", + "src": "6452:51:18" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "6448:3:18", + "nodeType": "YulIdentifier", + "src": "6448:3:18" + }, + "nativeSrc": "6448:56:18", + "nodeType": "YulFunctionCall", + "src": "6448:56:18" + }, + "variables": [ + { + "name": "mask", + "nativeSrc": "6440:4:18", + "nodeType": "YulTypedName", + "src": "6440:4:18", + "type": "" + } + ] + }, + { + "nativeSrc": "6513:25:18", + "nodeType": "YulAssignment", + "src": "6513:25:18", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "6527:4:18", + "nodeType": "YulIdentifier", + "src": "6527:4:18" + }, + { + "name": "mask", + "nativeSrc": "6533:4:18", + "nodeType": "YulIdentifier", + "src": "6533:4:18" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "6523:3:18", + "nodeType": "YulIdentifier", + "src": "6523:3:18" + }, + "nativeSrc": "6523:15:18", + "nodeType": "YulFunctionCall", + "src": "6523:15:18" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "6513:6:18", + "nodeType": "YulIdentifier", + "src": "6513:6:18" + } + ] + } + ] + }, + "name": "mask_bytes_dynamic", + "nativeSrc": "6375:169:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "6403:4:18", + "nodeType": "YulTypedName", + "src": "6403:4:18", + "type": "" + }, + { + "name": "bytes", + "nativeSrc": "6409:5:18", + "nodeType": "YulTypedName", + "src": "6409:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "6419:6:18", + "nodeType": "YulTypedName", + "src": "6419:6:18", + "type": "" + } + ], + "src": "6375:169:18" + }, + { + "body": { + "nativeSrc": "6630:214:18", + "nodeType": "YulBlock", + "src": "6630:214:18", + "statements": [ + { + "nativeSrc": "6763:37:18", + "nodeType": "YulAssignment", + "src": "6763:37:18", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "6790:4:18", + "nodeType": "YulIdentifier", + "src": "6790:4:18" + }, + { + "name": "len", + "nativeSrc": "6796:3:18", + "nodeType": "YulIdentifier", + "src": "6796:3:18" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nativeSrc": "6771:18:18", + "nodeType": "YulIdentifier", + "src": "6771:18:18" + }, + "nativeSrc": "6771:29:18", + "nodeType": "YulFunctionCall", + "src": "6771:29:18" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "6763:4:18", + "nodeType": "YulIdentifier", + "src": "6763:4:18" + } + ] + }, + { + "nativeSrc": "6809:29:18", + "nodeType": "YulAssignment", + "src": "6809:29:18", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "6820:4:18", + "nodeType": "YulIdentifier", + "src": "6820:4:18" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6830:1:18", + "nodeType": "YulLiteral", + "src": "6830:1:18", + "type": "", + "value": "2" + }, + { + "name": "len", + "nativeSrc": "6833:3:18", + "nodeType": "YulIdentifier", + "src": "6833:3:18" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "6826:3:18", + "nodeType": "YulIdentifier", + "src": "6826:3:18" + }, + "nativeSrc": "6826:11:18", + "nodeType": "YulFunctionCall", + "src": "6826:11:18" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "6817:2:18", + "nodeType": "YulIdentifier", + "src": "6817:2:18" + }, + "nativeSrc": "6817:21:18", + "nodeType": "YulFunctionCall", + "src": "6817:21:18" + }, + "variableNames": [ + { + "name": "used", + "nativeSrc": "6809:4:18", + "nodeType": "YulIdentifier", + "src": "6809:4:18" + } + ] + } + ] + }, + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nativeSrc": "6549:295:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "6611:4:18", + "nodeType": "YulTypedName", + "src": "6611:4:18", + "type": "" + }, + { + "name": "len", + "nativeSrc": "6617:3:18", + "nodeType": "YulTypedName", + "src": "6617:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "used", + "nativeSrc": "6625:4:18", + "nodeType": "YulTypedName", + "src": "6625:4:18", + "type": "" + } + ], + "src": "6549:295:18" + }, + { + "body": { + "nativeSrc": "6941:1303:18", + "nodeType": "YulBlock", + "src": "6941:1303:18", + "statements": [ + { + "nativeSrc": "6952:51:18", + "nodeType": "YulVariableDeclaration", + "src": "6952:51:18", + "value": { + "arguments": [ + { + "name": "src", + "nativeSrc": "6999:3:18", + "nodeType": "YulIdentifier", + "src": "6999:3:18" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "6966:32:18", + "nodeType": "YulIdentifier", + "src": "6966:32:18" + }, + "nativeSrc": "6966:37:18", + "nodeType": "YulFunctionCall", + "src": "6966:37:18" + }, + "variables": [ + { + "name": "newLen", + "nativeSrc": "6956:6:18", + "nodeType": "YulTypedName", + "src": "6956:6:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "7088:22:18", + "nodeType": "YulBlock", + "src": "7088:22:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "7090:16:18", + "nodeType": "YulIdentifier", + "src": "7090:16:18" + }, + "nativeSrc": "7090:18:18", + "nodeType": "YulFunctionCall", + "src": "7090:18:18" + }, + "nativeSrc": "7090:18:18", + "nodeType": "YulExpressionStatement", + "src": "7090:18:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "7060:6:18", + "nodeType": "YulIdentifier", + "src": "7060:6:18" + }, + { + "kind": "number", + "nativeSrc": "7068:18:18", + "nodeType": "YulLiteral", + "src": "7068:18:18", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "7057:2:18", + "nodeType": "YulIdentifier", + "src": "7057:2:18" + }, + "nativeSrc": "7057:30:18", + "nodeType": "YulFunctionCall", + "src": "7057:30:18" + }, + "nativeSrc": "7054:56:18", + "nodeType": "YulIf", + "src": "7054:56:18" + }, + { + "nativeSrc": "7120:52:18", + "nodeType": "YulVariableDeclaration", + "src": "7120:52:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nativeSrc": "7166:4:18", + "nodeType": "YulIdentifier", + "src": "7166:4:18" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "7160:5:18", + "nodeType": "YulIdentifier", + "src": "7160:5:18" + }, + "nativeSrc": "7160:11:18", + "nodeType": "YulFunctionCall", + "src": "7160:11:18" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nativeSrc": "7134:25:18", + "nodeType": "YulIdentifier", + "src": "7134:25:18" + }, + "nativeSrc": "7134:38:18", + "nodeType": "YulFunctionCall", + "src": "7134:38:18" + }, + "variables": [ + { + "name": "oldLen", + "nativeSrc": "7124:6:18", + "nodeType": "YulTypedName", + "src": "7124:6:18", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "7265:4:18", + "nodeType": "YulIdentifier", + "src": "7265:4:18" + }, + { + "name": "oldLen", + "nativeSrc": "7271:6:18", + "nodeType": "YulIdentifier", + "src": "7271:6:18" + }, + { + "name": "newLen", + "nativeSrc": "7279:6:18", + "nodeType": "YulIdentifier", + "src": "7279:6:18" + } + ], + "functionName": { + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nativeSrc": "7219:45:18", + "nodeType": "YulIdentifier", + "src": "7219:45:18" + }, + "nativeSrc": "7219:67:18", + "nodeType": "YulFunctionCall", + "src": "7219:67:18" + }, + "nativeSrc": "7219:67:18", + "nodeType": "YulExpressionStatement", + "src": "7219:67:18" + }, + { + "nativeSrc": "7296:18:18", + "nodeType": "YulVariableDeclaration", + "src": "7296:18:18", + "value": { + "kind": "number", + "nativeSrc": "7313:1:18", + "nodeType": "YulLiteral", + "src": "7313:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "srcOffset", + "nativeSrc": "7300:9:18", + "nodeType": "YulTypedName", + "src": "7300:9:18", + "type": "" + } + ] + }, + { + "nativeSrc": "7324:17:18", + "nodeType": "YulAssignment", + "src": "7324:17:18", + "value": { + "kind": "number", + "nativeSrc": "7337:4:18", + "nodeType": "YulLiteral", + "src": "7337:4:18", + "type": "", + "value": "0x20" + }, + "variableNames": [ + { + "name": "srcOffset", + "nativeSrc": "7324:9:18", + "nodeType": "YulIdentifier", + "src": "7324:9:18" + } + ] + }, + { + "cases": [ + { + "body": { + "nativeSrc": "7388:611:18", + "nodeType": "YulBlock", + "src": "7388:611:18", + "statements": [ + { + "nativeSrc": "7402:37:18", + "nodeType": "YulVariableDeclaration", + "src": "7402:37:18", + "value": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "7421:6:18", + "nodeType": "YulIdentifier", + "src": "7421:6:18" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7433:4:18", + "nodeType": "YulLiteral", + "src": "7433:4:18", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "7429:3:18", + "nodeType": "YulIdentifier", + "src": "7429:3:18" + }, + "nativeSrc": "7429:9:18", + "nodeType": "YulFunctionCall", + "src": "7429:9:18" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "7417:3:18", + "nodeType": "YulIdentifier", + "src": "7417:3:18" + }, + "nativeSrc": "7417:22:18", + "nodeType": "YulFunctionCall", + "src": "7417:22:18" + }, + "variables": [ + { + "name": "loopEnd", + "nativeSrc": "7406:7:18", + "nodeType": "YulTypedName", + "src": "7406:7:18", + "type": "" + } + ] + }, + { + "nativeSrc": "7453:51:18", + "nodeType": "YulVariableDeclaration", + "src": "7453:51:18", + "value": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "7499:4:18", + "nodeType": "YulIdentifier", + "src": "7499:4:18" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nativeSrc": "7467:31:18", + "nodeType": "YulIdentifier", + "src": "7467:31:18" + }, + "nativeSrc": "7467:37:18", + "nodeType": "YulFunctionCall", + "src": "7467:37:18" + }, + "variables": [ + { + "name": "dstPtr", + "nativeSrc": "7457:6:18", + "nodeType": "YulTypedName", + "src": "7457:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "7517:10:18", + "nodeType": "YulVariableDeclaration", + "src": "7517:10:18", + "value": { + "kind": "number", + "nativeSrc": "7526:1:18", + "nodeType": "YulLiteral", + "src": "7526:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "7521:1:18", + "nodeType": "YulTypedName", + "src": "7521:1:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "7585:163:18", + "nodeType": "YulBlock", + "src": "7585:163:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "7610:6:18", + "nodeType": "YulIdentifier", + "src": "7610:6:18" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "7628:3:18", + "nodeType": "YulIdentifier", + "src": "7628:3:18" + }, + { + "name": "srcOffset", + "nativeSrc": "7633:9:18", + "nodeType": "YulIdentifier", + "src": "7633:9:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7624:3:18", + "nodeType": "YulIdentifier", + "src": "7624:3:18" + }, + "nativeSrc": "7624:19:18", + "nodeType": "YulFunctionCall", + "src": "7624:19:18" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "7618:5:18", + "nodeType": "YulIdentifier", + "src": "7618:5:18" + }, + "nativeSrc": "7618:26:18", + "nodeType": "YulFunctionCall", + "src": "7618:26:18" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "7603:6:18", + "nodeType": "YulIdentifier", + "src": "7603:6:18" + }, + "nativeSrc": "7603:42:18", + "nodeType": "YulFunctionCall", + "src": "7603:42:18" + }, + "nativeSrc": "7603:42:18", + "nodeType": "YulExpressionStatement", + "src": "7603:42:18" + }, + { + "nativeSrc": "7662:24:18", + "nodeType": "YulAssignment", + "src": "7662:24:18", + "value": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "7676:6:18", + "nodeType": "YulIdentifier", + "src": "7676:6:18" + }, + { + "kind": "number", + "nativeSrc": "7684:1:18", + "nodeType": "YulLiteral", + "src": "7684:1:18", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7672:3:18", + "nodeType": "YulIdentifier", + "src": "7672:3:18" + }, + "nativeSrc": "7672:14:18", + "nodeType": "YulFunctionCall", + "src": "7672:14:18" + }, + "variableNames": [ + { + "name": "dstPtr", + "nativeSrc": "7662:6:18", + "nodeType": "YulIdentifier", + "src": "7662:6:18" + } + ] + }, + { + "nativeSrc": "7703:31:18", + "nodeType": "YulAssignment", + "src": "7703:31:18", + "value": { + "arguments": [ + { + "name": "srcOffset", + "nativeSrc": "7720:9:18", + "nodeType": "YulIdentifier", + "src": "7720:9:18" + }, + { + "kind": "number", + "nativeSrc": "7731:2:18", + "nodeType": "YulLiteral", + "src": "7731:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7716:3:18", + "nodeType": "YulIdentifier", + "src": "7716:3:18" + }, + "nativeSrc": "7716:18:18", + "nodeType": "YulFunctionCall", + "src": "7716:18:18" + }, + "variableNames": [ + { + "name": "srcOffset", + "nativeSrc": "7703:9:18", + "nodeType": "YulIdentifier", + "src": "7703:9:18" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "7551:1:18", + "nodeType": "YulIdentifier", + "src": "7551:1:18" + }, + { + "name": "loopEnd", + "nativeSrc": "7554:7:18", + "nodeType": "YulIdentifier", + "src": "7554:7:18" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "7548:2:18", + "nodeType": "YulIdentifier", + "src": "7548:2:18" + }, + "nativeSrc": "7548:14:18", + "nodeType": "YulFunctionCall", + "src": "7548:14:18" + }, + "nativeSrc": "7540:208:18", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "7563:21:18", + "nodeType": "YulBlock", + "src": "7563:21:18", + "statements": [ + { + "nativeSrc": "7565:17:18", + "nodeType": "YulAssignment", + "src": "7565:17:18", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "7574:1:18", + "nodeType": "YulIdentifier", + "src": "7574:1:18" + }, + { + "kind": "number", + "nativeSrc": "7577:4:18", + "nodeType": "YulLiteral", + "src": "7577:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7570:3:18", + "nodeType": "YulIdentifier", + "src": "7570:3:18" + }, + "nativeSrc": "7570:12:18", + "nodeType": "YulFunctionCall", + "src": "7570:12:18" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "7565:1:18", + "nodeType": "YulIdentifier", + "src": "7565:1:18" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "7544:3:18", + "nodeType": "YulBlock", + "src": "7544:3:18", + "statements": [] + }, + "src": "7540:208:18" + }, + { + "body": { + "nativeSrc": "7784:156:18", + "nodeType": "YulBlock", + "src": "7784:156:18", + "statements": [ + { + "nativeSrc": "7802:43:18", + "nodeType": "YulVariableDeclaration", + "src": "7802:43:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "7829:3:18", + "nodeType": "YulIdentifier", + "src": "7829:3:18" + }, + { + "name": "srcOffset", + "nativeSrc": "7834:9:18", + "nodeType": "YulIdentifier", + "src": "7834:9:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7825:3:18", + "nodeType": "YulIdentifier", + "src": "7825:3:18" + }, + "nativeSrc": "7825:19:18", + "nodeType": "YulFunctionCall", + "src": "7825:19:18" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "7819:5:18", + "nodeType": "YulIdentifier", + "src": "7819:5:18" + }, + "nativeSrc": "7819:26:18", + "nodeType": "YulFunctionCall", + "src": "7819:26:18" + }, + "variables": [ + { + "name": "lastValue", + "nativeSrc": "7806:9:18", + "nodeType": "YulTypedName", + "src": "7806:9:18", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "7869:6:18", + "nodeType": "YulIdentifier", + "src": "7869:6:18" + }, + { + "arguments": [ + { + "name": "lastValue", + "nativeSrc": "7896:9:18", + "nodeType": "YulIdentifier", + "src": "7896:9:18" + }, + { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "7911:6:18", + "nodeType": "YulIdentifier", + "src": "7911:6:18" + }, + { + "kind": "number", + "nativeSrc": "7919:4:18", + "nodeType": "YulLiteral", + "src": "7919:4:18", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "7907:3:18", + "nodeType": "YulIdentifier", + "src": "7907:3:18" + }, + "nativeSrc": "7907:17:18", + "nodeType": "YulFunctionCall", + "src": "7907:17:18" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nativeSrc": "7877:18:18", + "nodeType": "YulIdentifier", + "src": "7877:18:18" + }, + "nativeSrc": "7877:48:18", + "nodeType": "YulFunctionCall", + "src": "7877:48:18" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "7862:6:18", + "nodeType": "YulIdentifier", + "src": "7862:6:18" + }, + "nativeSrc": "7862:64:18", + "nodeType": "YulFunctionCall", + "src": "7862:64:18" + }, + "nativeSrc": "7862:64:18", + "nodeType": "YulExpressionStatement", + "src": "7862:64:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "loopEnd", + "nativeSrc": "7767:7:18", + "nodeType": "YulIdentifier", + "src": "7767:7:18" + }, + { + "name": "newLen", + "nativeSrc": "7776:6:18", + "nodeType": "YulIdentifier", + "src": "7776:6:18" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "7764:2:18", + "nodeType": "YulIdentifier", + "src": "7764:2:18" + }, + "nativeSrc": "7764:19:18", + "nodeType": "YulFunctionCall", + "src": "7764:19:18" + }, + "nativeSrc": "7761:179:18", + "nodeType": "YulIf", + "src": "7761:179:18" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "7960:4:18", + "nodeType": "YulIdentifier", + "src": "7960:4:18" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "7974:6:18", + "nodeType": "YulIdentifier", + "src": "7974:6:18" + }, + { + "kind": "number", + "nativeSrc": "7982:1:18", + "nodeType": "YulLiteral", + "src": "7982:1:18", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "7970:3:18", + "nodeType": "YulIdentifier", + "src": "7970:3:18" + }, + "nativeSrc": "7970:14:18", + "nodeType": "YulFunctionCall", + "src": "7970:14:18" + }, + { + "kind": "number", + "nativeSrc": "7986:1:18", + "nodeType": "YulLiteral", + "src": "7986:1:18", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7966:3:18", + "nodeType": "YulIdentifier", + "src": "7966:3:18" + }, + "nativeSrc": "7966:22:18", + "nodeType": "YulFunctionCall", + "src": "7966:22:18" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "7953:6:18", + "nodeType": "YulIdentifier", + "src": "7953:6:18" + }, + "nativeSrc": "7953:36:18", + "nodeType": "YulFunctionCall", + "src": "7953:36:18" + }, + "nativeSrc": "7953:36:18", + "nodeType": "YulExpressionStatement", + "src": "7953:36:18" + } + ] + }, + "nativeSrc": "7381:618:18", + "nodeType": "YulCase", + "src": "7381:618:18", + "value": { + "kind": "number", + "nativeSrc": "7386:1:18", + "nodeType": "YulLiteral", + "src": "7386:1:18", + "type": "", + "value": "1" + } + }, + { + "body": { + "nativeSrc": "8016:222:18", + "nodeType": "YulBlock", + "src": "8016:222:18", + "statements": [ + { + "nativeSrc": "8030:14:18", + "nodeType": "YulVariableDeclaration", + "src": "8030:14:18", + "value": { + "kind": "number", + "nativeSrc": "8043:1:18", + "nodeType": "YulLiteral", + "src": "8043:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "8034:5:18", + "nodeType": "YulTypedName", + "src": "8034:5:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "8067:67:18", + "nodeType": "YulBlock", + "src": "8067:67:18", + "statements": [ + { + "nativeSrc": "8085:35:18", + "nodeType": "YulAssignment", + "src": "8085:35:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "8104:3:18", + "nodeType": "YulIdentifier", + "src": "8104:3:18" + }, + { + "name": "srcOffset", + "nativeSrc": "8109:9:18", + "nodeType": "YulIdentifier", + "src": "8109:9:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8100:3:18", + "nodeType": "YulIdentifier", + "src": "8100:3:18" + }, + "nativeSrc": "8100:19:18", + "nodeType": "YulFunctionCall", + "src": "8100:19:18" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "8094:5:18", + "nodeType": "YulIdentifier", + "src": "8094:5:18" + }, + "nativeSrc": "8094:26:18", + "nodeType": "YulFunctionCall", + "src": "8094:26:18" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "8085:5:18", + "nodeType": "YulIdentifier", + "src": "8085:5:18" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nativeSrc": "8060:6:18", + "nodeType": "YulIdentifier", + "src": "8060:6:18" + }, + "nativeSrc": "8057:77:18", + "nodeType": "YulIf", + "src": "8057:77:18" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "8154:4:18", + "nodeType": "YulIdentifier", + "src": "8154:4:18" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "8213:5:18", + "nodeType": "YulIdentifier", + "src": "8213:5:18" + }, + { + "name": "newLen", + "nativeSrc": "8220:6:18", + "nodeType": "YulIdentifier", + "src": "8220:6:18" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nativeSrc": "8160:52:18", + "nodeType": "YulIdentifier", + "src": "8160:52:18" + }, + "nativeSrc": "8160:67:18", + "nodeType": "YulFunctionCall", + "src": "8160:67:18" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "8147:6:18", + "nodeType": "YulIdentifier", + "src": "8147:6:18" + }, + "nativeSrc": "8147:81:18", + "nodeType": "YulFunctionCall", + "src": "8147:81:18" + }, + "nativeSrc": "8147:81:18", + "nodeType": "YulExpressionStatement", + "src": "8147:81:18" + } + ] + }, + "nativeSrc": "8008:230:18", + "nodeType": "YulCase", + "src": "8008:230:18", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "7361:6:18", + "nodeType": "YulIdentifier", + "src": "7361:6:18" + }, + { + "kind": "number", + "nativeSrc": "7369:2:18", + "nodeType": "YulLiteral", + "src": "7369:2:18", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "7358:2:18", + "nodeType": "YulIdentifier", + "src": "7358:2:18" + }, + "nativeSrc": "7358:14:18", + "nodeType": "YulFunctionCall", + "src": "7358:14:18" + }, + "nativeSrc": "7351:887:18", + "nodeType": "YulSwitch", + "src": "7351:887:18" + } + ] + }, + "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", + "nativeSrc": "6849:1395:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "6930:4:18", + "nodeType": "YulTypedName", + "src": "6930:4:18", + "type": "" + }, + { + "name": "src", + "nativeSrc": "6936:3:18", + "nodeType": "YulTypedName", + "src": "6936:3:18", + "type": "" + } + ], + "src": "6849:1395:18" + }, + { + "body": { + "nativeSrc": "8346:73:18", + "nodeType": "YulBlock", + "src": "8346:73:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "8363:3:18", + "nodeType": "YulIdentifier", + "src": "8363:3:18" + }, + { + "name": "length", + "nativeSrc": "8368:6:18", + "nodeType": "YulIdentifier", + "src": "8368:6:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8356:6:18", + "nodeType": "YulIdentifier", + "src": "8356:6:18" + }, + "nativeSrc": "8356:19:18", + "nodeType": "YulFunctionCall", + "src": "8356:19:18" + }, + "nativeSrc": "8356:19:18", + "nodeType": "YulExpressionStatement", + "src": "8356:19:18" + }, + { + "nativeSrc": "8384:29:18", + "nodeType": "YulAssignment", + "src": "8384:29:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "8403:3:18", + "nodeType": "YulIdentifier", + "src": "8403:3:18" + }, + { + "kind": "number", + "nativeSrc": "8408:4:18", + "nodeType": "YulLiteral", + "src": "8408:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8399:3:18", + "nodeType": "YulIdentifier", + "src": "8399:3:18" + }, + "nativeSrc": "8399:14:18", + "nodeType": "YulFunctionCall", + "src": "8399:14:18" + }, + "variableNames": [ + { + "name": "updated_pos", + "nativeSrc": "8384:11:18", + "nodeType": "YulIdentifier", + "src": "8384:11:18" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "8250:169:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "8318:3:18", + "nodeType": "YulTypedName", + "src": "8318:3:18", + "type": "" + }, + { + "name": "length", + "nativeSrc": "8323:6:18", + "nodeType": "YulTypedName", + "src": "8323:6:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nativeSrc": "8334:11:18", + "nodeType": "YulTypedName", + "src": "8334:11:18", + "type": "" + } + ], + "src": "8250:169:18" + }, + { + "body": { + "nativeSrc": "8531:63:18", + "nodeType": "YulBlock", + "src": "8531:63:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "8553:6:18", + "nodeType": "YulIdentifier", + "src": "8553:6:18" + }, + { + "kind": "number", + "nativeSrc": "8561:1:18", + "nodeType": "YulLiteral", + "src": "8561:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8549:3:18", + "nodeType": "YulIdentifier", + "src": "8549:3:18" + }, + "nativeSrc": "8549:14:18", + "nodeType": "YulFunctionCall", + "src": "8549:14:18" + }, + { + "hexValue": "5552492063616e6e6f7420626520656d707479", + "kind": "string", + "nativeSrc": "8565:21:18", + "nodeType": "YulLiteral", + "src": "8565:21:18", + "type": "", + "value": "URI cannot be empty" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8542:6:18", + "nodeType": "YulIdentifier", + "src": "8542:6:18" + }, + "nativeSrc": "8542:45:18", + "nodeType": "YulFunctionCall", + "src": "8542:45:18" + }, + "nativeSrc": "8542:45:18", + "nodeType": "YulExpressionStatement", + "src": "8542:45:18" + } + ] + }, + "name": "store_literal_in_memory_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231", + "nativeSrc": "8425:169:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "8523:6:18", + "nodeType": "YulTypedName", + "src": "8523:6:18", + "type": "" + } + ], + "src": "8425:169:18" + }, + { + "body": { + "nativeSrc": "8746:220:18", + "nodeType": "YulBlock", + "src": "8746:220:18", + "statements": [ + { + "nativeSrc": "8756:74:18", + "nodeType": "YulAssignment", + "src": "8756:74:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "8822:3:18", + "nodeType": "YulIdentifier", + "src": "8822:3:18" + }, + { + "kind": "number", + "nativeSrc": "8827:2:18", + "nodeType": "YulLiteral", + "src": "8827:2:18", + "type": "", + "value": "19" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "8763:58:18", + "nodeType": "YulIdentifier", + "src": "8763:58:18" + }, + "nativeSrc": "8763:67:18", + "nodeType": "YulFunctionCall", + "src": "8763:67:18" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "8756:3:18", + "nodeType": "YulIdentifier", + "src": "8756:3:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "8928:3:18", + "nodeType": "YulIdentifier", + "src": "8928:3:18" + } + ], + "functionName": { + "name": "store_literal_in_memory_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231", + "nativeSrc": "8839:88:18", + "nodeType": "YulIdentifier", + "src": "8839:88:18" + }, + "nativeSrc": "8839:93:18", + "nodeType": "YulFunctionCall", + "src": "8839:93:18" + }, + "nativeSrc": "8839:93:18", + "nodeType": "YulExpressionStatement", + "src": "8839:93:18" + }, + { + "nativeSrc": "8941:19:18", + "nodeType": "YulAssignment", + "src": "8941:19:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "8952:3:18", + "nodeType": "YulIdentifier", + "src": "8952:3:18" + }, + { + "kind": "number", + "nativeSrc": "8957:2:18", + "nodeType": "YulLiteral", + "src": "8957:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8948:3:18", + "nodeType": "YulIdentifier", + "src": "8948:3:18" + }, + "nativeSrc": "8948:12:18", + "nodeType": "YulFunctionCall", + "src": "8948:12:18" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "8941:3:18", + "nodeType": "YulIdentifier", + "src": "8941:3:18" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231_to_t_string_memory_ptr_fromStack", + "nativeSrc": "8600:366:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "8734:3:18", + "nodeType": "YulTypedName", + "src": "8734:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "8742:3:18", + "nodeType": "YulTypedName", + "src": "8742:3:18", + "type": "" + } + ], + "src": "8600:366:18" + }, + { + "body": { + "nativeSrc": "9143:248:18", + "nodeType": "YulBlock", + "src": "9143:248:18", + "statements": [ + { + "nativeSrc": "9153:26:18", + "nodeType": "YulAssignment", + "src": "9153:26:18", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9165:9:18", + "nodeType": "YulIdentifier", + "src": "9165:9:18" + }, + { + "kind": "number", + "nativeSrc": "9176:2:18", + "nodeType": "YulLiteral", + "src": "9176:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9161:3:18", + "nodeType": "YulIdentifier", + "src": "9161:3:18" + }, + "nativeSrc": "9161:18:18", + "nodeType": "YulFunctionCall", + "src": "9161:18:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "9153:4:18", + "nodeType": "YulIdentifier", + "src": "9153:4:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9200:9:18", + "nodeType": "YulIdentifier", + "src": "9200:9:18" + }, + { + "kind": "number", + "nativeSrc": "9211:1:18", + "nodeType": "YulLiteral", + "src": "9211:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9196:3:18", + "nodeType": "YulIdentifier", + "src": "9196:3:18" + }, + "nativeSrc": "9196:17:18", + "nodeType": "YulFunctionCall", + "src": "9196:17:18" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "9219:4:18", + "nodeType": "YulIdentifier", + "src": "9219:4:18" + }, + { + "name": "headStart", + "nativeSrc": "9225:9:18", + "nodeType": "YulIdentifier", + "src": "9225:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "9215:3:18", + "nodeType": "YulIdentifier", + "src": "9215:3:18" + }, + "nativeSrc": "9215:20:18", + "nodeType": "YulFunctionCall", + "src": "9215:20:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "9189:6:18", + "nodeType": "YulIdentifier", + "src": "9189:6:18" + }, + "nativeSrc": "9189:47:18", + "nodeType": "YulFunctionCall", + "src": "9189:47:18" + }, + "nativeSrc": "9189:47:18", + "nodeType": "YulExpressionStatement", + "src": "9189:47:18" + }, + { + "nativeSrc": "9245:139:18", + "nodeType": "YulAssignment", + "src": "9245:139:18", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "9379:4:18", + "nodeType": "YulIdentifier", + "src": "9379:4:18" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231_to_t_string_memory_ptr_fromStack", + "nativeSrc": "9253:124:18", + "nodeType": "YulIdentifier", + "src": "9253:124:18" + }, + "nativeSrc": "9253:131:18", + "nodeType": "YulFunctionCall", + "src": "9253:131:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "9245:4:18", + "nodeType": "YulIdentifier", + "src": "9245:4:18" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "8972:419:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "9123:9:18", + "nodeType": "YulTypedName", + "src": "9123:9:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "9138:4:18", + "nodeType": "YulTypedName", + "src": "9138:4:18", + "type": "" + } + ], + "src": "8972:419:18" + } + ] + }, + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n\n }\n\n function abi_decode_available_length_t_string_memory_ptr_fromMemory(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_memory_to_memory_with_cleanup(src, dst, length)\n }\n\n // string\n function abi_decode_t_string_memory_ptr_fromMemory(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := mload(offset)\n array := abi_decode_available_length_t_string_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := mload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_string_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function store_literal_in_memory_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231(memPtr) {\n\n mstore(add(memPtr, 0), \"URI cannot be empty\")\n\n }\n\n function abi_encode_t_stringliteral_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 19)\n store_literal_in_memory_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n}\n", + "id": 18, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50604051613edb380380613edb833981810160405281019061003291906103cb565b604051806020016040528060008152506100518161008b60201b60201c565b506100618161009e60201b60201c565b6100746000801b336100e560201b60201c565b5080600590816100849190610635565b5050610784565b806002908161009a9190610635565b5050565b60008151036100e2576040517f1897cf660000000000000000000000000000000000000000000000000000000081526004016100d990610764565b60405180910390fd5b50565b60006100f783836101e360201b60201c565b6101d85760016003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061017561024e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600190506101dd565b600090505b92915050565b60006003600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600033905090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6102bd82610274565b810181811067ffffffffffffffff821117156102dc576102db610285565b5b80604052505050565b60006102ef610256565b90506102fb82826102b4565b919050565b600067ffffffffffffffff82111561031b5761031a610285565b5b61032482610274565b9050602081019050919050565b60005b8381101561034f578082015181840152602081019050610334565b60008484015250505050565b600061036e61036984610300565b6102e5565b90508281526020810184848401111561038a5761038961026f565b5b610395848285610331565b509392505050565b600082601f8301126103b2576103b161026a565b5b81516103c284826020860161035b565b91505092915050565b6000602082840312156103e1576103e0610260565b5b600082015167ffffffffffffffff8111156103ff576103fe610265565b5b61040b8482850161039d565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061046657607f821691505b6020821081036104795761047861041f565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026104e17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826104a4565b6104eb86836104a4565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600061053261052d61052884610503565b61050d565b610503565b9050919050565b6000819050919050565b61054c83610517565b61056061055882610539565b8484546104b1565b825550505050565b600090565b610575610568565b610580818484610543565b505050565b5b818110156105a45761059960008261056d565b600181019050610586565b5050565b601f8211156105e9576105ba8161047f565b6105c384610494565b810160208510156105d2578190505b6105e66105de85610494565b830182610585565b50505b505050565b600082821c905092915050565b600061060c600019846008026105ee565b1980831691505092915050565b600061062583836105fb565b9150826002028217905092915050565b61063e82610414565b67ffffffffffffffff81111561065757610656610285565b5b610661825461044e565b61066c8282856105a8565b600060209050601f83116001811461069f576000841561068d578287015190505b6106978582610619565b8655506106ff565b601f1984166106ad8661047f565b60005b828110156106d5578489015182556001820191506020850194506020810190506106b0565b868310156106f257848901516106ee601f8916826105fb565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f5552492063616e6e6f7420626520656d70747900000000000000000000000000600082015250565b600061074e601383610707565b915061075982610718565b602082019050919050565b6000602082019050818103600083015261077d81610741565b9050919050565b613748806107936000396000f3fe608060405234801561001057600080fd5b506004361061012b5760003560e01c806376b676f1116100ad578063d383f64611610071578063d383f64614610364578063d547741f1461036e578063e985e9c51461038a578063f242432a146103ba578063f5298aca146103d65761012b565b806376b676f1146102ae57806391d14854146102de578063931688cb1461030e578063a217fddf1461032a578063a22cb465146103485761012b565b80632f2ff15d116100f45780632f2ff15d1461020c57806336568abe146102285780634e1273f41461024457806361bc221a14610274578063731133e9146102925761012b565b8062fdd58e1461013057806301ffc9a7146101605780630e89341c14610190578063248a9ca3146101c05780632eb2c2d6146101f0575b600080fd5b61014a600480360381019061014591906121b1565b6103f2565b6040516101579190612200565b60405180910390f35b61017a60048036038101906101759190612273565b61044c565b60405161018791906122bb565b60405180910390f35b6101aa60048036038101906101a591906122d6565b61048c565b6040516101b79190612393565b60405180910390f35b6101da60048036038101906101d591906123eb565b610520565b6040516101e79190612427565b60405180910390f35b61020a6004803603810190610205919061263f565b610540565b005b6102266004803603810190610221919061270e565b6105e8565b005b610242600480360381019061023d919061270e565b61060a565b005b61025e60048036038101906102599190612811565b610685565b60405161026b9190612947565b60405180910390f35b61027c61078e565b6040516102899190612200565b60405180910390f35b6102ac60048036038101906102a79190612969565b610798565b005b6102c860048036038101906102c39190612a8d565b610856565b6040516102d59190612393565b60405180910390f35b6102f860048036038101906102f3919061270e565b6108de565b60405161030591906122bb565b60405180910390f35b61032860048036038101906103239190612ae9565b610949565b005b6103326109ad565b60405161033f9190612427565b60405180910390f35b610362600480360381019061035d9190612b5e565b6109b4565b005b61036c6109ca565b005b6103886004803603810190610383919061270e565b610a47565b005b6103a4600480360381019061039f9190612b9e565b610a69565b6040516103b191906122bb565b60405180910390f35b6103d460048036038101906103cf9190612bde565b610afd565b005b6103f060048036038101906103eb9190612c75565b610ba5565b005b600080600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600061046d3073ffffffffffffffffffffffffffffffffffffffff16610c87565b156104825761047b82610cd4565b9050610487565b600090505b919050565b60606002805461049b90612cf7565b80601f01602080910402602001604051908101604052809291908181526020018280546104c790612cf7565b80156105145780601f106104e957610100808354040283529160200191610514565b820191906000526020600020905b8154815290600101906020018083116104f757829003601f168201915b50505050509050919050565b600060036000838152602001908152602001600020600101549050919050565b600061054a610d4e565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415801561058f575061058d8682610a69565b155b156105d35780866040517fe237d9220000000000000000000000000000000000000000000000000000000081526004016105ca929190612d37565b60405180910390fd5b6105e08686868686610d56565b505050505050565b6105f182610520565b6105fa81610e4e565b6106048383610e62565b50505050565b610612610d4e565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610676576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106808282610f54565b505050565b606081518351146106d157815183516040517f5b0599910000000000000000000000000000000000000000000000000000000081526004016106c8929190612d60565b60405180910390fd5b6000835167ffffffffffffffff8111156106ee576106ed612447565b5b60405190808252806020026020018201604052801561071c5781602001602082028036833780820191505090505b50905060005b845181101561078357610759610741828761104790919063ffffffff16565b610754838761105b90919063ffffffff16565b6103f2565b82828151811061076c5761076b612d89565b5b602002602001018181525050806001019050610722565b508091505092915050565b6000600454905090565b826107a28161106f565b60016107ae86866103f2565b106107f25784846040517f788d25560000000000000000000000000000000000000000000000000000000081526004016107e9929190612db8565b60405180910390fd5b6107ff85856001856110b8565b838573ffffffffffffffffffffffffffffffffffffffff167f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f60016040516108479190612e26565b60405180910390a35050505050565b6060826108628161106f565b8260008151036108a7576040517fc29f9db300000000000000000000000000000000000000000000000000000000815260040161089e90612e8d565b60405180910390fd5b60056108b286611151565b856040516020016108c593929190613065565b6040516020818303038152906040529250505092915050565b60006003600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000801b61095681610e4e565b61095f8261121f565b7f309b29ded109b9e28fb9885757b3e0096eb75c51d23aa4635d68bcd569f6adc160058360405161099192919061313b565b60405180910390a181600590816109a891906132ff565b505050565b6000801b81565b6109c66109bf610d4e565b8383611266565b5050565b600060045490506109ed33826001604051806020016040528060008152506110b8565b803373ffffffffffffffffffffffffffffffffffffffff167fc65a3f767206d2fdcede0b094a4840e01c0dd0be1888b5ba800346eaa0123c1660405160405180910390a3600181610a3e9190613400565b60048190555050565b610a5082610520565b610a5981610e4e565b610a638383610f54565b50505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000610b07610d4e565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015610b4c5750610b4a8682610a69565b155b15610b905780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401610b87929190612d37565b60405180910390fd5b610b9d86868686866113d6565b505050505050565b81610baf8161106f565b83833373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610c235781816040517f8626cc03000000000000000000000000000000000000000000000000000000008152600401610c1a929190612db8565b60405180910390fd5b610c2f868660016114e1565b848673ffffffffffffffffffffffffffffffffffffffff167f49995e5dd6158cf69ad3e9777c46755a1a826a446c6416992167462dad033b2a6001604051610c779190612e26565b60405180910390a3505050505050565b6000610cb3827f01ffc9a700000000000000000000000000000000000000000000000000000000611588565b8015610ccd5750610ccb8263ffffffff60e01b611588565b155b9050919050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610d475750610d4682611627565b5b9050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610dc85760006040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401610dbf9190613434565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610e3a5760006040517f01a83514000000000000000000000000000000000000000000000000000000008152600401610e319190613434565b60405180910390fd5b610e478585858585611709565b5050505050565b610e5f81610e5a610d4e565b6117bb565b50565b6000610e6e83836108de565b610f495760016003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610ee6610d4e565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050610f4e565b600090505b92915050565b6000610f6083836108de565b1561103c5760006003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610fd9610d4e565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050611041565b600090505b92915050565b600060208202602084010151905092915050565b600060208202602084010151905092915050565b60045481106110b557806040517fc80a970c0000000000000000000000000000000000000000000000000000000081526004016110ac9190612200565b60405180910390fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361112a5760006040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016111219190613434565b60405180910390fd5b600080611137858561180c565b91509150611149600087848487611709565b505050505050565b6060600060016111608461183c565b01905060008167ffffffffffffffff81111561117f5761117e612447565b5b6040519080825280601f01601f1916602001820160405280156111b15781602001600182028036833780820191505090505b509050600082602001820190505b600115611214578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816112085761120761344f565b5b049450600085036111bf575b819350505050919050565b6000815103611263576040517f1897cf6600000000000000000000000000000000000000000000000000000000815260040161125a906134ca565b60405180910390fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112d85760006040517fced3e1000000000000000000000000000000000000000000000000000000000081526004016112cf9190613434565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516113c991906122bb565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036114485760006040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161143f9190613434565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036114ba5760006040517f01a835140000000000000000000000000000000000000000000000000000000081526004016114b19190613434565b60405180910390fd5b6000806114c7858561180c565b915091506114d88787848487611709565b50505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115535760006040517f01a8351400000000000000000000000000000000000000000000000000000000815260040161154a9190613434565b60405180910390fd5b600080611560848461180c565b91509150611581856000848460405180602001604052806000815250611709565b5050505050565b6000808260405160240161159c91906134f9565b6040516020818303038152906040526301ffc9a760e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506000806000602060008551602087018a617530fa92503d9150600051905082801561160f575060208210155b801561161b5750600081115b94505050505092915050565b60007fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806116f257507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061170257506117018261198f565b5b9050919050565b611715858585856119f9565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146117b4576000611753610d4e565b905060018451036117a357600061177460008661105b90919063ffffffff16565b9050600061178c60008661105b90919063ffffffff16565b905061179c838989858589611da1565b50506117b2565b6117b1818787878787611f55565b5b505b5050505050565b6117c582826108de565b6118085780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016117ff929190613514565b60405180910390fd5b5050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061189a577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816118905761188f61344f565b5b0492506040810190505b6d04ee2d6d415b85acef810000000083106118d7576d04ee2d6d415b85acef810000000083816118cd576118cc61344f565b5b0492506020810190505b662386f26fc10000831061190657662386f26fc1000083816118fc576118fb61344f565b5b0492506010810190505b6305f5e100831061192f576305f5e10083816119255761192461344f565b5b0492506008810190505b612710831061195457612710838161194a5761194961344f565b5b0492506004810190505b60648310611977576064838161196d5761196c61344f565b5b0492506002810190505b600a8310611986576001810190505b80915050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b8051825114611a4357815181516040517f5b059991000000000000000000000000000000000000000000000000000000008152600401611a3a929190612d60565b60405180910390fd5b6000611a4d610d4e565b905060005b8351811015611c5c576000611a70828661105b90919063ffffffff16565b90506000611a87838661105b90919063ffffffff16565b9050600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614611bb457600080600084815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611b5c57888183856040517f03dee4c5000000000000000000000000000000000000000000000000000000008152600401611b53949392919061353d565b60405180910390fd5b81810360008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614611c4f578060008084815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611c479190613400565b925050819055505b5050806001019050611a52565b506001835103611d1b576000611c7c60008561105b90919063ffffffff16565b90506000611c9460008561105b90919063ffffffff16565b90508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051611d0c929190612d60565b60405180910390a45050611d9a565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051611d91929190613582565b60405180910390a45b5050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b1115611f4d578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401611e0295949392919061360e565b6020604051808303816000875af1925050508015611e3e57506040513d601f19601f82011682018060405250810190611e3b919061367d565b60015b611ec2573d8060008114611e6e576040519150601f19603f3d011682016040523d82523d6000602084013e611e73565b606091505b506000815103611eba57846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611eb19190613434565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611f4b57846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611f429190613434565b60405180910390fd5b505b505050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b1115612101578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401611fb69594939291906136aa565b6020604051808303816000875af1925050508015611ff257506040513d601f19601f82011682018060405250810190611fef919061367d565b60015b612076573d8060008114612022576040519150601f19603f3d011682016040523d82523d6000602084013e612027565b606091505b50600081510361206e57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016120659190613434565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146120ff57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016120f69190613434565b60405180910390fd5b505b505050505050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006121488261211d565b9050919050565b6121588161213d565b811461216357600080fd5b50565b6000813590506121758161214f565b92915050565b6000819050919050565b61218e8161217b565b811461219957600080fd5b50565b6000813590506121ab81612185565b92915050565b600080604083850312156121c8576121c7612113565b5b60006121d685828601612166565b92505060206121e78582860161219c565b9150509250929050565b6121fa8161217b565b82525050565b600060208201905061221560008301846121f1565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6122508161221b565b811461225b57600080fd5b50565b60008135905061226d81612247565b92915050565b60006020828403121561228957612288612113565b5b60006122978482850161225e565b91505092915050565b60008115159050919050565b6122b5816122a0565b82525050565b60006020820190506122d060008301846122ac565b92915050565b6000602082840312156122ec576122eb612113565b5b60006122fa8482850161219c565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561233d578082015181840152602081019050612322565b60008484015250505050565b6000601f19601f8301169050919050565b600061236582612303565b61236f818561230e565b935061237f81856020860161231f565b61238881612349565b840191505092915050565b600060208201905081810360008301526123ad818461235a565b905092915050565b6000819050919050565b6123c8816123b5565b81146123d357600080fd5b50565b6000813590506123e5816123bf565b92915050565b60006020828403121561240157612400612113565b5b600061240f848285016123d6565b91505092915050565b612421816123b5565b82525050565b600060208201905061243c6000830184612418565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61247f82612349565b810181811067ffffffffffffffff8211171561249e5761249d612447565b5b80604052505050565b60006124b1612109565b90506124bd8282612476565b919050565b600067ffffffffffffffff8211156124dd576124dc612447565b5b602082029050602081019050919050565b600080fd5b6000612506612501846124c2565b6124a7565b90508083825260208201905060208402830185811115612529576125286124ee565b5b835b81811015612552578061253e888261219c565b84526020840193505060208101905061252b565b5050509392505050565b600082601f83011261257157612570612442565b5b81356125818482602086016124f3565b91505092915050565b600080fd5b600067ffffffffffffffff8211156125aa576125a9612447565b5b6125b382612349565b9050602081019050919050565b82818337600083830152505050565b60006125e26125dd8461258f565b6124a7565b9050828152602081018484840111156125fe576125fd61258a565b5b6126098482856125c0565b509392505050565b600082601f83011261262657612625612442565b5b81356126368482602086016125cf565b91505092915050565b600080600080600060a0868803121561265b5761265a612113565b5b600061266988828901612166565b955050602061267a88828901612166565b945050604086013567ffffffffffffffff81111561269b5761269a612118565b5b6126a78882890161255c565b935050606086013567ffffffffffffffff8111156126c8576126c7612118565b5b6126d48882890161255c565b925050608086013567ffffffffffffffff8111156126f5576126f4612118565b5b61270188828901612611565b9150509295509295909350565b6000806040838503121561272557612724612113565b5b6000612733858286016123d6565b925050602061274485828601612166565b9150509250929050565b600067ffffffffffffffff82111561276957612768612447565b5b602082029050602081019050919050565b600061278d6127888461274e565b6124a7565b905080838252602082019050602084028301858111156127b0576127af6124ee565b5b835b818110156127d957806127c58882612166565b8452602084019350506020810190506127b2565b5050509392505050565b600082601f8301126127f8576127f7612442565b5b813561280884826020860161277a565b91505092915050565b6000806040838503121561282857612827612113565b5b600083013567ffffffffffffffff81111561284657612845612118565b5b612852858286016127e3565b925050602083013567ffffffffffffffff81111561287357612872612118565b5b61287f8582860161255c565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6128be8161217b565b82525050565b60006128d083836128b5565b60208301905092915050565b6000602082019050919050565b60006128f482612889565b6128fe8185612894565b9350612909836128a5565b8060005b8381101561293a57815161292188826128c4565b975061292c836128dc565b92505060018101905061290d565b5085935050505092915050565b6000602082019050818103600083015261296181846128e9565b905092915050565b6000806000806080858703121561298357612982612113565b5b600061299187828801612166565b94505060206129a28782880161219c565b93505060406129b38782880161219c565b925050606085013567ffffffffffffffff8111156129d4576129d3612118565b5b6129e087828801612611565b91505092959194509250565b600067ffffffffffffffff821115612a0757612a06612447565b5b612a1082612349565b9050602081019050919050565b6000612a30612a2b846129ec565b6124a7565b905082815260208101848484011115612a4c57612a4b61258a565b5b612a578482856125c0565b509392505050565b600082601f830112612a7457612a73612442565b5b8135612a84848260208601612a1d565b91505092915050565b60008060408385031215612aa457612aa3612113565b5b6000612ab28582860161219c565b925050602083013567ffffffffffffffff811115612ad357612ad2612118565b5b612adf85828601612a5f565b9150509250929050565b600060208284031215612aff57612afe612113565b5b600082013567ffffffffffffffff811115612b1d57612b1c612118565b5b612b2984828501612a5f565b91505092915050565b612b3b816122a0565b8114612b4657600080fd5b50565b600081359050612b5881612b32565b92915050565b60008060408385031215612b7557612b74612113565b5b6000612b8385828601612166565b9250506020612b9485828601612b49565b9150509250929050565b60008060408385031215612bb557612bb4612113565b5b6000612bc385828601612166565b9250506020612bd485828601612166565b9150509250929050565b600080600080600060a08688031215612bfa57612bf9612113565b5b6000612c0888828901612166565b9550506020612c1988828901612166565b9450506040612c2a8882890161219c565b9350506060612c3b8882890161219c565b925050608086013567ffffffffffffffff811115612c5c57612c5b612118565b5b612c6888828901612611565b9150509295509295909350565b600080600060608486031215612c8e57612c8d612113565b5b6000612c9c86828701612166565b9350506020612cad8682870161219c565b9250506040612cbe8682870161219c565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612d0f57607f821691505b602082108103612d2257612d21612cc8565b5b50919050565b612d318161213d565b82525050565b6000604082019050612d4c6000830185612d28565b612d596020830184612d28565b9392505050565b6000604082019050612d7560008301856121f1565b612d8260208301846121f1565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000604082019050612dcd6000830185612d28565b612dda60208301846121f1565b9392505050565b6000819050919050565b6000819050919050565b6000612e10612e0b612e0684612de1565b612deb565b61217b565b9050919050565b612e2081612df5565b82525050565b6000602082019050612e3b6000830184612e17565b92915050565b7f4163636f756e742063616e6e6f7420626520656d707479000000000000000000600082015250565b6000612e7760178361230e565b9150612e8282612e41565b602082019050919050565b60006020820190508181036000830152612ea681612e6a565b9050919050565b600081905092915050565b60008190508160005260206000209050919050565b60008154612eda81612cf7565b612ee48186612ead565b94506001821660008114612eff5760018114612f1457612f47565b60ff1983168652811515820286019350612f47565b612f1d85612eb8565b60005b83811015612f3f57815481890152600182019150602081019050612f20565b838801955050505b50505092915050565b7f2f6170692f76312f6e66742f0000000000000000000000000000000000000000600082015250565b6000612f86600c83612ead565b9150612f9182612f50565b600c82019050919050565b6000612fa782612303565b612fb18185612ead565b9350612fc181856020860161231f565b80840191505092915050565b7f2f00000000000000000000000000000000000000000000000000000000000000600082015250565b6000613003600183612ead565b915061300e82612fcd565b600182019050919050565b7f2f72657075746174696f6e2d73636f7265000000000000000000000000000000600082015250565b600061304f601183612ead565b915061305a82613019565b601182019050919050565b60006130718286612ecd565b915061307c82612f79565b91506130888285612f9c565b915061309382612ff6565b915061309f8284612f9c565b91506130aa82613042565b9150819050949350505050565b600081546130c481612cf7565b6130ce818661230e565b945060018216600081146130e957600181146130ff57613132565b60ff198316865281151560200286019350613132565b61310885612eb8565b60005b8381101561312a5781548189015260018201915060208101905061310b565b808801955050505b50505092915050565b6000604082019050818103600083015261315581856130b7565b90508181036020830152613169818461235a565b90509392505050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026131bf7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82613182565b6131c98683613182565b95508019841693508086168417925050509392505050565b60006131fc6131f76131f28461217b565b612deb565b61217b565b9050919050565b6000819050919050565b613216836131e1565b61322a61322282613203565b84845461318f565b825550505050565b600090565b61323f613232565b61324a81848461320d565b505050565b5b8181101561326e57613263600082613237565b600181019050613250565b5050565b601f8211156132b35761328481612eb8565b61328d84613172565b8101602085101561329c578190505b6132b06132a885613172565b83018261324f565b50505b505050565b600082821c905092915050565b60006132d6600019846008026132b8565b1980831691505092915050565b60006132ef83836132c5565b9150826002028217905092915050565b61330882612303565b67ffffffffffffffff81111561332157613320612447565b5b61332b8254612cf7565b613336828285613272565b600060209050601f8311600181146133695760008415613357578287015190505b61336185826132e3565b8655506133c9565b601f19841661337786612eb8565b60005b8281101561339f5784890151825560018201915060208501945060208101905061337a565b868310156133bc57848901516133b8601f8916826132c5565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061340b8261217b565b91506134168361217b565b925082820190508082111561342e5761342d6133d1565b5b92915050565b60006020820190506134496000830184612d28565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f5552492063616e6e6f7420626520656d70747900000000000000000000000000600082015250565b60006134b460138361230e565b91506134bf8261347e565b602082019050919050565b600060208201905081810360008301526134e3816134a7565b9050919050565b6134f38161221b565b82525050565b600060208201905061350e60008301846134ea565b92915050565b60006040820190506135296000830185612d28565b6135366020830184612418565b9392505050565b60006080820190506135526000830187612d28565b61355f60208301866121f1565b61356c60408301856121f1565b61357960608301846121f1565b95945050505050565b6000604082019050818103600083015261359c81856128e9565b905081810360208301526135b081846128e9565b90509392505050565b600081519050919050565b600082825260208201905092915050565b60006135e0826135b9565b6135ea81856135c4565b93506135fa81856020860161231f565b61360381612349565b840191505092915050565b600060a0820190506136236000830188612d28565b6136306020830187612d28565b61363d60408301866121f1565b61364a60608301856121f1565b818103608083015261365c81846135d5565b90509695505050505050565b60008151905061367781612247565b92915050565b60006020828403121561369357613692612113565b5b60006136a184828501613668565b91505092915050565b600060a0820190506136bf6000830188612d28565b6136cc6020830187612d28565b81810360408301526136de81866128e9565b905081810360608301526136f281856128e9565b9050818103608083015261370681846135d5565b9050969550505050505056fea2646970667358221220240e9a7daab5d9eba2793e75f4bbf0e9a74f133868ac14d5e9561767bb722e8264736f6c634300081a0033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x3EDB CODESIZE SUB DUP1 PUSH2 0x3EDB DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x32 SWAP2 SWAP1 PUSH2 0x3CB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x51 DUP2 PUSH2 0x8B PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP PUSH2 0x61 DUP2 PUSH2 0x9E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x74 PUSH1 0x0 DUP1 SHL CALLER PUSH2 0xE5 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP DUP1 PUSH1 0x5 SWAP1 DUP2 PUSH2 0x84 SWAP2 SWAP1 PUSH2 0x635 JUMP JUMPDEST POP POP PUSH2 0x784 JUMP JUMPDEST DUP1 PUSH1 0x2 SWAP1 DUP2 PUSH2 0x9A SWAP2 SWAP1 PUSH2 0x635 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0xE2 JUMPI PUSH1 0x40 MLOAD PUSH32 0x1897CF6600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD9 SWAP1 PUSH2 0x764 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF7 DUP4 DUP4 PUSH2 0x1E3 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x1D8 JUMPI PUSH1 0x1 PUSH1 0x3 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0x175 PUSH2 0x24E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x1 SWAP1 POP PUSH2 0x1DD JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x2BD DUP3 PUSH2 0x274 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x2DC JUMPI PUSH2 0x2DB PUSH2 0x285 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2EF PUSH2 0x256 JUMP JUMPDEST SWAP1 POP PUSH2 0x2FB DUP3 DUP3 PUSH2 0x2B4 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x31B JUMPI PUSH2 0x31A PUSH2 0x285 JUMP JUMPDEST JUMPDEST PUSH2 0x324 DUP3 PUSH2 0x274 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x34F JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x334 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x36E PUSH2 0x369 DUP5 PUSH2 0x300 JUMP JUMPDEST PUSH2 0x2E5 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x38A JUMPI PUSH2 0x389 PUSH2 0x26F JUMP JUMPDEST JUMPDEST PUSH2 0x395 DUP5 DUP3 DUP6 PUSH2 0x331 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x3B2 JUMPI PUSH2 0x3B1 PUSH2 0x26A JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH2 0x3C2 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x35B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3E1 JUMPI PUSH2 0x3E0 PUSH2 0x260 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3FF JUMPI PUSH2 0x3FE PUSH2 0x265 JUMP JUMPDEST JUMPDEST PUSH2 0x40B DUP5 DUP3 DUP6 ADD PUSH2 0x39D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x466 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x479 JUMPI PUSH2 0x478 PUSH2 0x41F JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH2 0x4E1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x4A4 JUMP JUMPDEST PUSH2 0x4EB DUP7 DUP4 PUSH2 0x4A4 JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x532 PUSH2 0x52D PUSH2 0x528 DUP5 PUSH2 0x503 JUMP JUMPDEST PUSH2 0x50D JUMP JUMPDEST PUSH2 0x503 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x54C DUP4 PUSH2 0x517 JUMP JUMPDEST PUSH2 0x560 PUSH2 0x558 DUP3 PUSH2 0x539 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x4B1 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH2 0x575 PUSH2 0x568 JUMP JUMPDEST PUSH2 0x580 DUP2 DUP5 DUP5 PUSH2 0x543 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x5A4 JUMPI PUSH2 0x599 PUSH1 0x0 DUP3 PUSH2 0x56D JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x586 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x5E9 JUMPI PUSH2 0x5BA DUP2 PUSH2 0x47F JUMP JUMPDEST PUSH2 0x5C3 DUP5 PUSH2 0x494 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x5D2 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x5E6 PUSH2 0x5DE DUP6 PUSH2 0x494 JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x585 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x60C PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x5EE JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x625 DUP4 DUP4 PUSH2 0x5FB JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x63E DUP3 PUSH2 0x414 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x657 JUMPI PUSH2 0x656 PUSH2 0x285 JUMP JUMPDEST JUMPDEST PUSH2 0x661 DUP3 SLOAD PUSH2 0x44E JUMP JUMPDEST PUSH2 0x66C DUP3 DUP3 DUP6 PUSH2 0x5A8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x69F JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x68D JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x697 DUP6 DUP3 PUSH2 0x619 JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x6FF JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x6AD DUP7 PUSH2 0x47F JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x6D5 JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x6B0 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x6F2 JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x6EE PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x5FB JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x5552492063616E6E6F7420626520656D70747900000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x74E PUSH1 0x13 DUP4 PUSH2 0x707 JUMP JUMPDEST SWAP2 POP PUSH2 0x759 DUP3 PUSH2 0x718 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x77D DUP2 PUSH2 0x741 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3748 DUP1 PUSH2 0x793 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x12B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x76B676F1 GT PUSH2 0xAD JUMPI DUP1 PUSH4 0xD383F646 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xD383F646 EQ PUSH2 0x364 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x36E JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x38A JUMPI DUP1 PUSH4 0xF242432A EQ PUSH2 0x3BA JUMPI DUP1 PUSH4 0xF5298ACA EQ PUSH2 0x3D6 JUMPI PUSH2 0x12B JUMP JUMPDEST DUP1 PUSH4 0x76B676F1 EQ PUSH2 0x2AE JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x2DE JUMPI DUP1 PUSH4 0x931688CB EQ PUSH2 0x30E JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x32A JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x348 JUMPI PUSH2 0x12B JUMP JUMPDEST DUP1 PUSH4 0x2F2FF15D GT PUSH2 0xF4 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x20C JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x228 JUMPI DUP1 PUSH4 0x4E1273F4 EQ PUSH2 0x244 JUMPI DUP1 PUSH4 0x61BC221A EQ PUSH2 0x274 JUMPI DUP1 PUSH4 0x731133E9 EQ PUSH2 0x292 JUMPI PUSH2 0x12B JUMP JUMPDEST DUP1 PUSH3 0xFDD58E EQ PUSH2 0x130 JUMPI DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x160 JUMPI DUP1 PUSH4 0xE89341C EQ PUSH2 0x190 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x1C0 JUMPI DUP1 PUSH4 0x2EB2C2D6 EQ PUSH2 0x1F0 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x14A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x145 SWAP2 SWAP1 PUSH2 0x21B1 JUMP JUMPDEST PUSH2 0x3F2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x157 SWAP2 SWAP1 PUSH2 0x2200 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x17A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x175 SWAP2 SWAP1 PUSH2 0x2273 JUMP JUMPDEST PUSH2 0x44C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x187 SWAP2 SWAP1 PUSH2 0x22BB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1AA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1A5 SWAP2 SWAP1 PUSH2 0x22D6 JUMP JUMPDEST PUSH2 0x48C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1B7 SWAP2 SWAP1 PUSH2 0x2393 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1DA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1D5 SWAP2 SWAP1 PUSH2 0x23EB JUMP JUMPDEST PUSH2 0x520 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E7 SWAP2 SWAP1 PUSH2 0x2427 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x20A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x205 SWAP2 SWAP1 PUSH2 0x263F JUMP JUMPDEST PUSH2 0x540 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x226 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x221 SWAP2 SWAP1 PUSH2 0x270E JUMP JUMPDEST PUSH2 0x5E8 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x242 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x23D SWAP2 SWAP1 PUSH2 0x270E JUMP JUMPDEST PUSH2 0x60A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x25E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x259 SWAP2 SWAP1 PUSH2 0x2811 JUMP JUMPDEST PUSH2 0x685 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x26B SWAP2 SWAP1 PUSH2 0x2947 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x27C PUSH2 0x78E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x289 SWAP2 SWAP1 PUSH2 0x2200 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2AC PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2A7 SWAP2 SWAP1 PUSH2 0x2969 JUMP JUMPDEST PUSH2 0x798 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2C8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2C3 SWAP2 SWAP1 PUSH2 0x2A8D JUMP JUMPDEST PUSH2 0x856 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D5 SWAP2 SWAP1 PUSH2 0x2393 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2F8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2F3 SWAP2 SWAP1 PUSH2 0x270E JUMP JUMPDEST PUSH2 0x8DE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x305 SWAP2 SWAP1 PUSH2 0x22BB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x328 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x323 SWAP2 SWAP1 PUSH2 0x2AE9 JUMP JUMPDEST PUSH2 0x949 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x332 PUSH2 0x9AD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x33F SWAP2 SWAP1 PUSH2 0x2427 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x362 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x35D SWAP2 SWAP1 PUSH2 0x2B5E JUMP JUMPDEST PUSH2 0x9B4 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x36C PUSH2 0x9CA JUMP JUMPDEST STOP JUMPDEST PUSH2 0x388 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x383 SWAP2 SWAP1 PUSH2 0x270E JUMP JUMPDEST PUSH2 0xA47 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3A4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x39F SWAP2 SWAP1 PUSH2 0x2B9E JUMP JUMPDEST PUSH2 0xA69 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3B1 SWAP2 SWAP1 PUSH2 0x22BB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3D4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3CF SWAP2 SWAP1 PUSH2 0x2BDE JUMP JUMPDEST PUSH2 0xAFD JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3F0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3EB SWAP2 SWAP1 PUSH2 0x2C75 JUMP JUMPDEST PUSH2 0xBA5 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x46D ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xC87 JUMP JUMPDEST ISZERO PUSH2 0x482 JUMPI PUSH2 0x47B DUP3 PUSH2 0xCD4 JUMP JUMPDEST SWAP1 POP PUSH2 0x487 JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 DUP1 SLOAD PUSH2 0x49B SWAP1 PUSH2 0x2CF7 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x4C7 SWAP1 PUSH2 0x2CF7 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x514 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x4E9 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x514 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x4F7 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x54A PUSH2 0xD4E JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x58F JUMPI POP PUSH2 0x58D DUP7 DUP3 PUSH2 0xA69 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x5D3 JUMPI DUP1 DUP7 PUSH1 0x40 MLOAD PUSH32 0xE237D92200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5CA SWAP3 SWAP2 SWAP1 PUSH2 0x2D37 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x5E0 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH2 0xD56 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x5F1 DUP3 PUSH2 0x520 JUMP JUMPDEST PUSH2 0x5FA DUP2 PUSH2 0xE4E JUMP JUMPDEST PUSH2 0x604 DUP4 DUP4 PUSH2 0xE62 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x612 PUSH2 0xD4E JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x676 JUMPI PUSH1 0x40 MLOAD PUSH32 0x6697B23200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x680 DUP3 DUP3 PUSH2 0xF54 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 MLOAD DUP4 MLOAD EQ PUSH2 0x6D1 JUMPI DUP2 MLOAD DUP4 MLOAD PUSH1 0x40 MLOAD PUSH32 0x5B05999100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6C8 SWAP3 SWAP2 SWAP1 PUSH2 0x2D60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x6EE JUMPI PUSH2 0x6ED PUSH2 0x2447 JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x71C JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x783 JUMPI PUSH2 0x759 PUSH2 0x741 DUP3 DUP8 PUSH2 0x1047 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x754 DUP4 DUP8 PUSH2 0x105B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x3F2 JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x76C JUMPI PUSH2 0x76B PUSH2 0x2D89 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0x722 JUMP JUMPDEST POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST DUP3 PUSH2 0x7A2 DUP2 PUSH2 0x106F JUMP JUMPDEST PUSH1 0x1 PUSH2 0x7AE DUP7 DUP7 PUSH2 0x3F2 JUMP JUMPDEST LT PUSH2 0x7F2 JUMPI DUP5 DUP5 PUSH1 0x40 MLOAD PUSH32 0x788D255600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7E9 SWAP3 SWAP2 SWAP1 PUSH2 0x2DB8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x7FF DUP6 DUP6 PUSH1 0x1 DUP6 PUSH2 0x10B8 JUMP JUMPDEST DUP4 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x4C209B5FC8AD50758F13E2E1088BA56A560DFF690A1C6FEF26394F4C03821C4F PUSH1 0x1 PUSH1 0x40 MLOAD PUSH2 0x847 SWAP2 SWAP1 PUSH2 0x2E26 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP3 PUSH2 0x862 DUP2 PUSH2 0x106F JUMP JUMPDEST DUP3 PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0x8A7 JUMPI PUSH1 0x40 MLOAD PUSH32 0xC29F9DB300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x89E SWAP1 PUSH2 0x2E8D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x5 PUSH2 0x8B2 DUP7 PUSH2 0x1151 JUMP JUMPDEST DUP6 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x8C5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3065 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL PUSH2 0x956 DUP2 PUSH2 0xE4E JUMP JUMPDEST PUSH2 0x95F DUP3 PUSH2 0x121F JUMP JUMPDEST PUSH32 0x309B29DED109B9E28FB9885757B3E0096EB75C51D23AA4635D68BCD569F6ADC1 PUSH1 0x5 DUP4 PUSH1 0x40 MLOAD PUSH2 0x991 SWAP3 SWAP2 SWAP1 PUSH2 0x313B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP2 PUSH1 0x5 SWAP1 DUP2 PUSH2 0x9A8 SWAP2 SWAP1 PUSH2 0x32FF JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP2 JUMP JUMPDEST PUSH2 0x9C6 PUSH2 0x9BF PUSH2 0xD4E JUMP JUMPDEST DUP4 DUP4 PUSH2 0x1266 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 SLOAD SWAP1 POP PUSH2 0x9ED CALLER DUP3 PUSH1 0x1 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x10B8 JUMP JUMPDEST DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xC65A3F767206D2FDCEDE0B094A4840E01C0DD0BE1888B5BA800346EAA0123C16 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x1 DUP2 PUSH2 0xA3E SWAP2 SWAP1 PUSH2 0x3400 JUMP JUMPDEST PUSH1 0x4 DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH2 0xA50 DUP3 PUSH2 0x520 JUMP JUMPDEST PUSH2 0xA59 DUP2 PUSH2 0xE4E JUMP JUMPDEST PUSH2 0xA63 DUP4 DUP4 PUSH2 0xF54 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB07 PUSH2 0xD4E JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0xB4C JUMPI POP PUSH2 0xB4A DUP7 DUP3 PUSH2 0xA69 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0xB90 JUMPI DUP1 DUP7 PUSH1 0x40 MLOAD PUSH32 0xE237D92200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB87 SWAP3 SWAP2 SWAP1 PUSH2 0x2D37 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xB9D DUP7 DUP7 DUP7 DUP7 DUP7 PUSH2 0x13D6 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST DUP2 PUSH2 0xBAF DUP2 PUSH2 0x106F JUMP JUMPDEST DUP4 DUP4 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xC23 JUMPI DUP2 DUP2 PUSH1 0x40 MLOAD PUSH32 0x8626CC0300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC1A SWAP3 SWAP2 SWAP1 PUSH2 0x2DB8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xC2F DUP7 DUP7 PUSH1 0x1 PUSH2 0x14E1 JUMP JUMPDEST DUP5 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x49995E5DD6158CF69AD3E9777C46755A1A826A446C6416992167462DAD033B2A PUSH1 0x1 PUSH1 0x40 MLOAD PUSH2 0xC77 SWAP2 SWAP1 PUSH2 0x2E26 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCB3 DUP3 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH2 0x1588 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xCCD JUMPI POP PUSH2 0xCCB DUP3 PUSH4 0xFFFFFFFF PUSH1 0xE0 SHL PUSH2 0x1588 JUMP JUMPDEST ISZERO JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x7965DB0B00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xD47 JUMPI POP PUSH2 0xD46 DUP3 PUSH2 0x1627 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xDC8 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xDBF SWAP2 SWAP1 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xE3A JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1A8351400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE31 SWAP2 SWAP1 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xE47 DUP6 DUP6 DUP6 DUP6 DUP6 PUSH2 0x1709 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0xE5F DUP2 PUSH2 0xE5A PUSH2 0xD4E JUMP JUMPDEST PUSH2 0x17BB JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE6E DUP4 DUP4 PUSH2 0x8DE JUMP JUMPDEST PUSH2 0xF49 JUMPI PUSH1 0x1 PUSH1 0x3 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0xEE6 PUSH2 0xD4E JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x1 SWAP1 POP PUSH2 0xF4E JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF60 DUP4 DUP4 PUSH2 0x8DE JUMP JUMPDEST ISZERO PUSH2 0x103C JUMPI PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0xFD9 PUSH2 0xD4E JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x1 SWAP1 POP PUSH2 0x1041 JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MUL PUSH1 0x20 DUP5 ADD ADD MLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MUL PUSH1 0x20 DUP5 ADD ADD MLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x4 SLOAD DUP2 LT PUSH2 0x10B5 JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0xC80A970C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10AC SWAP2 SWAP1 PUSH2 0x2200 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x112A JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1121 SWAP2 SWAP1 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1137 DUP6 DUP6 PUSH2 0x180C JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x1149 PUSH1 0x0 DUP8 DUP5 DUP5 DUP8 PUSH2 0x1709 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x1 PUSH2 0x1160 DUP5 PUSH2 0x183C JUMP JUMPDEST ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x117F JUMPI PUSH2 0x117E PUSH2 0x2447 JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x11B1 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x1 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x20 ADD DUP3 ADD SWAP1 POP JUMPDEST PUSH1 0x1 ISZERO PUSH2 0x1214 JUMPI DUP1 DUP1 PUSH1 0x1 SWAP1 SUB SWAP2 POP POP PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DUP2 PUSH2 0x1208 JUMPI PUSH2 0x1207 PUSH2 0x344F JUMP JUMPDEST JUMPDEST DIV SWAP5 POP PUSH1 0x0 DUP6 SUB PUSH2 0x11BF JUMPI JUMPDEST DUP2 SWAP4 POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0x1263 JUMPI PUSH1 0x40 MLOAD PUSH32 0x1897CF6600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x125A SWAP1 PUSH2 0x34CA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x12D8 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xCED3E10000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x12CF SWAP2 SWAP1 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 DUP4 PUSH1 0x40 MLOAD PUSH2 0x13C9 SWAP2 SWAP1 PUSH2 0x22BB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1448 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x143F SWAP2 SWAP1 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x14BA JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1A8351400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14B1 SWAP2 SWAP1 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x14C7 DUP6 DUP6 PUSH2 0x180C JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x14D8 DUP8 DUP8 DUP5 DUP5 DUP8 PUSH2 0x1709 JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1553 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1A8351400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x154A SWAP2 SWAP1 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1560 DUP5 DUP5 PUSH2 0x180C JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x1581 DUP6 PUSH1 0x0 DUP5 DUP5 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x1709 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x159C SWAP2 SWAP1 PUSH2 0x34F9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP SWAP1 POP PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x20 PUSH1 0x0 DUP6 MLOAD PUSH1 0x20 DUP8 ADD DUP11 PUSH2 0x7530 STATICCALL SWAP3 POP RETURNDATASIZE SWAP2 POP PUSH1 0x0 MLOAD SWAP1 POP DUP3 DUP1 ISZERO PUSH2 0x160F JUMPI POP PUSH1 0x20 DUP3 LT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x161B JUMPI POP PUSH1 0x0 DUP2 GT JUMPDEST SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xD9B67A2600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x16F2 JUMPI POP PUSH32 0xE89341C00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ JUMPDEST DUP1 PUSH2 0x1702 JUMPI POP PUSH2 0x1701 DUP3 PUSH2 0x198F JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1715 DUP6 DUP6 DUP6 DUP6 PUSH2 0x19F9 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x17B4 JUMPI PUSH1 0x0 PUSH2 0x1753 PUSH2 0xD4E JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP5 MLOAD SUB PUSH2 0x17A3 JUMPI PUSH1 0x0 PUSH2 0x1774 PUSH1 0x0 DUP7 PUSH2 0x105B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x178C PUSH1 0x0 DUP7 PUSH2 0x105B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH2 0x179C DUP4 DUP10 DUP10 DUP6 DUP6 DUP10 PUSH2 0x1DA1 JUMP JUMPDEST POP POP PUSH2 0x17B2 JUMP JUMPDEST PUSH2 0x17B1 DUP2 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x1F55 JUMP JUMPDEST JUMPDEST POP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0x17C5 DUP3 DUP3 PUSH2 0x8DE JUMP JUMPDEST PUSH2 0x1808 JUMPI DUP1 DUP3 PUSH1 0x40 MLOAD PUSH32 0xE2517D3F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x17FF SWAP3 SWAP2 SWAP1 PUSH2 0x3514 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1 DUP3 MSTORE DUP4 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH1 0x1 DUP2 MSTORE DUP3 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD PUSH1 0x40 MSTORE SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 LT PUSH2 0x189A JUMPI PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 DUP2 PUSH2 0x1890 JUMPI PUSH2 0x188F PUSH2 0x344F JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x40 DUP2 ADD SWAP1 POP JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x18D7 JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DUP2 PUSH2 0x18CD JUMPI PUSH2 0x18CC PUSH2 0x344F JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x20 DUP2 ADD SWAP1 POP JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x1906 JUMPI PUSH7 0x2386F26FC10000 DUP4 DUP2 PUSH2 0x18FC JUMPI PUSH2 0x18FB PUSH2 0x344F JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x10 DUP2 ADD SWAP1 POP JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x192F JUMPI PUSH4 0x5F5E100 DUP4 DUP2 PUSH2 0x1925 JUMPI PUSH2 0x1924 PUSH2 0x344F JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x8 DUP2 ADD SWAP1 POP JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x1954 JUMPI PUSH2 0x2710 DUP4 DUP2 PUSH2 0x194A JUMPI PUSH2 0x1949 PUSH2 0x344F JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x4 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x1977 JUMPI PUSH1 0x64 DUP4 DUP2 PUSH2 0x196D JUMPI PUSH2 0x196C PUSH2 0x344F JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x2 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x1986 JUMPI PUSH1 0x1 DUP2 ADD SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 MLOAD DUP3 MLOAD EQ PUSH2 0x1A43 JUMPI DUP2 MLOAD DUP2 MLOAD PUSH1 0x40 MLOAD PUSH32 0x5B05999100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A3A SWAP3 SWAP2 SWAP1 PUSH2 0x2D60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1A4D PUSH2 0xD4E JUMP JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0x1C5C JUMPI PUSH1 0x0 PUSH2 0x1A70 DUP3 DUP7 PUSH2 0x105B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1A87 DUP4 DUP7 PUSH2 0x105B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1BB4 JUMPI PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x1B5C JUMPI DUP9 DUP2 DUP4 DUP6 PUSH1 0x40 MLOAD PUSH32 0x3DEE4C500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1B53 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x353D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1C4F JUMPI DUP1 PUSH1 0x0 DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1C47 SWAP2 SWAP1 PUSH2 0x3400 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST POP POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0x1A52 JUMP JUMPDEST POP PUSH1 0x1 DUP4 MLOAD SUB PUSH2 0x1D1B JUMPI PUSH1 0x0 PUSH2 0x1C7C PUSH1 0x0 DUP6 PUSH2 0x105B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1C94 PUSH1 0x0 DUP6 PUSH2 0x105B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xC3D58168C5AE7397731D063D5BBF3D657854427343F4C083240F7AACAA2D0F62 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x1D0C SWAP3 SWAP2 SWAP1 PUSH2 0x2D60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP PUSH2 0x1D9A JUMP JUMPDEST DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x4A39DC06D4C0DBC64B70AF90FD698A233A518AA5D07E595D983B8C0526C8F7FB DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x1D91 SWAP3 SWAP2 SWAP1 PUSH2 0x3582 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT ISZERO PUSH2 0x1F4D JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF23A6E61 DUP8 DUP8 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1E02 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x360E JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x1E3E JUMPI POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1E3B SWAP2 SWAP1 PUSH2 0x367D JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x1EC2 JUMPI RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1E6E JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1E73 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0x1EBA JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1EB1 SWAP2 SWAP1 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH4 0xF23A6E61 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x1F4B JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1F42 SWAP2 SWAP1 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT ISZERO PUSH2 0x2101 JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xBC197C81 DUP8 DUP8 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1FB6 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x36AA JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x1FF2 JUMPI POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1FEF SWAP2 SWAP1 PUSH2 0x367D JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x2076 JUMPI RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x2022 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x2027 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0x206E JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2065 SWAP2 SWAP1 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH4 0xBC197C81 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x20FF JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x20F6 SWAP2 SWAP1 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2148 DUP3 PUSH2 0x211D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2158 DUP2 PUSH2 0x213D JUMP JUMPDEST DUP2 EQ PUSH2 0x2163 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2175 DUP2 PUSH2 0x214F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x218E DUP2 PUSH2 0x217B JUMP JUMPDEST DUP2 EQ PUSH2 0x2199 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x21AB DUP2 PUSH2 0x2185 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x21C8 JUMPI PUSH2 0x21C7 PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x21D6 DUP6 DUP3 DUP7 ADD PUSH2 0x2166 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x21E7 DUP6 DUP3 DUP7 ADD PUSH2 0x219C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x21FA DUP2 PUSH2 0x217B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2215 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x21F1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2250 DUP2 PUSH2 0x221B JUMP JUMPDEST DUP2 EQ PUSH2 0x225B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x226D DUP2 PUSH2 0x2247 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2289 JUMPI PUSH2 0x2288 PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2297 DUP5 DUP3 DUP6 ADD PUSH2 0x225E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x22B5 DUP2 PUSH2 0x22A0 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x22D0 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x22AC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x22EC JUMPI PUSH2 0x22EB PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x22FA DUP5 DUP3 DUP6 ADD PUSH2 0x219C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x233D JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x2322 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2365 DUP3 PUSH2 0x2303 JUMP JUMPDEST PUSH2 0x236F DUP2 DUP6 PUSH2 0x230E JUMP JUMPDEST SWAP4 POP PUSH2 0x237F DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x231F JUMP JUMPDEST PUSH2 0x2388 DUP2 PUSH2 0x2349 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x23AD DUP2 DUP5 PUSH2 0x235A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x23C8 DUP2 PUSH2 0x23B5 JUMP JUMPDEST DUP2 EQ PUSH2 0x23D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x23E5 DUP2 PUSH2 0x23BF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2401 JUMPI PUSH2 0x2400 PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x240F DUP5 DUP3 DUP6 ADD PUSH2 0x23D6 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2421 DUP2 PUSH2 0x23B5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x243C PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2418 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x247F DUP3 PUSH2 0x2349 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x249E JUMPI PUSH2 0x249D PUSH2 0x2447 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x24B1 PUSH2 0x2109 JUMP JUMPDEST SWAP1 POP PUSH2 0x24BD DUP3 DUP3 PUSH2 0x2476 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x24DD JUMPI PUSH2 0x24DC PUSH2 0x2447 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2506 PUSH2 0x2501 DUP5 PUSH2 0x24C2 JUMP JUMPDEST PUSH2 0x24A7 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x2529 JUMPI PUSH2 0x2528 PUSH2 0x24EE JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2552 JUMPI DUP1 PUSH2 0x253E DUP9 DUP3 PUSH2 0x219C JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x252B JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2571 JUMPI PUSH2 0x2570 PUSH2 0x2442 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2581 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x24F3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x25AA JUMPI PUSH2 0x25A9 PUSH2 0x2447 JUMP JUMPDEST JUMPDEST PUSH2 0x25B3 DUP3 PUSH2 0x2349 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x25E2 PUSH2 0x25DD DUP5 PUSH2 0x258F JUMP JUMPDEST PUSH2 0x24A7 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x25FE JUMPI PUSH2 0x25FD PUSH2 0x258A JUMP JUMPDEST JUMPDEST PUSH2 0x2609 DUP5 DUP3 DUP6 PUSH2 0x25C0 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2626 JUMPI PUSH2 0x2625 PUSH2 0x2442 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2636 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x25CF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x265B JUMPI PUSH2 0x265A PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2669 DUP9 DUP3 DUP10 ADD PUSH2 0x2166 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x267A DUP9 DUP3 DUP10 ADD PUSH2 0x2166 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x269B JUMPI PUSH2 0x269A PUSH2 0x2118 JUMP JUMPDEST JUMPDEST PUSH2 0x26A7 DUP9 DUP3 DUP10 ADD PUSH2 0x255C JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x26C8 JUMPI PUSH2 0x26C7 PUSH2 0x2118 JUMP JUMPDEST JUMPDEST PUSH2 0x26D4 DUP9 DUP3 DUP10 ADD PUSH2 0x255C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x26F5 JUMPI PUSH2 0x26F4 PUSH2 0x2118 JUMP JUMPDEST JUMPDEST PUSH2 0x2701 DUP9 DUP3 DUP10 ADD PUSH2 0x2611 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2725 JUMPI PUSH2 0x2724 PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2733 DUP6 DUP3 DUP7 ADD PUSH2 0x23D6 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2744 DUP6 DUP3 DUP7 ADD PUSH2 0x2166 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2769 JUMPI PUSH2 0x2768 PUSH2 0x2447 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x278D PUSH2 0x2788 DUP5 PUSH2 0x274E JUMP JUMPDEST PUSH2 0x24A7 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x27B0 JUMPI PUSH2 0x27AF PUSH2 0x24EE JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x27D9 JUMPI DUP1 PUSH2 0x27C5 DUP9 DUP3 PUSH2 0x2166 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x27B2 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x27F8 JUMPI PUSH2 0x27F7 PUSH2 0x2442 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2808 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x277A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2828 JUMPI PUSH2 0x2827 PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2846 JUMPI PUSH2 0x2845 PUSH2 0x2118 JUMP JUMPDEST JUMPDEST PUSH2 0x2852 DUP6 DUP3 DUP7 ADD PUSH2 0x27E3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2873 JUMPI PUSH2 0x2872 PUSH2 0x2118 JUMP JUMPDEST JUMPDEST PUSH2 0x287F DUP6 DUP3 DUP7 ADD PUSH2 0x255C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x28BE DUP2 PUSH2 0x217B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x28D0 DUP4 DUP4 PUSH2 0x28B5 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x28F4 DUP3 PUSH2 0x2889 JUMP JUMPDEST PUSH2 0x28FE DUP2 DUP6 PUSH2 0x2894 JUMP JUMPDEST SWAP4 POP PUSH2 0x2909 DUP4 PUSH2 0x28A5 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x293A JUMPI DUP2 MLOAD PUSH2 0x2921 DUP9 DUP3 PUSH2 0x28C4 JUMP JUMPDEST SWAP8 POP PUSH2 0x292C DUP4 PUSH2 0x28DC JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x290D JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2961 DUP2 DUP5 PUSH2 0x28E9 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2983 JUMPI PUSH2 0x2982 PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2991 DUP8 DUP3 DUP9 ADD PUSH2 0x2166 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x29A2 DUP8 DUP3 DUP9 ADD PUSH2 0x219C JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x29B3 DUP8 DUP3 DUP9 ADD PUSH2 0x219C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x29D4 JUMPI PUSH2 0x29D3 PUSH2 0x2118 JUMP JUMPDEST JUMPDEST PUSH2 0x29E0 DUP8 DUP3 DUP9 ADD PUSH2 0x2611 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2A07 JUMPI PUSH2 0x2A06 PUSH2 0x2447 JUMP JUMPDEST JUMPDEST PUSH2 0x2A10 DUP3 PUSH2 0x2349 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A30 PUSH2 0x2A2B DUP5 PUSH2 0x29EC JUMP JUMPDEST PUSH2 0x24A7 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x2A4C JUMPI PUSH2 0x2A4B PUSH2 0x258A JUMP JUMPDEST JUMPDEST PUSH2 0x2A57 DUP5 DUP3 DUP6 PUSH2 0x25C0 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2A74 JUMPI PUSH2 0x2A73 PUSH2 0x2442 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2A84 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x2A1D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2AA4 JUMPI PUSH2 0x2AA3 PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2AB2 DUP6 DUP3 DUP7 ADD PUSH2 0x219C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2AD3 JUMPI PUSH2 0x2AD2 PUSH2 0x2118 JUMP JUMPDEST JUMPDEST PUSH2 0x2ADF DUP6 DUP3 DUP7 ADD PUSH2 0x2A5F JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2AFF JUMPI PUSH2 0x2AFE PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2B1D JUMPI PUSH2 0x2B1C PUSH2 0x2118 JUMP JUMPDEST JUMPDEST PUSH2 0x2B29 DUP5 DUP3 DUP6 ADD PUSH2 0x2A5F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2B3B DUP2 PUSH2 0x22A0 JUMP JUMPDEST DUP2 EQ PUSH2 0x2B46 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2B58 DUP2 PUSH2 0x2B32 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2B75 JUMPI PUSH2 0x2B74 PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2B83 DUP6 DUP3 DUP7 ADD PUSH2 0x2166 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2B94 DUP6 DUP3 DUP7 ADD PUSH2 0x2B49 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2BB5 JUMPI PUSH2 0x2BB4 PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2BC3 DUP6 DUP3 DUP7 ADD PUSH2 0x2166 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2BD4 DUP6 DUP3 DUP7 ADD PUSH2 0x2166 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2BFA JUMPI PUSH2 0x2BF9 PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2C08 DUP9 DUP3 DUP10 ADD PUSH2 0x2166 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x2C19 DUP9 DUP3 DUP10 ADD PUSH2 0x2166 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x2C2A DUP9 DUP3 DUP10 ADD PUSH2 0x219C JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH2 0x2C3B DUP9 DUP3 DUP10 ADD PUSH2 0x219C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2C5C JUMPI PUSH2 0x2C5B PUSH2 0x2118 JUMP JUMPDEST JUMPDEST PUSH2 0x2C68 DUP9 DUP3 DUP10 ADD PUSH2 0x2611 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2C8E JUMPI PUSH2 0x2C8D PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2C9C DUP7 DUP3 DUP8 ADD PUSH2 0x2166 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x2CAD DUP7 DUP3 DUP8 ADD PUSH2 0x219C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x2CBE DUP7 DUP3 DUP8 ADD PUSH2 0x219C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x2D0F JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x2D22 JUMPI PUSH2 0x2D21 PUSH2 0x2CC8 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2D31 DUP2 PUSH2 0x213D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2D4C PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2D28 JUMP JUMPDEST PUSH2 0x2D59 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2D28 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2D75 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x21F1 JUMP JUMPDEST PUSH2 0x2D82 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x21F1 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2DCD PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2D28 JUMP JUMPDEST PUSH2 0x2DDA PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x21F1 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2E10 PUSH2 0x2E0B PUSH2 0x2E06 DUP5 PUSH2 0x2DE1 JUMP JUMPDEST PUSH2 0x2DEB JUMP JUMPDEST PUSH2 0x217B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2E20 DUP2 PUSH2 0x2DF5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2E3B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2E17 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4163636F756E742063616E6E6F7420626520656D707479000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2E77 PUSH1 0x17 DUP4 PUSH2 0x230E JUMP JUMPDEST SWAP2 POP PUSH2 0x2E82 DUP3 PUSH2 0x2E41 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2EA6 DUP2 PUSH2 0x2E6A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH2 0x2EDA DUP2 PUSH2 0x2CF7 JUMP JUMPDEST PUSH2 0x2EE4 DUP2 DUP7 PUSH2 0x2EAD JUMP JUMPDEST SWAP5 POP PUSH1 0x1 DUP3 AND PUSH1 0x0 DUP2 EQ PUSH2 0x2EFF JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x2F14 JUMPI PUSH2 0x2F47 JUMP JUMPDEST PUSH1 0xFF NOT DUP4 AND DUP7 MSTORE DUP2 ISZERO ISZERO DUP3 MUL DUP7 ADD SWAP4 POP PUSH2 0x2F47 JUMP JUMPDEST PUSH2 0x2F1D DUP6 PUSH2 0x2EB8 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2F3F JUMPI DUP2 SLOAD DUP2 DUP10 ADD MSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x2F20 JUMP JUMPDEST DUP4 DUP9 ADD SWAP6 POP POP POP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x2F6170692F76312F6E66742F0000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2F86 PUSH1 0xC DUP4 PUSH2 0x2EAD JUMP JUMPDEST SWAP2 POP PUSH2 0x2F91 DUP3 PUSH2 0x2F50 JUMP JUMPDEST PUSH1 0xC DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FA7 DUP3 PUSH2 0x2303 JUMP JUMPDEST PUSH2 0x2FB1 DUP2 DUP6 PUSH2 0x2EAD JUMP JUMPDEST SWAP4 POP PUSH2 0x2FC1 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x231F JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x2F00000000000000000000000000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3003 PUSH1 0x1 DUP4 PUSH2 0x2EAD JUMP JUMPDEST SWAP2 POP PUSH2 0x300E DUP3 PUSH2 0x2FCD JUMP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x2F72657075746174696F6E2D73636F7265000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x304F PUSH1 0x11 DUP4 PUSH2 0x2EAD JUMP JUMPDEST SWAP2 POP PUSH2 0x305A DUP3 PUSH2 0x3019 JUMP JUMPDEST PUSH1 0x11 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3071 DUP3 DUP7 PUSH2 0x2ECD JUMP JUMPDEST SWAP2 POP PUSH2 0x307C DUP3 PUSH2 0x2F79 JUMP JUMPDEST SWAP2 POP PUSH2 0x3088 DUP3 DUP6 PUSH2 0x2F9C JUMP JUMPDEST SWAP2 POP PUSH2 0x3093 DUP3 PUSH2 0x2FF6 JUMP JUMPDEST SWAP2 POP PUSH2 0x309F DUP3 DUP5 PUSH2 0x2F9C JUMP JUMPDEST SWAP2 POP PUSH2 0x30AA DUP3 PUSH2 0x3042 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH2 0x30C4 DUP2 PUSH2 0x2CF7 JUMP JUMPDEST PUSH2 0x30CE DUP2 DUP7 PUSH2 0x230E JUMP JUMPDEST SWAP5 POP PUSH1 0x1 DUP3 AND PUSH1 0x0 DUP2 EQ PUSH2 0x30E9 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x30FF JUMPI PUSH2 0x3132 JUMP JUMPDEST PUSH1 0xFF NOT DUP4 AND DUP7 MSTORE DUP2 ISZERO ISZERO PUSH1 0x20 MUL DUP7 ADD SWAP4 POP PUSH2 0x3132 JUMP JUMPDEST PUSH2 0x3108 DUP6 PUSH2 0x2EB8 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x312A JUMPI DUP2 SLOAD DUP2 DUP10 ADD MSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x310B JUMP JUMPDEST DUP1 DUP9 ADD SWAP6 POP POP POP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3155 DUP2 DUP6 PUSH2 0x30B7 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x3169 DUP2 DUP5 PUSH2 0x235A JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH2 0x31BF PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x3182 JUMP JUMPDEST PUSH2 0x31C9 DUP7 DUP4 PUSH2 0x3182 JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x31FC PUSH2 0x31F7 PUSH2 0x31F2 DUP5 PUSH2 0x217B JUMP JUMPDEST PUSH2 0x2DEB JUMP JUMPDEST PUSH2 0x217B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3216 DUP4 PUSH2 0x31E1 JUMP JUMPDEST PUSH2 0x322A PUSH2 0x3222 DUP3 PUSH2 0x3203 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x318F JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH2 0x323F PUSH2 0x3232 JUMP JUMPDEST PUSH2 0x324A DUP2 DUP5 DUP5 PUSH2 0x320D JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x326E JUMPI PUSH2 0x3263 PUSH1 0x0 DUP3 PUSH2 0x3237 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x3250 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x32B3 JUMPI PUSH2 0x3284 DUP2 PUSH2 0x2EB8 JUMP JUMPDEST PUSH2 0x328D DUP5 PUSH2 0x3172 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x329C JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x32B0 PUSH2 0x32A8 DUP6 PUSH2 0x3172 JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x324F JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x32D6 PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x32B8 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x32EF DUP4 DUP4 PUSH2 0x32C5 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x3308 DUP3 PUSH2 0x2303 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3321 JUMPI PUSH2 0x3320 PUSH2 0x2447 JUMP JUMPDEST JUMPDEST PUSH2 0x332B DUP3 SLOAD PUSH2 0x2CF7 JUMP JUMPDEST PUSH2 0x3336 DUP3 DUP3 DUP6 PUSH2 0x3272 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x3369 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x3357 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x3361 DUP6 DUP3 PUSH2 0x32E3 JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x33C9 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x3377 DUP7 PUSH2 0x2EB8 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x339F JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x337A JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x33BC JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x33B8 PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x32C5 JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x340B DUP3 PUSH2 0x217B JUMP JUMPDEST SWAP2 POP PUSH2 0x3416 DUP4 PUSH2 0x217B JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x342E JUMPI PUSH2 0x342D PUSH2 0x33D1 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x3449 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2D28 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x5552492063616E6E6F7420626520656D70747900000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x34B4 PUSH1 0x13 DUP4 PUSH2 0x230E JUMP JUMPDEST SWAP2 POP PUSH2 0x34BF DUP3 PUSH2 0x347E JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x34E3 DUP2 PUSH2 0x34A7 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x34F3 DUP2 PUSH2 0x221B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x350E PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x34EA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x3529 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2D28 JUMP JUMPDEST PUSH2 0x3536 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2418 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x3552 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x2D28 JUMP JUMPDEST PUSH2 0x355F PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x21F1 JUMP JUMPDEST PUSH2 0x356C PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x21F1 JUMP JUMPDEST PUSH2 0x3579 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x21F1 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x359C DUP2 DUP6 PUSH2 0x28E9 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x35B0 DUP2 DUP5 PUSH2 0x28E9 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x35E0 DUP3 PUSH2 0x35B9 JUMP JUMPDEST PUSH2 0x35EA DUP2 DUP6 PUSH2 0x35C4 JUMP JUMPDEST SWAP4 POP PUSH2 0x35FA DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x231F JUMP JUMPDEST PUSH2 0x3603 DUP2 PUSH2 0x2349 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x3623 PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x2D28 JUMP JUMPDEST PUSH2 0x3630 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x2D28 JUMP JUMPDEST PUSH2 0x363D PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x21F1 JUMP JUMPDEST PUSH2 0x364A PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x21F1 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x365C DUP2 DUP5 PUSH2 0x35D5 JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x3677 DUP2 PUSH2 0x2247 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3693 JUMPI PUSH2 0x3692 PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x36A1 DUP5 DUP3 DUP6 ADD PUSH2 0x3668 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x36BF PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x2D28 JUMP JUMPDEST PUSH2 0x36CC PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x2D28 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x36DE DUP2 DUP7 PUSH2 0x28E9 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x36F2 DUP2 DUP6 PUSH2 0x28E9 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x3706 DUP2 DUP5 PUSH2 0x35D5 JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x24 0xE SWAP11 PUSH30 0xAAB5D9EBA2793E75F4BBF0E9A74F133868AC14D5E9561767BB722E826473 PUSH16 0x6C634300081A00330000000000000000 ", + "sourceMap": "336:2840:16:-:0;;;497:178;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1251:62:3;;;;;;;;;;;;1293:13;1301:4;1293:7;;;:13;;:::i;:::-;1251:62;556:29:16::1;575:9;556:18;;;:29;;:::i;:::-;595:42;2232:4:0;606:18:16::0;::::1;626:10;595;;;:42;;:::i;:::-;;659:9;647;:21;;;;;;:::i;:::-;;497:178:::0;336:2840;;10282:86:3;10355:6;10348:4;:13;;;;;;:::i;:::-;;10282:86;:::o;827:174:16:-;929:1;911:6;905:20;:25;901:94;;953:31;;;;;;;;;;:::i;:::-;;;;;;;;901:94;827:174;:::o;6179:316:0:-;6256:4;6277:22;6285:4;6291:7;6277;;;:22;;:::i;:::-;6272:217;;6347:4;6315:6;:12;6322:4;6315:12;;;;;;;;;;;:20;;:29;6336:7;6315:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;6397:12;:10;;;:12;;:::i;:::-;6370:40;;6388:7;6370:40;;6382:4;6370:40;;;;;;;;;;6431:4;6424:11;;;;6272:217;6473:5;6466:12;;6179:316;;;;;:::o;2854:136::-;2931:4;2954:6;:12;2961:4;2954:12;;;;;;;;;;;:20;;:29;2975:7;2954:29;;;;;;;;;;;;;;;;;;;;;;;;;2947:36;;2854:136;;;;:::o;656:96:8:-;709:7;735:10;728:17;;656:96;:::o;7:75:18:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:117;566:1;563;556:12;580:102;621:6;672:2;668:7;663:2;656:5;652:14;648:28;638:38;;580:102;;;:::o;688:180::-;736:77;733:1;726:88;833:4;830:1;823:15;857:4;854:1;847:15;874:281;957:27;979:4;957:27;:::i;:::-;949:6;945:40;1087:6;1075:10;1072:22;1051:18;1039:10;1036:34;1033:62;1030:88;;;1098:18;;:::i;:::-;1030:88;1138:10;1134:2;1127:22;917:238;874:281;;:::o;1161:129::-;1195:6;1222:20;;:::i;:::-;1212:30;;1251:33;1279:4;1271:6;1251:33;:::i;:::-;1161:129;;;:::o;1296:308::-;1358:4;1448:18;1440:6;1437:30;1434:56;;;1470:18;;:::i;:::-;1434:56;1508:29;1530:6;1508:29;:::i;:::-;1500:37;;1592:4;1586;1582:15;1574:23;;1296:308;;;:::o;1610:248::-;1692:1;1702:113;1716:6;1713:1;1710:13;1702:113;;;1801:1;1796:3;1792:11;1786:18;1782:1;1777:3;1773:11;1766:39;1738:2;1735:1;1731:10;1726:15;;1702:113;;;1849:1;1840:6;1835:3;1831:16;1824:27;1672:186;1610:248;;;:::o;1864:434::-;1953:5;1978:66;1994:49;2036:6;1994:49;:::i;:::-;1978:66;:::i;:::-;1969:75;;2067:6;2060:5;2053:21;2105:4;2098:5;2094:16;2143:3;2134:6;2129:3;2125:16;2122:25;2119:112;;;2150:79;;:::i;:::-;2119:112;2240:52;2285:6;2280:3;2275;2240:52;:::i;:::-;1959:339;1864:434;;;;;:::o;2318:355::-;2385:5;2434:3;2427:4;2419:6;2415:17;2411:27;2401:122;;2442:79;;:::i;:::-;2401:122;2552:6;2546:13;2577:90;2663:3;2655:6;2648:4;2640:6;2636:17;2577:90;:::i;:::-;2568:99;;2391:282;2318:355;;;;:::o;2679:524::-;2759:6;2808:2;2796:9;2787:7;2783:23;2779:32;2776:119;;;2814:79;;:::i;:::-;2776:119;2955:1;2944:9;2940:17;2934:24;2985:18;2977:6;2974:30;2971:117;;;3007:79;;:::i;:::-;2971:117;3112:74;3178:7;3169:6;3158:9;3154:22;3112:74;:::i;:::-;3102:84;;2905:291;2679:524;;;;:::o;3209:99::-;3261:6;3295:5;3289:12;3279:22;;3209:99;;;:::o;3314:180::-;3362:77;3359:1;3352:88;3459:4;3456:1;3449:15;3483:4;3480:1;3473:15;3500:320;3544:6;3581:1;3575:4;3571:12;3561:22;;3628:1;3622:4;3618:12;3649:18;3639:81;;3705:4;3697:6;3693:17;3683:27;;3639:81;3767:2;3759:6;3756:14;3736:18;3733:38;3730:84;;3786:18;;:::i;:::-;3730:84;3551:269;3500:320;;;:::o;3826:141::-;3875:4;3898:3;3890:11;;3921:3;3918:1;3911:14;3955:4;3952:1;3942:18;3934:26;;3826:141;;;:::o;3973:93::-;4010:6;4057:2;4052;4045:5;4041:14;4037:23;4027:33;;3973:93;;;:::o;4072:107::-;4116:8;4166:5;4160:4;4156:16;4135:37;;4072:107;;;;:::o;4185:393::-;4254:6;4304:1;4292:10;4288:18;4327:97;4357:66;4346:9;4327:97;:::i;:::-;4445:39;4475:8;4464:9;4445:39;:::i;:::-;4433:51;;4517:4;4513:9;4506:5;4502:21;4493:30;;4566:4;4556:8;4552:19;4545:5;4542:30;4532:40;;4261:317;;4185:393;;;;;:::o;4584:77::-;4621:7;4650:5;4639:16;;4584:77;;;:::o;4667:60::-;4695:3;4716:5;4709:12;;4667:60;;;:::o;4733:142::-;4783:9;4816:53;4834:34;4843:24;4861:5;4843:24;:::i;:::-;4834:34;:::i;:::-;4816:53;:::i;:::-;4803:66;;4733:142;;;:::o;4881:75::-;4924:3;4945:5;4938:12;;4881:75;;;:::o;4962:269::-;5072:39;5103:7;5072:39;:::i;:::-;5133:91;5182:41;5206:16;5182:41;:::i;:::-;5174:6;5167:4;5161:11;5133:91;:::i;:::-;5127:4;5120:105;5038:193;4962:269;;;:::o;5237:73::-;5282:3;5237:73;:::o;5316:189::-;5393:32;;:::i;:::-;5434:65;5492:6;5484;5478:4;5434:65;:::i;:::-;5369:136;5316:189;;:::o;5511:186::-;5571:120;5588:3;5581:5;5578:14;5571:120;;;5642:39;5679:1;5672:5;5642:39;:::i;:::-;5615:1;5608:5;5604:13;5595:22;;5571:120;;;5511:186;;:::o;5703:543::-;5804:2;5799:3;5796:11;5793:446;;;5838:38;5870:5;5838:38;:::i;:::-;5922:29;5940:10;5922:29;:::i;:::-;5912:8;5908:44;6105:2;6093:10;6090:18;6087:49;;;6126:8;6111:23;;6087:49;6149:80;6205:22;6223:3;6205:22;:::i;:::-;6195:8;6191:37;6178:11;6149:80;:::i;:::-;5808:431;;5793:446;5703:543;;;:::o;6252:117::-;6306:8;6356:5;6350:4;6346:16;6325:37;;6252:117;;;;:::o;6375:169::-;6419:6;6452:51;6500:1;6496:6;6488:5;6485:1;6481:13;6452:51;:::i;:::-;6448:56;6533:4;6527;6523:15;6513:25;;6426:118;6375:169;;;;:::o;6549:295::-;6625:4;6771:29;6796:3;6790:4;6771:29;:::i;:::-;6763:37;;6833:3;6830:1;6826:11;6820:4;6817:21;6809:29;;6549:295;;;;:::o;6849:1395::-;6966:37;6999:3;6966:37;:::i;:::-;7068:18;7060:6;7057:30;7054:56;;;7090:18;;:::i;:::-;7054:56;7134:38;7166:4;7160:11;7134:38;:::i;:::-;7219:67;7279:6;7271;7265:4;7219:67;:::i;:::-;7313:1;7337:4;7324:17;;7369:2;7361:6;7358:14;7386:1;7381:618;;;;8043:1;8060:6;8057:77;;;8109:9;8104:3;8100:19;8094:26;8085:35;;8057:77;8160:67;8220:6;8213:5;8160:67;:::i;:::-;8154:4;8147:81;8016:222;7351:887;;7381:618;7433:4;7429:9;7421:6;7417:22;7467:37;7499:4;7467:37;:::i;:::-;7526:1;7540:208;7554:7;7551:1;7548:14;7540:208;;;7633:9;7628:3;7624:19;7618:26;7610:6;7603:42;7684:1;7676:6;7672:14;7662:24;;7731:2;7720:9;7716:18;7703:31;;7577:4;7574:1;7570:12;7565:17;;7540:208;;;7776:6;7767:7;7764:19;7761:179;;;7834:9;7829:3;7825:19;7819:26;7877:48;7919:4;7911:6;7907:17;7896:9;7877:48;:::i;:::-;7869:6;7862:64;7784:156;7761:179;7986:1;7982;7974:6;7970:14;7966:22;7960:4;7953:36;7388:611;;;7351:887;;6941:1303;;;6849:1395;;:::o;8250:169::-;8334:11;8368:6;8363:3;8356:19;8408:4;8403:3;8399:14;8384:29;;8250:169;;;;:::o;8425:::-;8565:21;8561:1;8553:6;8549:14;8542:45;8425:169;:::o;8600:366::-;8742:3;8763:67;8827:2;8822:3;8763:67;:::i;:::-;8756:74;;8839:93;8928:3;8839:93;:::i;:::-;8957:2;8952:3;8948:12;8941:19;;8600:366;;;:::o;8972:419::-;9138:4;9176:2;9165:9;9161:18;9153:26;;9225:9;9219:4;9215:20;9211:1;9200:9;9196:17;9189:47;9253:131;9379:4;9253:131;:::i;:::-;9245:139;;8972:419;;;:::o;336:2840:16:-;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@DEFAULT_ADMIN_ROLE_29": { + "entryPoint": 2477, + "id": 29, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_asSingletonArrays_1565": { + "entryPoint": 6156, + "id": 1565, + "parameterSlots": 2, + "returnSlots": 2 + }, + "@_burn_1332": { + "entryPoint": 5345, + "id": 1332, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_checkRole_114": { + "entryPoint": 6075, + "id": 114, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_checkRole_93": { + "entryPoint": 3662, + "id": 93, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_checkTokenId_3773": { + "entryPoint": 4207, + "id": 3773, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_doSafeBatchTransferAcceptanceCheck_1549": { + "entryPoint": 8021, + "id": 1549, + "parameterSlots": 6, + "returnSlots": 0 + }, + "@_doSafeTransferAcceptanceCheck_1479": { + "entryPoint": 7585, + "id": 1479, + "parameterSlots": 6, + "returnSlots": 0 + }, + "@_grantRole_256": { + "entryPoint": 3682, + "id": 256, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@_mint_1241": { + "entryPoint": 4280, + "id": 1241, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_msgSender_1942": { + "entryPoint": 3406, + "id": 1942, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_revokeRole_294": { + "entryPoint": 3924, + "id": 294, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@_safeBatchTransferFrom_1178": { + "entryPoint": 3414, + "id": 1178, + "parameterSlots": 5, + "returnSlots": 0 + }, + "@_safeTransferFrom_1123": { + "entryPoint": 5078, + "id": 1123, + "parameterSlots": 5, + "returnSlots": 0 + }, + "@_setApprovalForAll_1411": { + "entryPoint": 4710, + "id": 1411, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_updateWithAcceptanceCheck_1057": { + "entryPoint": 5897, + "id": 1057, + "parameterSlots": 5, + "returnSlots": 0 + }, + "@_update_981": { + "entryPoint": 6649, + "id": 981, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@balanceOfBatch_705": { + "entryPoint": 1669, + "id": 705, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@balanceOf_635": { + "entryPoint": 1010, + "id": 635, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@burn_3948": { + "entryPoint": 2981, + "id": 3948, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@counter_3848": { + "entryPoint": 1934, + "id": 3848, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@getRoleAdmin_128": { + "entryPoint": 1312, + "id": 128, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@grantRole_147": { + "entryPoint": 1512, + "id": 147, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@hasRole_80": { + "entryPoint": 2270, + "id": 80, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@isApprovedForAll_738": { + "entryPoint": 2665, + "id": 738, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@issue_3876": { + "entryPoint": 2506, + "id": 3876, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@log10_3430": { + "entryPoint": 6204, + "id": 3430, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@mint_3918": { + "entryPoint": 1944, + "id": 3918, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@renounceRole_189": { + "entryPoint": 1546, + "id": 189, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@requireNonEmptyURI_3792": { + "entryPoint": 4639, + "id": 3792, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@revokeRole_166": { + "entryPoint": 2631, + "id": 166, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@safeBatchTransferFrom_828": { + "entryPoint": 1344, + "id": 828, + "parameterSlots": 5, + "returnSlots": 0 + }, + "@safeTransferFrom_782": { + "entryPoint": 2813, + "id": 782, + "parameterSlots": 5, + "returnSlots": 0 + }, + "@setApprovalForAll_721": { + "entryPoint": 2484, + "id": 721, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@supportsERC165InterfaceUnchecked_2543": { + "entryPoint": 5512, + "id": 2543, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@supportsERC165_2380": { + "entryPoint": 3207, + "id": 2380, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@supportsInterface_2348": { + "entryPoint": 6543, + "id": 2348, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@supportsInterface_3974": { + "entryPoint": 1100, + "id": 3974, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@supportsInterface_607": { + "entryPoint": 5671, + "id": 607, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@supportsInterface_62": { + "entryPoint": 3284, + "id": 62, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@toString_2138": { + "entryPoint": 4433, + "id": 2138, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@unsafeMemoryAccess_1916": { + "entryPoint": 4187, + "id": 1916, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@unsafeMemoryAccess_1929": { + "entryPoint": 4167, + "id": 1929, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@updateBaseURI_3996": { + "entryPoint": 2377, + "id": 3996, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@uri_4028": { + "entryPoint": 2134, + "id": 4028, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@uri_618": { + "entryPoint": 1164, + "id": 618, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr": { + "entryPoint": 10106, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr": { + "entryPoint": 9459, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_available_length_t_bytes_memory_ptr": { + "entryPoint": 9679, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_available_length_t_string_memory_ptr": { + "entryPoint": 10781, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_t_address": { + "entryPoint": 8550, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_array$_t_address_$dyn_memory_ptr": { + "entryPoint": 10211, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_array$_t_uint256_$dyn_memory_ptr": { + "entryPoint": 9564, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bool": { + "entryPoint": 11081, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes32": { + "entryPoint": 9174, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes4": { + "entryPoint": 8798, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes4_fromMemory": { + "entryPoint": 13928, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes_memory_ptr": { + "entryPoint": 9745, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_string_memory_ptr": { + "entryPoint": 10847, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 8604, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_address": { + "entryPoint": 11166, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_bytes_memory_ptr": { + "entryPoint": 9791, + "id": null, + "parameterSlots": 2, + "returnSlots": 5 + }, + "abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_memory_ptr": { + "entryPoint": 11230, + "id": null, + "parameterSlots": 2, + "returnSlots": 5 + }, + "abi_decode_tuple_t_addresst_bool": { + "entryPoint": 11102, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_uint256": { + "entryPoint": 8625, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_uint256t_uint256": { + "entryPoint": 11381, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_addresst_uint256t_uint256t_bytes_memory_ptr": { + "entryPoint": 10601, + "id": null, + "parameterSlots": 2, + "returnSlots": 4 + }, + "abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptr": { + "entryPoint": 10257, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_bytes32": { + "entryPoint": 9195, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_bytes32t_address": { + "entryPoint": 9998, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_bytes4": { + "entryPoint": 8819, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_bytes4_fromMemory": { + "entryPoint": 13949, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_string_memory_ptr": { + "entryPoint": 10985, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256": { + "entryPoint": 8918, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256t_string_memory_ptr": { + "entryPoint": 10893, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encodeUpdatedPos_t_uint256_to_t_uint256": { + "entryPoint": 10436, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 11560, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack": { + "entryPoint": 10473, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 8876, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bytes32_to_t_bytes32_fromStack": { + "entryPoint": 9240, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bytes4_to_t_bytes4_fromStack": { + "entryPoint": 13546, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack": { + "entryPoint": 13781, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_rational_1_by_1_to_t_uint256_fromStack": { + "entryPoint": 11799, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": { + "entryPoint": 9050, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 12188, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack": { + "entryPoint": 12471, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_string_storage_to_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 11981, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231_to_t_string_memory_ptr_fromStack": { + "entryPoint": 13479, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_55265a2701bc64b88c772eaa96e74946d09782e358d6aba22dcae17933df0a55_to_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 12354, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_c2ef5cec3cd5807ca7e192fb77bd9e3da1378958f99ebf24571ab659b0b36619_to_t_string_memory_ptr_fromStack": { + "entryPoint": 11882, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_dffb04a525cd02c1927009e9978b1b3a31e2219941c628b0e1a278e1253e73d7_to_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 12153, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527_to_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 12278, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256": { + "entryPoint": 10421, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 8689, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_packed_t_string_storage_t_stringliteral_dffb04a525cd02c1927009e9978b1b3a31e2219941c628b0e1a278e1253e73d7_t_string_memory_ptr_t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527_t_string_memory_ptr_t_stringliteral_55265a2701bc64b88c772eaa96e74946d09782e358d6aba22dcae17933df0a55__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed": { + "entryPoint": 12389, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 13364, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed": { + "entryPoint": 11575, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__to_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__fromStack_reversed": { + "entryPoint": 13994, + "id": null, + "parameterSlots": 6, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed": { + "entryPoint": 13838, + "id": null, + "parameterSlots": 6, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed": { + "entryPoint": 13588, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed": { + "entryPoint": 11704, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_uint256_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": 13629, + "id": null, + "parameterSlots": 5, + "returnSlots": 1 + }, + "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed": { + "entryPoint": 10567, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed": { + "entryPoint": 13698, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 8891, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed": { + "entryPoint": 9255, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed": { + "entryPoint": 13561, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_rational_1_by_1__to_t_uint256__fromStack_reversed": { + "entryPoint": 11814, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 9107, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_storage_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 12603, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 13514, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_c2ef5cec3cd5807ca7e192fb77bd9e3da1378958f99ebf24571ab659b0b36619__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 11917, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 8704, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": 11616, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "allocate_memory": { + "entryPoint": 9383, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": 8457, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_allocation_size_t_array$_t_address_$dyn_memory_ptr": { + "entryPoint": 10062, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr": { + "entryPoint": 9410, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_allocation_size_t_bytes_memory_ptr": { + "entryPoint": 9615, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_allocation_size_t_string_memory_ptr": { + "entryPoint": 10732, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr": { + "entryPoint": 10405, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_dataslot_t_string_storage": { + "entryPoint": 11960, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_array$_t_uint256_$dyn_memory_ptr": { + "entryPoint": 10377, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_bytes_memory_ptr": { + "entryPoint": 13753, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 8963, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr": { + "entryPoint": 10460, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack": { + "entryPoint": 10388, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack": { + "entryPoint": 13764, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 8974, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 11949, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 13312, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "clean_up_bytearray_end_slots_t_string_storage": { + "entryPoint": 12914, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "cleanup_t_address": { + "entryPoint": 8509, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 8864, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bytes32": { + "entryPoint": 9141, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bytes4": { + "entryPoint": 8731, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_rational_1_by_1": { + "entryPoint": 11745, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 8477, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 8571, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clear_storage_range_t_bytes1": { + "entryPoint": 12879, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "convert_t_rational_1_by_1_to_t_uint256": { + "entryPoint": 11765, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "convert_t_uint256_to_t_uint256": { + "entryPoint": 12769, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { + "entryPoint": 13055, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "copy_calldata_to_memory_with_cleanup": { + "entryPoint": 9664, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 8991, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "divide_by_32_ceil": { + "entryPoint": 12658, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_byte_array_length": { + "entryPoint": 11511, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_used_part_and_set_length_of_short_byte_array": { + "entryPoint": 13027, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "finalize_allocation": { + "entryPoint": 9334, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "identity": { + "entryPoint": 11755, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "mask_bytes_dynamic": { + "entryPoint": 12997, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 13265, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x12": { + "entryPoint": 13391, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x22": { + "entryPoint": 11464, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x32": { + "entryPoint": 11657, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 9287, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "prepare_store_t_uint256": { + "entryPoint": 12803, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { + "entryPoint": 9282, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef": { + "entryPoint": 9454, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": { + "entryPoint": 9610, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": 8472, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 8467, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 9033, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "shift_left_dynamic": { + "entryPoint": 12674, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "shift_right_unsigned_dynamic": { + "entryPoint": 12984, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "storage_set_to_zero_t_uint256": { + "entryPoint": 12855, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "store_literal_in_memory_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231": { + "entryPoint": 13438, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_55265a2701bc64b88c772eaa96e74946d09782e358d6aba22dcae17933df0a55": { + "entryPoint": 12313, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_c2ef5cec3cd5807ca7e192fb77bd9e3da1378958f99ebf24571ab659b0b36619": { + "entryPoint": 11841, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_dffb04a525cd02c1927009e9978b1b3a31e2219941c628b0e1a278e1253e73d7": { + "entryPoint": 12112, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527": { + "entryPoint": 12237, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "update_byte_slice_dynamic32": { + "entryPoint": 12687, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "update_storage_value_t_uint256_to_t_uint256": { + "entryPoint": 12813, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "validator_revert_t_address": { + "entryPoint": 8527, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_bool": { + "entryPoint": 11058, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_bytes32": { + "entryPoint": 9151, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_bytes4": { + "entryPoint": 8775, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 8581, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "zero_value_for_split_t_uint256": { + "entryPoint": 12850, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:42493:18", + "nodeType": "YulBlock", + "src": "0:42493:18", + "statements": [ + { + "body": { + "nativeSrc": "47:35:18", + "nodeType": "YulBlock", + "src": "47:35:18", + "statements": [ + { + "nativeSrc": "57:19:18", + "nodeType": "YulAssignment", + "src": "57:19:18", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "73:2:18", + "nodeType": "YulLiteral", + "src": "73:2:18", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "67:5:18", + "nodeType": "YulIdentifier", + "src": "67:5:18" + }, + "nativeSrc": "67:9:18", + "nodeType": "YulFunctionCall", + "src": "67:9:18" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "57:6:18", + "nodeType": "YulIdentifier", + "src": "57:6:18" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nativeSrc": "7:75:18", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "40:6:18", + "nodeType": "YulTypedName", + "src": "40:6:18", + "type": "" + } + ], + "src": "7:75:18" + }, + { + "body": { + "nativeSrc": "177:28:18", + "nodeType": "YulBlock", + "src": "177:28:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "194:1:18", + "nodeType": "YulLiteral", + "src": "194:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "197:1:18", + "nodeType": "YulLiteral", + "src": "197:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "187:6:18", + "nodeType": "YulIdentifier", + "src": "187:6:18" + }, + "nativeSrc": "187:12:18", + "nodeType": "YulFunctionCall", + "src": "187:12:18" + }, + "nativeSrc": "187:12:18", + "nodeType": "YulExpressionStatement", + "src": "187:12:18" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "88:117:18", + "nodeType": "YulFunctionDefinition", + "src": "88:117:18" + }, + { + "body": { + "nativeSrc": "300:28:18", + "nodeType": "YulBlock", + "src": "300:28:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "317:1:18", + "nodeType": "YulLiteral", + "src": "317:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "320:1:18", + "nodeType": "YulLiteral", + "src": "320:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "310:6:18", + "nodeType": "YulIdentifier", + "src": "310:6:18" + }, + "nativeSrc": "310:12:18", + "nodeType": "YulFunctionCall", + "src": "310:12:18" + }, + "nativeSrc": "310:12:18", + "nodeType": "YulExpressionStatement", + "src": "310:12:18" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "211:117:18", + "nodeType": "YulFunctionDefinition", + "src": "211:117:18" + }, + { + "body": { + "nativeSrc": "379:81:18", + "nodeType": "YulBlock", + "src": "379:81:18", + "statements": [ + { + "nativeSrc": "389:65:18", + "nodeType": "YulAssignment", + "src": "389:65:18", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "404:5:18", + "nodeType": "YulIdentifier", + "src": "404:5:18" + }, + { + "kind": "number", + "nativeSrc": "411:42:18", + "nodeType": "YulLiteral", + "src": "411:42:18", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "400:3:18", + "nodeType": "YulIdentifier", + "src": "400:3:18" + }, + "nativeSrc": "400:54:18", + "nodeType": "YulFunctionCall", + "src": "400:54:18" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "389:7:18", + "nodeType": "YulIdentifier", + "src": "389:7:18" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nativeSrc": "334:126:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "361:5:18", + "nodeType": "YulTypedName", + "src": "361:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "371:7:18", + "nodeType": "YulTypedName", + "src": "371:7:18", + "type": "" + } + ], + "src": "334:126:18" + }, + { + "body": { + "nativeSrc": "511:51:18", + "nodeType": "YulBlock", + "src": "511:51:18", + "statements": [ + { + "nativeSrc": "521:35:18", + "nodeType": "YulAssignment", + "src": "521:35:18", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "550:5:18", + "nodeType": "YulIdentifier", + "src": "550:5:18" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nativeSrc": "532:17:18", + "nodeType": "YulIdentifier", + "src": "532:17:18" + }, + "nativeSrc": "532:24:18", + "nodeType": "YulFunctionCall", + "src": "532:24:18" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "521:7:18", + "nodeType": "YulIdentifier", + "src": "521:7:18" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nativeSrc": "466:96:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "493:5:18", + "nodeType": "YulTypedName", + "src": "493:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "503:7:18", + "nodeType": "YulTypedName", + "src": "503:7:18", + "type": "" + } + ], + "src": "466:96:18" + }, + { + "body": { + "nativeSrc": "611:79:18", + "nodeType": "YulBlock", + "src": "611:79:18", + "statements": [ + { + "body": { + "nativeSrc": "668:16:18", + "nodeType": "YulBlock", + "src": "668:16:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "677:1:18", + "nodeType": "YulLiteral", + "src": "677:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "680:1:18", + "nodeType": "YulLiteral", + "src": "680:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "670:6:18", + "nodeType": "YulIdentifier", + "src": "670:6:18" + }, + "nativeSrc": "670:12:18", + "nodeType": "YulFunctionCall", + "src": "670:12:18" + }, + "nativeSrc": "670:12:18", + "nodeType": "YulExpressionStatement", + "src": "670:12:18" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "634:5:18", + "nodeType": "YulIdentifier", + "src": "634:5:18" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "659:5:18", + "nodeType": "YulIdentifier", + "src": "659:5:18" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "641:17:18", + "nodeType": "YulIdentifier", + "src": "641:17:18" + }, + "nativeSrc": "641:24:18", + "nodeType": "YulFunctionCall", + "src": "641:24:18" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "631:2:18", + "nodeType": "YulIdentifier", + "src": "631:2:18" + }, + "nativeSrc": "631:35:18", + "nodeType": "YulFunctionCall", + "src": "631:35:18" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "624:6:18", + "nodeType": "YulIdentifier", + "src": "624:6:18" + }, + "nativeSrc": "624:43:18", + "nodeType": "YulFunctionCall", + "src": "624:43:18" + }, + "nativeSrc": "621:63:18", + "nodeType": "YulIf", + "src": "621:63:18" + } + ] + }, + "name": "validator_revert_t_address", + "nativeSrc": "568:122:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "604:5:18", + "nodeType": "YulTypedName", + "src": "604:5:18", + "type": "" + } + ], + "src": "568:122:18" + }, + { + "body": { + "nativeSrc": "748:87:18", + "nodeType": "YulBlock", + "src": "748:87:18", + "statements": [ + { + "nativeSrc": "758:29:18", + "nodeType": "YulAssignment", + "src": "758:29:18", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "780:6:18", + "nodeType": "YulIdentifier", + "src": "780:6:18" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "767:12:18", + "nodeType": "YulIdentifier", + "src": "767:12:18" + }, + "nativeSrc": "767:20:18", + "nodeType": "YulFunctionCall", + "src": "767:20:18" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "758:5:18", + "nodeType": "YulIdentifier", + "src": "758:5:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "823:5:18", + "nodeType": "YulIdentifier", + "src": "823:5:18" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nativeSrc": "796:26:18", + "nodeType": "YulIdentifier", + "src": "796:26:18" + }, + "nativeSrc": "796:33:18", + "nodeType": "YulFunctionCall", + "src": "796:33:18" + }, + "nativeSrc": "796:33:18", + "nodeType": "YulExpressionStatement", + "src": "796:33:18" + } + ] + }, + "name": "abi_decode_t_address", + "nativeSrc": "696:139:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "726:6:18", + "nodeType": "YulTypedName", + "src": "726:6:18", + "type": "" + }, + { + "name": "end", + "nativeSrc": "734:3:18", + "nodeType": "YulTypedName", + "src": "734:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "742:5:18", + "nodeType": "YulTypedName", + "src": "742:5:18", + "type": "" + } + ], + "src": "696:139:18" + }, + { + "body": { + "nativeSrc": "886:32:18", + "nodeType": "YulBlock", + "src": "886:32:18", + "statements": [ + { + "nativeSrc": "896:16:18", + "nodeType": "YulAssignment", + "src": "896:16:18", + "value": { + "name": "value", + "nativeSrc": "907:5:18", + "nodeType": "YulIdentifier", + "src": "907:5:18" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "896:7:18", + "nodeType": "YulIdentifier", + "src": "896:7:18" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nativeSrc": "841:77:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "868:5:18", + "nodeType": "YulTypedName", + "src": "868:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "878:7:18", + "nodeType": "YulTypedName", + "src": "878:7:18", + "type": "" + } + ], + "src": "841:77:18" + }, + { + "body": { + "nativeSrc": "967:79:18", + "nodeType": "YulBlock", + "src": "967:79:18", + "statements": [ + { + "body": { + "nativeSrc": "1024:16:18", + "nodeType": "YulBlock", + "src": "1024:16:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1033:1:18", + "nodeType": "YulLiteral", + "src": "1033:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1036:1:18", + "nodeType": "YulLiteral", + "src": "1036:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1026:6:18", + "nodeType": "YulIdentifier", + "src": "1026:6:18" + }, + "nativeSrc": "1026:12:18", + "nodeType": "YulFunctionCall", + "src": "1026:12:18" + }, + "nativeSrc": "1026:12:18", + "nodeType": "YulExpressionStatement", + "src": "1026:12:18" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "990:5:18", + "nodeType": "YulIdentifier", + "src": "990:5:18" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1015:5:18", + "nodeType": "YulIdentifier", + "src": "1015:5:18" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "997:17:18", + "nodeType": "YulIdentifier", + "src": "997:17:18" + }, + "nativeSrc": "997:24:18", + "nodeType": "YulFunctionCall", + "src": "997:24:18" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "987:2:18", + "nodeType": "YulIdentifier", + "src": "987:2:18" + }, + "nativeSrc": "987:35:18", + "nodeType": "YulFunctionCall", + "src": "987:35:18" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "980:6:18", + "nodeType": "YulIdentifier", + "src": "980:6:18" + }, + "nativeSrc": "980:43:18", + "nodeType": "YulFunctionCall", + "src": "980:43:18" + }, + "nativeSrc": "977:63:18", + "nodeType": "YulIf", + "src": "977:63:18" + } + ] + }, + "name": "validator_revert_t_uint256", + "nativeSrc": "924:122:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "960:5:18", + "nodeType": "YulTypedName", + "src": "960:5:18", + "type": "" + } + ], + "src": "924:122:18" + }, + { + "body": { + "nativeSrc": "1104:87:18", + "nodeType": "YulBlock", + "src": "1104:87:18", + "statements": [ + { + "nativeSrc": "1114:29:18", + "nodeType": "YulAssignment", + "src": "1114:29:18", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "1136:6:18", + "nodeType": "YulIdentifier", + "src": "1136:6:18" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "1123:12:18", + "nodeType": "YulIdentifier", + "src": "1123:12:18" + }, + "nativeSrc": "1123:20:18", + "nodeType": "YulFunctionCall", + "src": "1123:20:18" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "1114:5:18", + "nodeType": "YulIdentifier", + "src": "1114:5:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "1179:5:18", + "nodeType": "YulIdentifier", + "src": "1179:5:18" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nativeSrc": "1152:26:18", + "nodeType": "YulIdentifier", + "src": "1152:26:18" + }, + "nativeSrc": "1152:33:18", + "nodeType": "YulFunctionCall", + "src": "1152:33:18" + }, + "nativeSrc": "1152:33:18", + "nodeType": "YulExpressionStatement", + "src": "1152:33:18" + } + ] + }, + "name": "abi_decode_t_uint256", + "nativeSrc": "1052:139:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "1082:6:18", + "nodeType": "YulTypedName", + "src": "1082:6:18", + "type": "" + }, + { + "name": "end", + "nativeSrc": "1090:3:18", + "nodeType": "YulTypedName", + "src": "1090:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "1098:5:18", + "nodeType": "YulTypedName", + "src": "1098:5:18", + "type": "" + } + ], + "src": "1052:139:18" + }, + { + "body": { + "nativeSrc": "1280:391:18", + "nodeType": "YulBlock", + "src": "1280:391:18", + "statements": [ + { + "body": { + "nativeSrc": "1326:83:18", + "nodeType": "YulBlock", + "src": "1326:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "1328:77:18", + "nodeType": "YulIdentifier", + "src": "1328:77:18" + }, + "nativeSrc": "1328:79:18", + "nodeType": "YulFunctionCall", + "src": "1328:79:18" + }, + "nativeSrc": "1328:79:18", + "nodeType": "YulExpressionStatement", + "src": "1328:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "1301:7:18", + "nodeType": "YulIdentifier", + "src": "1301:7:18" + }, + { + "name": "headStart", + "nativeSrc": "1310:9:18", + "nodeType": "YulIdentifier", + "src": "1310:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "1297:3:18", + "nodeType": "YulIdentifier", + "src": "1297:3:18" + }, + "nativeSrc": "1297:23:18", + "nodeType": "YulFunctionCall", + "src": "1297:23:18" + }, + { + "kind": "number", + "nativeSrc": "1322:2:18", + "nodeType": "YulLiteral", + "src": "1322:2:18", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "1293:3:18", + "nodeType": "YulIdentifier", + "src": "1293:3:18" + }, + "nativeSrc": "1293:32:18", + "nodeType": "YulFunctionCall", + "src": "1293:32:18" + }, + "nativeSrc": "1290:119:18", + "nodeType": "YulIf", + "src": "1290:119:18" + }, + { + "nativeSrc": "1419:117:18", + "nodeType": "YulBlock", + "src": "1419:117:18", + "statements": [ + { + "nativeSrc": "1434:15:18", + "nodeType": "YulVariableDeclaration", + "src": "1434:15:18", + "value": { + "kind": "number", + "nativeSrc": "1448:1:18", + "nodeType": "YulLiteral", + "src": "1448:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "1438:6:18", + "nodeType": "YulTypedName", + "src": "1438:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "1463:63:18", + "nodeType": "YulAssignment", + "src": "1463:63:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1498:9:18", + "nodeType": "YulIdentifier", + "src": "1498:9:18" + }, + { + "name": "offset", + "nativeSrc": "1509:6:18", + "nodeType": "YulIdentifier", + "src": "1509:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1494:3:18", + "nodeType": "YulIdentifier", + "src": "1494:3:18" + }, + "nativeSrc": "1494:22:18", + "nodeType": "YulFunctionCall", + "src": "1494:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "1518:7:18", + "nodeType": "YulIdentifier", + "src": "1518:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "1473:20:18", + "nodeType": "YulIdentifier", + "src": "1473:20:18" + }, + "nativeSrc": "1473:53:18", + "nodeType": "YulFunctionCall", + "src": "1473:53:18" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "1463:6:18", + "nodeType": "YulIdentifier", + "src": "1463:6:18" + } + ] + } + ] + }, + { + "nativeSrc": "1546:118:18", + "nodeType": "YulBlock", + "src": "1546:118:18", + "statements": [ + { + "nativeSrc": "1561:16:18", + "nodeType": "YulVariableDeclaration", + "src": "1561:16:18", + "value": { + "kind": "number", + "nativeSrc": "1575:2:18", + "nodeType": "YulLiteral", + "src": "1575:2:18", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "1565:6:18", + "nodeType": "YulTypedName", + "src": "1565:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "1591:63:18", + "nodeType": "YulAssignment", + "src": "1591:63:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1626:9:18", + "nodeType": "YulIdentifier", + "src": "1626:9:18" + }, + { + "name": "offset", + "nativeSrc": "1637:6:18", + "nodeType": "YulIdentifier", + "src": "1637:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1622:3:18", + "nodeType": "YulIdentifier", + "src": "1622:3:18" + }, + "nativeSrc": "1622:22:18", + "nodeType": "YulFunctionCall", + "src": "1622:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "1646:7:18", + "nodeType": "YulIdentifier", + "src": "1646:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "1601:20:18", + "nodeType": "YulIdentifier", + "src": "1601:20:18" + }, + "nativeSrc": "1601:53:18", + "nodeType": "YulFunctionCall", + "src": "1601:53:18" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "1591:6:18", + "nodeType": "YulIdentifier", + "src": "1591:6:18" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256", + "nativeSrc": "1197:474:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1242:9:18", + "nodeType": "YulTypedName", + "src": "1242:9:18", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "1253:7:18", + "nodeType": "YulTypedName", + "src": "1253:7:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "1265:6:18", + "nodeType": "YulTypedName", + "src": "1265:6:18", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "1273:6:18", + "nodeType": "YulTypedName", + "src": "1273:6:18", + "type": "" + } + ], + "src": "1197:474:18" + }, + { + "body": { + "nativeSrc": "1742:53:18", + "nodeType": "YulBlock", + "src": "1742:53:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "1759:3:18", + "nodeType": "YulIdentifier", + "src": "1759:3:18" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1782:5:18", + "nodeType": "YulIdentifier", + "src": "1782:5:18" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "1764:17:18", + "nodeType": "YulIdentifier", + "src": "1764:17:18" + }, + "nativeSrc": "1764:24:18", + "nodeType": "YulFunctionCall", + "src": "1764:24:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1752:6:18", + "nodeType": "YulIdentifier", + "src": "1752:6:18" + }, + "nativeSrc": "1752:37:18", + "nodeType": "YulFunctionCall", + "src": "1752:37:18" + }, + "nativeSrc": "1752:37:18", + "nodeType": "YulExpressionStatement", + "src": "1752:37:18" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "1677:118:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1730:5:18", + "nodeType": "YulTypedName", + "src": "1730:5:18", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "1737:3:18", + "nodeType": "YulTypedName", + "src": "1737:3:18", + "type": "" + } + ], + "src": "1677:118:18" + }, + { + "body": { + "nativeSrc": "1899:124:18", + "nodeType": "YulBlock", + "src": "1899:124:18", + "statements": [ + { + "nativeSrc": "1909:26:18", + "nodeType": "YulAssignment", + "src": "1909:26:18", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1921:9:18", + "nodeType": "YulIdentifier", + "src": "1921:9:18" + }, + { + "kind": "number", + "nativeSrc": "1932:2:18", + "nodeType": "YulLiteral", + "src": "1932:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1917:3:18", + "nodeType": "YulIdentifier", + "src": "1917:3:18" + }, + "nativeSrc": "1917:18:18", + "nodeType": "YulFunctionCall", + "src": "1917:18:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "1909:4:18", + "nodeType": "YulIdentifier", + "src": "1909:4:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "1989:6:18", + "nodeType": "YulIdentifier", + "src": "1989:6:18" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2002:9:18", + "nodeType": "YulIdentifier", + "src": "2002:9:18" + }, + { + "kind": "number", + "nativeSrc": "2013:1:18", + "nodeType": "YulLiteral", + "src": "2013:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1998:3:18", + "nodeType": "YulIdentifier", + "src": "1998:3:18" + }, + "nativeSrc": "1998:17:18", + "nodeType": "YulFunctionCall", + "src": "1998:17:18" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "1945:43:18", + "nodeType": "YulIdentifier", + "src": "1945:43:18" + }, + "nativeSrc": "1945:71:18", + "nodeType": "YulFunctionCall", + "src": "1945:71:18" + }, + "nativeSrc": "1945:71:18", + "nodeType": "YulExpressionStatement", + "src": "1945:71:18" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nativeSrc": "1801:222:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1871:9:18", + "nodeType": "YulTypedName", + "src": "1871:9:18", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "1883:6:18", + "nodeType": "YulTypedName", + "src": "1883:6:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "1894:4:18", + "nodeType": "YulTypedName", + "src": "1894:4:18", + "type": "" + } + ], + "src": "1801:222:18" + }, + { + "body": { + "nativeSrc": "2073:105:18", + "nodeType": "YulBlock", + "src": "2073:105:18", + "statements": [ + { + "nativeSrc": "2083:89:18", + "nodeType": "YulAssignment", + "src": "2083:89:18", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "2098:5:18", + "nodeType": "YulIdentifier", + "src": "2098:5:18" + }, + { + "kind": "number", + "nativeSrc": "2105:66:18", + "nodeType": "YulLiteral", + "src": "2105:66:18", + "type": "", + "value": "0xffffffff00000000000000000000000000000000000000000000000000000000" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "2094:3:18", + "nodeType": "YulIdentifier", + "src": "2094:3:18" + }, + "nativeSrc": "2094:78:18", + "nodeType": "YulFunctionCall", + "src": "2094:78:18" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "2083:7:18", + "nodeType": "YulIdentifier", + "src": "2083:7:18" + } + ] + } + ] + }, + "name": "cleanup_t_bytes4", + "nativeSrc": "2029:149:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2055:5:18", + "nodeType": "YulTypedName", + "src": "2055:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "2065:7:18", + "nodeType": "YulTypedName", + "src": "2065:7:18", + "type": "" + } + ], + "src": "2029:149:18" + }, + { + "body": { + "nativeSrc": "2226:78:18", + "nodeType": "YulBlock", + "src": "2226:78:18", + "statements": [ + { + "body": { + "nativeSrc": "2282:16:18", + "nodeType": "YulBlock", + "src": "2282:16:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2291:1:18", + "nodeType": "YulLiteral", + "src": "2291:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "2294:1:18", + "nodeType": "YulLiteral", + "src": "2294:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "2284:6:18", + "nodeType": "YulIdentifier", + "src": "2284:6:18" + }, + "nativeSrc": "2284:12:18", + "nodeType": "YulFunctionCall", + "src": "2284:12:18" + }, + "nativeSrc": "2284:12:18", + "nodeType": "YulExpressionStatement", + "src": "2284:12:18" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2249:5:18", + "nodeType": "YulIdentifier", + "src": "2249:5:18" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2273:5:18", + "nodeType": "YulIdentifier", + "src": "2273:5:18" + } + ], + "functionName": { + "name": "cleanup_t_bytes4", + "nativeSrc": "2256:16:18", + "nodeType": "YulIdentifier", + "src": "2256:16:18" + }, + "nativeSrc": "2256:23:18", + "nodeType": "YulFunctionCall", + "src": "2256:23:18" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "2246:2:18", + "nodeType": "YulIdentifier", + "src": "2246:2:18" + }, + "nativeSrc": "2246:34:18", + "nodeType": "YulFunctionCall", + "src": "2246:34:18" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "2239:6:18", + "nodeType": "YulIdentifier", + "src": "2239:6:18" + }, + "nativeSrc": "2239:42:18", + "nodeType": "YulFunctionCall", + "src": "2239:42:18" + }, + "nativeSrc": "2236:62:18", + "nodeType": "YulIf", + "src": "2236:62:18" + } + ] + }, + "name": "validator_revert_t_bytes4", + "nativeSrc": "2184:120:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2219:5:18", + "nodeType": "YulTypedName", + "src": "2219:5:18", + "type": "" + } + ], + "src": "2184:120:18" + }, + { + "body": { + "nativeSrc": "2361:86:18", + "nodeType": "YulBlock", + "src": "2361:86:18", + "statements": [ + { + "nativeSrc": "2371:29:18", + "nodeType": "YulAssignment", + "src": "2371:29:18", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "2393:6:18", + "nodeType": "YulIdentifier", + "src": "2393:6:18" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "2380:12:18", + "nodeType": "YulIdentifier", + "src": "2380:12:18" + }, + "nativeSrc": "2380:20:18", + "nodeType": "YulFunctionCall", + "src": "2380:20:18" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "2371:5:18", + "nodeType": "YulIdentifier", + "src": "2371:5:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "2435:5:18", + "nodeType": "YulIdentifier", + "src": "2435:5:18" + } + ], + "functionName": { + "name": "validator_revert_t_bytes4", + "nativeSrc": "2409:25:18", + "nodeType": "YulIdentifier", + "src": "2409:25:18" + }, + "nativeSrc": "2409:32:18", + "nodeType": "YulFunctionCall", + "src": "2409:32:18" + }, + "nativeSrc": "2409:32:18", + "nodeType": "YulExpressionStatement", + "src": "2409:32:18" + } + ] + }, + "name": "abi_decode_t_bytes4", + "nativeSrc": "2310:137:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "2339:6:18", + "nodeType": "YulTypedName", + "src": "2339:6:18", + "type": "" + }, + { + "name": "end", + "nativeSrc": "2347:3:18", + "nodeType": "YulTypedName", + "src": "2347:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "2355:5:18", + "nodeType": "YulTypedName", + "src": "2355:5:18", + "type": "" + } + ], + "src": "2310:137:18" + }, + { + "body": { + "nativeSrc": "2518:262:18", + "nodeType": "YulBlock", + "src": "2518:262:18", + "statements": [ + { + "body": { + "nativeSrc": "2564:83:18", + "nodeType": "YulBlock", + "src": "2564:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "2566:77:18", + "nodeType": "YulIdentifier", + "src": "2566:77:18" + }, + "nativeSrc": "2566:79:18", + "nodeType": "YulFunctionCall", + "src": "2566:79:18" + }, + "nativeSrc": "2566:79:18", + "nodeType": "YulExpressionStatement", + "src": "2566:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "2539:7:18", + "nodeType": "YulIdentifier", + "src": "2539:7:18" + }, + { + "name": "headStart", + "nativeSrc": "2548:9:18", + "nodeType": "YulIdentifier", + "src": "2548:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "2535:3:18", + "nodeType": "YulIdentifier", + "src": "2535:3:18" + }, + "nativeSrc": "2535:23:18", + "nodeType": "YulFunctionCall", + "src": "2535:23:18" + }, + { + "kind": "number", + "nativeSrc": "2560:2:18", + "nodeType": "YulLiteral", + "src": "2560:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "2531:3:18", + "nodeType": "YulIdentifier", + "src": "2531:3:18" + }, + "nativeSrc": "2531:32:18", + "nodeType": "YulFunctionCall", + "src": "2531:32:18" + }, + "nativeSrc": "2528:119:18", + "nodeType": "YulIf", + "src": "2528:119:18" + }, + { + "nativeSrc": "2657:116:18", + "nodeType": "YulBlock", + "src": "2657:116:18", + "statements": [ + { + "nativeSrc": "2672:15:18", + "nodeType": "YulVariableDeclaration", + "src": "2672:15:18", + "value": { + "kind": "number", + "nativeSrc": "2686:1:18", + "nodeType": "YulLiteral", + "src": "2686:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "2676:6:18", + "nodeType": "YulTypedName", + "src": "2676:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "2701:62:18", + "nodeType": "YulAssignment", + "src": "2701:62:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2735:9:18", + "nodeType": "YulIdentifier", + "src": "2735:9:18" + }, + { + "name": "offset", + "nativeSrc": "2746:6:18", + "nodeType": "YulIdentifier", + "src": "2746:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2731:3:18", + "nodeType": "YulIdentifier", + "src": "2731:3:18" + }, + "nativeSrc": "2731:22:18", + "nodeType": "YulFunctionCall", + "src": "2731:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "2755:7:18", + "nodeType": "YulIdentifier", + "src": "2755:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_bytes4", + "nativeSrc": "2711:19:18", + "nodeType": "YulIdentifier", + "src": "2711:19:18" + }, + "nativeSrc": "2711:52:18", + "nodeType": "YulFunctionCall", + "src": "2711:52:18" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "2701:6:18", + "nodeType": "YulIdentifier", + "src": "2701:6:18" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes4", + "nativeSrc": "2453:327:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "2488:9:18", + "nodeType": "YulTypedName", + "src": "2488:9:18", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "2499:7:18", + "nodeType": "YulTypedName", + "src": "2499:7:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "2511:6:18", + "nodeType": "YulTypedName", + "src": "2511:6:18", + "type": "" + } + ], + "src": "2453:327:18" + }, + { + "body": { + "nativeSrc": "2828:48:18", + "nodeType": "YulBlock", + "src": "2828:48:18", + "statements": [ + { + "nativeSrc": "2838:32:18", + "nodeType": "YulAssignment", + "src": "2838:32:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2863:5:18", + "nodeType": "YulIdentifier", + "src": "2863:5:18" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "2856:6:18", + "nodeType": "YulIdentifier", + "src": "2856:6:18" + }, + "nativeSrc": "2856:13:18", + "nodeType": "YulFunctionCall", + "src": "2856:13:18" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "2849:6:18", + "nodeType": "YulIdentifier", + "src": "2849:6:18" + }, + "nativeSrc": "2849:21:18", + "nodeType": "YulFunctionCall", + "src": "2849:21:18" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "2838:7:18", + "nodeType": "YulIdentifier", + "src": "2838:7:18" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nativeSrc": "2786:90:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2810:5:18", + "nodeType": "YulTypedName", + "src": "2810:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "2820:7:18", + "nodeType": "YulTypedName", + "src": "2820:7:18", + "type": "" + } + ], + "src": "2786:90:18" + }, + { + "body": { + "nativeSrc": "2941:50:18", + "nodeType": "YulBlock", + "src": "2941:50:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "2958:3:18", + "nodeType": "YulIdentifier", + "src": "2958:3:18" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2978:5:18", + "nodeType": "YulIdentifier", + "src": "2978:5:18" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nativeSrc": "2963:14:18", + "nodeType": "YulIdentifier", + "src": "2963:14:18" + }, + "nativeSrc": "2963:21:18", + "nodeType": "YulFunctionCall", + "src": "2963:21:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2951:6:18", + "nodeType": "YulIdentifier", + "src": "2951:6:18" + }, + "nativeSrc": "2951:34:18", + "nodeType": "YulFunctionCall", + "src": "2951:34:18" + }, + "nativeSrc": "2951:34:18", + "nodeType": "YulExpressionStatement", + "src": "2951:34:18" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nativeSrc": "2882:109:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2929:5:18", + "nodeType": "YulTypedName", + "src": "2929:5:18", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "2936:3:18", + "nodeType": "YulTypedName", + "src": "2936:3:18", + "type": "" + } + ], + "src": "2882:109:18" + }, + { + "body": { + "nativeSrc": "3089:118:18", + "nodeType": "YulBlock", + "src": "3089:118:18", + "statements": [ + { + "nativeSrc": "3099:26:18", + "nodeType": "YulAssignment", + "src": "3099:26:18", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3111:9:18", + "nodeType": "YulIdentifier", + "src": "3111:9:18" + }, + { + "kind": "number", + "nativeSrc": "3122:2:18", + "nodeType": "YulLiteral", + "src": "3122:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3107:3:18", + "nodeType": "YulIdentifier", + "src": "3107:3:18" + }, + "nativeSrc": "3107:18:18", + "nodeType": "YulFunctionCall", + "src": "3107:18:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "3099:4:18", + "nodeType": "YulIdentifier", + "src": "3099:4:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "3173:6:18", + "nodeType": "YulIdentifier", + "src": "3173:6:18" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3186:9:18", + "nodeType": "YulIdentifier", + "src": "3186:9:18" + }, + { + "kind": "number", + "nativeSrc": "3197:1:18", + "nodeType": "YulLiteral", + "src": "3197:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3182:3:18", + "nodeType": "YulIdentifier", + "src": "3182:3:18" + }, + "nativeSrc": "3182:17:18", + "nodeType": "YulFunctionCall", + "src": "3182:17:18" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nativeSrc": "3135:37:18", + "nodeType": "YulIdentifier", + "src": "3135:37:18" + }, + "nativeSrc": "3135:65:18", + "nodeType": "YulFunctionCall", + "src": "3135:65:18" + }, + "nativeSrc": "3135:65:18", + "nodeType": "YulExpressionStatement", + "src": "3135:65:18" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nativeSrc": "2997:210:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "3061:9:18", + "nodeType": "YulTypedName", + "src": "3061:9:18", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "3073:6:18", + "nodeType": "YulTypedName", + "src": "3073:6:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "3084:4:18", + "nodeType": "YulTypedName", + "src": "3084:4:18", + "type": "" + } + ], + "src": "2997:210:18" + }, + { + "body": { + "nativeSrc": "3279:263:18", + "nodeType": "YulBlock", + "src": "3279:263:18", + "statements": [ + { + "body": { + "nativeSrc": "3325:83:18", + "nodeType": "YulBlock", + "src": "3325:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "3327:77:18", + "nodeType": "YulIdentifier", + "src": "3327:77:18" + }, + "nativeSrc": "3327:79:18", + "nodeType": "YulFunctionCall", + "src": "3327:79:18" + }, + "nativeSrc": "3327:79:18", + "nodeType": "YulExpressionStatement", + "src": "3327:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "3300:7:18", + "nodeType": "YulIdentifier", + "src": "3300:7:18" + }, + { + "name": "headStart", + "nativeSrc": "3309:9:18", + "nodeType": "YulIdentifier", + "src": "3309:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "3296:3:18", + "nodeType": "YulIdentifier", + "src": "3296:3:18" + }, + "nativeSrc": "3296:23:18", + "nodeType": "YulFunctionCall", + "src": "3296:23:18" + }, + { + "kind": "number", + "nativeSrc": "3321:2:18", + "nodeType": "YulLiteral", + "src": "3321:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "3292:3:18", + "nodeType": "YulIdentifier", + "src": "3292:3:18" + }, + "nativeSrc": "3292:32:18", + "nodeType": "YulFunctionCall", + "src": "3292:32:18" + }, + "nativeSrc": "3289:119:18", + "nodeType": "YulIf", + "src": "3289:119:18" + }, + { + "nativeSrc": "3418:117:18", + "nodeType": "YulBlock", + "src": "3418:117:18", + "statements": [ + { + "nativeSrc": "3433:15:18", + "nodeType": "YulVariableDeclaration", + "src": "3433:15:18", + "value": { + "kind": "number", + "nativeSrc": "3447:1:18", + "nodeType": "YulLiteral", + "src": "3447:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "3437:6:18", + "nodeType": "YulTypedName", + "src": "3437:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "3462:63:18", + "nodeType": "YulAssignment", + "src": "3462:63:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3497:9:18", + "nodeType": "YulIdentifier", + "src": "3497:9:18" + }, + { + "name": "offset", + "nativeSrc": "3508:6:18", + "nodeType": "YulIdentifier", + "src": "3508:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3493:3:18", + "nodeType": "YulIdentifier", + "src": "3493:3:18" + }, + "nativeSrc": "3493:22:18", + "nodeType": "YulFunctionCall", + "src": "3493:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "3517:7:18", + "nodeType": "YulIdentifier", + "src": "3517:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "3472:20:18", + "nodeType": "YulIdentifier", + "src": "3472:20:18" + }, + "nativeSrc": "3472:53:18", + "nodeType": "YulFunctionCall", + "src": "3472:53:18" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "3462:6:18", + "nodeType": "YulIdentifier", + "src": "3462:6:18" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256", + "nativeSrc": "3213:329:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "3249:9:18", + "nodeType": "YulTypedName", + "src": "3249:9:18", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "3260:7:18", + "nodeType": "YulTypedName", + "src": "3260:7:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "3272:6:18", + "nodeType": "YulTypedName", + "src": "3272:6:18", + "type": "" + } + ], + "src": "3213:329:18" + }, + { + "body": { + "nativeSrc": "3607:40:18", + "nodeType": "YulBlock", + "src": "3607:40:18", + "statements": [ + { + "nativeSrc": "3618:22:18", + "nodeType": "YulAssignment", + "src": "3618:22:18", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "3634:5:18", + "nodeType": "YulIdentifier", + "src": "3634:5:18" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "3628:5:18", + "nodeType": "YulIdentifier", + "src": "3628:5:18" + }, + "nativeSrc": "3628:12:18", + "nodeType": "YulFunctionCall", + "src": "3628:12:18" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "3618:6:18", + "nodeType": "YulIdentifier", + "src": "3618:6:18" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "3548:99:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "3590:5:18", + "nodeType": "YulTypedName", + "src": "3590:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "3600:6:18", + "nodeType": "YulTypedName", + "src": "3600:6:18", + "type": "" + } + ], + "src": "3548:99:18" + }, + { + "body": { + "nativeSrc": "3749:73:18", + "nodeType": "YulBlock", + "src": "3749:73:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "3766:3:18", + "nodeType": "YulIdentifier", + "src": "3766:3:18" + }, + { + "name": "length", + "nativeSrc": "3771:6:18", + "nodeType": "YulIdentifier", + "src": "3771:6:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3759:6:18", + "nodeType": "YulIdentifier", + "src": "3759:6:18" + }, + "nativeSrc": "3759:19:18", + "nodeType": "YulFunctionCall", + "src": "3759:19:18" + }, + "nativeSrc": "3759:19:18", + "nodeType": "YulExpressionStatement", + "src": "3759:19:18" + }, + { + "nativeSrc": "3787:29:18", + "nodeType": "YulAssignment", + "src": "3787:29:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "3806:3:18", + "nodeType": "YulIdentifier", + "src": "3806:3:18" + }, + { + "kind": "number", + "nativeSrc": "3811:4:18", + "nodeType": "YulLiteral", + "src": "3811:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3802:3:18", + "nodeType": "YulIdentifier", + "src": "3802:3:18" + }, + "nativeSrc": "3802:14:18", + "nodeType": "YulFunctionCall", + "src": "3802:14:18" + }, + "variableNames": [ + { + "name": "updated_pos", + "nativeSrc": "3787:11:18", + "nodeType": "YulIdentifier", + "src": "3787:11:18" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "3653:169:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "3721:3:18", + "nodeType": "YulTypedName", + "src": "3721:3:18", + "type": "" + }, + { + "name": "length", + "nativeSrc": "3726:6:18", + "nodeType": "YulTypedName", + "src": "3726:6:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nativeSrc": "3737:11:18", + "nodeType": "YulTypedName", + "src": "3737:11:18", + "type": "" + } + ], + "src": "3653:169:18" + }, + { + "body": { + "nativeSrc": "3890:186:18", + "nodeType": "YulBlock", + "src": "3890:186:18", + "statements": [ + { + "nativeSrc": "3901:10:18", + "nodeType": "YulVariableDeclaration", + "src": "3901:10:18", + "value": { + "kind": "number", + "nativeSrc": "3910:1:18", + "nodeType": "YulLiteral", + "src": "3910:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "3905:1:18", + "nodeType": "YulTypedName", + "src": "3905:1:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "3970:63:18", + "nodeType": "YulBlock", + "src": "3970:63:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "3995:3:18", + "nodeType": "YulIdentifier", + "src": "3995:3:18" + }, + { + "name": "i", + "nativeSrc": "4000:1:18", + "nodeType": "YulIdentifier", + "src": "4000:1:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3991:3:18", + "nodeType": "YulIdentifier", + "src": "3991:3:18" + }, + "nativeSrc": "3991:11:18", + "nodeType": "YulFunctionCall", + "src": "3991:11:18" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "4014:3:18", + "nodeType": "YulIdentifier", + "src": "4014:3:18" + }, + { + "name": "i", + "nativeSrc": "4019:1:18", + "nodeType": "YulIdentifier", + "src": "4019:1:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4010:3:18", + "nodeType": "YulIdentifier", + "src": "4010:3:18" + }, + "nativeSrc": "4010:11:18", + "nodeType": "YulFunctionCall", + "src": "4010:11:18" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "4004:5:18", + "nodeType": "YulIdentifier", + "src": "4004:5:18" + }, + "nativeSrc": "4004:18:18", + "nodeType": "YulFunctionCall", + "src": "4004:18:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3984:6:18", + "nodeType": "YulIdentifier", + "src": "3984:6:18" + }, + "nativeSrc": "3984:39:18", + "nodeType": "YulFunctionCall", + "src": "3984:39:18" + }, + "nativeSrc": "3984:39:18", + "nodeType": "YulExpressionStatement", + "src": "3984:39:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "3931:1:18", + "nodeType": "YulIdentifier", + "src": "3931:1:18" + }, + { + "name": "length", + "nativeSrc": "3934:6:18", + "nodeType": "YulIdentifier", + "src": "3934:6:18" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "3928:2:18", + "nodeType": "YulIdentifier", + "src": "3928:2:18" + }, + "nativeSrc": "3928:13:18", + "nodeType": "YulFunctionCall", + "src": "3928:13:18" + }, + "nativeSrc": "3920:113:18", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "3942:19:18", + "nodeType": "YulBlock", + "src": "3942:19:18", + "statements": [ + { + "nativeSrc": "3944:15:18", + "nodeType": "YulAssignment", + "src": "3944:15:18", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "3953:1:18", + "nodeType": "YulIdentifier", + "src": "3953:1:18" + }, + { + "kind": "number", + "nativeSrc": "3956:2:18", + "nodeType": "YulLiteral", + "src": "3956:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3949:3:18", + "nodeType": "YulIdentifier", + "src": "3949:3:18" + }, + "nativeSrc": "3949:10:18", + "nodeType": "YulFunctionCall", + "src": "3949:10:18" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "3944:1:18", + "nodeType": "YulIdentifier", + "src": "3944:1:18" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "3924:3:18", + "nodeType": "YulBlock", + "src": "3924:3:18", + "statements": [] + }, + "src": "3920:113:18" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "4053:3:18", + "nodeType": "YulIdentifier", + "src": "4053:3:18" + }, + { + "name": "length", + "nativeSrc": "4058:6:18", + "nodeType": "YulIdentifier", + "src": "4058:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4049:3:18", + "nodeType": "YulIdentifier", + "src": "4049:3:18" + }, + "nativeSrc": "4049:16:18", + "nodeType": "YulFunctionCall", + "src": "4049:16:18" + }, + { + "kind": "number", + "nativeSrc": "4067:1:18", + "nodeType": "YulLiteral", + "src": "4067:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "4042:6:18", + "nodeType": "YulIdentifier", + "src": "4042:6:18" + }, + "nativeSrc": "4042:27:18", + "nodeType": "YulFunctionCall", + "src": "4042:27:18" + }, + "nativeSrc": "4042:27:18", + "nodeType": "YulExpressionStatement", + "src": "4042:27:18" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "3828:248:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "3872:3:18", + "nodeType": "YulTypedName", + "src": "3872:3:18", + "type": "" + }, + { + "name": "dst", + "nativeSrc": "3877:3:18", + "nodeType": "YulTypedName", + "src": "3877:3:18", + "type": "" + }, + { + "name": "length", + "nativeSrc": "3882:6:18", + "nodeType": "YulTypedName", + "src": "3882:6:18", + "type": "" + } + ], + "src": "3828:248:18" + }, + { + "body": { + "nativeSrc": "4130:54:18", + "nodeType": "YulBlock", + "src": "4130:54:18", + "statements": [ + { + "nativeSrc": "4140:38:18", + "nodeType": "YulAssignment", + "src": "4140:38:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "4158:5:18", + "nodeType": "YulIdentifier", + "src": "4158:5:18" + }, + { + "kind": "number", + "nativeSrc": "4165:2:18", + "nodeType": "YulLiteral", + "src": "4165:2:18", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4154:3:18", + "nodeType": "YulIdentifier", + "src": "4154:3:18" + }, + "nativeSrc": "4154:14:18", + "nodeType": "YulFunctionCall", + "src": "4154:14:18" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4174:2:18", + "nodeType": "YulLiteral", + "src": "4174:2:18", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "4170:3:18", + "nodeType": "YulIdentifier", + "src": "4170:3:18" + }, + "nativeSrc": "4170:7:18", + "nodeType": "YulFunctionCall", + "src": "4170:7:18" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "4150:3:18", + "nodeType": "YulIdentifier", + "src": "4150:3:18" + }, + "nativeSrc": "4150:28:18", + "nodeType": "YulFunctionCall", + "src": "4150:28:18" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "4140:6:18", + "nodeType": "YulIdentifier", + "src": "4140:6:18" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nativeSrc": "4082:102:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4113:5:18", + "nodeType": "YulTypedName", + "src": "4113:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "4123:6:18", + "nodeType": "YulTypedName", + "src": "4123:6:18", + "type": "" + } + ], + "src": "4082:102:18" + }, + { + "body": { + "nativeSrc": "4282:285:18", + "nodeType": "YulBlock", + "src": "4282:285:18", + "statements": [ + { + "nativeSrc": "4292:53:18", + "nodeType": "YulVariableDeclaration", + "src": "4292:53:18", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "4339:5:18", + "nodeType": "YulIdentifier", + "src": "4339:5:18" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "4306:32:18", + "nodeType": "YulIdentifier", + "src": "4306:32:18" + }, + "nativeSrc": "4306:39:18", + "nodeType": "YulFunctionCall", + "src": "4306:39:18" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "4296:6:18", + "nodeType": "YulTypedName", + "src": "4296:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "4354:78:18", + "nodeType": "YulAssignment", + "src": "4354:78:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "4420:3:18", + "nodeType": "YulIdentifier", + "src": "4420:3:18" + }, + { + "name": "length", + "nativeSrc": "4425:6:18", + "nodeType": "YulIdentifier", + "src": "4425:6:18" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "4361:58:18", + "nodeType": "YulIdentifier", + "src": "4361:58:18" + }, + "nativeSrc": "4361:71:18", + "nodeType": "YulFunctionCall", + "src": "4361:71:18" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "4354:3:18", + "nodeType": "YulIdentifier", + "src": "4354:3:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "4480:5:18", + "nodeType": "YulIdentifier", + "src": "4480:5:18" + }, + { + "kind": "number", + "nativeSrc": "4487:4:18", + "nodeType": "YulLiteral", + "src": "4487:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4476:3:18", + "nodeType": "YulIdentifier", + "src": "4476:3:18" + }, + "nativeSrc": "4476:16:18", + "nodeType": "YulFunctionCall", + "src": "4476:16:18" + }, + { + "name": "pos", + "nativeSrc": "4494:3:18", + "nodeType": "YulIdentifier", + "src": "4494:3:18" + }, + { + "name": "length", + "nativeSrc": "4499:6:18", + "nodeType": "YulIdentifier", + "src": "4499:6:18" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "4441:34:18", + "nodeType": "YulIdentifier", + "src": "4441:34:18" + }, + "nativeSrc": "4441:65:18", + "nodeType": "YulFunctionCall", + "src": "4441:65:18" + }, + "nativeSrc": "4441:65:18", + "nodeType": "YulExpressionStatement", + "src": "4441:65:18" + }, + { + "nativeSrc": "4515:46:18", + "nodeType": "YulAssignment", + "src": "4515:46:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "4526:3:18", + "nodeType": "YulIdentifier", + "src": "4526:3:18" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "4553:6:18", + "nodeType": "YulIdentifier", + "src": "4553:6:18" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "4531:21:18", + "nodeType": "YulIdentifier", + "src": "4531:21:18" + }, + "nativeSrc": "4531:29:18", + "nodeType": "YulFunctionCall", + "src": "4531:29:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4522:3:18", + "nodeType": "YulIdentifier", + "src": "4522:3:18" + }, + "nativeSrc": "4522:39:18", + "nodeType": "YulFunctionCall", + "src": "4522:39:18" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "4515:3:18", + "nodeType": "YulIdentifier", + "src": "4515:3:18" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nativeSrc": "4190:377:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4263:5:18", + "nodeType": "YulTypedName", + "src": "4263:5:18", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "4270:3:18", + "nodeType": "YulTypedName", + "src": "4270:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "4278:3:18", + "nodeType": "YulTypedName", + "src": "4278:3:18", + "type": "" + } + ], + "src": "4190:377:18" + }, + { + "body": { + "nativeSrc": "4691:195:18", + "nodeType": "YulBlock", + "src": "4691:195:18", + "statements": [ + { + "nativeSrc": "4701:26:18", + "nodeType": "YulAssignment", + "src": "4701:26:18", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4713:9:18", + "nodeType": "YulIdentifier", + "src": "4713:9:18" + }, + { + "kind": "number", + "nativeSrc": "4724:2:18", + "nodeType": "YulLiteral", + "src": "4724:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4709:3:18", + "nodeType": "YulIdentifier", + "src": "4709:3:18" + }, + "nativeSrc": "4709:18:18", + "nodeType": "YulFunctionCall", + "src": "4709:18:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "4701:4:18", + "nodeType": "YulIdentifier", + "src": "4701:4:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4748:9:18", + "nodeType": "YulIdentifier", + "src": "4748:9:18" + }, + { + "kind": "number", + "nativeSrc": "4759:1:18", + "nodeType": "YulLiteral", + "src": "4759:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4744:3:18", + "nodeType": "YulIdentifier", + "src": "4744:3:18" + }, + "nativeSrc": "4744:17:18", + "nodeType": "YulFunctionCall", + "src": "4744:17:18" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "4767:4:18", + "nodeType": "YulIdentifier", + "src": "4767:4:18" + }, + { + "name": "headStart", + "nativeSrc": "4773:9:18", + "nodeType": "YulIdentifier", + "src": "4773:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "4763:3:18", + "nodeType": "YulIdentifier", + "src": "4763:3:18" + }, + "nativeSrc": "4763:20:18", + "nodeType": "YulFunctionCall", + "src": "4763:20:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "4737:6:18", + "nodeType": "YulIdentifier", + "src": "4737:6:18" + }, + "nativeSrc": "4737:47:18", + "nodeType": "YulFunctionCall", + "src": "4737:47:18" + }, + "nativeSrc": "4737:47:18", + "nodeType": "YulExpressionStatement", + "src": "4737:47:18" + }, + { + "nativeSrc": "4793:86:18", + "nodeType": "YulAssignment", + "src": "4793:86:18", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "4865:6:18", + "nodeType": "YulIdentifier", + "src": "4865:6:18" + }, + { + "name": "tail", + "nativeSrc": "4874:4:18", + "nodeType": "YulIdentifier", + "src": "4874:4:18" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nativeSrc": "4801:63:18", + "nodeType": "YulIdentifier", + "src": "4801:63:18" + }, + "nativeSrc": "4801:78:18", + "nodeType": "YulFunctionCall", + "src": "4801:78:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "4793:4:18", + "nodeType": "YulIdentifier", + "src": "4793:4:18" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "4573:313:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "4663:9:18", + "nodeType": "YulTypedName", + "src": "4663:9:18", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "4675:6:18", + "nodeType": "YulTypedName", + "src": "4675:6:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "4686:4:18", + "nodeType": "YulTypedName", + "src": "4686:4:18", + "type": "" + } + ], + "src": "4573:313:18" + }, + { + "body": { + "nativeSrc": "4937:32:18", + "nodeType": "YulBlock", + "src": "4937:32:18", + "statements": [ + { + "nativeSrc": "4947:16:18", + "nodeType": "YulAssignment", + "src": "4947:16:18", + "value": { + "name": "value", + "nativeSrc": "4958:5:18", + "nodeType": "YulIdentifier", + "src": "4958:5:18" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "4947:7:18", + "nodeType": "YulIdentifier", + "src": "4947:7:18" + } + ] + } + ] + }, + "name": "cleanup_t_bytes32", + "nativeSrc": "4892:77:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4919:5:18", + "nodeType": "YulTypedName", + "src": "4919:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "4929:7:18", + "nodeType": "YulTypedName", + "src": "4929:7:18", + "type": "" + } + ], + "src": "4892:77:18" + }, + { + "body": { + "nativeSrc": "5018:79:18", + "nodeType": "YulBlock", + "src": "5018:79:18", + "statements": [ + { + "body": { + "nativeSrc": "5075:16:18", + "nodeType": "YulBlock", + "src": "5075:16:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5084:1:18", + "nodeType": "YulLiteral", + "src": "5084:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "5087:1:18", + "nodeType": "YulLiteral", + "src": "5087:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "5077:6:18", + "nodeType": "YulIdentifier", + "src": "5077:6:18" + }, + "nativeSrc": "5077:12:18", + "nodeType": "YulFunctionCall", + "src": "5077:12:18" + }, + "nativeSrc": "5077:12:18", + "nodeType": "YulExpressionStatement", + "src": "5077:12:18" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "5041:5:18", + "nodeType": "YulIdentifier", + "src": "5041:5:18" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "5066:5:18", + "nodeType": "YulIdentifier", + "src": "5066:5:18" + } + ], + "functionName": { + "name": "cleanup_t_bytes32", + "nativeSrc": "5048:17:18", + "nodeType": "YulIdentifier", + "src": "5048:17:18" + }, + "nativeSrc": "5048:24:18", + "nodeType": "YulFunctionCall", + "src": "5048:24:18" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "5038:2:18", + "nodeType": "YulIdentifier", + "src": "5038:2:18" + }, + "nativeSrc": "5038:35:18", + "nodeType": "YulFunctionCall", + "src": "5038:35:18" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "5031:6:18", + "nodeType": "YulIdentifier", + "src": "5031:6:18" + }, + "nativeSrc": "5031:43:18", + "nodeType": "YulFunctionCall", + "src": "5031:43:18" + }, + "nativeSrc": "5028:63:18", + "nodeType": "YulIf", + "src": "5028:63:18" + } + ] + }, + "name": "validator_revert_t_bytes32", + "nativeSrc": "4975:122:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "5011:5:18", + "nodeType": "YulTypedName", + "src": "5011:5:18", + "type": "" + } + ], + "src": "4975:122:18" + }, + { + "body": { + "nativeSrc": "5155:87:18", + "nodeType": "YulBlock", + "src": "5155:87:18", + "statements": [ + { + "nativeSrc": "5165:29:18", + "nodeType": "YulAssignment", + "src": "5165:29:18", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "5187:6:18", + "nodeType": "YulIdentifier", + "src": "5187:6:18" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "5174:12:18", + "nodeType": "YulIdentifier", + "src": "5174:12:18" + }, + "nativeSrc": "5174:20:18", + "nodeType": "YulFunctionCall", + "src": "5174:20:18" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "5165:5:18", + "nodeType": "YulIdentifier", + "src": "5165:5:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "5230:5:18", + "nodeType": "YulIdentifier", + "src": "5230:5:18" + } + ], + "functionName": { + "name": "validator_revert_t_bytes32", + "nativeSrc": "5203:26:18", + "nodeType": "YulIdentifier", + "src": "5203:26:18" + }, + "nativeSrc": "5203:33:18", + "nodeType": "YulFunctionCall", + "src": "5203:33:18" + }, + "nativeSrc": "5203:33:18", + "nodeType": "YulExpressionStatement", + "src": "5203:33:18" + } + ] + }, + "name": "abi_decode_t_bytes32", + "nativeSrc": "5103:139:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "5133:6:18", + "nodeType": "YulTypedName", + "src": "5133:6:18", + "type": "" + }, + { + "name": "end", + "nativeSrc": "5141:3:18", + "nodeType": "YulTypedName", + "src": "5141:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "5149:5:18", + "nodeType": "YulTypedName", + "src": "5149:5:18", + "type": "" + } + ], + "src": "5103:139:18" + }, + { + "body": { + "nativeSrc": "5314:263:18", + "nodeType": "YulBlock", + "src": "5314:263:18", + "statements": [ + { + "body": { + "nativeSrc": "5360:83:18", + "nodeType": "YulBlock", + "src": "5360:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "5362:77:18", + "nodeType": "YulIdentifier", + "src": "5362:77:18" + }, + "nativeSrc": "5362:79:18", + "nodeType": "YulFunctionCall", + "src": "5362:79:18" + }, + "nativeSrc": "5362:79:18", + "nodeType": "YulExpressionStatement", + "src": "5362:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "5335:7:18", + "nodeType": "YulIdentifier", + "src": "5335:7:18" + }, + { + "name": "headStart", + "nativeSrc": "5344:9:18", + "nodeType": "YulIdentifier", + "src": "5344:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5331:3:18", + "nodeType": "YulIdentifier", + "src": "5331:3:18" + }, + "nativeSrc": "5331:23:18", + "nodeType": "YulFunctionCall", + "src": "5331:23:18" + }, + { + "kind": "number", + "nativeSrc": "5356:2:18", + "nodeType": "YulLiteral", + "src": "5356:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "5327:3:18", + "nodeType": "YulIdentifier", + "src": "5327:3:18" + }, + "nativeSrc": "5327:32:18", + "nodeType": "YulFunctionCall", + "src": "5327:32:18" + }, + "nativeSrc": "5324:119:18", + "nodeType": "YulIf", + "src": "5324:119:18" + }, + { + "nativeSrc": "5453:117:18", + "nodeType": "YulBlock", + "src": "5453:117:18", + "statements": [ + { + "nativeSrc": "5468:15:18", + "nodeType": "YulVariableDeclaration", + "src": "5468:15:18", + "value": { + "kind": "number", + "nativeSrc": "5482:1:18", + "nodeType": "YulLiteral", + "src": "5482:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "5472:6:18", + "nodeType": "YulTypedName", + "src": "5472:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "5497:63:18", + "nodeType": "YulAssignment", + "src": "5497:63:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5532:9:18", + "nodeType": "YulIdentifier", + "src": "5532:9:18" + }, + { + "name": "offset", + "nativeSrc": "5543:6:18", + "nodeType": "YulIdentifier", + "src": "5543:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5528:3:18", + "nodeType": "YulIdentifier", + "src": "5528:3:18" + }, + "nativeSrc": "5528:22:18", + "nodeType": "YulFunctionCall", + "src": "5528:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "5552:7:18", + "nodeType": "YulIdentifier", + "src": "5552:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_bytes32", + "nativeSrc": "5507:20:18", + "nodeType": "YulIdentifier", + "src": "5507:20:18" + }, + "nativeSrc": "5507:53:18", + "nodeType": "YulFunctionCall", + "src": "5507:53:18" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "5497:6:18", + "nodeType": "YulIdentifier", + "src": "5497:6:18" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes32", + "nativeSrc": "5248:329:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "5284:9:18", + "nodeType": "YulTypedName", + "src": "5284:9:18", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "5295:7:18", + "nodeType": "YulTypedName", + "src": "5295:7:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "5307:6:18", + "nodeType": "YulTypedName", + "src": "5307:6:18", + "type": "" + } + ], + "src": "5248:329:18" + }, + { + "body": { + "nativeSrc": "5648:53:18", + "nodeType": "YulBlock", + "src": "5648:53:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "5665:3:18", + "nodeType": "YulIdentifier", + "src": "5665:3:18" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "5688:5:18", + "nodeType": "YulIdentifier", + "src": "5688:5:18" + } + ], + "functionName": { + "name": "cleanup_t_bytes32", + "nativeSrc": "5670:17:18", + "nodeType": "YulIdentifier", + "src": "5670:17:18" + }, + "nativeSrc": "5670:24:18", + "nodeType": "YulFunctionCall", + "src": "5670:24:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5658:6:18", + "nodeType": "YulIdentifier", + "src": "5658:6:18" + }, + "nativeSrc": "5658:37:18", + "nodeType": "YulFunctionCall", + "src": "5658:37:18" + }, + "nativeSrc": "5658:37:18", + "nodeType": "YulExpressionStatement", + "src": "5658:37:18" + } + ] + }, + "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nativeSrc": "5583:118:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "5636:5:18", + "nodeType": "YulTypedName", + "src": "5636:5:18", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "5643:3:18", + "nodeType": "YulTypedName", + "src": "5643:3:18", + "type": "" + } + ], + "src": "5583:118:18" + }, + { + "body": { + "nativeSrc": "5805:124:18", + "nodeType": "YulBlock", + "src": "5805:124:18", + "statements": [ + { + "nativeSrc": "5815:26:18", + "nodeType": "YulAssignment", + "src": "5815:26:18", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5827:9:18", + "nodeType": "YulIdentifier", + "src": "5827:9:18" + }, + { + "kind": "number", + "nativeSrc": "5838:2:18", + "nodeType": "YulLiteral", + "src": "5838:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5823:3:18", + "nodeType": "YulIdentifier", + "src": "5823:3:18" + }, + "nativeSrc": "5823:18:18", + "nodeType": "YulFunctionCall", + "src": "5823:18:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "5815:4:18", + "nodeType": "YulIdentifier", + "src": "5815:4:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "5895:6:18", + "nodeType": "YulIdentifier", + "src": "5895:6:18" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5908:9:18", + "nodeType": "YulIdentifier", + "src": "5908:9:18" + }, + { + "kind": "number", + "nativeSrc": "5919:1:18", + "nodeType": "YulLiteral", + "src": "5919:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5904:3:18", + "nodeType": "YulIdentifier", + "src": "5904:3:18" + }, + "nativeSrc": "5904:17:18", + "nodeType": "YulFunctionCall", + "src": "5904:17:18" + } + ], + "functionName": { + "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nativeSrc": "5851:43:18", + "nodeType": "YulIdentifier", + "src": "5851:43:18" + }, + "nativeSrc": "5851:71:18", + "nodeType": "YulFunctionCall", + "src": "5851:71:18" + }, + "nativeSrc": "5851:71:18", + "nodeType": "YulExpressionStatement", + "src": "5851:71:18" + } + ] + }, + "name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed", + "nativeSrc": "5707:222:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "5777:9:18", + "nodeType": "YulTypedName", + "src": "5777:9:18", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "5789:6:18", + "nodeType": "YulTypedName", + "src": "5789:6:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "5800:4:18", + "nodeType": "YulTypedName", + "src": "5800:4:18", + "type": "" + } + ], + "src": "5707:222:18" + }, + { + "body": { + "nativeSrc": "6024:28:18", + "nodeType": "YulBlock", + "src": "6024:28:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6041:1:18", + "nodeType": "YulLiteral", + "src": "6041:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "6044:1:18", + "nodeType": "YulLiteral", + "src": "6044:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "6034:6:18", + "nodeType": "YulIdentifier", + "src": "6034:6:18" + }, + "nativeSrc": "6034:12:18", + "nodeType": "YulFunctionCall", + "src": "6034:12:18" + }, + "nativeSrc": "6034:12:18", + "nodeType": "YulExpressionStatement", + "src": "6034:12:18" + } + ] + }, + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "5935:117:18", + "nodeType": "YulFunctionDefinition", + "src": "5935:117:18" + }, + { + "body": { + "nativeSrc": "6086:152:18", + "nodeType": "YulBlock", + "src": "6086:152:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6103:1:18", + "nodeType": "YulLiteral", + "src": "6103:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "6106:77:18", + "nodeType": "YulLiteral", + "src": "6106:77:18", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6096:6:18", + "nodeType": "YulIdentifier", + "src": "6096:6:18" + }, + "nativeSrc": "6096:88:18", + "nodeType": "YulFunctionCall", + "src": "6096:88:18" + }, + "nativeSrc": "6096:88:18", + "nodeType": "YulExpressionStatement", + "src": "6096:88:18" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6200:1:18", + "nodeType": "YulLiteral", + "src": "6200:1:18", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "6203:4:18", + "nodeType": "YulLiteral", + "src": "6203:4:18", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6193:6:18", + "nodeType": "YulIdentifier", + "src": "6193:6:18" + }, + "nativeSrc": "6193:15:18", + "nodeType": "YulFunctionCall", + "src": "6193:15:18" + }, + "nativeSrc": "6193:15:18", + "nodeType": "YulExpressionStatement", + "src": "6193:15:18" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6224:1:18", + "nodeType": "YulLiteral", + "src": "6224:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "6227:4:18", + "nodeType": "YulLiteral", + "src": "6227:4:18", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "6217:6:18", + "nodeType": "YulIdentifier", + "src": "6217:6:18" + }, + "nativeSrc": "6217:15:18", + "nodeType": "YulFunctionCall", + "src": "6217:15:18" + }, + "nativeSrc": "6217:15:18", + "nodeType": "YulExpressionStatement", + "src": "6217:15:18" + } + ] + }, + "name": "panic_error_0x41", + "nativeSrc": "6058:180:18", + "nodeType": "YulFunctionDefinition", + "src": "6058:180:18" + }, + { + "body": { + "nativeSrc": "6287:238:18", + "nodeType": "YulBlock", + "src": "6287:238:18", + "statements": [ + { + "nativeSrc": "6297:58:18", + "nodeType": "YulVariableDeclaration", + "src": "6297:58:18", + "value": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "6319:6:18", + "nodeType": "YulIdentifier", + "src": "6319:6:18" + }, + { + "arguments": [ + { + "name": "size", + "nativeSrc": "6349:4:18", + "nodeType": "YulIdentifier", + "src": "6349:4:18" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "6327:21:18", + "nodeType": "YulIdentifier", + "src": "6327:21:18" + }, + "nativeSrc": "6327:27:18", + "nodeType": "YulFunctionCall", + "src": "6327:27:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6315:3:18", + "nodeType": "YulIdentifier", + "src": "6315:3:18" + }, + "nativeSrc": "6315:40:18", + "nodeType": "YulFunctionCall", + "src": "6315:40:18" + }, + "variables": [ + { + "name": "newFreePtr", + "nativeSrc": "6301:10:18", + "nodeType": "YulTypedName", + "src": "6301:10:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "6466:22:18", + "nodeType": "YulBlock", + "src": "6466:22:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "6468:16:18", + "nodeType": "YulIdentifier", + "src": "6468:16:18" + }, + "nativeSrc": "6468:18:18", + "nodeType": "YulFunctionCall", + "src": "6468:18:18" + }, + "nativeSrc": "6468:18:18", + "nodeType": "YulExpressionStatement", + "src": "6468:18:18" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "6409:10:18", + "nodeType": "YulIdentifier", + "src": "6409:10:18" + }, + { + "kind": "number", + "nativeSrc": "6421:18:18", + "nodeType": "YulLiteral", + "src": "6421:18:18", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "6406:2:18", + "nodeType": "YulIdentifier", + "src": "6406:2:18" + }, + "nativeSrc": "6406:34:18", + "nodeType": "YulFunctionCall", + "src": "6406:34:18" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "6445:10:18", + "nodeType": "YulIdentifier", + "src": "6445:10:18" + }, + { + "name": "memPtr", + "nativeSrc": "6457:6:18", + "nodeType": "YulIdentifier", + "src": "6457:6:18" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "6442:2:18", + "nodeType": "YulIdentifier", + "src": "6442:2:18" + }, + "nativeSrc": "6442:22:18", + "nodeType": "YulFunctionCall", + "src": "6442:22:18" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "6403:2:18", + "nodeType": "YulIdentifier", + "src": "6403:2:18" + }, + "nativeSrc": "6403:62:18", + "nodeType": "YulFunctionCall", + "src": "6403:62:18" + }, + "nativeSrc": "6400:88:18", + "nodeType": "YulIf", + "src": "6400:88:18" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6504:2:18", + "nodeType": "YulLiteral", + "src": "6504:2:18", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nativeSrc": "6508:10:18", + "nodeType": "YulIdentifier", + "src": "6508:10:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6497:6:18", + "nodeType": "YulIdentifier", + "src": "6497:6:18" + }, + "nativeSrc": "6497:22:18", + "nodeType": "YulFunctionCall", + "src": "6497:22:18" + }, + "nativeSrc": "6497:22:18", + "nodeType": "YulExpressionStatement", + "src": "6497:22:18" + } + ] + }, + "name": "finalize_allocation", + "nativeSrc": "6244:281:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "6273:6:18", + "nodeType": "YulTypedName", + "src": "6273:6:18", + "type": "" + }, + { + "name": "size", + "nativeSrc": "6281:4:18", + "nodeType": "YulTypedName", + "src": "6281:4:18", + "type": "" + } + ], + "src": "6244:281:18" + }, + { + "body": { + "nativeSrc": "6572:88:18", + "nodeType": "YulBlock", + "src": "6572:88:18", + "statements": [ + { + "nativeSrc": "6582:30:18", + "nodeType": "YulAssignment", + "src": "6582:30:18", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_unbounded", + "nativeSrc": "6592:18:18", + "nodeType": "YulIdentifier", + "src": "6592:18:18" + }, + "nativeSrc": "6592:20:18", + "nodeType": "YulFunctionCall", + "src": "6592:20:18" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "6582:6:18", + "nodeType": "YulIdentifier", + "src": "6582:6:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "6641:6:18", + "nodeType": "YulIdentifier", + "src": "6641:6:18" + }, + { + "name": "size", + "nativeSrc": "6649:4:18", + "nodeType": "YulIdentifier", + "src": "6649:4:18" + } + ], + "functionName": { + "name": "finalize_allocation", + "nativeSrc": "6621:19:18", + "nodeType": "YulIdentifier", + "src": "6621:19:18" + }, + "nativeSrc": "6621:33:18", + "nodeType": "YulFunctionCall", + "src": "6621:33:18" + }, + "nativeSrc": "6621:33:18", + "nodeType": "YulExpressionStatement", + "src": "6621:33:18" + } + ] + }, + "name": "allocate_memory", + "nativeSrc": "6531:129:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "size", + "nativeSrc": "6556:4:18", + "nodeType": "YulTypedName", + "src": "6556:4:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "6565:6:18", + "nodeType": "YulTypedName", + "src": "6565:6:18", + "type": "" + } + ], + "src": "6531:129:18" + }, + { + "body": { + "nativeSrc": "6748:229:18", + "nodeType": "YulBlock", + "src": "6748:229:18", + "statements": [ + { + "body": { + "nativeSrc": "6853:22:18", + "nodeType": "YulBlock", + "src": "6853:22:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "6855:16:18", + "nodeType": "YulIdentifier", + "src": "6855:16:18" + }, + "nativeSrc": "6855:18:18", + "nodeType": "YulFunctionCall", + "src": "6855:18:18" + }, + "nativeSrc": "6855:18:18", + "nodeType": "YulExpressionStatement", + "src": "6855:18:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "6825:6:18", + "nodeType": "YulIdentifier", + "src": "6825:6:18" + }, + { + "kind": "number", + "nativeSrc": "6833:18:18", + "nodeType": "YulLiteral", + "src": "6833:18:18", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "6822:2:18", + "nodeType": "YulIdentifier", + "src": "6822:2:18" + }, + "nativeSrc": "6822:30:18", + "nodeType": "YulFunctionCall", + "src": "6822:30:18" + }, + "nativeSrc": "6819:56:18", + "nodeType": "YulIf", + "src": "6819:56:18" + }, + { + "nativeSrc": "6885:25:18", + "nodeType": "YulAssignment", + "src": "6885:25:18", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "6897:6:18", + "nodeType": "YulIdentifier", + "src": "6897:6:18" + }, + { + "kind": "number", + "nativeSrc": "6905:4:18", + "nodeType": "YulLiteral", + "src": "6905:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "6893:3:18", + "nodeType": "YulIdentifier", + "src": "6893:3:18" + }, + "nativeSrc": "6893:17:18", + "nodeType": "YulFunctionCall", + "src": "6893:17:18" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "6885:4:18", + "nodeType": "YulIdentifier", + "src": "6885:4:18" + } + ] + }, + { + "nativeSrc": "6947:23:18", + "nodeType": "YulAssignment", + "src": "6947:23:18", + "value": { + "arguments": [ + { + "name": "size", + "nativeSrc": "6959:4:18", + "nodeType": "YulIdentifier", + "src": "6959:4:18" + }, + { + "kind": "number", + "nativeSrc": "6965:4:18", + "nodeType": "YulLiteral", + "src": "6965:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6955:3:18", + "nodeType": "YulIdentifier", + "src": "6955:3:18" + }, + "nativeSrc": "6955:15:18", + "nodeType": "YulFunctionCall", + "src": "6955:15:18" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "6947:4:18", + "nodeType": "YulIdentifier", + "src": "6947:4:18" + } + ] + } + ] + }, + "name": "array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr", + "nativeSrc": "6666:311:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nativeSrc": "6732:6:18", + "nodeType": "YulTypedName", + "src": "6732:6:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nativeSrc": "6743:4:18", + "nodeType": "YulTypedName", + "src": "6743:4:18", + "type": "" + } + ], + "src": "6666:311:18" + }, + { + "body": { + "nativeSrc": "7072:28:18", + "nodeType": "YulBlock", + "src": "7072:28:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7089:1:18", + "nodeType": "YulLiteral", + "src": "7089:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "7092:1:18", + "nodeType": "YulLiteral", + "src": "7092:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "7082:6:18", + "nodeType": "YulIdentifier", + "src": "7082:6:18" + }, + "nativeSrc": "7082:12:18", + "nodeType": "YulFunctionCall", + "src": "7082:12:18" + }, + "nativeSrc": "7082:12:18", + "nodeType": "YulExpressionStatement", + "src": "7082:12:18" + } + ] + }, + "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", + "nativeSrc": "6983:117:18", + "nodeType": "YulFunctionDefinition", + "src": "6983:117:18" + }, + { + "body": { + "nativeSrc": "7225:608:18", + "nodeType": "YulBlock", + "src": "7225:608:18", + "statements": [ + { + "nativeSrc": "7235:90:18", + "nodeType": "YulAssignment", + "src": "7235:90:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nativeSrc": "7317:6:18", + "nodeType": "YulIdentifier", + "src": "7317:6:18" + } + ], + "functionName": { + "name": "array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr", + "nativeSrc": "7260:56:18", + "nodeType": "YulIdentifier", + "src": "7260:56:18" + }, + "nativeSrc": "7260:64:18", + "nodeType": "YulFunctionCall", + "src": "7260:64:18" + } + ], + "functionName": { + "name": "allocate_memory", + "nativeSrc": "7244:15:18", + "nodeType": "YulIdentifier", + "src": "7244:15:18" + }, + "nativeSrc": "7244:81:18", + "nodeType": "YulFunctionCall", + "src": "7244:81:18" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "7235:5:18", + "nodeType": "YulIdentifier", + "src": "7235:5:18" + } + ] + }, + { + "nativeSrc": "7334:16:18", + "nodeType": "YulVariableDeclaration", + "src": "7334:16:18", + "value": { + "name": "array", + "nativeSrc": "7345:5:18", + "nodeType": "YulIdentifier", + "src": "7345:5:18" + }, + "variables": [ + { + "name": "dst", + "nativeSrc": "7338:3:18", + "nodeType": "YulTypedName", + "src": "7338:3:18", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nativeSrc": "7367:5:18", + "nodeType": "YulIdentifier", + "src": "7367:5:18" + }, + { + "name": "length", + "nativeSrc": "7374:6:18", + "nodeType": "YulIdentifier", + "src": "7374:6:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7360:6:18", + "nodeType": "YulIdentifier", + "src": "7360:6:18" + }, + "nativeSrc": "7360:21:18", + "nodeType": "YulFunctionCall", + "src": "7360:21:18" + }, + "nativeSrc": "7360:21:18", + "nodeType": "YulExpressionStatement", + "src": "7360:21:18" + }, + { + "nativeSrc": "7390:23:18", + "nodeType": "YulAssignment", + "src": "7390:23:18", + "value": { + "arguments": [ + { + "name": "array", + "nativeSrc": "7401:5:18", + "nodeType": "YulIdentifier", + "src": "7401:5:18" + }, + { + "kind": "number", + "nativeSrc": "7408:4:18", + "nodeType": "YulLiteral", + "src": "7408:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7397:3:18", + "nodeType": "YulIdentifier", + "src": "7397:3:18" + }, + "nativeSrc": "7397:16:18", + "nodeType": "YulFunctionCall", + "src": "7397:16:18" + }, + "variableNames": [ + { + "name": "dst", + "nativeSrc": "7390:3:18", + "nodeType": "YulIdentifier", + "src": "7390:3:18" + } + ] + }, + { + "nativeSrc": "7423:44:18", + "nodeType": "YulVariableDeclaration", + "src": "7423:44:18", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "7441:6:18", + "nodeType": "YulIdentifier", + "src": "7441:6:18" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "7453:6:18", + "nodeType": "YulIdentifier", + "src": "7453:6:18" + }, + { + "kind": "number", + "nativeSrc": "7461:4:18", + "nodeType": "YulLiteral", + "src": "7461:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "7449:3:18", + "nodeType": "YulIdentifier", + "src": "7449:3:18" + }, + "nativeSrc": "7449:17:18", + "nodeType": "YulFunctionCall", + "src": "7449:17:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7437:3:18", + "nodeType": "YulIdentifier", + "src": "7437:3:18" + }, + "nativeSrc": "7437:30:18", + "nodeType": "YulFunctionCall", + "src": "7437:30:18" + }, + "variables": [ + { + "name": "srcEnd", + "nativeSrc": "7427:6:18", + "nodeType": "YulTypedName", + "src": "7427:6:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "7495:103:18", + "nodeType": "YulBlock", + "src": "7495:103:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", + "nativeSrc": "7509:77:18", + "nodeType": "YulIdentifier", + "src": "7509:77:18" + }, + "nativeSrc": "7509:79:18", + "nodeType": "YulFunctionCall", + "src": "7509:79:18" + }, + "nativeSrc": "7509:79:18", + "nodeType": "YulExpressionStatement", + "src": "7509:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "srcEnd", + "nativeSrc": "7482:6:18", + "nodeType": "YulIdentifier", + "src": "7482:6:18" + }, + { + "name": "end", + "nativeSrc": "7490:3:18", + "nodeType": "YulIdentifier", + "src": "7490:3:18" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "7479:2:18", + "nodeType": "YulIdentifier", + "src": "7479:2:18" + }, + "nativeSrc": "7479:15:18", + "nodeType": "YulFunctionCall", + "src": "7479:15:18" + }, + "nativeSrc": "7476:122:18", + "nodeType": "YulIf", + "src": "7476:122:18" + }, + { + "body": { + "nativeSrc": "7683:144:18", + "nodeType": "YulBlock", + "src": "7683:144:18", + "statements": [ + { + "nativeSrc": "7698:21:18", + "nodeType": "YulVariableDeclaration", + "src": "7698:21:18", + "value": { + "name": "src", + "nativeSrc": "7716:3:18", + "nodeType": "YulIdentifier", + "src": "7716:3:18" + }, + "variables": [ + { + "name": "elementPos", + "nativeSrc": "7702:10:18", + "nodeType": "YulTypedName", + "src": "7702:10:18", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dst", + "nativeSrc": "7740:3:18", + "nodeType": "YulIdentifier", + "src": "7740:3:18" + }, + { + "arguments": [ + { + "name": "elementPos", + "nativeSrc": "7766:10:18", + "nodeType": "YulIdentifier", + "src": "7766:10:18" + }, + { + "name": "end", + "nativeSrc": "7778:3:18", + "nodeType": "YulIdentifier", + "src": "7778:3:18" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "7745:20:18", + "nodeType": "YulIdentifier", + "src": "7745:20:18" + }, + "nativeSrc": "7745:37:18", + "nodeType": "YulFunctionCall", + "src": "7745:37:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7733:6:18", + "nodeType": "YulIdentifier", + "src": "7733:6:18" + }, + "nativeSrc": "7733:50:18", + "nodeType": "YulFunctionCall", + "src": "7733:50:18" + }, + "nativeSrc": "7733:50:18", + "nodeType": "YulExpressionStatement", + "src": "7733:50:18" + }, + { + "nativeSrc": "7796:21:18", + "nodeType": "YulAssignment", + "src": "7796:21:18", + "value": { + "arguments": [ + { + "name": "dst", + "nativeSrc": "7807:3:18", + "nodeType": "YulIdentifier", + "src": "7807:3:18" + }, + { + "kind": "number", + "nativeSrc": "7812:4:18", + "nodeType": "YulLiteral", + "src": "7812:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7803:3:18", + "nodeType": "YulIdentifier", + "src": "7803:3:18" + }, + "nativeSrc": "7803:14:18", + "nodeType": "YulFunctionCall", + "src": "7803:14:18" + }, + "variableNames": [ + { + "name": "dst", + "nativeSrc": "7796:3:18", + "nodeType": "YulIdentifier", + "src": "7796:3:18" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "src", + "nativeSrc": "7636:3:18", + "nodeType": "YulIdentifier", + "src": "7636:3:18" + }, + { + "name": "srcEnd", + "nativeSrc": "7641:6:18", + "nodeType": "YulIdentifier", + "src": "7641:6:18" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "7633:2:18", + "nodeType": "YulIdentifier", + "src": "7633:2:18" + }, + "nativeSrc": "7633:15:18", + "nodeType": "YulFunctionCall", + "src": "7633:15:18" + }, + "nativeSrc": "7607:220:18", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "7649:25:18", + "nodeType": "YulBlock", + "src": "7649:25:18", + "statements": [ + { + "nativeSrc": "7651:21:18", + "nodeType": "YulAssignment", + "src": "7651:21:18", + "value": { + "arguments": [ + { + "name": "src", + "nativeSrc": "7662:3:18", + "nodeType": "YulIdentifier", + "src": "7662:3:18" + }, + { + "kind": "number", + "nativeSrc": "7667:4:18", + "nodeType": "YulLiteral", + "src": "7667:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7658:3:18", + "nodeType": "YulIdentifier", + "src": "7658:3:18" + }, + "nativeSrc": "7658:14:18", + "nodeType": "YulFunctionCall", + "src": "7658:14:18" + }, + "variableNames": [ + { + "name": "src", + "nativeSrc": "7651:3:18", + "nodeType": "YulIdentifier", + "src": "7651:3:18" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "7611:21:18", + "nodeType": "YulBlock", + "src": "7611:21:18", + "statements": [ + { + "nativeSrc": "7613:17:18", + "nodeType": "YulVariableDeclaration", + "src": "7613:17:18", + "value": { + "name": "offset", + "nativeSrc": "7624:6:18", + "nodeType": "YulIdentifier", + "src": "7624:6:18" + }, + "variables": [ + { + "name": "src", + "nativeSrc": "7617:3:18", + "nodeType": "YulTypedName", + "src": "7617:3:18", + "type": "" + } + ] + } + ] + }, + "src": "7607:220:18" + } + ] + }, + "name": "abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr", + "nativeSrc": "7123:710:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "7195:6:18", + "nodeType": "YulTypedName", + "src": "7195:6:18", + "type": "" + }, + { + "name": "length", + "nativeSrc": "7203:6:18", + "nodeType": "YulTypedName", + "src": "7203:6:18", + "type": "" + }, + { + "name": "end", + "nativeSrc": "7211:3:18", + "nodeType": "YulTypedName", + "src": "7211:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "7219:5:18", + "nodeType": "YulTypedName", + "src": "7219:5:18", + "type": "" + } + ], + "src": "7123:710:18" + }, + { + "body": { + "nativeSrc": "7933:293:18", + "nodeType": "YulBlock", + "src": "7933:293:18", + "statements": [ + { + "body": { + "nativeSrc": "7982:83:18", + "nodeType": "YulBlock", + "src": "7982:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "7984:77:18", + "nodeType": "YulIdentifier", + "src": "7984:77:18" + }, + "nativeSrc": "7984:79:18", + "nodeType": "YulFunctionCall", + "src": "7984:79:18" + }, + "nativeSrc": "7984:79:18", + "nodeType": "YulExpressionStatement", + "src": "7984:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "7961:6:18", + "nodeType": "YulIdentifier", + "src": "7961:6:18" + }, + { + "kind": "number", + "nativeSrc": "7969:4:18", + "nodeType": "YulLiteral", + "src": "7969:4:18", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7957:3:18", + "nodeType": "YulIdentifier", + "src": "7957:3:18" + }, + "nativeSrc": "7957:17:18", + "nodeType": "YulFunctionCall", + "src": "7957:17:18" + }, + { + "name": "end", + "nativeSrc": "7976:3:18", + "nodeType": "YulIdentifier", + "src": "7976:3:18" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "7953:3:18", + "nodeType": "YulIdentifier", + "src": "7953:3:18" + }, + "nativeSrc": "7953:27:18", + "nodeType": "YulFunctionCall", + "src": "7953:27:18" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "7946:6:18", + "nodeType": "YulIdentifier", + "src": "7946:6:18" + }, + "nativeSrc": "7946:35:18", + "nodeType": "YulFunctionCall", + "src": "7946:35:18" + }, + "nativeSrc": "7943:122:18", + "nodeType": "YulIf", + "src": "7943:122:18" + }, + { + "nativeSrc": "8074:34:18", + "nodeType": "YulVariableDeclaration", + "src": "8074:34:18", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "8101:6:18", + "nodeType": "YulIdentifier", + "src": "8101:6:18" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "8088:12:18", + "nodeType": "YulIdentifier", + "src": "8088:12:18" + }, + "nativeSrc": "8088:20:18", + "nodeType": "YulFunctionCall", + "src": "8088:20:18" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "8078:6:18", + "nodeType": "YulTypedName", + "src": "8078:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "8117:103:18", + "nodeType": "YulAssignment", + "src": "8117:103:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "8193:6:18", + "nodeType": "YulIdentifier", + "src": "8193:6:18" + }, + { + "kind": "number", + "nativeSrc": "8201:4:18", + "nodeType": "YulLiteral", + "src": "8201:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8189:3:18", + "nodeType": "YulIdentifier", + "src": "8189:3:18" + }, + "nativeSrc": "8189:17:18", + "nodeType": "YulFunctionCall", + "src": "8189:17:18" + }, + { + "name": "length", + "nativeSrc": "8208:6:18", + "nodeType": "YulIdentifier", + "src": "8208:6:18" + }, + { + "name": "end", + "nativeSrc": "8216:3:18", + "nodeType": "YulIdentifier", + "src": "8216:3:18" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr", + "nativeSrc": "8126:62:18", + "nodeType": "YulIdentifier", + "src": "8126:62:18" + }, + "nativeSrc": "8126:94:18", + "nodeType": "YulFunctionCall", + "src": "8126:94:18" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "8117:5:18", + "nodeType": "YulIdentifier", + "src": "8117:5:18" + } + ] + } + ] + }, + "name": "abi_decode_t_array$_t_uint256_$dyn_memory_ptr", + "nativeSrc": "7856:370:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "7911:6:18", + "nodeType": "YulTypedName", + "src": "7911:6:18", + "type": "" + }, + { + "name": "end", + "nativeSrc": "7919:3:18", + "nodeType": "YulTypedName", + "src": "7919:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "7927:5:18", + "nodeType": "YulTypedName", + "src": "7927:5:18", + "type": "" + } + ], + "src": "7856:370:18" + }, + { + "body": { + "nativeSrc": "8321:28:18", + "nodeType": "YulBlock", + "src": "8321:28:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "8338:1:18", + "nodeType": "YulLiteral", + "src": "8338:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "8341:1:18", + "nodeType": "YulLiteral", + "src": "8341:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "8331:6:18", + "nodeType": "YulIdentifier", + "src": "8331:6:18" + }, + "nativeSrc": "8331:12:18", + "nodeType": "YulFunctionCall", + "src": "8331:12:18" + }, + "nativeSrc": "8331:12:18", + "nodeType": "YulExpressionStatement", + "src": "8331:12:18" + } + ] + }, + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "8232:117:18", + "nodeType": "YulFunctionDefinition", + "src": "8232:117:18" + }, + { + "body": { + "nativeSrc": "8421:241:18", + "nodeType": "YulBlock", + "src": "8421:241:18", + "statements": [ + { + "body": { + "nativeSrc": "8526:22:18", + "nodeType": "YulBlock", + "src": "8526:22:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "8528:16:18", + "nodeType": "YulIdentifier", + "src": "8528:16:18" + }, + "nativeSrc": "8528:18:18", + "nodeType": "YulFunctionCall", + "src": "8528:18:18" + }, + "nativeSrc": "8528:18:18", + "nodeType": "YulExpressionStatement", + "src": "8528:18:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "8498:6:18", + "nodeType": "YulIdentifier", + "src": "8498:6:18" + }, + { + "kind": "number", + "nativeSrc": "8506:18:18", + "nodeType": "YulLiteral", + "src": "8506:18:18", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "8495:2:18", + "nodeType": "YulIdentifier", + "src": "8495:2:18" + }, + "nativeSrc": "8495:30:18", + "nodeType": "YulFunctionCall", + "src": "8495:30:18" + }, + "nativeSrc": "8492:56:18", + "nodeType": "YulIf", + "src": "8492:56:18" + }, + { + "nativeSrc": "8558:37:18", + "nodeType": "YulAssignment", + "src": "8558:37:18", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "8588:6:18", + "nodeType": "YulIdentifier", + "src": "8588:6:18" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "8566:21:18", + "nodeType": "YulIdentifier", + "src": "8566:21:18" + }, + "nativeSrc": "8566:29:18", + "nodeType": "YulFunctionCall", + "src": "8566:29:18" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "8558:4:18", + "nodeType": "YulIdentifier", + "src": "8558:4:18" + } + ] + }, + { + "nativeSrc": "8632:23:18", + "nodeType": "YulAssignment", + "src": "8632:23:18", + "value": { + "arguments": [ + { + "name": "size", + "nativeSrc": "8644:4:18", + "nodeType": "YulIdentifier", + "src": "8644:4:18" + }, + { + "kind": "number", + "nativeSrc": "8650:4:18", + "nodeType": "YulLiteral", + "src": "8650:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8640:3:18", + "nodeType": "YulIdentifier", + "src": "8640:3:18" + }, + "nativeSrc": "8640:15:18", + "nodeType": "YulFunctionCall", + "src": "8640:15:18" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "8632:4:18", + "nodeType": "YulIdentifier", + "src": "8632:4:18" + } + ] + } + ] + }, + "name": "array_allocation_size_t_bytes_memory_ptr", + "nativeSrc": "8355:307:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nativeSrc": "8405:6:18", + "nodeType": "YulTypedName", + "src": "8405:6:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nativeSrc": "8416:4:18", + "nodeType": "YulTypedName", + "src": "8416:4:18", + "type": "" + } + ], + "src": "8355:307:18" + }, + { + "body": { + "nativeSrc": "8732:84:18", + "nodeType": "YulBlock", + "src": "8732:84:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dst", + "nativeSrc": "8756:3:18", + "nodeType": "YulIdentifier", + "src": "8756:3:18" + }, + { + "name": "src", + "nativeSrc": "8761:3:18", + "nodeType": "YulIdentifier", + "src": "8761:3:18" + }, + { + "name": "length", + "nativeSrc": "8766:6:18", + "nodeType": "YulIdentifier", + "src": "8766:6:18" + } + ], + "functionName": { + "name": "calldatacopy", + "nativeSrc": "8743:12:18", + "nodeType": "YulIdentifier", + "src": "8743:12:18" + }, + "nativeSrc": "8743:30:18", + "nodeType": "YulFunctionCall", + "src": "8743:30:18" + }, + "nativeSrc": "8743:30:18", + "nodeType": "YulExpressionStatement", + "src": "8743:30:18" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "8793:3:18", + "nodeType": "YulIdentifier", + "src": "8793:3:18" + }, + { + "name": "length", + "nativeSrc": "8798:6:18", + "nodeType": "YulIdentifier", + "src": "8798:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8789:3:18", + "nodeType": "YulIdentifier", + "src": "8789:3:18" + }, + "nativeSrc": "8789:16:18", + "nodeType": "YulFunctionCall", + "src": "8789:16:18" + }, + { + "kind": "number", + "nativeSrc": "8807:1:18", + "nodeType": "YulLiteral", + "src": "8807:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8782:6:18", + "nodeType": "YulIdentifier", + "src": "8782:6:18" + }, + "nativeSrc": "8782:27:18", + "nodeType": "YulFunctionCall", + "src": "8782:27:18" + }, + "nativeSrc": "8782:27:18", + "nodeType": "YulExpressionStatement", + "src": "8782:27:18" + } + ] + }, + "name": "copy_calldata_to_memory_with_cleanup", + "nativeSrc": "8668:148:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "8714:3:18", + "nodeType": "YulTypedName", + "src": "8714:3:18", + "type": "" + }, + { + "name": "dst", + "nativeSrc": "8719:3:18", + "nodeType": "YulTypedName", + "src": "8719:3:18", + "type": "" + }, + { + "name": "length", + "nativeSrc": "8724:6:18", + "nodeType": "YulTypedName", + "src": "8724:6:18", + "type": "" + } + ], + "src": "8668:148:18" + }, + { + "body": { + "nativeSrc": "8905:340:18", + "nodeType": "YulBlock", + "src": "8905:340:18", + "statements": [ + { + "nativeSrc": "8915:74:18", + "nodeType": "YulAssignment", + "src": "8915:74:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nativeSrc": "8981:6:18", + "nodeType": "YulIdentifier", + "src": "8981:6:18" + } + ], + "functionName": { + "name": "array_allocation_size_t_bytes_memory_ptr", + "nativeSrc": "8940:40:18", + "nodeType": "YulIdentifier", + "src": "8940:40:18" + }, + "nativeSrc": "8940:48:18", + "nodeType": "YulFunctionCall", + "src": "8940:48:18" + } + ], + "functionName": { + "name": "allocate_memory", + "nativeSrc": "8924:15:18", + "nodeType": "YulIdentifier", + "src": "8924:15:18" + }, + "nativeSrc": "8924:65:18", + "nodeType": "YulFunctionCall", + "src": "8924:65:18" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "8915:5:18", + "nodeType": "YulIdentifier", + "src": "8915:5:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nativeSrc": "9005:5:18", + "nodeType": "YulIdentifier", + "src": "9005:5:18" + }, + { + "name": "length", + "nativeSrc": "9012:6:18", + "nodeType": "YulIdentifier", + "src": "9012:6:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8998:6:18", + "nodeType": "YulIdentifier", + "src": "8998:6:18" + }, + "nativeSrc": "8998:21:18", + "nodeType": "YulFunctionCall", + "src": "8998:21:18" + }, + "nativeSrc": "8998:21:18", + "nodeType": "YulExpressionStatement", + "src": "8998:21:18" + }, + { + "nativeSrc": "9028:27:18", + "nodeType": "YulVariableDeclaration", + "src": "9028:27:18", + "value": { + "arguments": [ + { + "name": "array", + "nativeSrc": "9043:5:18", + "nodeType": "YulIdentifier", + "src": "9043:5:18" + }, + { + "kind": "number", + "nativeSrc": "9050:4:18", + "nodeType": "YulLiteral", + "src": "9050:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9039:3:18", + "nodeType": "YulIdentifier", + "src": "9039:3:18" + }, + "nativeSrc": "9039:16:18", + "nodeType": "YulFunctionCall", + "src": "9039:16:18" + }, + "variables": [ + { + "name": "dst", + "nativeSrc": "9032:3:18", + "nodeType": "YulTypedName", + "src": "9032:3:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "9093:83:18", + "nodeType": "YulBlock", + "src": "9093:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "9095:77:18", + "nodeType": "YulIdentifier", + "src": "9095:77:18" + }, + "nativeSrc": "9095:79:18", + "nodeType": "YulFunctionCall", + "src": "9095:79:18" + }, + "nativeSrc": "9095:79:18", + "nodeType": "YulExpressionStatement", + "src": "9095:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "9074:3:18", + "nodeType": "YulIdentifier", + "src": "9074:3:18" + }, + { + "name": "length", + "nativeSrc": "9079:6:18", + "nodeType": "YulIdentifier", + "src": "9079:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9070:3:18", + "nodeType": "YulIdentifier", + "src": "9070:3:18" + }, + "nativeSrc": "9070:16:18", + "nodeType": "YulFunctionCall", + "src": "9070:16:18" + }, + { + "name": "end", + "nativeSrc": "9088:3:18", + "nodeType": "YulIdentifier", + "src": "9088:3:18" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "9067:2:18", + "nodeType": "YulIdentifier", + "src": "9067:2:18" + }, + "nativeSrc": "9067:25:18", + "nodeType": "YulFunctionCall", + "src": "9067:25:18" + }, + "nativeSrc": "9064:112:18", + "nodeType": "YulIf", + "src": "9064:112:18" + }, + { + "expression": { + "arguments": [ + { + "name": "src", + "nativeSrc": "9222:3:18", + "nodeType": "YulIdentifier", + "src": "9222:3:18" + }, + { + "name": "dst", + "nativeSrc": "9227:3:18", + "nodeType": "YulIdentifier", + "src": "9227:3:18" + }, + { + "name": "length", + "nativeSrc": "9232:6:18", + "nodeType": "YulIdentifier", + "src": "9232:6:18" + } + ], + "functionName": { + "name": "copy_calldata_to_memory_with_cleanup", + "nativeSrc": "9185:36:18", + "nodeType": "YulIdentifier", + "src": "9185:36:18" + }, + "nativeSrc": "9185:54:18", + "nodeType": "YulFunctionCall", + "src": "9185:54:18" + }, + "nativeSrc": "9185:54:18", + "nodeType": "YulExpressionStatement", + "src": "9185:54:18" + } + ] + }, + "name": "abi_decode_available_length_t_bytes_memory_ptr", + "nativeSrc": "8822:423:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "8878:3:18", + "nodeType": "YulTypedName", + "src": "8878:3:18", + "type": "" + }, + { + "name": "length", + "nativeSrc": "8883:6:18", + "nodeType": "YulTypedName", + "src": "8883:6:18", + "type": "" + }, + { + "name": "end", + "nativeSrc": "8891:3:18", + "nodeType": "YulTypedName", + "src": "8891:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "8899:5:18", + "nodeType": "YulTypedName", + "src": "8899:5:18", + "type": "" + } + ], + "src": "8822:423:18" + }, + { + "body": { + "nativeSrc": "9325:277:18", + "nodeType": "YulBlock", + "src": "9325:277:18", + "statements": [ + { + "body": { + "nativeSrc": "9374:83:18", + "nodeType": "YulBlock", + "src": "9374:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "9376:77:18", + "nodeType": "YulIdentifier", + "src": "9376:77:18" + }, + "nativeSrc": "9376:79:18", + "nodeType": "YulFunctionCall", + "src": "9376:79:18" + }, + "nativeSrc": "9376:79:18", + "nodeType": "YulExpressionStatement", + "src": "9376:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "9353:6:18", + "nodeType": "YulIdentifier", + "src": "9353:6:18" + }, + { + "kind": "number", + "nativeSrc": "9361:4:18", + "nodeType": "YulLiteral", + "src": "9361:4:18", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9349:3:18", + "nodeType": "YulIdentifier", + "src": "9349:3:18" + }, + "nativeSrc": "9349:17:18", + "nodeType": "YulFunctionCall", + "src": "9349:17:18" + }, + { + "name": "end", + "nativeSrc": "9368:3:18", + "nodeType": "YulIdentifier", + "src": "9368:3:18" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "9345:3:18", + "nodeType": "YulIdentifier", + "src": "9345:3:18" + }, + "nativeSrc": "9345:27:18", + "nodeType": "YulFunctionCall", + "src": "9345:27:18" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "9338:6:18", + "nodeType": "YulIdentifier", + "src": "9338:6:18" + }, + "nativeSrc": "9338:35:18", + "nodeType": "YulFunctionCall", + "src": "9338:35:18" + }, + "nativeSrc": "9335:122:18", + "nodeType": "YulIf", + "src": "9335:122:18" + }, + { + "nativeSrc": "9466:34:18", + "nodeType": "YulVariableDeclaration", + "src": "9466:34:18", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "9493:6:18", + "nodeType": "YulIdentifier", + "src": "9493:6:18" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "9480:12:18", + "nodeType": "YulIdentifier", + "src": "9480:12:18" + }, + "nativeSrc": "9480:20:18", + "nodeType": "YulFunctionCall", + "src": "9480:20:18" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "9470:6:18", + "nodeType": "YulTypedName", + "src": "9470:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "9509:87:18", + "nodeType": "YulAssignment", + "src": "9509:87:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "9569:6:18", + "nodeType": "YulIdentifier", + "src": "9569:6:18" + }, + { + "kind": "number", + "nativeSrc": "9577:4:18", + "nodeType": "YulLiteral", + "src": "9577:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9565:3:18", + "nodeType": "YulIdentifier", + "src": "9565:3:18" + }, + "nativeSrc": "9565:17:18", + "nodeType": "YulFunctionCall", + "src": "9565:17:18" + }, + { + "name": "length", + "nativeSrc": "9584:6:18", + "nodeType": "YulIdentifier", + "src": "9584:6:18" + }, + { + "name": "end", + "nativeSrc": "9592:3:18", + "nodeType": "YulIdentifier", + "src": "9592:3:18" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_bytes_memory_ptr", + "nativeSrc": "9518:46:18", + "nodeType": "YulIdentifier", + "src": "9518:46:18" + }, + "nativeSrc": "9518:78:18", + "nodeType": "YulFunctionCall", + "src": "9518:78:18" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "9509:5:18", + "nodeType": "YulIdentifier", + "src": "9509:5:18" + } + ] + } + ] + }, + "name": "abi_decode_t_bytes_memory_ptr", + "nativeSrc": "9264:338:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "9303:6:18", + "nodeType": "YulTypedName", + "src": "9303:6:18", + "type": "" + }, + { + "name": "end", + "nativeSrc": "9311:3:18", + "nodeType": "YulTypedName", + "src": "9311:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "9319:5:18", + "nodeType": "YulTypedName", + "src": "9319:5:18", + "type": "" + } + ], + "src": "9264:338:18" + }, + { + "body": { + "nativeSrc": "9801:1316:18", + "nodeType": "YulBlock", + "src": "9801:1316:18", + "statements": [ + { + "body": { + "nativeSrc": "9848:83:18", + "nodeType": "YulBlock", + "src": "9848:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "9850:77:18", + "nodeType": "YulIdentifier", + "src": "9850:77:18" + }, + "nativeSrc": "9850:79:18", + "nodeType": "YulFunctionCall", + "src": "9850:79:18" + }, + "nativeSrc": "9850:79:18", + "nodeType": "YulExpressionStatement", + "src": "9850:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "9822:7:18", + "nodeType": "YulIdentifier", + "src": "9822:7:18" + }, + { + "name": "headStart", + "nativeSrc": "9831:9:18", + "nodeType": "YulIdentifier", + "src": "9831:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "9818:3:18", + "nodeType": "YulIdentifier", + "src": "9818:3:18" + }, + "nativeSrc": "9818:23:18", + "nodeType": "YulFunctionCall", + "src": "9818:23:18" + }, + { + "kind": "number", + "nativeSrc": "9843:3:18", + "nodeType": "YulLiteral", + "src": "9843:3:18", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "9814:3:18", + "nodeType": "YulIdentifier", + "src": "9814:3:18" + }, + "nativeSrc": "9814:33:18", + "nodeType": "YulFunctionCall", + "src": "9814:33:18" + }, + "nativeSrc": "9811:120:18", + "nodeType": "YulIf", + "src": "9811:120:18" + }, + { + "nativeSrc": "9941:117:18", + "nodeType": "YulBlock", + "src": "9941:117:18", + "statements": [ + { + "nativeSrc": "9956:15:18", + "nodeType": "YulVariableDeclaration", + "src": "9956:15:18", + "value": { + "kind": "number", + "nativeSrc": "9970:1:18", + "nodeType": "YulLiteral", + "src": "9970:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "9960:6:18", + "nodeType": "YulTypedName", + "src": "9960:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "9985:63:18", + "nodeType": "YulAssignment", + "src": "9985:63:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10020:9:18", + "nodeType": "YulIdentifier", + "src": "10020:9:18" + }, + { + "name": "offset", + "nativeSrc": "10031:6:18", + "nodeType": "YulIdentifier", + "src": "10031:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10016:3:18", + "nodeType": "YulIdentifier", + "src": "10016:3:18" + }, + "nativeSrc": "10016:22:18", + "nodeType": "YulFunctionCall", + "src": "10016:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "10040:7:18", + "nodeType": "YulIdentifier", + "src": "10040:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "9995:20:18", + "nodeType": "YulIdentifier", + "src": "9995:20:18" + }, + "nativeSrc": "9995:53:18", + "nodeType": "YulFunctionCall", + "src": "9995:53:18" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "9985:6:18", + "nodeType": "YulIdentifier", + "src": "9985:6:18" + } + ] + } + ] + }, + { + "nativeSrc": "10068:118:18", + "nodeType": "YulBlock", + "src": "10068:118:18", + "statements": [ + { + "nativeSrc": "10083:16:18", + "nodeType": "YulVariableDeclaration", + "src": "10083:16:18", + "value": { + "kind": "number", + "nativeSrc": "10097:2:18", + "nodeType": "YulLiteral", + "src": "10097:2:18", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "10087:6:18", + "nodeType": "YulTypedName", + "src": "10087:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "10113:63:18", + "nodeType": "YulAssignment", + "src": "10113:63:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10148:9:18", + "nodeType": "YulIdentifier", + "src": "10148:9:18" + }, + { + "name": "offset", + "nativeSrc": "10159:6:18", + "nodeType": "YulIdentifier", + "src": "10159:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10144:3:18", + "nodeType": "YulIdentifier", + "src": "10144:3:18" + }, + "nativeSrc": "10144:22:18", + "nodeType": "YulFunctionCall", + "src": "10144:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "10168:7:18", + "nodeType": "YulIdentifier", + "src": "10168:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "10123:20:18", + "nodeType": "YulIdentifier", + "src": "10123:20:18" + }, + "nativeSrc": "10123:53:18", + "nodeType": "YulFunctionCall", + "src": "10123:53:18" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "10113:6:18", + "nodeType": "YulIdentifier", + "src": "10113:6:18" + } + ] + } + ] + }, + { + "nativeSrc": "10196:303:18", + "nodeType": "YulBlock", + "src": "10196:303:18", + "statements": [ + { + "nativeSrc": "10211:46:18", + "nodeType": "YulVariableDeclaration", + "src": "10211:46:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10242:9:18", + "nodeType": "YulIdentifier", + "src": "10242:9:18" + }, + { + "kind": "number", + "nativeSrc": "10253:2:18", + "nodeType": "YulLiteral", + "src": "10253:2:18", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10238:3:18", + "nodeType": "YulIdentifier", + "src": "10238:3:18" + }, + "nativeSrc": "10238:18:18", + "nodeType": "YulFunctionCall", + "src": "10238:18:18" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "10225:12:18", + "nodeType": "YulIdentifier", + "src": "10225:12:18" + }, + "nativeSrc": "10225:32:18", + "nodeType": "YulFunctionCall", + "src": "10225:32:18" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "10215:6:18", + "nodeType": "YulTypedName", + "src": "10215:6:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "10304:83:18", + "nodeType": "YulBlock", + "src": "10304:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "10306:77:18", + "nodeType": "YulIdentifier", + "src": "10306:77:18" + }, + "nativeSrc": "10306:79:18", + "nodeType": "YulFunctionCall", + "src": "10306:79:18" + }, + "nativeSrc": "10306:79:18", + "nodeType": "YulExpressionStatement", + "src": "10306:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "10276:6:18", + "nodeType": "YulIdentifier", + "src": "10276:6:18" + }, + { + "kind": "number", + "nativeSrc": "10284:18:18", + "nodeType": "YulLiteral", + "src": "10284:18:18", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "10273:2:18", + "nodeType": "YulIdentifier", + "src": "10273:2:18" + }, + "nativeSrc": "10273:30:18", + "nodeType": "YulFunctionCall", + "src": "10273:30:18" + }, + "nativeSrc": "10270:117:18", + "nodeType": "YulIf", + "src": "10270:117:18" + }, + { + "nativeSrc": "10401:88:18", + "nodeType": "YulAssignment", + "src": "10401:88:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10461:9:18", + "nodeType": "YulIdentifier", + "src": "10461:9:18" + }, + { + "name": "offset", + "nativeSrc": "10472:6:18", + "nodeType": "YulIdentifier", + "src": "10472:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10457:3:18", + "nodeType": "YulIdentifier", + "src": "10457:3:18" + }, + "nativeSrc": "10457:22:18", + "nodeType": "YulFunctionCall", + "src": "10457:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "10481:7:18", + "nodeType": "YulIdentifier", + "src": "10481:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_uint256_$dyn_memory_ptr", + "nativeSrc": "10411:45:18", + "nodeType": "YulIdentifier", + "src": "10411:45:18" + }, + "nativeSrc": "10411:78:18", + "nodeType": "YulFunctionCall", + "src": "10411:78:18" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "10401:6:18", + "nodeType": "YulIdentifier", + "src": "10401:6:18" + } + ] + } + ] + }, + { + "nativeSrc": "10509:303:18", + "nodeType": "YulBlock", + "src": "10509:303:18", + "statements": [ + { + "nativeSrc": "10524:46:18", + "nodeType": "YulVariableDeclaration", + "src": "10524:46:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10555:9:18", + "nodeType": "YulIdentifier", + "src": "10555:9:18" + }, + { + "kind": "number", + "nativeSrc": "10566:2:18", + "nodeType": "YulLiteral", + "src": "10566:2:18", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10551:3:18", + "nodeType": "YulIdentifier", + "src": "10551:3:18" + }, + "nativeSrc": "10551:18:18", + "nodeType": "YulFunctionCall", + "src": "10551:18:18" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "10538:12:18", + "nodeType": "YulIdentifier", + "src": "10538:12:18" + }, + "nativeSrc": "10538:32:18", + "nodeType": "YulFunctionCall", + "src": "10538:32:18" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "10528:6:18", + "nodeType": "YulTypedName", + "src": "10528:6:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "10617:83:18", + "nodeType": "YulBlock", + "src": "10617:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "10619:77:18", + "nodeType": "YulIdentifier", + "src": "10619:77:18" + }, + "nativeSrc": "10619:79:18", + "nodeType": "YulFunctionCall", + "src": "10619:79:18" + }, + "nativeSrc": "10619:79:18", + "nodeType": "YulExpressionStatement", + "src": "10619:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "10589:6:18", + "nodeType": "YulIdentifier", + "src": "10589:6:18" + }, + { + "kind": "number", + "nativeSrc": "10597:18:18", + "nodeType": "YulLiteral", + "src": "10597:18:18", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "10586:2:18", + "nodeType": "YulIdentifier", + "src": "10586:2:18" + }, + "nativeSrc": "10586:30:18", + "nodeType": "YulFunctionCall", + "src": "10586:30:18" + }, + "nativeSrc": "10583:117:18", + "nodeType": "YulIf", + "src": "10583:117:18" + }, + { + "nativeSrc": "10714:88:18", + "nodeType": "YulAssignment", + "src": "10714:88:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10774:9:18", + "nodeType": "YulIdentifier", + "src": "10774:9:18" + }, + { + "name": "offset", + "nativeSrc": "10785:6:18", + "nodeType": "YulIdentifier", + "src": "10785:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10770:3:18", + "nodeType": "YulIdentifier", + "src": "10770:3:18" + }, + "nativeSrc": "10770:22:18", + "nodeType": "YulFunctionCall", + "src": "10770:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "10794:7:18", + "nodeType": "YulIdentifier", + "src": "10794:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_uint256_$dyn_memory_ptr", + "nativeSrc": "10724:45:18", + "nodeType": "YulIdentifier", + "src": "10724:45:18" + }, + "nativeSrc": "10724:78:18", + "nodeType": "YulFunctionCall", + "src": "10724:78:18" + }, + "variableNames": [ + { + "name": "value3", + "nativeSrc": "10714:6:18", + "nodeType": "YulIdentifier", + "src": "10714:6:18" + } + ] + } + ] + }, + { + "nativeSrc": "10822:288:18", + "nodeType": "YulBlock", + "src": "10822:288:18", + "statements": [ + { + "nativeSrc": "10837:47:18", + "nodeType": "YulVariableDeclaration", + "src": "10837:47:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10868:9:18", + "nodeType": "YulIdentifier", + "src": "10868:9:18" + }, + { + "kind": "number", + "nativeSrc": "10879:3:18", + "nodeType": "YulLiteral", + "src": "10879:3:18", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10864:3:18", + "nodeType": "YulIdentifier", + "src": "10864:3:18" + }, + "nativeSrc": "10864:19:18", + "nodeType": "YulFunctionCall", + "src": "10864:19:18" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "10851:12:18", + "nodeType": "YulIdentifier", + "src": "10851:12:18" + }, + "nativeSrc": "10851:33:18", + "nodeType": "YulFunctionCall", + "src": "10851:33:18" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "10841:6:18", + "nodeType": "YulTypedName", + "src": "10841:6:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "10931:83:18", + "nodeType": "YulBlock", + "src": "10931:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "10933:77:18", + "nodeType": "YulIdentifier", + "src": "10933:77:18" + }, + "nativeSrc": "10933:79:18", + "nodeType": "YulFunctionCall", + "src": "10933:79:18" + }, + "nativeSrc": "10933:79:18", + "nodeType": "YulExpressionStatement", + "src": "10933:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "10903:6:18", + "nodeType": "YulIdentifier", + "src": "10903:6:18" + }, + { + "kind": "number", + "nativeSrc": "10911:18:18", + "nodeType": "YulLiteral", + "src": "10911:18:18", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "10900:2:18", + "nodeType": "YulIdentifier", + "src": "10900:2:18" + }, + "nativeSrc": "10900:30:18", + "nodeType": "YulFunctionCall", + "src": "10900:30:18" + }, + "nativeSrc": "10897:117:18", + "nodeType": "YulIf", + "src": "10897:117:18" + }, + { + "nativeSrc": "11028:72:18", + "nodeType": "YulAssignment", + "src": "11028:72:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11072:9:18", + "nodeType": "YulIdentifier", + "src": "11072:9:18" + }, + { + "name": "offset", + "nativeSrc": "11083:6:18", + "nodeType": "YulIdentifier", + "src": "11083:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11068:3:18", + "nodeType": "YulIdentifier", + "src": "11068:3:18" + }, + "nativeSrc": "11068:22:18", + "nodeType": "YulFunctionCall", + "src": "11068:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "11092:7:18", + "nodeType": "YulIdentifier", + "src": "11092:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_bytes_memory_ptr", + "nativeSrc": "11038:29:18", + "nodeType": "YulIdentifier", + "src": "11038:29:18" + }, + "nativeSrc": "11038:62:18", + "nodeType": "YulFunctionCall", + "src": "11038:62:18" + }, + "variableNames": [ + { + "name": "value4", + "nativeSrc": "11028:6:18", + "nodeType": "YulIdentifier", + "src": "11028:6:18" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_bytes_memory_ptr", + "nativeSrc": "9608:1509:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "9739:9:18", + "nodeType": "YulTypedName", + "src": "9739:9:18", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "9750:7:18", + "nodeType": "YulTypedName", + "src": "9750:7:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "9762:6:18", + "nodeType": "YulTypedName", + "src": "9762:6:18", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "9770:6:18", + "nodeType": "YulTypedName", + "src": "9770:6:18", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "9778:6:18", + "nodeType": "YulTypedName", + "src": "9778:6:18", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "9786:6:18", + "nodeType": "YulTypedName", + "src": "9786:6:18", + "type": "" + }, + { + "name": "value4", + "nativeSrc": "9794:6:18", + "nodeType": "YulTypedName", + "src": "9794:6:18", + "type": "" + } + ], + "src": "9608:1509:18" + }, + { + "body": { + "nativeSrc": "11206:391:18", + "nodeType": "YulBlock", + "src": "11206:391:18", + "statements": [ + { + "body": { + "nativeSrc": "11252:83:18", + "nodeType": "YulBlock", + "src": "11252:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "11254:77:18", + "nodeType": "YulIdentifier", + "src": "11254:77:18" + }, + "nativeSrc": "11254:79:18", + "nodeType": "YulFunctionCall", + "src": "11254:79:18" + }, + "nativeSrc": "11254:79:18", + "nodeType": "YulExpressionStatement", + "src": "11254:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "11227:7:18", + "nodeType": "YulIdentifier", + "src": "11227:7:18" + }, + { + "name": "headStart", + "nativeSrc": "11236:9:18", + "nodeType": "YulIdentifier", + "src": "11236:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "11223:3:18", + "nodeType": "YulIdentifier", + "src": "11223:3:18" + }, + "nativeSrc": "11223:23:18", + "nodeType": "YulFunctionCall", + "src": "11223:23:18" + }, + { + "kind": "number", + "nativeSrc": "11248:2:18", + "nodeType": "YulLiteral", + "src": "11248:2:18", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "11219:3:18", + "nodeType": "YulIdentifier", + "src": "11219:3:18" + }, + "nativeSrc": "11219:32:18", + "nodeType": "YulFunctionCall", + "src": "11219:32:18" + }, + "nativeSrc": "11216:119:18", + "nodeType": "YulIf", + "src": "11216:119:18" + }, + { + "nativeSrc": "11345:117:18", + "nodeType": "YulBlock", + "src": "11345:117:18", + "statements": [ + { + "nativeSrc": "11360:15:18", + "nodeType": "YulVariableDeclaration", + "src": "11360:15:18", + "value": { + "kind": "number", + "nativeSrc": "11374:1:18", + "nodeType": "YulLiteral", + "src": "11374:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "11364:6:18", + "nodeType": "YulTypedName", + "src": "11364:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "11389:63:18", + "nodeType": "YulAssignment", + "src": "11389:63:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11424:9:18", + "nodeType": "YulIdentifier", + "src": "11424:9:18" + }, + { + "name": "offset", + "nativeSrc": "11435:6:18", + "nodeType": "YulIdentifier", + "src": "11435:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11420:3:18", + "nodeType": "YulIdentifier", + "src": "11420:3:18" + }, + "nativeSrc": "11420:22:18", + "nodeType": "YulFunctionCall", + "src": "11420:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "11444:7:18", + "nodeType": "YulIdentifier", + "src": "11444:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_bytes32", + "nativeSrc": "11399:20:18", + "nodeType": "YulIdentifier", + "src": "11399:20:18" + }, + "nativeSrc": "11399:53:18", + "nodeType": "YulFunctionCall", + "src": "11399:53:18" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "11389:6:18", + "nodeType": "YulIdentifier", + "src": "11389:6:18" + } + ] + } + ] + }, + { + "nativeSrc": "11472:118:18", + "nodeType": "YulBlock", + "src": "11472:118:18", + "statements": [ + { + "nativeSrc": "11487:16:18", + "nodeType": "YulVariableDeclaration", + "src": "11487:16:18", + "value": { + "kind": "number", + "nativeSrc": "11501:2:18", + "nodeType": "YulLiteral", + "src": "11501:2:18", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "11491:6:18", + "nodeType": "YulTypedName", + "src": "11491:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "11517:63:18", + "nodeType": "YulAssignment", + "src": "11517:63:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11552:9:18", + "nodeType": "YulIdentifier", + "src": "11552:9:18" + }, + { + "name": "offset", + "nativeSrc": "11563:6:18", + "nodeType": "YulIdentifier", + "src": "11563:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11548:3:18", + "nodeType": "YulIdentifier", + "src": "11548:3:18" + }, + "nativeSrc": "11548:22:18", + "nodeType": "YulFunctionCall", + "src": "11548:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "11572:7:18", + "nodeType": "YulIdentifier", + "src": "11572:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "11527:20:18", + "nodeType": "YulIdentifier", + "src": "11527:20:18" + }, + "nativeSrc": "11527:53:18", + "nodeType": "YulFunctionCall", + "src": "11527:53:18" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "11517:6:18", + "nodeType": "YulIdentifier", + "src": "11517:6:18" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes32t_address", + "nativeSrc": "11123:474:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "11168:9:18", + "nodeType": "YulTypedName", + "src": "11168:9:18", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "11179:7:18", + "nodeType": "YulTypedName", + "src": "11179:7:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "11191:6:18", + "nodeType": "YulTypedName", + "src": "11191:6:18", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "11199:6:18", + "nodeType": "YulTypedName", + "src": "11199:6:18", + "type": "" + } + ], + "src": "11123:474:18" + }, + { + "body": { + "nativeSrc": "11685:229:18", + "nodeType": "YulBlock", + "src": "11685:229:18", + "statements": [ + { + "body": { + "nativeSrc": "11790:22:18", + "nodeType": "YulBlock", + "src": "11790:22:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "11792:16:18", + "nodeType": "YulIdentifier", + "src": "11792:16:18" + }, + "nativeSrc": "11792:18:18", + "nodeType": "YulFunctionCall", + "src": "11792:18:18" + }, + "nativeSrc": "11792:18:18", + "nodeType": "YulExpressionStatement", + "src": "11792:18:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "11762:6:18", + "nodeType": "YulIdentifier", + "src": "11762:6:18" + }, + { + "kind": "number", + "nativeSrc": "11770:18:18", + "nodeType": "YulLiteral", + "src": "11770:18:18", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "11759:2:18", + "nodeType": "YulIdentifier", + "src": "11759:2:18" + }, + "nativeSrc": "11759:30:18", + "nodeType": "YulFunctionCall", + "src": "11759:30:18" + }, + "nativeSrc": "11756:56:18", + "nodeType": "YulIf", + "src": "11756:56:18" + }, + { + "nativeSrc": "11822:25:18", + "nodeType": "YulAssignment", + "src": "11822:25:18", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "11834:6:18", + "nodeType": "YulIdentifier", + "src": "11834:6:18" + }, + { + "kind": "number", + "nativeSrc": "11842:4:18", + "nodeType": "YulLiteral", + "src": "11842:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "11830:3:18", + "nodeType": "YulIdentifier", + "src": "11830:3:18" + }, + "nativeSrc": "11830:17:18", + "nodeType": "YulFunctionCall", + "src": "11830:17:18" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "11822:4:18", + "nodeType": "YulIdentifier", + "src": "11822:4:18" + } + ] + }, + { + "nativeSrc": "11884:23:18", + "nodeType": "YulAssignment", + "src": "11884:23:18", + "value": { + "arguments": [ + { + "name": "size", + "nativeSrc": "11896:4:18", + "nodeType": "YulIdentifier", + "src": "11896:4:18" + }, + { + "kind": "number", + "nativeSrc": "11902:4:18", + "nodeType": "YulLiteral", + "src": "11902:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11892:3:18", + "nodeType": "YulIdentifier", + "src": "11892:3:18" + }, + "nativeSrc": "11892:15:18", + "nodeType": "YulFunctionCall", + "src": "11892:15:18" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "11884:4:18", + "nodeType": "YulIdentifier", + "src": "11884:4:18" + } + ] + } + ] + }, + "name": "array_allocation_size_t_array$_t_address_$dyn_memory_ptr", + "nativeSrc": "11603:311:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nativeSrc": "11669:6:18", + "nodeType": "YulTypedName", + "src": "11669:6:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nativeSrc": "11680:4:18", + "nodeType": "YulTypedName", + "src": "11680:4:18", + "type": "" + } + ], + "src": "11603:311:18" + }, + { + "body": { + "nativeSrc": "12039:608:18", + "nodeType": "YulBlock", + "src": "12039:608:18", + "statements": [ + { + "nativeSrc": "12049:90:18", + "nodeType": "YulAssignment", + "src": "12049:90:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nativeSrc": "12131:6:18", + "nodeType": "YulIdentifier", + "src": "12131:6:18" + } + ], + "functionName": { + "name": "array_allocation_size_t_array$_t_address_$dyn_memory_ptr", + "nativeSrc": "12074:56:18", + "nodeType": "YulIdentifier", + "src": "12074:56:18" + }, + "nativeSrc": "12074:64:18", + "nodeType": "YulFunctionCall", + "src": "12074:64:18" + } + ], + "functionName": { + "name": "allocate_memory", + "nativeSrc": "12058:15:18", + "nodeType": "YulIdentifier", + "src": "12058:15:18" + }, + "nativeSrc": "12058:81:18", + "nodeType": "YulFunctionCall", + "src": "12058:81:18" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "12049:5:18", + "nodeType": "YulIdentifier", + "src": "12049:5:18" + } + ] + }, + { + "nativeSrc": "12148:16:18", + "nodeType": "YulVariableDeclaration", + "src": "12148:16:18", + "value": { + "name": "array", + "nativeSrc": "12159:5:18", + "nodeType": "YulIdentifier", + "src": "12159:5:18" + }, + "variables": [ + { + "name": "dst", + "nativeSrc": "12152:3:18", + "nodeType": "YulTypedName", + "src": "12152:3:18", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nativeSrc": "12181:5:18", + "nodeType": "YulIdentifier", + "src": "12181:5:18" + }, + { + "name": "length", + "nativeSrc": "12188:6:18", + "nodeType": "YulIdentifier", + "src": "12188:6:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "12174:6:18", + "nodeType": "YulIdentifier", + "src": "12174:6:18" + }, + "nativeSrc": "12174:21:18", + "nodeType": "YulFunctionCall", + "src": "12174:21:18" + }, + "nativeSrc": "12174:21:18", + "nodeType": "YulExpressionStatement", + "src": "12174:21:18" + }, + { + "nativeSrc": "12204:23:18", + "nodeType": "YulAssignment", + "src": "12204:23:18", + "value": { + "arguments": [ + { + "name": "array", + "nativeSrc": "12215:5:18", + "nodeType": "YulIdentifier", + "src": "12215:5:18" + }, + { + "kind": "number", + "nativeSrc": "12222:4:18", + "nodeType": "YulLiteral", + "src": "12222:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12211:3:18", + "nodeType": "YulIdentifier", + "src": "12211:3:18" + }, + "nativeSrc": "12211:16:18", + "nodeType": "YulFunctionCall", + "src": "12211:16:18" + }, + "variableNames": [ + { + "name": "dst", + "nativeSrc": "12204:3:18", + "nodeType": "YulIdentifier", + "src": "12204:3:18" + } + ] + }, + { + "nativeSrc": "12237:44:18", + "nodeType": "YulVariableDeclaration", + "src": "12237:44:18", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "12255:6:18", + "nodeType": "YulIdentifier", + "src": "12255:6:18" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "12267:6:18", + "nodeType": "YulIdentifier", + "src": "12267:6:18" + }, + { + "kind": "number", + "nativeSrc": "12275:4:18", + "nodeType": "YulLiteral", + "src": "12275:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "12263:3:18", + "nodeType": "YulIdentifier", + "src": "12263:3:18" + }, + "nativeSrc": "12263:17:18", + "nodeType": "YulFunctionCall", + "src": "12263:17:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12251:3:18", + "nodeType": "YulIdentifier", + "src": "12251:3:18" + }, + "nativeSrc": "12251:30:18", + "nodeType": "YulFunctionCall", + "src": "12251:30:18" + }, + "variables": [ + { + "name": "srcEnd", + "nativeSrc": "12241:6:18", + "nodeType": "YulTypedName", + "src": "12241:6:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "12309:103:18", + "nodeType": "YulBlock", + "src": "12309:103:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", + "nativeSrc": "12323:77:18", + "nodeType": "YulIdentifier", + "src": "12323:77:18" + }, + "nativeSrc": "12323:79:18", + "nodeType": "YulFunctionCall", + "src": "12323:79:18" + }, + "nativeSrc": "12323:79:18", + "nodeType": "YulExpressionStatement", + "src": "12323:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "srcEnd", + "nativeSrc": "12296:6:18", + "nodeType": "YulIdentifier", + "src": "12296:6:18" + }, + { + "name": "end", + "nativeSrc": "12304:3:18", + "nodeType": "YulIdentifier", + "src": "12304:3:18" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "12293:2:18", + "nodeType": "YulIdentifier", + "src": "12293:2:18" + }, + "nativeSrc": "12293:15:18", + "nodeType": "YulFunctionCall", + "src": "12293:15:18" + }, + "nativeSrc": "12290:122:18", + "nodeType": "YulIf", + "src": "12290:122:18" + }, + { + "body": { + "nativeSrc": "12497:144:18", + "nodeType": "YulBlock", + "src": "12497:144:18", + "statements": [ + { + "nativeSrc": "12512:21:18", + "nodeType": "YulVariableDeclaration", + "src": "12512:21:18", + "value": { + "name": "src", + "nativeSrc": "12530:3:18", + "nodeType": "YulIdentifier", + "src": "12530:3:18" + }, + "variables": [ + { + "name": "elementPos", + "nativeSrc": "12516:10:18", + "nodeType": "YulTypedName", + "src": "12516:10:18", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dst", + "nativeSrc": "12554:3:18", + "nodeType": "YulIdentifier", + "src": "12554:3:18" + }, + { + "arguments": [ + { + "name": "elementPos", + "nativeSrc": "12580:10:18", + "nodeType": "YulIdentifier", + "src": "12580:10:18" + }, + { + "name": "end", + "nativeSrc": "12592:3:18", + "nodeType": "YulIdentifier", + "src": "12592:3:18" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "12559:20:18", + "nodeType": "YulIdentifier", + "src": "12559:20:18" + }, + "nativeSrc": "12559:37:18", + "nodeType": "YulFunctionCall", + "src": "12559:37:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "12547:6:18", + "nodeType": "YulIdentifier", + "src": "12547:6:18" + }, + "nativeSrc": "12547:50:18", + "nodeType": "YulFunctionCall", + "src": "12547:50:18" + }, + "nativeSrc": "12547:50:18", + "nodeType": "YulExpressionStatement", + "src": "12547:50:18" + }, + { + "nativeSrc": "12610:21:18", + "nodeType": "YulAssignment", + "src": "12610:21:18", + "value": { + "arguments": [ + { + "name": "dst", + "nativeSrc": "12621:3:18", + "nodeType": "YulIdentifier", + "src": "12621:3:18" + }, + { + "kind": "number", + "nativeSrc": "12626:4:18", + "nodeType": "YulLiteral", + "src": "12626:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12617:3:18", + "nodeType": "YulIdentifier", + "src": "12617:3:18" + }, + "nativeSrc": "12617:14:18", + "nodeType": "YulFunctionCall", + "src": "12617:14:18" + }, + "variableNames": [ + { + "name": "dst", + "nativeSrc": "12610:3:18", + "nodeType": "YulIdentifier", + "src": "12610:3:18" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "src", + "nativeSrc": "12450:3:18", + "nodeType": "YulIdentifier", + "src": "12450:3:18" + }, + { + "name": "srcEnd", + "nativeSrc": "12455:6:18", + "nodeType": "YulIdentifier", + "src": "12455:6:18" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "12447:2:18", + "nodeType": "YulIdentifier", + "src": "12447:2:18" + }, + "nativeSrc": "12447:15:18", + "nodeType": "YulFunctionCall", + "src": "12447:15:18" + }, + "nativeSrc": "12421:220:18", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "12463:25:18", + "nodeType": "YulBlock", + "src": "12463:25:18", + "statements": [ + { + "nativeSrc": "12465:21:18", + "nodeType": "YulAssignment", + "src": "12465:21:18", + "value": { + "arguments": [ + { + "name": "src", + "nativeSrc": "12476:3:18", + "nodeType": "YulIdentifier", + "src": "12476:3:18" + }, + { + "kind": "number", + "nativeSrc": "12481:4:18", + "nodeType": "YulLiteral", + "src": "12481:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12472:3:18", + "nodeType": "YulIdentifier", + "src": "12472:3:18" + }, + "nativeSrc": "12472:14:18", + "nodeType": "YulFunctionCall", + "src": "12472:14:18" + }, + "variableNames": [ + { + "name": "src", + "nativeSrc": "12465:3:18", + "nodeType": "YulIdentifier", + "src": "12465:3:18" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "12425:21:18", + "nodeType": "YulBlock", + "src": "12425:21:18", + "statements": [ + { + "nativeSrc": "12427:17:18", + "nodeType": "YulVariableDeclaration", + "src": "12427:17:18", + "value": { + "name": "offset", + "nativeSrc": "12438:6:18", + "nodeType": "YulIdentifier", + "src": "12438:6:18" + }, + "variables": [ + { + "name": "src", + "nativeSrc": "12431:3:18", + "nodeType": "YulTypedName", + "src": "12431:3:18", + "type": "" + } + ] + } + ] + }, + "src": "12421:220:18" + } + ] + }, + "name": "abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr", + "nativeSrc": "11937:710:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "12009:6:18", + "nodeType": "YulTypedName", + "src": "12009:6:18", + "type": "" + }, + { + "name": "length", + "nativeSrc": "12017:6:18", + "nodeType": "YulTypedName", + "src": "12017:6:18", + "type": "" + }, + { + "name": "end", + "nativeSrc": "12025:3:18", + "nodeType": "YulTypedName", + "src": "12025:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "12033:5:18", + "nodeType": "YulTypedName", + "src": "12033:5:18", + "type": "" + } + ], + "src": "11937:710:18" + }, + { + "body": { + "nativeSrc": "12747:293:18", + "nodeType": "YulBlock", + "src": "12747:293:18", + "statements": [ + { + "body": { + "nativeSrc": "12796:83:18", + "nodeType": "YulBlock", + "src": "12796:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "12798:77:18", + "nodeType": "YulIdentifier", + "src": "12798:77:18" + }, + "nativeSrc": "12798:79:18", + "nodeType": "YulFunctionCall", + "src": "12798:79:18" + }, + "nativeSrc": "12798:79:18", + "nodeType": "YulExpressionStatement", + "src": "12798:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "12775:6:18", + "nodeType": "YulIdentifier", + "src": "12775:6:18" + }, + { + "kind": "number", + "nativeSrc": "12783:4:18", + "nodeType": "YulLiteral", + "src": "12783:4:18", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12771:3:18", + "nodeType": "YulIdentifier", + "src": "12771:3:18" + }, + "nativeSrc": "12771:17:18", + "nodeType": "YulFunctionCall", + "src": "12771:17:18" + }, + { + "name": "end", + "nativeSrc": "12790:3:18", + "nodeType": "YulIdentifier", + "src": "12790:3:18" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "12767:3:18", + "nodeType": "YulIdentifier", + "src": "12767:3:18" + }, + "nativeSrc": "12767:27:18", + "nodeType": "YulFunctionCall", + "src": "12767:27:18" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "12760:6:18", + "nodeType": "YulIdentifier", + "src": "12760:6:18" + }, + "nativeSrc": "12760:35:18", + "nodeType": "YulFunctionCall", + "src": "12760:35:18" + }, + "nativeSrc": "12757:122:18", + "nodeType": "YulIf", + "src": "12757:122:18" + }, + { + "nativeSrc": "12888:34:18", + "nodeType": "YulVariableDeclaration", + "src": "12888:34:18", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "12915:6:18", + "nodeType": "YulIdentifier", + "src": "12915:6:18" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "12902:12:18", + "nodeType": "YulIdentifier", + "src": "12902:12:18" + }, + "nativeSrc": "12902:20:18", + "nodeType": "YulFunctionCall", + "src": "12902:20:18" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "12892:6:18", + "nodeType": "YulTypedName", + "src": "12892:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "12931:103:18", + "nodeType": "YulAssignment", + "src": "12931:103:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "13007:6:18", + "nodeType": "YulIdentifier", + "src": "13007:6:18" + }, + { + "kind": "number", + "nativeSrc": "13015:4:18", + "nodeType": "YulLiteral", + "src": "13015:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13003:3:18", + "nodeType": "YulIdentifier", + "src": "13003:3:18" + }, + "nativeSrc": "13003:17:18", + "nodeType": "YulFunctionCall", + "src": "13003:17:18" + }, + { + "name": "length", + "nativeSrc": "13022:6:18", + "nodeType": "YulIdentifier", + "src": "13022:6:18" + }, + { + "name": "end", + "nativeSrc": "13030:3:18", + "nodeType": "YulIdentifier", + "src": "13030:3:18" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr", + "nativeSrc": "12940:62:18", + "nodeType": "YulIdentifier", + "src": "12940:62:18" + }, + "nativeSrc": "12940:94:18", + "nodeType": "YulFunctionCall", + "src": "12940:94:18" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "12931:5:18", + "nodeType": "YulIdentifier", + "src": "12931:5:18" + } + ] + } + ] + }, + "name": "abi_decode_t_array$_t_address_$dyn_memory_ptr", + "nativeSrc": "12670:370:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "12725:6:18", + "nodeType": "YulTypedName", + "src": "12725:6:18", + "type": "" + }, + { + "name": "end", + "nativeSrc": "12733:3:18", + "nodeType": "YulTypedName", + "src": "12733:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "12741:5:18", + "nodeType": "YulTypedName", + "src": "12741:5:18", + "type": "" + } + ], + "src": "12670:370:18" + }, + { + "body": { + "nativeSrc": "13179:761:18", + "nodeType": "YulBlock", + "src": "13179:761:18", + "statements": [ + { + "body": { + "nativeSrc": "13225:83:18", + "nodeType": "YulBlock", + "src": "13225:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "13227:77:18", + "nodeType": "YulIdentifier", + "src": "13227:77:18" + }, + "nativeSrc": "13227:79:18", + "nodeType": "YulFunctionCall", + "src": "13227:79:18" + }, + "nativeSrc": "13227:79:18", + "nodeType": "YulExpressionStatement", + "src": "13227:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "13200:7:18", + "nodeType": "YulIdentifier", + "src": "13200:7:18" + }, + { + "name": "headStart", + "nativeSrc": "13209:9:18", + "nodeType": "YulIdentifier", + "src": "13209:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "13196:3:18", + "nodeType": "YulIdentifier", + "src": "13196:3:18" + }, + "nativeSrc": "13196:23:18", + "nodeType": "YulFunctionCall", + "src": "13196:23:18" + }, + { + "kind": "number", + "nativeSrc": "13221:2:18", + "nodeType": "YulLiteral", + "src": "13221:2:18", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "13192:3:18", + "nodeType": "YulIdentifier", + "src": "13192:3:18" + }, + "nativeSrc": "13192:32:18", + "nodeType": "YulFunctionCall", + "src": "13192:32:18" + }, + "nativeSrc": "13189:119:18", + "nodeType": "YulIf", + "src": "13189:119:18" + }, + { + "nativeSrc": "13318:302:18", + "nodeType": "YulBlock", + "src": "13318:302:18", + "statements": [ + { + "nativeSrc": "13333:45:18", + "nodeType": "YulVariableDeclaration", + "src": "13333:45:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13364:9:18", + "nodeType": "YulIdentifier", + "src": "13364:9:18" + }, + { + "kind": "number", + "nativeSrc": "13375:1:18", + "nodeType": "YulLiteral", + "src": "13375:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13360:3:18", + "nodeType": "YulIdentifier", + "src": "13360:3:18" + }, + "nativeSrc": "13360:17:18", + "nodeType": "YulFunctionCall", + "src": "13360:17:18" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "13347:12:18", + "nodeType": "YulIdentifier", + "src": "13347:12:18" + }, + "nativeSrc": "13347:31:18", + "nodeType": "YulFunctionCall", + "src": "13347:31:18" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "13337:6:18", + "nodeType": "YulTypedName", + "src": "13337:6:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "13425:83:18", + "nodeType": "YulBlock", + "src": "13425:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "13427:77:18", + "nodeType": "YulIdentifier", + "src": "13427:77:18" + }, + "nativeSrc": "13427:79:18", + "nodeType": "YulFunctionCall", + "src": "13427:79:18" + }, + "nativeSrc": "13427:79:18", + "nodeType": "YulExpressionStatement", + "src": "13427:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "13397:6:18", + "nodeType": "YulIdentifier", + "src": "13397:6:18" + }, + { + "kind": "number", + "nativeSrc": "13405:18:18", + "nodeType": "YulLiteral", + "src": "13405:18:18", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "13394:2:18", + "nodeType": "YulIdentifier", + "src": "13394:2:18" + }, + "nativeSrc": "13394:30:18", + "nodeType": "YulFunctionCall", + "src": "13394:30:18" + }, + "nativeSrc": "13391:117:18", + "nodeType": "YulIf", + "src": "13391:117:18" + }, + { + "nativeSrc": "13522:88:18", + "nodeType": "YulAssignment", + "src": "13522:88:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13582:9:18", + "nodeType": "YulIdentifier", + "src": "13582:9:18" + }, + { + "name": "offset", + "nativeSrc": "13593:6:18", + "nodeType": "YulIdentifier", + "src": "13593:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13578:3:18", + "nodeType": "YulIdentifier", + "src": "13578:3:18" + }, + "nativeSrc": "13578:22:18", + "nodeType": "YulFunctionCall", + "src": "13578:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "13602:7:18", + "nodeType": "YulIdentifier", + "src": "13602:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_address_$dyn_memory_ptr", + "nativeSrc": "13532:45:18", + "nodeType": "YulIdentifier", + "src": "13532:45:18" + }, + "nativeSrc": "13532:78:18", + "nodeType": "YulFunctionCall", + "src": "13532:78:18" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "13522:6:18", + "nodeType": "YulIdentifier", + "src": "13522:6:18" + } + ] + } + ] + }, + { + "nativeSrc": "13630:303:18", + "nodeType": "YulBlock", + "src": "13630:303:18", + "statements": [ + { + "nativeSrc": "13645:46:18", + "nodeType": "YulVariableDeclaration", + "src": "13645:46:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13676:9:18", + "nodeType": "YulIdentifier", + "src": "13676:9:18" + }, + { + "kind": "number", + "nativeSrc": "13687:2:18", + "nodeType": "YulLiteral", + "src": "13687:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13672:3:18", + "nodeType": "YulIdentifier", + "src": "13672:3:18" + }, + "nativeSrc": "13672:18:18", + "nodeType": "YulFunctionCall", + "src": "13672:18:18" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "13659:12:18", + "nodeType": "YulIdentifier", + "src": "13659:12:18" + }, + "nativeSrc": "13659:32:18", + "nodeType": "YulFunctionCall", + "src": "13659:32:18" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "13649:6:18", + "nodeType": "YulTypedName", + "src": "13649:6:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "13738:83:18", + "nodeType": "YulBlock", + "src": "13738:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "13740:77:18", + "nodeType": "YulIdentifier", + "src": "13740:77:18" + }, + "nativeSrc": "13740:79:18", + "nodeType": "YulFunctionCall", + "src": "13740:79:18" + }, + "nativeSrc": "13740:79:18", + "nodeType": "YulExpressionStatement", + "src": "13740:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "13710:6:18", + "nodeType": "YulIdentifier", + "src": "13710:6:18" + }, + { + "kind": "number", + "nativeSrc": "13718:18:18", + "nodeType": "YulLiteral", + "src": "13718:18:18", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "13707:2:18", + "nodeType": "YulIdentifier", + "src": "13707:2:18" + }, + "nativeSrc": "13707:30:18", + "nodeType": "YulFunctionCall", + "src": "13707:30:18" + }, + "nativeSrc": "13704:117:18", + "nodeType": "YulIf", + "src": "13704:117:18" + }, + { + "nativeSrc": "13835:88:18", + "nodeType": "YulAssignment", + "src": "13835:88:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13895:9:18", + "nodeType": "YulIdentifier", + "src": "13895:9:18" + }, + { + "name": "offset", + "nativeSrc": "13906:6:18", + "nodeType": "YulIdentifier", + "src": "13906:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13891:3:18", + "nodeType": "YulIdentifier", + "src": "13891:3:18" + }, + "nativeSrc": "13891:22:18", + "nodeType": "YulFunctionCall", + "src": "13891:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "13915:7:18", + "nodeType": "YulIdentifier", + "src": "13915:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_uint256_$dyn_memory_ptr", + "nativeSrc": "13845:45:18", + "nodeType": "YulIdentifier", + "src": "13845:45:18" + }, + "nativeSrc": "13845:78:18", + "nodeType": "YulFunctionCall", + "src": "13845:78:18" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "13835:6:18", + "nodeType": "YulIdentifier", + "src": "13835:6:18" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptr", + "nativeSrc": "13046:894:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "13141:9:18", + "nodeType": "YulTypedName", + "src": "13141:9:18", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "13152:7:18", + "nodeType": "YulTypedName", + "src": "13152:7:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "13164:6:18", + "nodeType": "YulTypedName", + "src": "13164:6:18", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "13172:6:18", + "nodeType": "YulTypedName", + "src": "13172:6:18", + "type": "" + } + ], + "src": "13046:894:18" + }, + { + "body": { + "nativeSrc": "14020:40:18", + "nodeType": "YulBlock", + "src": "14020:40:18", + "statements": [ + { + "nativeSrc": "14031:22:18", + "nodeType": "YulAssignment", + "src": "14031:22:18", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "14047:5:18", + "nodeType": "YulIdentifier", + "src": "14047:5:18" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "14041:5:18", + "nodeType": "YulIdentifier", + "src": "14041:5:18" + }, + "nativeSrc": "14041:12:18", + "nodeType": "YulFunctionCall", + "src": "14041:12:18" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "14031:6:18", + "nodeType": "YulIdentifier", + "src": "14031:6:18" + } + ] + } + ] + }, + "name": "array_length_t_array$_t_uint256_$dyn_memory_ptr", + "nativeSrc": "13946:114:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "14003:5:18", + "nodeType": "YulTypedName", + "src": "14003:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "14013:6:18", + "nodeType": "YulTypedName", + "src": "14013:6:18", + "type": "" + } + ], + "src": "13946:114:18" + }, + { + "body": { + "nativeSrc": "14177:73:18", + "nodeType": "YulBlock", + "src": "14177:73:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "14194:3:18", + "nodeType": "YulIdentifier", + "src": "14194:3:18" + }, + { + "name": "length", + "nativeSrc": "14199:6:18", + "nodeType": "YulIdentifier", + "src": "14199:6:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "14187:6:18", + "nodeType": "YulIdentifier", + "src": "14187:6:18" + }, + "nativeSrc": "14187:19:18", + "nodeType": "YulFunctionCall", + "src": "14187:19:18" + }, + "nativeSrc": "14187:19:18", + "nodeType": "YulExpressionStatement", + "src": "14187:19:18" + }, + { + "nativeSrc": "14215:29:18", + "nodeType": "YulAssignment", + "src": "14215:29:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "14234:3:18", + "nodeType": "YulIdentifier", + "src": "14234:3:18" + }, + { + "kind": "number", + "nativeSrc": "14239:4:18", + "nodeType": "YulLiteral", + "src": "14239:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14230:3:18", + "nodeType": "YulIdentifier", + "src": "14230:3:18" + }, + "nativeSrc": "14230:14:18", + "nodeType": "YulFunctionCall", + "src": "14230:14:18" + }, + "variableNames": [ + { + "name": "updated_pos", + "nativeSrc": "14215:11:18", + "nodeType": "YulIdentifier", + "src": "14215:11:18" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nativeSrc": "14066:184:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "14149:3:18", + "nodeType": "YulTypedName", + "src": "14149:3:18", + "type": "" + }, + { + "name": "length", + "nativeSrc": "14154:6:18", + "nodeType": "YulTypedName", + "src": "14154:6:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nativeSrc": "14165:11:18", + "nodeType": "YulTypedName", + "src": "14165:11:18", + "type": "" + } + ], + "src": "14066:184:18" + }, + { + "body": { + "nativeSrc": "14328:60:18", + "nodeType": "YulBlock", + "src": "14328:60:18", + "statements": [ + { + "nativeSrc": "14338:11:18", + "nodeType": "YulAssignment", + "src": "14338:11:18", + "value": { + "name": "ptr", + "nativeSrc": "14346:3:18", + "nodeType": "YulIdentifier", + "src": "14346:3:18" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "14338:4:18", + "nodeType": "YulIdentifier", + "src": "14338:4:18" + } + ] + }, + { + "nativeSrc": "14359:22:18", + "nodeType": "YulAssignment", + "src": "14359:22:18", + "value": { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "14371:3:18", + "nodeType": "YulIdentifier", + "src": "14371:3:18" + }, + { + "kind": "number", + "nativeSrc": "14376:4:18", + "nodeType": "YulLiteral", + "src": "14376:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14367:3:18", + "nodeType": "YulIdentifier", + "src": "14367:3:18" + }, + "nativeSrc": "14367:14:18", + "nodeType": "YulFunctionCall", + "src": "14367:14:18" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "14359:4:18", + "nodeType": "YulIdentifier", + "src": "14359:4:18" + } + ] + } + ] + }, + "name": "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr", + "nativeSrc": "14256:132:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nativeSrc": "14315:3:18", + "nodeType": "YulTypedName", + "src": "14315:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nativeSrc": "14323:4:18", + "nodeType": "YulTypedName", + "src": "14323:4:18", + "type": "" + } + ], + "src": "14256:132:18" + }, + { + "body": { + "nativeSrc": "14449:53:18", + "nodeType": "YulBlock", + "src": "14449:53:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "14466:3:18", + "nodeType": "YulIdentifier", + "src": "14466:3:18" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "14489:5:18", + "nodeType": "YulIdentifier", + "src": "14489:5:18" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "14471:17:18", + "nodeType": "YulIdentifier", + "src": "14471:17:18" + }, + "nativeSrc": "14471:24:18", + "nodeType": "YulFunctionCall", + "src": "14471:24:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "14459:6:18", + "nodeType": "YulIdentifier", + "src": "14459:6:18" + }, + "nativeSrc": "14459:37:18", + "nodeType": "YulFunctionCall", + "src": "14459:37:18" + }, + "nativeSrc": "14459:37:18", + "nodeType": "YulExpressionStatement", + "src": "14459:37:18" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256", + "nativeSrc": "14394:108:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "14437:5:18", + "nodeType": "YulTypedName", + "src": "14437:5:18", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "14444:3:18", + "nodeType": "YulTypedName", + "src": "14444:3:18", + "type": "" + } + ], + "src": "14394:108:18" + }, + { + "body": { + "nativeSrc": "14588:99:18", + "nodeType": "YulBlock", + "src": "14588:99:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "14632:6:18", + "nodeType": "YulIdentifier", + "src": "14632:6:18" + }, + { + "name": "pos", + "nativeSrc": "14640:3:18", + "nodeType": "YulIdentifier", + "src": "14640:3:18" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256", + "nativeSrc": "14598:33:18", + "nodeType": "YulIdentifier", + "src": "14598:33:18" + }, + "nativeSrc": "14598:46:18", + "nodeType": "YulFunctionCall", + "src": "14598:46:18" + }, + "nativeSrc": "14598:46:18", + "nodeType": "YulExpressionStatement", + "src": "14598:46:18" + }, + { + "nativeSrc": "14653:28:18", + "nodeType": "YulAssignment", + "src": "14653:28:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "14671:3:18", + "nodeType": "YulIdentifier", + "src": "14671:3:18" + }, + { + "kind": "number", + "nativeSrc": "14676:4:18", + "nodeType": "YulLiteral", + "src": "14676:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14667:3:18", + "nodeType": "YulIdentifier", + "src": "14667:3:18" + }, + "nativeSrc": "14667:14:18", + "nodeType": "YulFunctionCall", + "src": "14667:14:18" + }, + "variableNames": [ + { + "name": "updatedPos", + "nativeSrc": "14653:10:18", + "nodeType": "YulIdentifier", + "src": "14653:10:18" + } + ] + } + ] + }, + "name": "abi_encodeUpdatedPos_t_uint256_to_t_uint256", + "nativeSrc": "14508:179:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value0", + "nativeSrc": "14561:6:18", + "nodeType": "YulTypedName", + "src": "14561:6:18", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "14569:3:18", + "nodeType": "YulTypedName", + "src": "14569:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updatedPos", + "nativeSrc": "14577:10:18", + "nodeType": "YulTypedName", + "src": "14577:10:18", + "type": "" + } + ], + "src": "14508:179:18" + }, + { + "body": { + "nativeSrc": "14768:38:18", + "nodeType": "YulBlock", + "src": "14768:38:18", + "statements": [ + { + "nativeSrc": "14778:22:18", + "nodeType": "YulAssignment", + "src": "14778:22:18", + "value": { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "14790:3:18", + "nodeType": "YulIdentifier", + "src": "14790:3:18" + }, + { + "kind": "number", + "nativeSrc": "14795:4:18", + "nodeType": "YulLiteral", + "src": "14795:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14786:3:18", + "nodeType": "YulIdentifier", + "src": "14786:3:18" + }, + "nativeSrc": "14786:14:18", + "nodeType": "YulFunctionCall", + "src": "14786:14:18" + }, + "variableNames": [ + { + "name": "next", + "nativeSrc": "14778:4:18", + "nodeType": "YulIdentifier", + "src": "14778:4:18" + } + ] + } + ] + }, + "name": "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr", + "nativeSrc": "14693:113:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nativeSrc": "14755:3:18", + "nodeType": "YulTypedName", + "src": "14755:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "next", + "nativeSrc": "14763:4:18", + "nodeType": "YulTypedName", + "src": "14763:4:18", + "type": "" + } + ], + "src": "14693:113:18" + }, + { + "body": { + "nativeSrc": "14966:608:18", + "nodeType": "YulBlock", + "src": "14966:608:18", + "statements": [ + { + "nativeSrc": "14976:68:18", + "nodeType": "YulVariableDeclaration", + "src": "14976:68:18", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "15038:5:18", + "nodeType": "YulIdentifier", + "src": "15038:5:18" + } + ], + "functionName": { + "name": "array_length_t_array$_t_uint256_$dyn_memory_ptr", + "nativeSrc": "14990:47:18", + "nodeType": "YulIdentifier", + "src": "14990:47:18" + }, + "nativeSrc": "14990:54:18", + "nodeType": "YulFunctionCall", + "src": "14990:54:18" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "14980:6:18", + "nodeType": "YulTypedName", + "src": "14980:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "15053:93:18", + "nodeType": "YulAssignment", + "src": "15053:93:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "15134:3:18", + "nodeType": "YulIdentifier", + "src": "15134:3:18" + }, + { + "name": "length", + "nativeSrc": "15139:6:18", + "nodeType": "YulIdentifier", + "src": "15139:6:18" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nativeSrc": "15060:73:18", + "nodeType": "YulIdentifier", + "src": "15060:73:18" + }, + "nativeSrc": "15060:86:18", + "nodeType": "YulFunctionCall", + "src": "15060:86:18" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "15053:3:18", + "nodeType": "YulIdentifier", + "src": "15053:3:18" + } + ] + }, + { + "nativeSrc": "15155:71:18", + "nodeType": "YulVariableDeclaration", + "src": "15155:71:18", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "15220:5:18", + "nodeType": "YulIdentifier", + "src": "15220:5:18" + } + ], + "functionName": { + "name": "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr", + "nativeSrc": "15170:49:18", + "nodeType": "YulIdentifier", + "src": "15170:49:18" + }, + "nativeSrc": "15170:56:18", + "nodeType": "YulFunctionCall", + "src": "15170:56:18" + }, + "variables": [ + { + "name": "baseRef", + "nativeSrc": "15159:7:18", + "nodeType": "YulTypedName", + "src": "15159:7:18", + "type": "" + } + ] + }, + { + "nativeSrc": "15235:21:18", + "nodeType": "YulVariableDeclaration", + "src": "15235:21:18", + "value": { + "name": "baseRef", + "nativeSrc": "15249:7:18", + "nodeType": "YulIdentifier", + "src": "15249:7:18" + }, + "variables": [ + { + "name": "srcPtr", + "nativeSrc": "15239:6:18", + "nodeType": "YulTypedName", + "src": "15239:6:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "15325:224:18", + "nodeType": "YulBlock", + "src": "15325:224:18", + "statements": [ + { + "nativeSrc": "15339:34:18", + "nodeType": "YulVariableDeclaration", + "src": "15339:34:18", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nativeSrc": "15366:6:18", + "nodeType": "YulIdentifier", + "src": "15366:6:18" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "15360:5:18", + "nodeType": "YulIdentifier", + "src": "15360:5:18" + }, + "nativeSrc": "15360:13:18", + "nodeType": "YulFunctionCall", + "src": "15360:13:18" + }, + "variables": [ + { + "name": "elementValue0", + "nativeSrc": "15343:13:18", + "nodeType": "YulTypedName", + "src": "15343:13:18", + "type": "" + } + ] + }, + { + "nativeSrc": "15386:70:18", + "nodeType": "YulAssignment", + "src": "15386:70:18", + "value": { + "arguments": [ + { + "name": "elementValue0", + "nativeSrc": "15437:13:18", + "nodeType": "YulIdentifier", + "src": "15437:13:18" + }, + { + "name": "pos", + "nativeSrc": "15452:3:18", + "nodeType": "YulIdentifier", + "src": "15452:3:18" + } + ], + "functionName": { + "name": "abi_encodeUpdatedPos_t_uint256_to_t_uint256", + "nativeSrc": "15393:43:18", + "nodeType": "YulIdentifier", + "src": "15393:43:18" + }, + "nativeSrc": "15393:63:18", + "nodeType": "YulFunctionCall", + "src": "15393:63:18" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "15386:3:18", + "nodeType": "YulIdentifier", + "src": "15386:3:18" + } + ] + }, + { + "nativeSrc": "15469:70:18", + "nodeType": "YulAssignment", + "src": "15469:70:18", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nativeSrc": "15532:6:18", + "nodeType": "YulIdentifier", + "src": "15532:6:18" + } + ], + "functionName": { + "name": "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr", + "nativeSrc": "15479:52:18", + "nodeType": "YulIdentifier", + "src": "15479:52:18" + }, + "nativeSrc": "15479:60:18", + "nodeType": "YulFunctionCall", + "src": "15479:60:18" + }, + "variableNames": [ + { + "name": "srcPtr", + "nativeSrc": "15469:6:18", + "nodeType": "YulIdentifier", + "src": "15469:6:18" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "15287:1:18", + "nodeType": "YulIdentifier", + "src": "15287:1:18" + }, + { + "name": "length", + "nativeSrc": "15290:6:18", + "nodeType": "YulIdentifier", + "src": "15290:6:18" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "15284:2:18", + "nodeType": "YulIdentifier", + "src": "15284:2:18" + }, + "nativeSrc": "15284:13:18", + "nodeType": "YulFunctionCall", + "src": "15284:13:18" + }, + "nativeSrc": "15265:284:18", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "15298:18:18", + "nodeType": "YulBlock", + "src": "15298:18:18", + "statements": [ + { + "nativeSrc": "15300:14:18", + "nodeType": "YulAssignment", + "src": "15300:14:18", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "15309:1:18", + "nodeType": "YulIdentifier", + "src": "15309:1:18" + }, + { + "kind": "number", + "nativeSrc": "15312:1:18", + "nodeType": "YulLiteral", + "src": "15312:1:18", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15305:3:18", + "nodeType": "YulIdentifier", + "src": "15305:3:18" + }, + "nativeSrc": "15305:9:18", + "nodeType": "YulFunctionCall", + "src": "15305:9:18" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "15300:1:18", + "nodeType": "YulIdentifier", + "src": "15300:1:18" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "15269:14:18", + "nodeType": "YulBlock", + "src": "15269:14:18", + "statements": [ + { + "nativeSrc": "15271:10:18", + "nodeType": "YulVariableDeclaration", + "src": "15271:10:18", + "value": { + "kind": "number", + "nativeSrc": "15280:1:18", + "nodeType": "YulLiteral", + "src": "15280:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "15275:1:18", + "nodeType": "YulTypedName", + "src": "15275:1:18", + "type": "" + } + ] + } + ] + }, + "src": "15265:284:18" + }, + { + "nativeSrc": "15558:10:18", + "nodeType": "YulAssignment", + "src": "15558:10:18", + "value": { + "name": "pos", + "nativeSrc": "15565:3:18", + "nodeType": "YulIdentifier", + "src": "15565:3:18" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "15558:3:18", + "nodeType": "YulIdentifier", + "src": "15558:3:18" + } + ] + } + ] + }, + "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nativeSrc": "14842:732:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "14945:5:18", + "nodeType": "YulTypedName", + "src": "14945:5:18", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "14952:3:18", + "nodeType": "YulTypedName", + "src": "14952:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "14961:3:18", + "nodeType": "YulTypedName", + "src": "14961:3:18", + "type": "" + } + ], + "src": "14842:732:18" + }, + { + "body": { + "nativeSrc": "15728:225:18", + "nodeType": "YulBlock", + "src": "15728:225:18", + "statements": [ + { + "nativeSrc": "15738:26:18", + "nodeType": "YulAssignment", + "src": "15738:26:18", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "15750:9:18", + "nodeType": "YulIdentifier", + "src": "15750:9:18" + }, + { + "kind": "number", + "nativeSrc": "15761:2:18", + "nodeType": "YulLiteral", + "src": "15761:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15746:3:18", + "nodeType": "YulIdentifier", + "src": "15746:3:18" + }, + "nativeSrc": "15746:18:18", + "nodeType": "YulFunctionCall", + "src": "15746:18:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "15738:4:18", + "nodeType": "YulIdentifier", + "src": "15738:4:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "15785:9:18", + "nodeType": "YulIdentifier", + "src": "15785:9:18" + }, + { + "kind": "number", + "nativeSrc": "15796:1:18", + "nodeType": "YulLiteral", + "src": "15796:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15781:3:18", + "nodeType": "YulIdentifier", + "src": "15781:3:18" + }, + "nativeSrc": "15781:17:18", + "nodeType": "YulFunctionCall", + "src": "15781:17:18" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "15804:4:18", + "nodeType": "YulIdentifier", + "src": "15804:4:18" + }, + { + "name": "headStart", + "nativeSrc": "15810:9:18", + "nodeType": "YulIdentifier", + "src": "15810:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "15800:3:18", + "nodeType": "YulIdentifier", + "src": "15800:3:18" + }, + "nativeSrc": "15800:20:18", + "nodeType": "YulFunctionCall", + "src": "15800:20:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "15774:6:18", + "nodeType": "YulIdentifier", + "src": "15774:6:18" + }, + "nativeSrc": "15774:47:18", + "nodeType": "YulFunctionCall", + "src": "15774:47:18" + }, + "nativeSrc": "15774:47:18", + "nodeType": "YulExpressionStatement", + "src": "15774:47:18" + }, + { + "nativeSrc": "15830:116:18", + "nodeType": "YulAssignment", + "src": "15830:116:18", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "15932:6:18", + "nodeType": "YulIdentifier", + "src": "15932:6:18" + }, + { + "name": "tail", + "nativeSrc": "15941:4:18", + "nodeType": "YulIdentifier", + "src": "15941:4:18" + } + ], + "functionName": { + "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nativeSrc": "15838:93:18", + "nodeType": "YulIdentifier", + "src": "15838:93:18" + }, + "nativeSrc": "15838:108:18", + "nodeType": "YulFunctionCall", + "src": "15838:108:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "15830:4:18", + "nodeType": "YulIdentifier", + "src": "15830:4:18" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed", + "nativeSrc": "15580:373:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "15700:9:18", + "nodeType": "YulTypedName", + "src": "15700:9:18", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "15712:6:18", + "nodeType": "YulTypedName", + "src": "15712:6:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "15723:4:18", + "nodeType": "YulTypedName", + "src": "15723:4:18", + "type": "" + } + ], + "src": "15580:373:18" + }, + { + "body": { + "nativeSrc": "16085:817:18", + "nodeType": "YulBlock", + "src": "16085:817:18", + "statements": [ + { + "body": { + "nativeSrc": "16132:83:18", + "nodeType": "YulBlock", + "src": "16132:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "16134:77:18", + "nodeType": "YulIdentifier", + "src": "16134:77:18" + }, + "nativeSrc": "16134:79:18", + "nodeType": "YulFunctionCall", + "src": "16134:79:18" + }, + "nativeSrc": "16134:79:18", + "nodeType": "YulExpressionStatement", + "src": "16134:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "16106:7:18", + "nodeType": "YulIdentifier", + "src": "16106:7:18" + }, + { + "name": "headStart", + "nativeSrc": "16115:9:18", + "nodeType": "YulIdentifier", + "src": "16115:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "16102:3:18", + "nodeType": "YulIdentifier", + "src": "16102:3:18" + }, + "nativeSrc": "16102:23:18", + "nodeType": "YulFunctionCall", + "src": "16102:23:18" + }, + { + "kind": "number", + "nativeSrc": "16127:3:18", + "nodeType": "YulLiteral", + "src": "16127:3:18", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "16098:3:18", + "nodeType": "YulIdentifier", + "src": "16098:3:18" + }, + "nativeSrc": "16098:33:18", + "nodeType": "YulFunctionCall", + "src": "16098:33:18" + }, + "nativeSrc": "16095:120:18", + "nodeType": "YulIf", + "src": "16095:120:18" + }, + { + "nativeSrc": "16225:117:18", + "nodeType": "YulBlock", + "src": "16225:117:18", + "statements": [ + { + "nativeSrc": "16240:15:18", + "nodeType": "YulVariableDeclaration", + "src": "16240:15:18", + "value": { + "kind": "number", + "nativeSrc": "16254:1:18", + "nodeType": "YulLiteral", + "src": "16254:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "16244:6:18", + "nodeType": "YulTypedName", + "src": "16244:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "16269:63:18", + "nodeType": "YulAssignment", + "src": "16269:63:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "16304:9:18", + "nodeType": "YulIdentifier", + "src": "16304:9:18" + }, + { + "name": "offset", + "nativeSrc": "16315:6:18", + "nodeType": "YulIdentifier", + "src": "16315:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16300:3:18", + "nodeType": "YulIdentifier", + "src": "16300:3:18" + }, + "nativeSrc": "16300:22:18", + "nodeType": "YulFunctionCall", + "src": "16300:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "16324:7:18", + "nodeType": "YulIdentifier", + "src": "16324:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "16279:20:18", + "nodeType": "YulIdentifier", + "src": "16279:20:18" + }, + "nativeSrc": "16279:53:18", + "nodeType": "YulFunctionCall", + "src": "16279:53:18" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "16269:6:18", + "nodeType": "YulIdentifier", + "src": "16269:6:18" + } + ] + } + ] + }, + { + "nativeSrc": "16352:118:18", + "nodeType": "YulBlock", + "src": "16352:118:18", + "statements": [ + { + "nativeSrc": "16367:16:18", + "nodeType": "YulVariableDeclaration", + "src": "16367:16:18", + "value": { + "kind": "number", + "nativeSrc": "16381:2:18", + "nodeType": "YulLiteral", + "src": "16381:2:18", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "16371:6:18", + "nodeType": "YulTypedName", + "src": "16371:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "16397:63:18", + "nodeType": "YulAssignment", + "src": "16397:63:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "16432:9:18", + "nodeType": "YulIdentifier", + "src": "16432:9:18" + }, + { + "name": "offset", + "nativeSrc": "16443:6:18", + "nodeType": "YulIdentifier", + "src": "16443:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16428:3:18", + "nodeType": "YulIdentifier", + "src": "16428:3:18" + }, + "nativeSrc": "16428:22:18", + "nodeType": "YulFunctionCall", + "src": "16428:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "16452:7:18", + "nodeType": "YulIdentifier", + "src": "16452:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "16407:20:18", + "nodeType": "YulIdentifier", + "src": "16407:20:18" + }, + "nativeSrc": "16407:53:18", + "nodeType": "YulFunctionCall", + "src": "16407:53:18" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "16397:6:18", + "nodeType": "YulIdentifier", + "src": "16397:6:18" + } + ] + } + ] + }, + { + "nativeSrc": "16480:118:18", + "nodeType": "YulBlock", + "src": "16480:118:18", + "statements": [ + { + "nativeSrc": "16495:16:18", + "nodeType": "YulVariableDeclaration", + "src": "16495:16:18", + "value": { + "kind": "number", + "nativeSrc": "16509:2:18", + "nodeType": "YulLiteral", + "src": "16509:2:18", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "16499:6:18", + "nodeType": "YulTypedName", + "src": "16499:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "16525:63:18", + "nodeType": "YulAssignment", + "src": "16525:63:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "16560:9:18", + "nodeType": "YulIdentifier", + "src": "16560:9:18" + }, + { + "name": "offset", + "nativeSrc": "16571:6:18", + "nodeType": "YulIdentifier", + "src": "16571:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16556:3:18", + "nodeType": "YulIdentifier", + "src": "16556:3:18" + }, + "nativeSrc": "16556:22:18", + "nodeType": "YulFunctionCall", + "src": "16556:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "16580:7:18", + "nodeType": "YulIdentifier", + "src": "16580:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "16535:20:18", + "nodeType": "YulIdentifier", + "src": "16535:20:18" + }, + "nativeSrc": "16535:53:18", + "nodeType": "YulFunctionCall", + "src": "16535:53:18" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "16525:6:18", + "nodeType": "YulIdentifier", + "src": "16525:6:18" + } + ] + } + ] + }, + { + "nativeSrc": "16608:287:18", + "nodeType": "YulBlock", + "src": "16608:287:18", + "statements": [ + { + "nativeSrc": "16623:46:18", + "nodeType": "YulVariableDeclaration", + "src": "16623:46:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "16654:9:18", + "nodeType": "YulIdentifier", + "src": "16654:9:18" + }, + { + "kind": "number", + "nativeSrc": "16665:2:18", + "nodeType": "YulLiteral", + "src": "16665:2:18", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16650:3:18", + "nodeType": "YulIdentifier", + "src": "16650:3:18" + }, + "nativeSrc": "16650:18:18", + "nodeType": "YulFunctionCall", + "src": "16650:18:18" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "16637:12:18", + "nodeType": "YulIdentifier", + "src": "16637:12:18" + }, + "nativeSrc": "16637:32:18", + "nodeType": "YulFunctionCall", + "src": "16637:32:18" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "16627:6:18", + "nodeType": "YulTypedName", + "src": "16627:6:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "16716:83:18", + "nodeType": "YulBlock", + "src": "16716:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "16718:77:18", + "nodeType": "YulIdentifier", + "src": "16718:77:18" + }, + "nativeSrc": "16718:79:18", + "nodeType": "YulFunctionCall", + "src": "16718:79:18" + }, + "nativeSrc": "16718:79:18", + "nodeType": "YulExpressionStatement", + "src": "16718:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "16688:6:18", + "nodeType": "YulIdentifier", + "src": "16688:6:18" + }, + { + "kind": "number", + "nativeSrc": "16696:18:18", + "nodeType": "YulLiteral", + "src": "16696:18:18", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "16685:2:18", + "nodeType": "YulIdentifier", + "src": "16685:2:18" + }, + "nativeSrc": "16685:30:18", + "nodeType": "YulFunctionCall", + "src": "16685:30:18" + }, + "nativeSrc": "16682:117:18", + "nodeType": "YulIf", + "src": "16682:117:18" + }, + { + "nativeSrc": "16813:72:18", + "nodeType": "YulAssignment", + "src": "16813:72:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "16857:9:18", + "nodeType": "YulIdentifier", + "src": "16857:9:18" + }, + { + "name": "offset", + "nativeSrc": "16868:6:18", + "nodeType": "YulIdentifier", + "src": "16868:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16853:3:18", + "nodeType": "YulIdentifier", + "src": "16853:3:18" + }, + "nativeSrc": "16853:22:18", + "nodeType": "YulFunctionCall", + "src": "16853:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "16877:7:18", + "nodeType": "YulIdentifier", + "src": "16877:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_bytes_memory_ptr", + "nativeSrc": "16823:29:18", + "nodeType": "YulIdentifier", + "src": "16823:29:18" + }, + "nativeSrc": "16823:62:18", + "nodeType": "YulFunctionCall", + "src": "16823:62:18" + }, + "variableNames": [ + { + "name": "value3", + "nativeSrc": "16813:6:18", + "nodeType": "YulIdentifier", + "src": "16813:6:18" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256t_uint256t_bytes_memory_ptr", + "nativeSrc": "15959:943:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "16031:9:18", + "nodeType": "YulTypedName", + "src": "16031:9:18", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "16042:7:18", + "nodeType": "YulTypedName", + "src": "16042:7:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "16054:6:18", + "nodeType": "YulTypedName", + "src": "16054:6:18", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "16062:6:18", + "nodeType": "YulTypedName", + "src": "16062:6:18", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "16070:6:18", + "nodeType": "YulTypedName", + "src": "16070:6:18", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "16078:6:18", + "nodeType": "YulTypedName", + "src": "16078:6:18", + "type": "" + } + ], + "src": "15959:943:18" + }, + { + "body": { + "nativeSrc": "16975:241:18", + "nodeType": "YulBlock", + "src": "16975:241:18", + "statements": [ + { + "body": { + "nativeSrc": "17080:22:18", + "nodeType": "YulBlock", + "src": "17080:22:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "17082:16:18", + "nodeType": "YulIdentifier", + "src": "17082:16:18" + }, + "nativeSrc": "17082:18:18", + "nodeType": "YulFunctionCall", + "src": "17082:18:18" + }, + "nativeSrc": "17082:18:18", + "nodeType": "YulExpressionStatement", + "src": "17082:18:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "17052:6:18", + "nodeType": "YulIdentifier", + "src": "17052:6:18" + }, + { + "kind": "number", + "nativeSrc": "17060:18:18", + "nodeType": "YulLiteral", + "src": "17060:18:18", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "17049:2:18", + "nodeType": "YulIdentifier", + "src": "17049:2:18" + }, + "nativeSrc": "17049:30:18", + "nodeType": "YulFunctionCall", + "src": "17049:30:18" + }, + "nativeSrc": "17046:56:18", + "nodeType": "YulIf", + "src": "17046:56:18" + }, + { + "nativeSrc": "17112:37:18", + "nodeType": "YulAssignment", + "src": "17112:37:18", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "17142:6:18", + "nodeType": "YulIdentifier", + "src": "17142:6:18" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "17120:21:18", + "nodeType": "YulIdentifier", + "src": "17120:21:18" + }, + "nativeSrc": "17120:29:18", + "nodeType": "YulFunctionCall", + "src": "17120:29:18" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "17112:4:18", + "nodeType": "YulIdentifier", + "src": "17112:4:18" + } + ] + }, + { + "nativeSrc": "17186:23:18", + "nodeType": "YulAssignment", + "src": "17186:23:18", + "value": { + "arguments": [ + { + "name": "size", + "nativeSrc": "17198:4:18", + "nodeType": "YulIdentifier", + "src": "17198:4:18" + }, + { + "kind": "number", + "nativeSrc": "17204:4:18", + "nodeType": "YulLiteral", + "src": "17204:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17194:3:18", + "nodeType": "YulIdentifier", + "src": "17194:3:18" + }, + "nativeSrc": "17194:15:18", + "nodeType": "YulFunctionCall", + "src": "17194:15:18" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "17186:4:18", + "nodeType": "YulIdentifier", + "src": "17186:4:18" + } + ] + } + ] + }, + "name": "array_allocation_size_t_string_memory_ptr", + "nativeSrc": "16908:308:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nativeSrc": "16959:6:18", + "nodeType": "YulTypedName", + "src": "16959:6:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nativeSrc": "16970:4:18", + "nodeType": "YulTypedName", + "src": "16970:4:18", + "type": "" + } + ], + "src": "16908:308:18" + }, + { + "body": { + "nativeSrc": "17306:341:18", + "nodeType": "YulBlock", + "src": "17306:341:18", + "statements": [ + { + "nativeSrc": "17316:75:18", + "nodeType": "YulAssignment", + "src": "17316:75:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nativeSrc": "17383:6:18", + "nodeType": "YulIdentifier", + "src": "17383:6:18" + } + ], + "functionName": { + "name": "array_allocation_size_t_string_memory_ptr", + "nativeSrc": "17341:41:18", + "nodeType": "YulIdentifier", + "src": "17341:41:18" + }, + "nativeSrc": "17341:49:18", + "nodeType": "YulFunctionCall", + "src": "17341:49:18" + } + ], + "functionName": { + "name": "allocate_memory", + "nativeSrc": "17325:15:18", + "nodeType": "YulIdentifier", + "src": "17325:15:18" + }, + "nativeSrc": "17325:66:18", + "nodeType": "YulFunctionCall", + "src": "17325:66:18" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "17316:5:18", + "nodeType": "YulIdentifier", + "src": "17316:5:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nativeSrc": "17407:5:18", + "nodeType": "YulIdentifier", + "src": "17407:5:18" + }, + { + "name": "length", + "nativeSrc": "17414:6:18", + "nodeType": "YulIdentifier", + "src": "17414:6:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "17400:6:18", + "nodeType": "YulIdentifier", + "src": "17400:6:18" + }, + "nativeSrc": "17400:21:18", + "nodeType": "YulFunctionCall", + "src": "17400:21:18" + }, + "nativeSrc": "17400:21:18", + "nodeType": "YulExpressionStatement", + "src": "17400:21:18" + }, + { + "nativeSrc": "17430:27:18", + "nodeType": "YulVariableDeclaration", + "src": "17430:27:18", + "value": { + "arguments": [ + { + "name": "array", + "nativeSrc": "17445:5:18", + "nodeType": "YulIdentifier", + "src": "17445:5:18" + }, + { + "kind": "number", + "nativeSrc": "17452:4:18", + "nodeType": "YulLiteral", + "src": "17452:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17441:3:18", + "nodeType": "YulIdentifier", + "src": "17441:3:18" + }, + "nativeSrc": "17441:16:18", + "nodeType": "YulFunctionCall", + "src": "17441:16:18" + }, + "variables": [ + { + "name": "dst", + "nativeSrc": "17434:3:18", + "nodeType": "YulTypedName", + "src": "17434:3:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "17495:83:18", + "nodeType": "YulBlock", + "src": "17495:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "17497:77:18", + "nodeType": "YulIdentifier", + "src": "17497:77:18" + }, + "nativeSrc": "17497:79:18", + "nodeType": "YulFunctionCall", + "src": "17497:79:18" + }, + "nativeSrc": "17497:79:18", + "nodeType": "YulExpressionStatement", + "src": "17497:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "17476:3:18", + "nodeType": "YulIdentifier", + "src": "17476:3:18" + }, + { + "name": "length", + "nativeSrc": "17481:6:18", + "nodeType": "YulIdentifier", + "src": "17481:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17472:3:18", + "nodeType": "YulIdentifier", + "src": "17472:3:18" + }, + "nativeSrc": "17472:16:18", + "nodeType": "YulFunctionCall", + "src": "17472:16:18" + }, + { + "name": "end", + "nativeSrc": "17490:3:18", + "nodeType": "YulIdentifier", + "src": "17490:3:18" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "17469:2:18", + "nodeType": "YulIdentifier", + "src": "17469:2:18" + }, + "nativeSrc": "17469:25:18", + "nodeType": "YulFunctionCall", + "src": "17469:25:18" + }, + "nativeSrc": "17466:112:18", + "nodeType": "YulIf", + "src": "17466:112:18" + }, + { + "expression": { + "arguments": [ + { + "name": "src", + "nativeSrc": "17624:3:18", + "nodeType": "YulIdentifier", + "src": "17624:3:18" + }, + { + "name": "dst", + "nativeSrc": "17629:3:18", + "nodeType": "YulIdentifier", + "src": "17629:3:18" + }, + { + "name": "length", + "nativeSrc": "17634:6:18", + "nodeType": "YulIdentifier", + "src": "17634:6:18" + } + ], + "functionName": { + "name": "copy_calldata_to_memory_with_cleanup", + "nativeSrc": "17587:36:18", + "nodeType": "YulIdentifier", + "src": "17587:36:18" + }, + "nativeSrc": "17587:54:18", + "nodeType": "YulFunctionCall", + "src": "17587:54:18" + }, + "nativeSrc": "17587:54:18", + "nodeType": "YulExpressionStatement", + "src": "17587:54:18" + } + ] + }, + "name": "abi_decode_available_length_t_string_memory_ptr", + "nativeSrc": "17222:425:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "17279:3:18", + "nodeType": "YulTypedName", + "src": "17279:3:18", + "type": "" + }, + { + "name": "length", + "nativeSrc": "17284:6:18", + "nodeType": "YulTypedName", + "src": "17284:6:18", + "type": "" + }, + { + "name": "end", + "nativeSrc": "17292:3:18", + "nodeType": "YulTypedName", + "src": "17292:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "17300:5:18", + "nodeType": "YulTypedName", + "src": "17300:5:18", + "type": "" + } + ], + "src": "17222:425:18" + }, + { + "body": { + "nativeSrc": "17729:278:18", + "nodeType": "YulBlock", + "src": "17729:278:18", + "statements": [ + { + "body": { + "nativeSrc": "17778:83:18", + "nodeType": "YulBlock", + "src": "17778:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "17780:77:18", + "nodeType": "YulIdentifier", + "src": "17780:77:18" + }, + "nativeSrc": "17780:79:18", + "nodeType": "YulFunctionCall", + "src": "17780:79:18" + }, + "nativeSrc": "17780:79:18", + "nodeType": "YulExpressionStatement", + "src": "17780:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "17757:6:18", + "nodeType": "YulIdentifier", + "src": "17757:6:18" + }, + { + "kind": "number", + "nativeSrc": "17765:4:18", + "nodeType": "YulLiteral", + "src": "17765:4:18", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17753:3:18", + "nodeType": "YulIdentifier", + "src": "17753:3:18" + }, + "nativeSrc": "17753:17:18", + "nodeType": "YulFunctionCall", + "src": "17753:17:18" + }, + { + "name": "end", + "nativeSrc": "17772:3:18", + "nodeType": "YulIdentifier", + "src": "17772:3:18" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "17749:3:18", + "nodeType": "YulIdentifier", + "src": "17749:3:18" + }, + "nativeSrc": "17749:27:18", + "nodeType": "YulFunctionCall", + "src": "17749:27:18" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "17742:6:18", + "nodeType": "YulIdentifier", + "src": "17742:6:18" + }, + "nativeSrc": "17742:35:18", + "nodeType": "YulFunctionCall", + "src": "17742:35:18" + }, + "nativeSrc": "17739:122:18", + "nodeType": "YulIf", + "src": "17739:122:18" + }, + { + "nativeSrc": "17870:34:18", + "nodeType": "YulVariableDeclaration", + "src": "17870:34:18", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "17897:6:18", + "nodeType": "YulIdentifier", + "src": "17897:6:18" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "17884:12:18", + "nodeType": "YulIdentifier", + "src": "17884:12:18" + }, + "nativeSrc": "17884:20:18", + "nodeType": "YulFunctionCall", + "src": "17884:20:18" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "17874:6:18", + "nodeType": "YulTypedName", + "src": "17874:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "17913:88:18", + "nodeType": "YulAssignment", + "src": "17913:88:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "17974:6:18", + "nodeType": "YulIdentifier", + "src": "17974:6:18" + }, + { + "kind": "number", + "nativeSrc": "17982:4:18", + "nodeType": "YulLiteral", + "src": "17982:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17970:3:18", + "nodeType": "YulIdentifier", + "src": "17970:3:18" + }, + "nativeSrc": "17970:17:18", + "nodeType": "YulFunctionCall", + "src": "17970:17:18" + }, + { + "name": "length", + "nativeSrc": "17989:6:18", + "nodeType": "YulIdentifier", + "src": "17989:6:18" + }, + { + "name": "end", + "nativeSrc": "17997:3:18", + "nodeType": "YulIdentifier", + "src": "17997:3:18" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_string_memory_ptr", + "nativeSrc": "17922:47:18", + "nodeType": "YulIdentifier", + "src": "17922:47:18" + }, + "nativeSrc": "17922:79:18", + "nodeType": "YulFunctionCall", + "src": "17922:79:18" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "17913:5:18", + "nodeType": "YulIdentifier", + "src": "17913:5:18" + } + ] + } + ] + }, + "name": "abi_decode_t_string_memory_ptr", + "nativeSrc": "17667:340:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "17707:6:18", + "nodeType": "YulTypedName", + "src": "17707:6:18", + "type": "" + }, + { + "name": "end", + "nativeSrc": "17715:3:18", + "nodeType": "YulTypedName", + "src": "17715:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "17723:5:18", + "nodeType": "YulTypedName", + "src": "17723:5:18", + "type": "" + } + ], + "src": "17667:340:18" + }, + { + "body": { + "nativeSrc": "18106:561:18", + "nodeType": "YulBlock", + "src": "18106:561:18", + "statements": [ + { + "body": { + "nativeSrc": "18152:83:18", + "nodeType": "YulBlock", + "src": "18152:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "18154:77:18", + "nodeType": "YulIdentifier", + "src": "18154:77:18" + }, + "nativeSrc": "18154:79:18", + "nodeType": "YulFunctionCall", + "src": "18154:79:18" + }, + "nativeSrc": "18154:79:18", + "nodeType": "YulExpressionStatement", + "src": "18154:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "18127:7:18", + "nodeType": "YulIdentifier", + "src": "18127:7:18" + }, + { + "name": "headStart", + "nativeSrc": "18136:9:18", + "nodeType": "YulIdentifier", + "src": "18136:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "18123:3:18", + "nodeType": "YulIdentifier", + "src": "18123:3:18" + }, + "nativeSrc": "18123:23:18", + "nodeType": "YulFunctionCall", + "src": "18123:23:18" + }, + { + "kind": "number", + "nativeSrc": "18148:2:18", + "nodeType": "YulLiteral", + "src": "18148:2:18", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "18119:3:18", + "nodeType": "YulIdentifier", + "src": "18119:3:18" + }, + "nativeSrc": "18119:32:18", + "nodeType": "YulFunctionCall", + "src": "18119:32:18" + }, + "nativeSrc": "18116:119:18", + "nodeType": "YulIf", + "src": "18116:119:18" + }, + { + "nativeSrc": "18245:117:18", + "nodeType": "YulBlock", + "src": "18245:117:18", + "statements": [ + { + "nativeSrc": "18260:15:18", + "nodeType": "YulVariableDeclaration", + "src": "18260:15:18", + "value": { + "kind": "number", + "nativeSrc": "18274:1:18", + "nodeType": "YulLiteral", + "src": "18274:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "18264:6:18", + "nodeType": "YulTypedName", + "src": "18264:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "18289:63:18", + "nodeType": "YulAssignment", + "src": "18289:63:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "18324:9:18", + "nodeType": "YulIdentifier", + "src": "18324:9:18" + }, + { + "name": "offset", + "nativeSrc": "18335:6:18", + "nodeType": "YulIdentifier", + "src": "18335:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18320:3:18", + "nodeType": "YulIdentifier", + "src": "18320:3:18" + }, + "nativeSrc": "18320:22:18", + "nodeType": "YulFunctionCall", + "src": "18320:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "18344:7:18", + "nodeType": "YulIdentifier", + "src": "18344:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "18299:20:18", + "nodeType": "YulIdentifier", + "src": "18299:20:18" + }, + "nativeSrc": "18299:53:18", + "nodeType": "YulFunctionCall", + "src": "18299:53:18" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "18289:6:18", + "nodeType": "YulIdentifier", + "src": "18289:6:18" + } + ] + } + ] + }, + { + "nativeSrc": "18372:288:18", + "nodeType": "YulBlock", + "src": "18372:288:18", + "statements": [ + { + "nativeSrc": "18387:46:18", + "nodeType": "YulVariableDeclaration", + "src": "18387:46:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "18418:9:18", + "nodeType": "YulIdentifier", + "src": "18418:9:18" + }, + { + "kind": "number", + "nativeSrc": "18429:2:18", + "nodeType": "YulLiteral", + "src": "18429:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18414:3:18", + "nodeType": "YulIdentifier", + "src": "18414:3:18" + }, + "nativeSrc": "18414:18:18", + "nodeType": "YulFunctionCall", + "src": "18414:18:18" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "18401:12:18", + "nodeType": "YulIdentifier", + "src": "18401:12:18" + }, + "nativeSrc": "18401:32:18", + "nodeType": "YulFunctionCall", + "src": "18401:32:18" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "18391:6:18", + "nodeType": "YulTypedName", + "src": "18391:6:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "18480:83:18", + "nodeType": "YulBlock", + "src": "18480:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "18482:77:18", + "nodeType": "YulIdentifier", + "src": "18482:77:18" + }, + "nativeSrc": "18482:79:18", + "nodeType": "YulFunctionCall", + "src": "18482:79:18" + }, + "nativeSrc": "18482:79:18", + "nodeType": "YulExpressionStatement", + "src": "18482:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "18452:6:18", + "nodeType": "YulIdentifier", + "src": "18452:6:18" + }, + { + "kind": "number", + "nativeSrc": "18460:18:18", + "nodeType": "YulLiteral", + "src": "18460:18:18", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "18449:2:18", + "nodeType": "YulIdentifier", + "src": "18449:2:18" + }, + "nativeSrc": "18449:30:18", + "nodeType": "YulFunctionCall", + "src": "18449:30:18" + }, + "nativeSrc": "18446:117:18", + "nodeType": "YulIf", + "src": "18446:117:18" + }, + { + "nativeSrc": "18577:73:18", + "nodeType": "YulAssignment", + "src": "18577:73:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "18622:9:18", + "nodeType": "YulIdentifier", + "src": "18622:9:18" + }, + { + "name": "offset", + "nativeSrc": "18633:6:18", + "nodeType": "YulIdentifier", + "src": "18633:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18618:3:18", + "nodeType": "YulIdentifier", + "src": "18618:3:18" + }, + "nativeSrc": "18618:22:18", + "nodeType": "YulFunctionCall", + "src": "18618:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "18642:7:18", + "nodeType": "YulIdentifier", + "src": "18642:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr", + "nativeSrc": "18587:30:18", + "nodeType": "YulIdentifier", + "src": "18587:30:18" + }, + "nativeSrc": "18587:63:18", + "nodeType": "YulFunctionCall", + "src": "18587:63:18" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "18577:6:18", + "nodeType": "YulIdentifier", + "src": "18577:6:18" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_string_memory_ptr", + "nativeSrc": "18013:654:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "18068:9:18", + "nodeType": "YulTypedName", + "src": "18068:9:18", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "18079:7:18", + "nodeType": "YulTypedName", + "src": "18079:7:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "18091:6:18", + "nodeType": "YulTypedName", + "src": "18091:6:18", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "18099:6:18", + "nodeType": "YulTypedName", + "src": "18099:6:18", + "type": "" + } + ], + "src": "18013:654:18" + }, + { + "body": { + "nativeSrc": "18749:433:18", + "nodeType": "YulBlock", + "src": "18749:433:18", + "statements": [ + { + "body": { + "nativeSrc": "18795:83:18", + "nodeType": "YulBlock", + "src": "18795:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "18797:77:18", + "nodeType": "YulIdentifier", + "src": "18797:77:18" + }, + "nativeSrc": "18797:79:18", + "nodeType": "YulFunctionCall", + "src": "18797:79:18" + }, + "nativeSrc": "18797:79:18", + "nodeType": "YulExpressionStatement", + "src": "18797:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "18770:7:18", + "nodeType": "YulIdentifier", + "src": "18770:7:18" + }, + { + "name": "headStart", + "nativeSrc": "18779:9:18", + "nodeType": "YulIdentifier", + "src": "18779:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "18766:3:18", + "nodeType": "YulIdentifier", + "src": "18766:3:18" + }, + "nativeSrc": "18766:23:18", + "nodeType": "YulFunctionCall", + "src": "18766:23:18" + }, + { + "kind": "number", + "nativeSrc": "18791:2:18", + "nodeType": "YulLiteral", + "src": "18791:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "18762:3:18", + "nodeType": "YulIdentifier", + "src": "18762:3:18" + }, + "nativeSrc": "18762:32:18", + "nodeType": "YulFunctionCall", + "src": "18762:32:18" + }, + "nativeSrc": "18759:119:18", + "nodeType": "YulIf", + "src": "18759:119:18" + }, + { + "nativeSrc": "18888:287:18", + "nodeType": "YulBlock", + "src": "18888:287:18", + "statements": [ + { + "nativeSrc": "18903:45:18", + "nodeType": "YulVariableDeclaration", + "src": "18903:45:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "18934:9:18", + "nodeType": "YulIdentifier", + "src": "18934:9:18" + }, + { + "kind": "number", + "nativeSrc": "18945:1:18", + "nodeType": "YulLiteral", + "src": "18945:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18930:3:18", + "nodeType": "YulIdentifier", + "src": "18930:3:18" + }, + "nativeSrc": "18930:17:18", + "nodeType": "YulFunctionCall", + "src": "18930:17:18" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "18917:12:18", + "nodeType": "YulIdentifier", + "src": "18917:12:18" + }, + "nativeSrc": "18917:31:18", + "nodeType": "YulFunctionCall", + "src": "18917:31:18" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "18907:6:18", + "nodeType": "YulTypedName", + "src": "18907:6:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "18995:83:18", + "nodeType": "YulBlock", + "src": "18995:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "18997:77:18", + "nodeType": "YulIdentifier", + "src": "18997:77:18" + }, + "nativeSrc": "18997:79:18", + "nodeType": "YulFunctionCall", + "src": "18997:79:18" + }, + "nativeSrc": "18997:79:18", + "nodeType": "YulExpressionStatement", + "src": "18997:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "18967:6:18", + "nodeType": "YulIdentifier", + "src": "18967:6:18" + }, + { + "kind": "number", + "nativeSrc": "18975:18:18", + "nodeType": "YulLiteral", + "src": "18975:18:18", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "18964:2:18", + "nodeType": "YulIdentifier", + "src": "18964:2:18" + }, + "nativeSrc": "18964:30:18", + "nodeType": "YulFunctionCall", + "src": "18964:30:18" + }, + "nativeSrc": "18961:117:18", + "nodeType": "YulIf", + "src": "18961:117:18" + }, + { + "nativeSrc": "19092:73:18", + "nodeType": "YulAssignment", + "src": "19092:73:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "19137:9:18", + "nodeType": "YulIdentifier", + "src": "19137:9:18" + }, + { + "name": "offset", + "nativeSrc": "19148:6:18", + "nodeType": "YulIdentifier", + "src": "19148:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19133:3:18", + "nodeType": "YulIdentifier", + "src": "19133:3:18" + }, + "nativeSrc": "19133:22:18", + "nodeType": "YulFunctionCall", + "src": "19133:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "19157:7:18", + "nodeType": "YulIdentifier", + "src": "19157:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr", + "nativeSrc": "19102:30:18", + "nodeType": "YulIdentifier", + "src": "19102:30:18" + }, + "nativeSrc": "19102:63:18", + "nodeType": "YulFunctionCall", + "src": "19102:63:18" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "19092:6:18", + "nodeType": "YulIdentifier", + "src": "19092:6:18" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_string_memory_ptr", + "nativeSrc": "18673:509:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "18719:9:18", + "nodeType": "YulTypedName", + "src": "18719:9:18", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "18730:7:18", + "nodeType": "YulTypedName", + "src": "18730:7:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "18742:6:18", + "nodeType": "YulTypedName", + "src": "18742:6:18", + "type": "" + } + ], + "src": "18673:509:18" + }, + { + "body": { + "nativeSrc": "19228:76:18", + "nodeType": "YulBlock", + "src": "19228:76:18", + "statements": [ + { + "body": { + "nativeSrc": "19282:16:18", + "nodeType": "YulBlock", + "src": "19282:16:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "19291:1:18", + "nodeType": "YulLiteral", + "src": "19291:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "19294:1:18", + "nodeType": "YulLiteral", + "src": "19294:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "19284:6:18", + "nodeType": "YulIdentifier", + "src": "19284:6:18" + }, + "nativeSrc": "19284:12:18", + "nodeType": "YulFunctionCall", + "src": "19284:12:18" + }, + "nativeSrc": "19284:12:18", + "nodeType": "YulExpressionStatement", + "src": "19284:12:18" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "19251:5:18", + "nodeType": "YulIdentifier", + "src": "19251:5:18" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "19273:5:18", + "nodeType": "YulIdentifier", + "src": "19273:5:18" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nativeSrc": "19258:14:18", + "nodeType": "YulIdentifier", + "src": "19258:14:18" + }, + "nativeSrc": "19258:21:18", + "nodeType": "YulFunctionCall", + "src": "19258:21:18" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "19248:2:18", + "nodeType": "YulIdentifier", + "src": "19248:2:18" + }, + "nativeSrc": "19248:32:18", + "nodeType": "YulFunctionCall", + "src": "19248:32:18" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "19241:6:18", + "nodeType": "YulIdentifier", + "src": "19241:6:18" + }, + "nativeSrc": "19241:40:18", + "nodeType": "YulFunctionCall", + "src": "19241:40:18" + }, + "nativeSrc": "19238:60:18", + "nodeType": "YulIf", + "src": "19238:60:18" + } + ] + }, + "name": "validator_revert_t_bool", + "nativeSrc": "19188:116:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "19221:5:18", + "nodeType": "YulTypedName", + "src": "19221:5:18", + "type": "" + } + ], + "src": "19188:116:18" + }, + { + "body": { + "nativeSrc": "19359:84:18", + "nodeType": "YulBlock", + "src": "19359:84:18", + "statements": [ + { + "nativeSrc": "19369:29:18", + "nodeType": "YulAssignment", + "src": "19369:29:18", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "19391:6:18", + "nodeType": "YulIdentifier", + "src": "19391:6:18" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "19378:12:18", + "nodeType": "YulIdentifier", + "src": "19378:12:18" + }, + "nativeSrc": "19378:20:18", + "nodeType": "YulFunctionCall", + "src": "19378:20:18" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "19369:5:18", + "nodeType": "YulIdentifier", + "src": "19369:5:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "19431:5:18", + "nodeType": "YulIdentifier", + "src": "19431:5:18" + } + ], + "functionName": { + "name": "validator_revert_t_bool", + "nativeSrc": "19407:23:18", + "nodeType": "YulIdentifier", + "src": "19407:23:18" + }, + "nativeSrc": "19407:30:18", + "nodeType": "YulFunctionCall", + "src": "19407:30:18" + }, + "nativeSrc": "19407:30:18", + "nodeType": "YulExpressionStatement", + "src": "19407:30:18" + } + ] + }, + "name": "abi_decode_t_bool", + "nativeSrc": "19310:133:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "19337:6:18", + "nodeType": "YulTypedName", + "src": "19337:6:18", + "type": "" + }, + { + "name": "end", + "nativeSrc": "19345:3:18", + "nodeType": "YulTypedName", + "src": "19345:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "19353:5:18", + "nodeType": "YulTypedName", + "src": "19353:5:18", + "type": "" + } + ], + "src": "19310:133:18" + }, + { + "body": { + "nativeSrc": "19529:388:18", + "nodeType": "YulBlock", + "src": "19529:388:18", + "statements": [ + { + "body": { + "nativeSrc": "19575:83:18", + "nodeType": "YulBlock", + "src": "19575:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "19577:77:18", + "nodeType": "YulIdentifier", + "src": "19577:77:18" + }, + "nativeSrc": "19577:79:18", + "nodeType": "YulFunctionCall", + "src": "19577:79:18" + }, + "nativeSrc": "19577:79:18", + "nodeType": "YulExpressionStatement", + "src": "19577:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "19550:7:18", + "nodeType": "YulIdentifier", + "src": "19550:7:18" + }, + { + "name": "headStart", + "nativeSrc": "19559:9:18", + "nodeType": "YulIdentifier", + "src": "19559:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "19546:3:18", + "nodeType": "YulIdentifier", + "src": "19546:3:18" + }, + "nativeSrc": "19546:23:18", + "nodeType": "YulFunctionCall", + "src": "19546:23:18" + }, + { + "kind": "number", + "nativeSrc": "19571:2:18", + "nodeType": "YulLiteral", + "src": "19571:2:18", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "19542:3:18", + "nodeType": "YulIdentifier", + "src": "19542:3:18" + }, + "nativeSrc": "19542:32:18", + "nodeType": "YulFunctionCall", + "src": "19542:32:18" + }, + "nativeSrc": "19539:119:18", + "nodeType": "YulIf", + "src": "19539:119:18" + }, + { + "nativeSrc": "19668:117:18", + "nodeType": "YulBlock", + "src": "19668:117:18", + "statements": [ + { + "nativeSrc": "19683:15:18", + "nodeType": "YulVariableDeclaration", + "src": "19683:15:18", + "value": { + "kind": "number", + "nativeSrc": "19697:1:18", + "nodeType": "YulLiteral", + "src": "19697:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "19687:6:18", + "nodeType": "YulTypedName", + "src": "19687:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "19712:63:18", + "nodeType": "YulAssignment", + "src": "19712:63:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "19747:9:18", + "nodeType": "YulIdentifier", + "src": "19747:9:18" + }, + { + "name": "offset", + "nativeSrc": "19758:6:18", + "nodeType": "YulIdentifier", + "src": "19758:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19743:3:18", + "nodeType": "YulIdentifier", + "src": "19743:3:18" + }, + "nativeSrc": "19743:22:18", + "nodeType": "YulFunctionCall", + "src": "19743:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "19767:7:18", + "nodeType": "YulIdentifier", + "src": "19767:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "19722:20:18", + "nodeType": "YulIdentifier", + "src": "19722:20:18" + }, + "nativeSrc": "19722:53:18", + "nodeType": "YulFunctionCall", + "src": "19722:53:18" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "19712:6:18", + "nodeType": "YulIdentifier", + "src": "19712:6:18" + } + ] + } + ] + }, + { + "nativeSrc": "19795:115:18", + "nodeType": "YulBlock", + "src": "19795:115:18", + "statements": [ + { + "nativeSrc": "19810:16:18", + "nodeType": "YulVariableDeclaration", + "src": "19810:16:18", + "value": { + "kind": "number", + "nativeSrc": "19824:2:18", + "nodeType": "YulLiteral", + "src": "19824:2:18", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "19814:6:18", + "nodeType": "YulTypedName", + "src": "19814:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "19840:60:18", + "nodeType": "YulAssignment", + "src": "19840:60:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "19872:9:18", + "nodeType": "YulIdentifier", + "src": "19872:9:18" + }, + { + "name": "offset", + "nativeSrc": "19883:6:18", + "nodeType": "YulIdentifier", + "src": "19883:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19868:3:18", + "nodeType": "YulIdentifier", + "src": "19868:3:18" + }, + "nativeSrc": "19868:22:18", + "nodeType": "YulFunctionCall", + "src": "19868:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "19892:7:18", + "nodeType": "YulIdentifier", + "src": "19892:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_bool", + "nativeSrc": "19850:17:18", + "nodeType": "YulIdentifier", + "src": "19850:17:18" + }, + "nativeSrc": "19850:50:18", + "nodeType": "YulFunctionCall", + "src": "19850:50:18" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "19840:6:18", + "nodeType": "YulIdentifier", + "src": "19840:6:18" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_bool", + "nativeSrc": "19449:468:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "19491:9:18", + "nodeType": "YulTypedName", + "src": "19491:9:18", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "19502:7:18", + "nodeType": "YulTypedName", + "src": "19502:7:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "19514:6:18", + "nodeType": "YulTypedName", + "src": "19514:6:18", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "19522:6:18", + "nodeType": "YulTypedName", + "src": "19522:6:18", + "type": "" + } + ], + "src": "19449:468:18" + }, + { + "body": { + "nativeSrc": "20006:391:18", + "nodeType": "YulBlock", + "src": "20006:391:18", + "statements": [ + { + "body": { + "nativeSrc": "20052:83:18", + "nodeType": "YulBlock", + "src": "20052:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "20054:77:18", + "nodeType": "YulIdentifier", + "src": "20054:77:18" + }, + "nativeSrc": "20054:79:18", + "nodeType": "YulFunctionCall", + "src": "20054:79:18" + }, + "nativeSrc": "20054:79:18", + "nodeType": "YulExpressionStatement", + "src": "20054:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "20027:7:18", + "nodeType": "YulIdentifier", + "src": "20027:7:18" + }, + { + "name": "headStart", + "nativeSrc": "20036:9:18", + "nodeType": "YulIdentifier", + "src": "20036:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "20023:3:18", + "nodeType": "YulIdentifier", + "src": "20023:3:18" + }, + "nativeSrc": "20023:23:18", + "nodeType": "YulFunctionCall", + "src": "20023:23:18" + }, + { + "kind": "number", + "nativeSrc": "20048:2:18", + "nodeType": "YulLiteral", + "src": "20048:2:18", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "20019:3:18", + "nodeType": "YulIdentifier", + "src": "20019:3:18" + }, + "nativeSrc": "20019:32:18", + "nodeType": "YulFunctionCall", + "src": "20019:32:18" + }, + "nativeSrc": "20016:119:18", + "nodeType": "YulIf", + "src": "20016:119:18" + }, + { + "nativeSrc": "20145:117:18", + "nodeType": "YulBlock", + "src": "20145:117:18", + "statements": [ + { + "nativeSrc": "20160:15:18", + "nodeType": "YulVariableDeclaration", + "src": "20160:15:18", + "value": { + "kind": "number", + "nativeSrc": "20174:1:18", + "nodeType": "YulLiteral", + "src": "20174:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "20164:6:18", + "nodeType": "YulTypedName", + "src": "20164:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "20189:63:18", + "nodeType": "YulAssignment", + "src": "20189:63:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "20224:9:18", + "nodeType": "YulIdentifier", + "src": "20224:9:18" + }, + { + "name": "offset", + "nativeSrc": "20235:6:18", + "nodeType": "YulIdentifier", + "src": "20235:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "20220:3:18", + "nodeType": "YulIdentifier", + "src": "20220:3:18" + }, + "nativeSrc": "20220:22:18", + "nodeType": "YulFunctionCall", + "src": "20220:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "20244:7:18", + "nodeType": "YulIdentifier", + "src": "20244:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "20199:20:18", + "nodeType": "YulIdentifier", + "src": "20199:20:18" + }, + "nativeSrc": "20199:53:18", + "nodeType": "YulFunctionCall", + "src": "20199:53:18" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "20189:6:18", + "nodeType": "YulIdentifier", + "src": "20189:6:18" + } + ] + } + ] + }, + { + "nativeSrc": "20272:118:18", + "nodeType": "YulBlock", + "src": "20272:118:18", + "statements": [ + { + "nativeSrc": "20287:16:18", + "nodeType": "YulVariableDeclaration", + "src": "20287:16:18", + "value": { + "kind": "number", + "nativeSrc": "20301:2:18", + "nodeType": "YulLiteral", + "src": "20301:2:18", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "20291:6:18", + "nodeType": "YulTypedName", + "src": "20291:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "20317:63:18", + "nodeType": "YulAssignment", + "src": "20317:63:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "20352:9:18", + "nodeType": "YulIdentifier", + "src": "20352:9:18" + }, + { + "name": "offset", + "nativeSrc": "20363:6:18", + "nodeType": "YulIdentifier", + "src": "20363:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "20348:3:18", + "nodeType": "YulIdentifier", + "src": "20348:3:18" + }, + "nativeSrc": "20348:22:18", + "nodeType": "YulFunctionCall", + "src": "20348:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "20372:7:18", + "nodeType": "YulIdentifier", + "src": "20372:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "20327:20:18", + "nodeType": "YulIdentifier", + "src": "20327:20:18" + }, + "nativeSrc": "20327:53:18", + "nodeType": "YulFunctionCall", + "src": "20327:53:18" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "20317:6:18", + "nodeType": "YulIdentifier", + "src": "20317:6:18" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address", + "nativeSrc": "19923:474:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "19968:9:18", + "nodeType": "YulTypedName", + "src": "19968:9:18", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "19979:7:18", + "nodeType": "YulTypedName", + "src": "19979:7:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "19991:6:18", + "nodeType": "YulTypedName", + "src": "19991:6:18", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "19999:6:18", + "nodeType": "YulTypedName", + "src": "19999:6:18", + "type": "" + } + ], + "src": "19923:474:18" + }, + { + "body": { + "nativeSrc": "20546:946:18", + "nodeType": "YulBlock", + "src": "20546:946:18", + "statements": [ + { + "body": { + "nativeSrc": "20593:83:18", + "nodeType": "YulBlock", + "src": "20593:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "20595:77:18", + "nodeType": "YulIdentifier", + "src": "20595:77:18" + }, + "nativeSrc": "20595:79:18", + "nodeType": "YulFunctionCall", + "src": "20595:79:18" + }, + "nativeSrc": "20595:79:18", + "nodeType": "YulExpressionStatement", + "src": "20595:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "20567:7:18", + "nodeType": "YulIdentifier", + "src": "20567:7:18" + }, + { + "name": "headStart", + "nativeSrc": "20576:9:18", + "nodeType": "YulIdentifier", + "src": "20576:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "20563:3:18", + "nodeType": "YulIdentifier", + "src": "20563:3:18" + }, + "nativeSrc": "20563:23:18", + "nodeType": "YulFunctionCall", + "src": "20563:23:18" + }, + { + "kind": "number", + "nativeSrc": "20588:3:18", + "nodeType": "YulLiteral", + "src": "20588:3:18", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "20559:3:18", + "nodeType": "YulIdentifier", + "src": "20559:3:18" + }, + "nativeSrc": "20559:33:18", + "nodeType": "YulFunctionCall", + "src": "20559:33:18" + }, + "nativeSrc": "20556:120:18", + "nodeType": "YulIf", + "src": "20556:120:18" + }, + { + "nativeSrc": "20686:117:18", + "nodeType": "YulBlock", + "src": "20686:117:18", + "statements": [ + { + "nativeSrc": "20701:15:18", + "nodeType": "YulVariableDeclaration", + "src": "20701:15:18", + "value": { + "kind": "number", + "nativeSrc": "20715:1:18", + "nodeType": "YulLiteral", + "src": "20715:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "20705:6:18", + "nodeType": "YulTypedName", + "src": "20705:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "20730:63:18", + "nodeType": "YulAssignment", + "src": "20730:63:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "20765:9:18", + "nodeType": "YulIdentifier", + "src": "20765:9:18" + }, + { + "name": "offset", + "nativeSrc": "20776:6:18", + "nodeType": "YulIdentifier", + "src": "20776:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "20761:3:18", + "nodeType": "YulIdentifier", + "src": "20761:3:18" + }, + "nativeSrc": "20761:22:18", + "nodeType": "YulFunctionCall", + "src": "20761:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "20785:7:18", + "nodeType": "YulIdentifier", + "src": "20785:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "20740:20:18", + "nodeType": "YulIdentifier", + "src": "20740:20:18" + }, + "nativeSrc": "20740:53:18", + "nodeType": "YulFunctionCall", + "src": "20740:53:18" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "20730:6:18", + "nodeType": "YulIdentifier", + "src": "20730:6:18" + } + ] + } + ] + }, + { + "nativeSrc": "20813:118:18", + "nodeType": "YulBlock", + "src": "20813:118:18", + "statements": [ + { + "nativeSrc": "20828:16:18", + "nodeType": "YulVariableDeclaration", + "src": "20828:16:18", + "value": { + "kind": "number", + "nativeSrc": "20842:2:18", + "nodeType": "YulLiteral", + "src": "20842:2:18", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "20832:6:18", + "nodeType": "YulTypedName", + "src": "20832:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "20858:63:18", + "nodeType": "YulAssignment", + "src": "20858:63:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "20893:9:18", + "nodeType": "YulIdentifier", + "src": "20893:9:18" + }, + { + "name": "offset", + "nativeSrc": "20904:6:18", + "nodeType": "YulIdentifier", + "src": "20904:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "20889:3:18", + "nodeType": "YulIdentifier", + "src": "20889:3:18" + }, + "nativeSrc": "20889:22:18", + "nodeType": "YulFunctionCall", + "src": "20889:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "20913:7:18", + "nodeType": "YulIdentifier", + "src": "20913:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "20868:20:18", + "nodeType": "YulIdentifier", + "src": "20868:20:18" + }, + "nativeSrc": "20868:53:18", + "nodeType": "YulFunctionCall", + "src": "20868:53:18" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "20858:6:18", + "nodeType": "YulIdentifier", + "src": "20858:6:18" + } + ] + } + ] + }, + { + "nativeSrc": "20941:118:18", + "nodeType": "YulBlock", + "src": "20941:118:18", + "statements": [ + { + "nativeSrc": "20956:16:18", + "nodeType": "YulVariableDeclaration", + "src": "20956:16:18", + "value": { + "kind": "number", + "nativeSrc": "20970:2:18", + "nodeType": "YulLiteral", + "src": "20970:2:18", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "20960:6:18", + "nodeType": "YulTypedName", + "src": "20960:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "20986:63:18", + "nodeType": "YulAssignment", + "src": "20986:63:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "21021:9:18", + "nodeType": "YulIdentifier", + "src": "21021:9:18" + }, + { + "name": "offset", + "nativeSrc": "21032:6:18", + "nodeType": "YulIdentifier", + "src": "21032:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21017:3:18", + "nodeType": "YulIdentifier", + "src": "21017:3:18" + }, + "nativeSrc": "21017:22:18", + "nodeType": "YulFunctionCall", + "src": "21017:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "21041:7:18", + "nodeType": "YulIdentifier", + "src": "21041:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "20996:20:18", + "nodeType": "YulIdentifier", + "src": "20996:20:18" + }, + "nativeSrc": "20996:53:18", + "nodeType": "YulFunctionCall", + "src": "20996:53:18" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "20986:6:18", + "nodeType": "YulIdentifier", + "src": "20986:6:18" + } + ] + } + ] + }, + { + "nativeSrc": "21069:118:18", + "nodeType": "YulBlock", + "src": "21069:118:18", + "statements": [ + { + "nativeSrc": "21084:16:18", + "nodeType": "YulVariableDeclaration", + "src": "21084:16:18", + "value": { + "kind": "number", + "nativeSrc": "21098:2:18", + "nodeType": "YulLiteral", + "src": "21098:2:18", + "type": "", + "value": "96" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "21088:6:18", + "nodeType": "YulTypedName", + "src": "21088:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "21114:63:18", + "nodeType": "YulAssignment", + "src": "21114:63:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "21149:9:18", + "nodeType": "YulIdentifier", + "src": "21149:9:18" + }, + { + "name": "offset", + "nativeSrc": "21160:6:18", + "nodeType": "YulIdentifier", + "src": "21160:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21145:3:18", + "nodeType": "YulIdentifier", + "src": "21145:3:18" + }, + "nativeSrc": "21145:22:18", + "nodeType": "YulFunctionCall", + "src": "21145:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "21169:7:18", + "nodeType": "YulIdentifier", + "src": "21169:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "21124:20:18", + "nodeType": "YulIdentifier", + "src": "21124:20:18" + }, + "nativeSrc": "21124:53:18", + "nodeType": "YulFunctionCall", + "src": "21124:53:18" + }, + "variableNames": [ + { + "name": "value3", + "nativeSrc": "21114:6:18", + "nodeType": "YulIdentifier", + "src": "21114:6:18" + } + ] + } + ] + }, + { + "nativeSrc": "21197:288:18", + "nodeType": "YulBlock", + "src": "21197:288:18", + "statements": [ + { + "nativeSrc": "21212:47:18", + "nodeType": "YulVariableDeclaration", + "src": "21212:47:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "21243:9:18", + "nodeType": "YulIdentifier", + "src": "21243:9:18" + }, + { + "kind": "number", + "nativeSrc": "21254:3:18", + "nodeType": "YulLiteral", + "src": "21254:3:18", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21239:3:18", + "nodeType": "YulIdentifier", + "src": "21239:3:18" + }, + "nativeSrc": "21239:19:18", + "nodeType": "YulFunctionCall", + "src": "21239:19:18" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "21226:12:18", + "nodeType": "YulIdentifier", + "src": "21226:12:18" + }, + "nativeSrc": "21226:33:18", + "nodeType": "YulFunctionCall", + "src": "21226:33:18" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "21216:6:18", + "nodeType": "YulTypedName", + "src": "21216:6:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "21306:83:18", + "nodeType": "YulBlock", + "src": "21306:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "21308:77:18", + "nodeType": "YulIdentifier", + "src": "21308:77:18" + }, + "nativeSrc": "21308:79:18", + "nodeType": "YulFunctionCall", + "src": "21308:79:18" + }, + "nativeSrc": "21308:79:18", + "nodeType": "YulExpressionStatement", + "src": "21308:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "21278:6:18", + "nodeType": "YulIdentifier", + "src": "21278:6:18" + }, + { + "kind": "number", + "nativeSrc": "21286:18:18", + "nodeType": "YulLiteral", + "src": "21286:18:18", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "21275:2:18", + "nodeType": "YulIdentifier", + "src": "21275:2:18" + }, + "nativeSrc": "21275:30:18", + "nodeType": "YulFunctionCall", + "src": "21275:30:18" + }, + "nativeSrc": "21272:117:18", + "nodeType": "YulIf", + "src": "21272:117:18" + }, + { + "nativeSrc": "21403:72:18", + "nodeType": "YulAssignment", + "src": "21403:72:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "21447:9:18", + "nodeType": "YulIdentifier", + "src": "21447:9:18" + }, + { + "name": "offset", + "nativeSrc": "21458:6:18", + "nodeType": "YulIdentifier", + "src": "21458:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21443:3:18", + "nodeType": "YulIdentifier", + "src": "21443:3:18" + }, + "nativeSrc": "21443:22:18", + "nodeType": "YulFunctionCall", + "src": "21443:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "21467:7:18", + "nodeType": "YulIdentifier", + "src": "21467:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_bytes_memory_ptr", + "nativeSrc": "21413:29:18", + "nodeType": "YulIdentifier", + "src": "21413:29:18" + }, + "nativeSrc": "21413:62:18", + "nodeType": "YulFunctionCall", + "src": "21413:62:18" + }, + "variableNames": [ + { + "name": "value4", + "nativeSrc": "21403:6:18", + "nodeType": "YulIdentifier", + "src": "21403:6:18" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_memory_ptr", + "nativeSrc": "20403:1089:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "20484:9:18", + "nodeType": "YulTypedName", + "src": "20484:9:18", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "20495:7:18", + "nodeType": "YulTypedName", + "src": "20495:7:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "20507:6:18", + "nodeType": "YulTypedName", + "src": "20507:6:18", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "20515:6:18", + "nodeType": "YulTypedName", + "src": "20515:6:18", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "20523:6:18", + "nodeType": "YulTypedName", + "src": "20523:6:18", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "20531:6:18", + "nodeType": "YulTypedName", + "src": "20531:6:18", + "type": "" + }, + { + "name": "value4", + "nativeSrc": "20539:6:18", + "nodeType": "YulTypedName", + "src": "20539:6:18", + "type": "" + } + ], + "src": "20403:1089:18" + }, + { + "body": { + "nativeSrc": "21598:519:18", + "nodeType": "YulBlock", + "src": "21598:519:18", + "statements": [ + { + "body": { + "nativeSrc": "21644:83:18", + "nodeType": "YulBlock", + "src": "21644:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "21646:77:18", + "nodeType": "YulIdentifier", + "src": "21646:77:18" + }, + "nativeSrc": "21646:79:18", + "nodeType": "YulFunctionCall", + "src": "21646:79:18" + }, + "nativeSrc": "21646:79:18", + "nodeType": "YulExpressionStatement", + "src": "21646:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "21619:7:18", + "nodeType": "YulIdentifier", + "src": "21619:7:18" + }, + { + "name": "headStart", + "nativeSrc": "21628:9:18", + "nodeType": "YulIdentifier", + "src": "21628:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "21615:3:18", + "nodeType": "YulIdentifier", + "src": "21615:3:18" + }, + "nativeSrc": "21615:23:18", + "nodeType": "YulFunctionCall", + "src": "21615:23:18" + }, + { + "kind": "number", + "nativeSrc": "21640:2:18", + "nodeType": "YulLiteral", + "src": "21640:2:18", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "21611:3:18", + "nodeType": "YulIdentifier", + "src": "21611:3:18" + }, + "nativeSrc": "21611:32:18", + "nodeType": "YulFunctionCall", + "src": "21611:32:18" + }, + "nativeSrc": "21608:119:18", + "nodeType": "YulIf", + "src": "21608:119:18" + }, + { + "nativeSrc": "21737:117:18", + "nodeType": "YulBlock", + "src": "21737:117:18", + "statements": [ + { + "nativeSrc": "21752:15:18", + "nodeType": "YulVariableDeclaration", + "src": "21752:15:18", + "value": { + "kind": "number", + "nativeSrc": "21766:1:18", + "nodeType": "YulLiteral", + "src": "21766:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "21756:6:18", + "nodeType": "YulTypedName", + "src": "21756:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "21781:63:18", + "nodeType": "YulAssignment", + "src": "21781:63:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "21816:9:18", + "nodeType": "YulIdentifier", + "src": "21816:9:18" + }, + { + "name": "offset", + "nativeSrc": "21827:6:18", + "nodeType": "YulIdentifier", + "src": "21827:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21812:3:18", + "nodeType": "YulIdentifier", + "src": "21812:3:18" + }, + "nativeSrc": "21812:22:18", + "nodeType": "YulFunctionCall", + "src": "21812:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "21836:7:18", + "nodeType": "YulIdentifier", + "src": "21836:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "21791:20:18", + "nodeType": "YulIdentifier", + "src": "21791:20:18" + }, + "nativeSrc": "21791:53:18", + "nodeType": "YulFunctionCall", + "src": "21791:53:18" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "21781:6:18", + "nodeType": "YulIdentifier", + "src": "21781:6:18" + } + ] + } + ] + }, + { + "nativeSrc": "21864:118:18", + "nodeType": "YulBlock", + "src": "21864:118:18", + "statements": [ + { + "nativeSrc": "21879:16:18", + "nodeType": "YulVariableDeclaration", + "src": "21879:16:18", + "value": { + "kind": "number", + "nativeSrc": "21893:2:18", + "nodeType": "YulLiteral", + "src": "21893:2:18", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "21883:6:18", + "nodeType": "YulTypedName", + "src": "21883:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "21909:63:18", + "nodeType": "YulAssignment", + "src": "21909:63:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "21944:9:18", + "nodeType": "YulIdentifier", + "src": "21944:9:18" + }, + { + "name": "offset", + "nativeSrc": "21955:6:18", + "nodeType": "YulIdentifier", + "src": "21955:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21940:3:18", + "nodeType": "YulIdentifier", + "src": "21940:3:18" + }, + "nativeSrc": "21940:22:18", + "nodeType": "YulFunctionCall", + "src": "21940:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "21964:7:18", + "nodeType": "YulIdentifier", + "src": "21964:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "21919:20:18", + "nodeType": "YulIdentifier", + "src": "21919:20:18" + }, + "nativeSrc": "21919:53:18", + "nodeType": "YulFunctionCall", + "src": "21919:53:18" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "21909:6:18", + "nodeType": "YulIdentifier", + "src": "21909:6:18" + } + ] + } + ] + }, + { + "nativeSrc": "21992:118:18", + "nodeType": "YulBlock", + "src": "21992:118:18", + "statements": [ + { + "nativeSrc": "22007:16:18", + "nodeType": "YulVariableDeclaration", + "src": "22007:16:18", + "value": { + "kind": "number", + "nativeSrc": "22021:2:18", + "nodeType": "YulLiteral", + "src": "22021:2:18", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "22011:6:18", + "nodeType": "YulTypedName", + "src": "22011:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "22037:63:18", + "nodeType": "YulAssignment", + "src": "22037:63:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "22072:9:18", + "nodeType": "YulIdentifier", + "src": "22072:9:18" + }, + { + "name": "offset", + "nativeSrc": "22083:6:18", + "nodeType": "YulIdentifier", + "src": "22083:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22068:3:18", + "nodeType": "YulIdentifier", + "src": "22068:3:18" + }, + "nativeSrc": "22068:22:18", + "nodeType": "YulFunctionCall", + "src": "22068:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "22092:7:18", + "nodeType": "YulIdentifier", + "src": "22092:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "22047:20:18", + "nodeType": "YulIdentifier", + "src": "22047:20:18" + }, + "nativeSrc": "22047:53:18", + "nodeType": "YulFunctionCall", + "src": "22047:53:18" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "22037:6:18", + "nodeType": "YulIdentifier", + "src": "22037:6:18" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256t_uint256", + "nativeSrc": "21498:619:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "21552:9:18", + "nodeType": "YulTypedName", + "src": "21552:9:18", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "21563:7:18", + "nodeType": "YulTypedName", + "src": "21563:7:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "21575:6:18", + "nodeType": "YulTypedName", + "src": "21575:6:18", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "21583:6:18", + "nodeType": "YulTypedName", + "src": "21583:6:18", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "21591:6:18", + "nodeType": "YulTypedName", + "src": "21591:6:18", + "type": "" + } + ], + "src": "21498:619:18" + }, + { + "body": { + "nativeSrc": "22151:152:18", + "nodeType": "YulBlock", + "src": "22151:152:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "22168:1:18", + "nodeType": "YulLiteral", + "src": "22168:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "22171:77:18", + "nodeType": "YulLiteral", + "src": "22171:77:18", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "22161:6:18", + "nodeType": "YulIdentifier", + "src": "22161:6:18" + }, + "nativeSrc": "22161:88:18", + "nodeType": "YulFunctionCall", + "src": "22161:88:18" + }, + "nativeSrc": "22161:88:18", + "nodeType": "YulExpressionStatement", + "src": "22161:88:18" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "22265:1:18", + "nodeType": "YulLiteral", + "src": "22265:1:18", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "22268:4:18", + "nodeType": "YulLiteral", + "src": "22268:4:18", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "22258:6:18", + "nodeType": "YulIdentifier", + "src": "22258:6:18" + }, + "nativeSrc": "22258:15:18", + "nodeType": "YulFunctionCall", + "src": "22258:15:18" + }, + "nativeSrc": "22258:15:18", + "nodeType": "YulExpressionStatement", + "src": "22258:15:18" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "22289:1:18", + "nodeType": "YulLiteral", + "src": "22289:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "22292:4:18", + "nodeType": "YulLiteral", + "src": "22292:4:18", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "22282:6:18", + "nodeType": "YulIdentifier", + "src": "22282:6:18" + }, + "nativeSrc": "22282:15:18", + "nodeType": "YulFunctionCall", + "src": "22282:15:18" + }, + "nativeSrc": "22282:15:18", + "nodeType": "YulExpressionStatement", + "src": "22282:15:18" + } + ] + }, + "name": "panic_error_0x22", + "nativeSrc": "22123:180:18", + "nodeType": "YulFunctionDefinition", + "src": "22123:180:18" + }, + { + "body": { + "nativeSrc": "22360:269:18", + "nodeType": "YulBlock", + "src": "22360:269:18", + "statements": [ + { + "nativeSrc": "22370:22:18", + "nodeType": "YulAssignment", + "src": "22370:22:18", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "22384:4:18", + "nodeType": "YulIdentifier", + "src": "22384:4:18" + }, + { + "kind": "number", + "nativeSrc": "22390:1:18", + "nodeType": "YulLiteral", + "src": "22390:1:18", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "22380:3:18", + "nodeType": "YulIdentifier", + "src": "22380:3:18" + }, + "nativeSrc": "22380:12:18", + "nodeType": "YulFunctionCall", + "src": "22380:12:18" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "22370:6:18", + "nodeType": "YulIdentifier", + "src": "22370:6:18" + } + ] + }, + { + "nativeSrc": "22401:38:18", + "nodeType": "YulVariableDeclaration", + "src": "22401:38:18", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "22431:4:18", + "nodeType": "YulIdentifier", + "src": "22431:4:18" + }, + { + "kind": "number", + "nativeSrc": "22437:1:18", + "nodeType": "YulLiteral", + "src": "22437:1:18", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "22427:3:18", + "nodeType": "YulIdentifier", + "src": "22427:3:18" + }, + "nativeSrc": "22427:12:18", + "nodeType": "YulFunctionCall", + "src": "22427:12:18" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "22405:18:18", + "nodeType": "YulTypedName", + "src": "22405:18:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "22478:51:18", + "nodeType": "YulBlock", + "src": "22478:51:18", + "statements": [ + { + "nativeSrc": "22492:27:18", + "nodeType": "YulAssignment", + "src": "22492:27:18", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "22506:6:18", + "nodeType": "YulIdentifier", + "src": "22506:6:18" + }, + { + "kind": "number", + "nativeSrc": "22514:4:18", + "nodeType": "YulLiteral", + "src": "22514:4:18", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "22502:3:18", + "nodeType": "YulIdentifier", + "src": "22502:3:18" + }, + "nativeSrc": "22502:17:18", + "nodeType": "YulFunctionCall", + "src": "22502:17:18" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "22492:6:18", + "nodeType": "YulIdentifier", + "src": "22492:6:18" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "22458:18:18", + "nodeType": "YulIdentifier", + "src": "22458:18:18" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "22451:6:18", + "nodeType": "YulIdentifier", + "src": "22451:6:18" + }, + "nativeSrc": "22451:26:18", + "nodeType": "YulFunctionCall", + "src": "22451:26:18" + }, + "nativeSrc": "22448:81:18", + "nodeType": "YulIf", + "src": "22448:81:18" + }, + { + "body": { + "nativeSrc": "22581:42:18", + "nodeType": "YulBlock", + "src": "22581:42:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nativeSrc": "22595:16:18", + "nodeType": "YulIdentifier", + "src": "22595:16:18" + }, + "nativeSrc": "22595:18:18", + "nodeType": "YulFunctionCall", + "src": "22595:18:18" + }, + "nativeSrc": "22595:18:18", + "nodeType": "YulExpressionStatement", + "src": "22595:18:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "22545:18:18", + "nodeType": "YulIdentifier", + "src": "22545:18:18" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "22568:6:18", + "nodeType": "YulIdentifier", + "src": "22568:6:18" + }, + { + "kind": "number", + "nativeSrc": "22576:2:18", + "nodeType": "YulLiteral", + "src": "22576:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "22565:2:18", + "nodeType": "YulIdentifier", + "src": "22565:2:18" + }, + "nativeSrc": "22565:14:18", + "nodeType": "YulFunctionCall", + "src": "22565:14:18" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "22542:2:18", + "nodeType": "YulIdentifier", + "src": "22542:2:18" + }, + "nativeSrc": "22542:38:18", + "nodeType": "YulFunctionCall", + "src": "22542:38:18" + }, + "nativeSrc": "22539:84:18", + "nodeType": "YulIf", + "src": "22539:84:18" + } + ] + }, + "name": "extract_byte_array_length", + "nativeSrc": "22309:320:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "22344:4:18", + "nodeType": "YulTypedName", + "src": "22344:4:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "22353:6:18", + "nodeType": "YulTypedName", + "src": "22353:6:18", + "type": "" + } + ], + "src": "22309:320:18" + }, + { + "body": { + "nativeSrc": "22700:53:18", + "nodeType": "YulBlock", + "src": "22700:53:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "22717:3:18", + "nodeType": "YulIdentifier", + "src": "22717:3:18" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "22740:5:18", + "nodeType": "YulIdentifier", + "src": "22740:5:18" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "22722:17:18", + "nodeType": "YulIdentifier", + "src": "22722:17:18" + }, + "nativeSrc": "22722:24:18", + "nodeType": "YulFunctionCall", + "src": "22722:24:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "22710:6:18", + "nodeType": "YulIdentifier", + "src": "22710:6:18" + }, + "nativeSrc": "22710:37:18", + "nodeType": "YulFunctionCall", + "src": "22710:37:18" + }, + "nativeSrc": "22710:37:18", + "nodeType": "YulExpressionStatement", + "src": "22710:37:18" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "22635:118:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "22688:5:18", + "nodeType": "YulTypedName", + "src": "22688:5:18", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "22695:3:18", + "nodeType": "YulTypedName", + "src": "22695:3:18", + "type": "" + } + ], + "src": "22635:118:18" + }, + { + "body": { + "nativeSrc": "22885:206:18", + "nodeType": "YulBlock", + "src": "22885:206:18", + "statements": [ + { + "nativeSrc": "22895:26:18", + "nodeType": "YulAssignment", + "src": "22895:26:18", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "22907:9:18", + "nodeType": "YulIdentifier", + "src": "22907:9:18" + }, + { + "kind": "number", + "nativeSrc": "22918:2:18", + "nodeType": "YulLiteral", + "src": "22918:2:18", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22903:3:18", + "nodeType": "YulIdentifier", + "src": "22903:3:18" + }, + "nativeSrc": "22903:18:18", + "nodeType": "YulFunctionCall", + "src": "22903:18:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "22895:4:18", + "nodeType": "YulIdentifier", + "src": "22895:4:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "22975:6:18", + "nodeType": "YulIdentifier", + "src": "22975:6:18" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "22988:9:18", + "nodeType": "YulIdentifier", + "src": "22988:9:18" + }, + { + "kind": "number", + "nativeSrc": "22999:1:18", + "nodeType": "YulLiteral", + "src": "22999:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22984:3:18", + "nodeType": "YulIdentifier", + "src": "22984:3:18" + }, + "nativeSrc": "22984:17:18", + "nodeType": "YulFunctionCall", + "src": "22984:17:18" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "22931:43:18", + "nodeType": "YulIdentifier", + "src": "22931:43:18" + }, + "nativeSrc": "22931:71:18", + "nodeType": "YulFunctionCall", + "src": "22931:71:18" + }, + "nativeSrc": "22931:71:18", + "nodeType": "YulExpressionStatement", + "src": "22931:71:18" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "23056:6:18", + "nodeType": "YulIdentifier", + "src": "23056:6:18" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "23069:9:18", + "nodeType": "YulIdentifier", + "src": "23069:9:18" + }, + { + "kind": "number", + "nativeSrc": "23080:2:18", + "nodeType": "YulLiteral", + "src": "23080:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23065:3:18", + "nodeType": "YulIdentifier", + "src": "23065:3:18" + }, + "nativeSrc": "23065:18:18", + "nodeType": "YulFunctionCall", + "src": "23065:18:18" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "23012:43:18", + "nodeType": "YulIdentifier", + "src": "23012:43:18" + }, + "nativeSrc": "23012:72:18", + "nodeType": "YulFunctionCall", + "src": "23012:72:18" + }, + "nativeSrc": "23012:72:18", + "nodeType": "YulExpressionStatement", + "src": "23012:72:18" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed", + "nativeSrc": "22759:332:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "22849:9:18", + "nodeType": "YulTypedName", + "src": "22849:9:18", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "22861:6:18", + "nodeType": "YulTypedName", + "src": "22861:6:18", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "22869:6:18", + "nodeType": "YulTypedName", + "src": "22869:6:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "22880:4:18", + "nodeType": "YulTypedName", + "src": "22880:4:18", + "type": "" + } + ], + "src": "22759:332:18" + }, + { + "body": { + "nativeSrc": "23223:206:18", + "nodeType": "YulBlock", + "src": "23223:206:18", + "statements": [ + { + "nativeSrc": "23233:26:18", + "nodeType": "YulAssignment", + "src": "23233:26:18", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "23245:9:18", + "nodeType": "YulIdentifier", + "src": "23245:9:18" + }, + { + "kind": "number", + "nativeSrc": "23256:2:18", + "nodeType": "YulLiteral", + "src": "23256:2:18", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23241:3:18", + "nodeType": "YulIdentifier", + "src": "23241:3:18" + }, + "nativeSrc": "23241:18:18", + "nodeType": "YulFunctionCall", + "src": "23241:18:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "23233:4:18", + "nodeType": "YulIdentifier", + "src": "23233:4:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "23313:6:18", + "nodeType": "YulIdentifier", + "src": "23313:6:18" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "23326:9:18", + "nodeType": "YulIdentifier", + "src": "23326:9:18" + }, + { + "kind": "number", + "nativeSrc": "23337:1:18", + "nodeType": "YulLiteral", + "src": "23337:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23322:3:18", + "nodeType": "YulIdentifier", + "src": "23322:3:18" + }, + "nativeSrc": "23322:17:18", + "nodeType": "YulFunctionCall", + "src": "23322:17:18" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "23269:43:18", + "nodeType": "YulIdentifier", + "src": "23269:43:18" + }, + "nativeSrc": "23269:71:18", + "nodeType": "YulFunctionCall", + "src": "23269:71:18" + }, + "nativeSrc": "23269:71:18", + "nodeType": "YulExpressionStatement", + "src": "23269:71:18" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "23394:6:18", + "nodeType": "YulIdentifier", + "src": "23394:6:18" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "23407:9:18", + "nodeType": "YulIdentifier", + "src": "23407:9:18" + }, + { + "kind": "number", + "nativeSrc": "23418:2:18", + "nodeType": "YulLiteral", + "src": "23418:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23403:3:18", + "nodeType": "YulIdentifier", + "src": "23403:3:18" + }, + "nativeSrc": "23403:18:18", + "nodeType": "YulFunctionCall", + "src": "23403:18:18" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "23350:43:18", + "nodeType": "YulIdentifier", + "src": "23350:43:18" + }, + "nativeSrc": "23350:72:18", + "nodeType": "YulFunctionCall", + "src": "23350:72:18" + }, + "nativeSrc": "23350:72:18", + "nodeType": "YulExpressionStatement", + "src": "23350:72:18" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed", + "nativeSrc": "23097:332:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "23187:9:18", + "nodeType": "YulTypedName", + "src": "23187:9:18", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "23199:6:18", + "nodeType": "YulTypedName", + "src": "23199:6:18", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "23207:6:18", + "nodeType": "YulTypedName", + "src": "23207:6:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "23218:4:18", + "nodeType": "YulTypedName", + "src": "23218:4:18", + "type": "" + } + ], + "src": "23097:332:18" + }, + { + "body": { + "nativeSrc": "23463:152:18", + "nodeType": "YulBlock", + "src": "23463:152:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "23480:1:18", + "nodeType": "YulLiteral", + "src": "23480:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "23483:77:18", + "nodeType": "YulLiteral", + "src": "23483:77:18", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "23473:6:18", + "nodeType": "YulIdentifier", + "src": "23473:6:18" + }, + "nativeSrc": "23473:88:18", + "nodeType": "YulFunctionCall", + "src": "23473:88:18" + }, + "nativeSrc": "23473:88:18", + "nodeType": "YulExpressionStatement", + "src": "23473:88:18" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "23577:1:18", + "nodeType": "YulLiteral", + "src": "23577:1:18", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "23580:4:18", + "nodeType": "YulLiteral", + "src": "23580:4:18", + "type": "", + "value": "0x32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "23570:6:18", + "nodeType": "YulIdentifier", + "src": "23570:6:18" + }, + "nativeSrc": "23570:15:18", + "nodeType": "YulFunctionCall", + "src": "23570:15:18" + }, + "nativeSrc": "23570:15:18", + "nodeType": "YulExpressionStatement", + "src": "23570:15:18" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "23601:1:18", + "nodeType": "YulLiteral", + "src": "23601:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "23604:4:18", + "nodeType": "YulLiteral", + "src": "23604:4:18", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "23594:6:18", + "nodeType": "YulIdentifier", + "src": "23594:6:18" + }, + "nativeSrc": "23594:15:18", + "nodeType": "YulFunctionCall", + "src": "23594:15:18" + }, + "nativeSrc": "23594:15:18", + "nodeType": "YulExpressionStatement", + "src": "23594:15:18" + } + ] + }, + "name": "panic_error_0x32", + "nativeSrc": "23435:180:18", + "nodeType": "YulFunctionDefinition", + "src": "23435:180:18" + }, + { + "body": { + "nativeSrc": "23747:206:18", + "nodeType": "YulBlock", + "src": "23747:206:18", + "statements": [ + { + "nativeSrc": "23757:26:18", + "nodeType": "YulAssignment", + "src": "23757:26:18", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "23769:9:18", + "nodeType": "YulIdentifier", + "src": "23769:9:18" + }, + { + "kind": "number", + "nativeSrc": "23780:2:18", + "nodeType": "YulLiteral", + "src": "23780:2:18", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23765:3:18", + "nodeType": "YulIdentifier", + "src": "23765:3:18" + }, + "nativeSrc": "23765:18:18", + "nodeType": "YulFunctionCall", + "src": "23765:18:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "23757:4:18", + "nodeType": "YulIdentifier", + "src": "23757:4:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "23837:6:18", + "nodeType": "YulIdentifier", + "src": "23837:6:18" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "23850:9:18", + "nodeType": "YulIdentifier", + "src": "23850:9:18" + }, + { + "kind": "number", + "nativeSrc": "23861:1:18", + "nodeType": "YulLiteral", + "src": "23861:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23846:3:18", + "nodeType": "YulIdentifier", + "src": "23846:3:18" + }, + "nativeSrc": "23846:17:18", + "nodeType": "YulFunctionCall", + "src": "23846:17:18" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "23793:43:18", + "nodeType": "YulIdentifier", + "src": "23793:43:18" + }, + "nativeSrc": "23793:71:18", + "nodeType": "YulFunctionCall", + "src": "23793:71:18" + }, + "nativeSrc": "23793:71:18", + "nodeType": "YulExpressionStatement", + "src": "23793:71:18" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "23918:6:18", + "nodeType": "YulIdentifier", + "src": "23918:6:18" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "23931:9:18", + "nodeType": "YulIdentifier", + "src": "23931:9:18" + }, + { + "kind": "number", + "nativeSrc": "23942:2:18", + "nodeType": "YulLiteral", + "src": "23942:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23927:3:18", + "nodeType": "YulIdentifier", + "src": "23927:3:18" + }, + "nativeSrc": "23927:18:18", + "nodeType": "YulFunctionCall", + "src": "23927:18:18" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "23874:43:18", + "nodeType": "YulIdentifier", + "src": "23874:43:18" + }, + "nativeSrc": "23874:72:18", + "nodeType": "YulFunctionCall", + "src": "23874:72:18" + }, + "nativeSrc": "23874:72:18", + "nodeType": "YulExpressionStatement", + "src": "23874:72:18" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed", + "nativeSrc": "23621:332:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "23711:9:18", + "nodeType": "YulTypedName", + "src": "23711:9:18", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "23723:6:18", + "nodeType": "YulTypedName", + "src": "23723:6:18", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "23731:6:18", + "nodeType": "YulTypedName", + "src": "23731:6:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "23742:4:18", + "nodeType": "YulTypedName", + "src": "23742:4:18", + "type": "" + } + ], + "src": "23621:332:18" + }, + { + "body": { + "nativeSrc": "24012:32:18", + "nodeType": "YulBlock", + "src": "24012:32:18", + "statements": [ + { + "nativeSrc": "24022:16:18", + "nodeType": "YulAssignment", + "src": "24022:16:18", + "value": { + "name": "value", + "nativeSrc": "24033:5:18", + "nodeType": "YulIdentifier", + "src": "24033:5:18" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "24022:7:18", + "nodeType": "YulIdentifier", + "src": "24022:7:18" + } + ] + } + ] + }, + "name": "cleanup_t_rational_1_by_1", + "nativeSrc": "23959:85:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "23994:5:18", + "nodeType": "YulTypedName", + "src": "23994:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "24004:7:18", + "nodeType": "YulTypedName", + "src": "24004:7:18", + "type": "" + } + ], + "src": "23959:85:18" + }, + { + "body": { + "nativeSrc": "24082:28:18", + "nodeType": "YulBlock", + "src": "24082:28:18", + "statements": [ + { + "nativeSrc": "24092:12:18", + "nodeType": "YulAssignment", + "src": "24092:12:18", + "value": { + "name": "value", + "nativeSrc": "24099:5:18", + "nodeType": "YulIdentifier", + "src": "24099:5:18" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "24092:3:18", + "nodeType": "YulIdentifier", + "src": "24092:3:18" + } + ] + } + ] + }, + "name": "identity", + "nativeSrc": "24050:60:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "24068:5:18", + "nodeType": "YulTypedName", + "src": "24068:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "24078:3:18", + "nodeType": "YulTypedName", + "src": "24078:3:18", + "type": "" + } + ], + "src": "24050:60:18" + }, + { + "body": { + "nativeSrc": "24184:90:18", + "nodeType": "YulBlock", + "src": "24184:90:18", + "statements": [ + { + "nativeSrc": "24194:74:18", + "nodeType": "YulAssignment", + "src": "24194:74:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "24260:5:18", + "nodeType": "YulIdentifier", + "src": "24260:5:18" + } + ], + "functionName": { + "name": "cleanup_t_rational_1_by_1", + "nativeSrc": "24234:25:18", + "nodeType": "YulIdentifier", + "src": "24234:25:18" + }, + "nativeSrc": "24234:32:18", + "nodeType": "YulFunctionCall", + "src": "24234:32:18" + } + ], + "functionName": { + "name": "identity", + "nativeSrc": "24225:8:18", + "nodeType": "YulIdentifier", + "src": "24225:8:18" + }, + "nativeSrc": "24225:42:18", + "nodeType": "YulFunctionCall", + "src": "24225:42:18" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "24207:17:18", + "nodeType": "YulIdentifier", + "src": "24207:17:18" + }, + "nativeSrc": "24207:61:18", + "nodeType": "YulFunctionCall", + "src": "24207:61:18" + }, + "variableNames": [ + { + "name": "converted", + "nativeSrc": "24194:9:18", + "nodeType": "YulIdentifier", + "src": "24194:9:18" + } + ] + } + ] + }, + "name": "convert_t_rational_1_by_1_to_t_uint256", + "nativeSrc": "24116:158:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "24164:5:18", + "nodeType": "YulTypedName", + "src": "24164:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nativeSrc": "24174:9:18", + "nodeType": "YulTypedName", + "src": "24174:9:18", + "type": "" + } + ], + "src": "24116:158:18" + }, + { + "body": { + "nativeSrc": "24353:74:18", + "nodeType": "YulBlock", + "src": "24353:74:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "24370:3:18", + "nodeType": "YulIdentifier", + "src": "24370:3:18" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "24414:5:18", + "nodeType": "YulIdentifier", + "src": "24414:5:18" + } + ], + "functionName": { + "name": "convert_t_rational_1_by_1_to_t_uint256", + "nativeSrc": "24375:38:18", + "nodeType": "YulIdentifier", + "src": "24375:38:18" + }, + "nativeSrc": "24375:45:18", + "nodeType": "YulFunctionCall", + "src": "24375:45:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "24363:6:18", + "nodeType": "YulIdentifier", + "src": "24363:6:18" + }, + "nativeSrc": "24363:58:18", + "nodeType": "YulFunctionCall", + "src": "24363:58:18" + }, + "nativeSrc": "24363:58:18", + "nodeType": "YulExpressionStatement", + "src": "24363:58:18" + } + ] + }, + "name": "abi_encode_t_rational_1_by_1_to_t_uint256_fromStack", + "nativeSrc": "24280:147:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "24341:5:18", + "nodeType": "YulTypedName", + "src": "24341:5:18", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "24348:3:18", + "nodeType": "YulTypedName", + "src": "24348:3:18", + "type": "" + } + ], + "src": "24280:147:18" + }, + { + "body": { + "nativeSrc": "24539:132:18", + "nodeType": "YulBlock", + "src": "24539:132:18", + "statements": [ + { + "nativeSrc": "24549:26:18", + "nodeType": "YulAssignment", + "src": "24549:26:18", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "24561:9:18", + "nodeType": "YulIdentifier", + "src": "24561:9:18" + }, + { + "kind": "number", + "nativeSrc": "24572:2:18", + "nodeType": "YulLiteral", + "src": "24572:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24557:3:18", + "nodeType": "YulIdentifier", + "src": "24557:3:18" + }, + "nativeSrc": "24557:18:18", + "nodeType": "YulFunctionCall", + "src": "24557:18:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "24549:4:18", + "nodeType": "YulIdentifier", + "src": "24549:4:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "24637:6:18", + "nodeType": "YulIdentifier", + "src": "24637:6:18" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "24650:9:18", + "nodeType": "YulIdentifier", + "src": "24650:9:18" + }, + { + "kind": "number", + "nativeSrc": "24661:1:18", + "nodeType": "YulLiteral", + "src": "24661:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24646:3:18", + "nodeType": "YulIdentifier", + "src": "24646:3:18" + }, + "nativeSrc": "24646:17:18", + "nodeType": "YulFunctionCall", + "src": "24646:17:18" + } + ], + "functionName": { + "name": "abi_encode_t_rational_1_by_1_to_t_uint256_fromStack", + "nativeSrc": "24585:51:18", + "nodeType": "YulIdentifier", + "src": "24585:51:18" + }, + "nativeSrc": "24585:79:18", + "nodeType": "YulFunctionCall", + "src": "24585:79:18" + }, + "nativeSrc": "24585:79:18", + "nodeType": "YulExpressionStatement", + "src": "24585:79:18" + } + ] + }, + "name": "abi_encode_tuple_t_rational_1_by_1__to_t_uint256__fromStack_reversed", + "nativeSrc": "24433:238:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "24511:9:18", + "nodeType": "YulTypedName", + "src": "24511:9:18", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "24523:6:18", + "nodeType": "YulTypedName", + "src": "24523:6:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "24534:4:18", + "nodeType": "YulTypedName", + "src": "24534:4:18", + "type": "" + } + ], + "src": "24433:238:18" + }, + { + "body": { + "nativeSrc": "24783:67:18", + "nodeType": "YulBlock", + "src": "24783:67:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "24805:6:18", + "nodeType": "YulIdentifier", + "src": "24805:6:18" + }, + { + "kind": "number", + "nativeSrc": "24813:1:18", + "nodeType": "YulLiteral", + "src": "24813:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24801:3:18", + "nodeType": "YulIdentifier", + "src": "24801:3:18" + }, + "nativeSrc": "24801:14:18", + "nodeType": "YulFunctionCall", + "src": "24801:14:18" + }, + { + "hexValue": "4163636f756e742063616e6e6f7420626520656d707479", + "kind": "string", + "nativeSrc": "24817:25:18", + "nodeType": "YulLiteral", + "src": "24817:25:18", + "type": "", + "value": "Account cannot be empty" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "24794:6:18", + "nodeType": "YulIdentifier", + "src": "24794:6:18" + }, + "nativeSrc": "24794:49:18", + "nodeType": "YulFunctionCall", + "src": "24794:49:18" + }, + "nativeSrc": "24794:49:18", + "nodeType": "YulExpressionStatement", + "src": "24794:49:18" + } + ] + }, + "name": "store_literal_in_memory_c2ef5cec3cd5807ca7e192fb77bd9e3da1378958f99ebf24571ab659b0b36619", + "nativeSrc": "24677:173:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "24775:6:18", + "nodeType": "YulTypedName", + "src": "24775:6:18", + "type": "" + } + ], + "src": "24677:173:18" + }, + { + "body": { + "nativeSrc": "25002:220:18", + "nodeType": "YulBlock", + "src": "25002:220:18", + "statements": [ + { + "nativeSrc": "25012:74:18", + "nodeType": "YulAssignment", + "src": "25012:74:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "25078:3:18", + "nodeType": "YulIdentifier", + "src": "25078:3:18" + }, + { + "kind": "number", + "nativeSrc": "25083:2:18", + "nodeType": "YulLiteral", + "src": "25083:2:18", + "type": "", + "value": "23" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "25019:58:18", + "nodeType": "YulIdentifier", + "src": "25019:58:18" + }, + "nativeSrc": "25019:67:18", + "nodeType": "YulFunctionCall", + "src": "25019:67:18" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "25012:3:18", + "nodeType": "YulIdentifier", + "src": "25012:3:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "25184:3:18", + "nodeType": "YulIdentifier", + "src": "25184:3:18" + } + ], + "functionName": { + "name": "store_literal_in_memory_c2ef5cec3cd5807ca7e192fb77bd9e3da1378958f99ebf24571ab659b0b36619", + "nativeSrc": "25095:88:18", + "nodeType": "YulIdentifier", + "src": "25095:88:18" + }, + "nativeSrc": "25095:93:18", + "nodeType": "YulFunctionCall", + "src": "25095:93:18" + }, + "nativeSrc": "25095:93:18", + "nodeType": "YulExpressionStatement", + "src": "25095:93:18" + }, + { + "nativeSrc": "25197:19:18", + "nodeType": "YulAssignment", + "src": "25197:19:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "25208:3:18", + "nodeType": "YulIdentifier", + "src": "25208:3:18" + }, + { + "kind": "number", + "nativeSrc": "25213:2:18", + "nodeType": "YulLiteral", + "src": "25213:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25204:3:18", + "nodeType": "YulIdentifier", + "src": "25204:3:18" + }, + "nativeSrc": "25204:12:18", + "nodeType": "YulFunctionCall", + "src": "25204:12:18" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "25197:3:18", + "nodeType": "YulIdentifier", + "src": "25197:3:18" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_c2ef5cec3cd5807ca7e192fb77bd9e3da1378958f99ebf24571ab659b0b36619_to_t_string_memory_ptr_fromStack", + "nativeSrc": "24856:366:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "24990:3:18", + "nodeType": "YulTypedName", + "src": "24990:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "24998:3:18", + "nodeType": "YulTypedName", + "src": "24998:3:18", + "type": "" + } + ], + "src": "24856:366:18" + }, + { + "body": { + "nativeSrc": "25399:248:18", + "nodeType": "YulBlock", + "src": "25399:248:18", + "statements": [ + { + "nativeSrc": "25409:26:18", + "nodeType": "YulAssignment", + "src": "25409:26:18", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "25421:9:18", + "nodeType": "YulIdentifier", + "src": "25421:9:18" + }, + { + "kind": "number", + "nativeSrc": "25432:2:18", + "nodeType": "YulLiteral", + "src": "25432:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25417:3:18", + "nodeType": "YulIdentifier", + "src": "25417:3:18" + }, + "nativeSrc": "25417:18:18", + "nodeType": "YulFunctionCall", + "src": "25417:18:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "25409:4:18", + "nodeType": "YulIdentifier", + "src": "25409:4:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "25456:9:18", + "nodeType": "YulIdentifier", + "src": "25456:9:18" + }, + { + "kind": "number", + "nativeSrc": "25467:1:18", + "nodeType": "YulLiteral", + "src": "25467:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25452:3:18", + "nodeType": "YulIdentifier", + "src": "25452:3:18" + }, + "nativeSrc": "25452:17:18", + "nodeType": "YulFunctionCall", + "src": "25452:17:18" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "25475:4:18", + "nodeType": "YulIdentifier", + "src": "25475:4:18" + }, + { + "name": "headStart", + "nativeSrc": "25481:9:18", + "nodeType": "YulIdentifier", + "src": "25481:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "25471:3:18", + "nodeType": "YulIdentifier", + "src": "25471:3:18" + }, + "nativeSrc": "25471:20:18", + "nodeType": "YulFunctionCall", + "src": "25471:20:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "25445:6:18", + "nodeType": "YulIdentifier", + "src": "25445:6:18" + }, + "nativeSrc": "25445:47:18", + "nodeType": "YulFunctionCall", + "src": "25445:47:18" + }, + "nativeSrc": "25445:47:18", + "nodeType": "YulExpressionStatement", + "src": "25445:47:18" + }, + { + "nativeSrc": "25501:139:18", + "nodeType": "YulAssignment", + "src": "25501:139:18", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "25635:4:18", + "nodeType": "YulIdentifier", + "src": "25635:4:18" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_c2ef5cec3cd5807ca7e192fb77bd9e3da1378958f99ebf24571ab659b0b36619_to_t_string_memory_ptr_fromStack", + "nativeSrc": "25509:124:18", + "nodeType": "YulIdentifier", + "src": "25509:124:18" + }, + "nativeSrc": "25509:131:18", + "nodeType": "YulFunctionCall", + "src": "25509:131:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "25501:4:18", + "nodeType": "YulIdentifier", + "src": "25501:4:18" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_c2ef5cec3cd5807ca7e192fb77bd9e3da1378958f99ebf24571ab659b0b36619__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "25228:419:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "25379:9:18", + "nodeType": "YulTypedName", + "src": "25379:9:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "25394:4:18", + "nodeType": "YulTypedName", + "src": "25394:4:18", + "type": "" + } + ], + "src": "25228:419:18" + }, + { + "body": { + "nativeSrc": "25767:34:18", + "nodeType": "YulBlock", + "src": "25767:34:18", + "statements": [ + { + "nativeSrc": "25777:18:18", + "nodeType": "YulAssignment", + "src": "25777:18:18", + "value": { + "name": "pos", + "nativeSrc": "25792:3:18", + "nodeType": "YulIdentifier", + "src": "25792:3:18" + }, + "variableNames": [ + { + "name": "updated_pos", + "nativeSrc": "25777:11:18", + "nodeType": "YulIdentifier", + "src": "25777:11:18" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "25653:148:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "25739:3:18", + "nodeType": "YulTypedName", + "src": "25739:3:18", + "type": "" + }, + { + "name": "length", + "nativeSrc": "25744:6:18", + "nodeType": "YulTypedName", + "src": "25744:6:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nativeSrc": "25755:11:18", + "nodeType": "YulTypedName", + "src": "25755:11:18", + "type": "" + } + ], + "src": "25653:148:18" + }, + { + "body": { + "nativeSrc": "25861:87:18", + "nodeType": "YulBlock", + "src": "25861:87:18", + "statements": [ + { + "nativeSrc": "25871:11:18", + "nodeType": "YulAssignment", + "src": "25871:11:18", + "value": { + "name": "ptr", + "nativeSrc": "25879:3:18", + "nodeType": "YulIdentifier", + "src": "25879:3:18" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "25871:4:18", + "nodeType": "YulIdentifier", + "src": "25871:4:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "25899:1:18", + "nodeType": "YulLiteral", + "src": "25899:1:18", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nativeSrc": "25902:3:18", + "nodeType": "YulIdentifier", + "src": "25902:3:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "25892:6:18", + "nodeType": "YulIdentifier", + "src": "25892:6:18" + }, + "nativeSrc": "25892:14:18", + "nodeType": "YulFunctionCall", + "src": "25892:14:18" + }, + "nativeSrc": "25892:14:18", + "nodeType": "YulExpressionStatement", + "src": "25892:14:18" + }, + { + "nativeSrc": "25915:26:18", + "nodeType": "YulAssignment", + "src": "25915:26:18", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "25933:1:18", + "nodeType": "YulLiteral", + "src": "25933:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "25936:4:18", + "nodeType": "YulLiteral", + "src": "25936:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nativeSrc": "25923:9:18", + "nodeType": "YulIdentifier", + "src": "25923:9:18" + }, + "nativeSrc": "25923:18:18", + "nodeType": "YulFunctionCall", + "src": "25923:18:18" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "25915:4:18", + "nodeType": "YulIdentifier", + "src": "25915:4:18" + } + ] + } + ] + }, + "name": "array_dataslot_t_string_storage", + "nativeSrc": "25807:141:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nativeSrc": "25848:3:18", + "nodeType": "YulTypedName", + "src": "25848:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nativeSrc": "25856:4:18", + "nodeType": "YulTypedName", + "src": "25856:4:18", + "type": "" + } + ], + "src": "25807:141:18" + }, + { + "body": { + "nativeSrc": "26085:767:18", + "nodeType": "YulBlock", + "src": "26085:767:18", + "statements": [ + { + "nativeSrc": "26095:29:18", + "nodeType": "YulVariableDeclaration", + "src": "26095:29:18", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "26118:5:18", + "nodeType": "YulIdentifier", + "src": "26118:5:18" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "26112:5:18", + "nodeType": "YulIdentifier", + "src": "26112:5:18" + }, + "nativeSrc": "26112:12:18", + "nodeType": "YulFunctionCall", + "src": "26112:12:18" + }, + "variables": [ + { + "name": "slotValue", + "nativeSrc": "26099:9:18", + "nodeType": "YulTypedName", + "src": "26099:9:18", + "type": "" + } + ] + }, + { + "nativeSrc": "26133:50:18", + "nodeType": "YulVariableDeclaration", + "src": "26133:50:18", + "value": { + "arguments": [ + { + "name": "slotValue", + "nativeSrc": "26173:9:18", + "nodeType": "YulIdentifier", + "src": "26173:9:18" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nativeSrc": "26147:25:18", + "nodeType": "YulIdentifier", + "src": "26147:25:18" + }, + "nativeSrc": "26147:36:18", + "nodeType": "YulFunctionCall", + "src": "26147:36:18" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "26137:6:18", + "nodeType": "YulTypedName", + "src": "26137:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "26192:96:18", + "nodeType": "YulAssignment", + "src": "26192:96:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "26276:3:18", + "nodeType": "YulIdentifier", + "src": "26276:3:18" + }, + { + "name": "length", + "nativeSrc": "26281:6:18", + "nodeType": "YulIdentifier", + "src": "26281:6:18" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "26199:76:18", + "nodeType": "YulIdentifier", + "src": "26199:76:18" + }, + "nativeSrc": "26199:89:18", + "nodeType": "YulFunctionCall", + "src": "26199:89:18" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "26192:3:18", + "nodeType": "YulIdentifier", + "src": "26192:3:18" + } + ] + }, + { + "cases": [ + { + "body": { + "nativeSrc": "26337:159:18", + "nodeType": "YulBlock", + "src": "26337:159:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "26390:3:18", + "nodeType": "YulIdentifier", + "src": "26390:3:18" + }, + { + "arguments": [ + { + "name": "slotValue", + "nativeSrc": "26399:9:18", + "nodeType": "YulIdentifier", + "src": "26399:9:18" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "26414:4:18", + "nodeType": "YulLiteral", + "src": "26414:4:18", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "26410:3:18", + "nodeType": "YulIdentifier", + "src": "26410:3:18" + }, + "nativeSrc": "26410:9:18", + "nodeType": "YulFunctionCall", + "src": "26410:9:18" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "26395:3:18", + "nodeType": "YulIdentifier", + "src": "26395:3:18" + }, + "nativeSrc": "26395:25:18", + "nodeType": "YulFunctionCall", + "src": "26395:25:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "26383:6:18", + "nodeType": "YulIdentifier", + "src": "26383:6:18" + }, + "nativeSrc": "26383:38:18", + "nodeType": "YulFunctionCall", + "src": "26383:38:18" + }, + "nativeSrc": "26383:38:18", + "nodeType": "YulExpressionStatement", + "src": "26383:38:18" + }, + { + "nativeSrc": "26434:52:18", + "nodeType": "YulAssignment", + "src": "26434:52:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "26445:3:18", + "nodeType": "YulIdentifier", + "src": "26445:3:18" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "26454:6:18", + "nodeType": "YulIdentifier", + "src": "26454:6:18" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nativeSrc": "26476:6:18", + "nodeType": "YulIdentifier", + "src": "26476:6:18" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "26469:6:18", + "nodeType": "YulIdentifier", + "src": "26469:6:18" + }, + "nativeSrc": "26469:14:18", + "nodeType": "YulFunctionCall", + "src": "26469:14:18" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "26462:6:18", + "nodeType": "YulIdentifier", + "src": "26462:6:18" + }, + "nativeSrc": "26462:22:18", + "nodeType": "YulFunctionCall", + "src": "26462:22:18" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "26450:3:18", + "nodeType": "YulIdentifier", + "src": "26450:3:18" + }, + "nativeSrc": "26450:35:18", + "nodeType": "YulFunctionCall", + "src": "26450:35:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26441:3:18", + "nodeType": "YulIdentifier", + "src": "26441:3:18" + }, + "nativeSrc": "26441:45:18", + "nodeType": "YulFunctionCall", + "src": "26441:45:18" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "26434:3:18", + "nodeType": "YulIdentifier", + "src": "26434:3:18" + } + ] + } + ] + }, + "nativeSrc": "26330:166:18", + "nodeType": "YulCase", + "src": "26330:166:18", + "value": { + "kind": "number", + "nativeSrc": "26335:1:18", + "nodeType": "YulLiteral", + "src": "26335:1:18", + "type": "", + "value": "0" + } + }, + { + "body": { + "nativeSrc": "26512:334:18", + "nodeType": "YulBlock", + "src": "26512:334:18", + "statements": [ + { + "nativeSrc": "26557:53:18", + "nodeType": "YulVariableDeclaration", + "src": "26557:53:18", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "26604:5:18", + "nodeType": "YulIdentifier", + "src": "26604:5:18" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nativeSrc": "26572:31:18", + "nodeType": "YulIdentifier", + "src": "26572:31:18" + }, + "nativeSrc": "26572:38:18", + "nodeType": "YulFunctionCall", + "src": "26572:38:18" + }, + "variables": [ + { + "name": "dataPos", + "nativeSrc": "26561:7:18", + "nodeType": "YulTypedName", + "src": "26561:7:18", + "type": "" + } + ] + }, + { + "nativeSrc": "26623:10:18", + "nodeType": "YulVariableDeclaration", + "src": "26623:10:18", + "value": { + "kind": "number", + "nativeSrc": "26632:1:18", + "nodeType": "YulLiteral", + "src": "26632:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "26627:1:18", + "nodeType": "YulTypedName", + "src": "26627:1:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "26690:110:18", + "nodeType": "YulBlock", + "src": "26690:110:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "26719:3:18", + "nodeType": "YulIdentifier", + "src": "26719:3:18" + }, + { + "name": "i", + "nativeSrc": "26724:1:18", + "nodeType": "YulIdentifier", + "src": "26724:1:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26715:3:18", + "nodeType": "YulIdentifier", + "src": "26715:3:18" + }, + "nativeSrc": "26715:11:18", + "nodeType": "YulFunctionCall", + "src": "26715:11:18" + }, + { + "arguments": [ + { + "name": "dataPos", + "nativeSrc": "26734:7:18", + "nodeType": "YulIdentifier", + "src": "26734:7:18" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "26728:5:18", + "nodeType": "YulIdentifier", + "src": "26728:5:18" + }, + "nativeSrc": "26728:14:18", + "nodeType": "YulFunctionCall", + "src": "26728:14:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "26708:6:18", + "nodeType": "YulIdentifier", + "src": "26708:6:18" + }, + "nativeSrc": "26708:35:18", + "nodeType": "YulFunctionCall", + "src": "26708:35:18" + }, + "nativeSrc": "26708:35:18", + "nodeType": "YulExpressionStatement", + "src": "26708:35:18" + }, + { + "nativeSrc": "26760:26:18", + "nodeType": "YulAssignment", + "src": "26760:26:18", + "value": { + "arguments": [ + { + "name": "dataPos", + "nativeSrc": "26775:7:18", + "nodeType": "YulIdentifier", + "src": "26775:7:18" + }, + { + "kind": "number", + "nativeSrc": "26784:1:18", + "nodeType": "YulLiteral", + "src": "26784:1:18", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26771:3:18", + "nodeType": "YulIdentifier", + "src": "26771:3:18" + }, + "nativeSrc": "26771:15:18", + "nodeType": "YulFunctionCall", + "src": "26771:15:18" + }, + "variableNames": [ + { + "name": "dataPos", + "nativeSrc": "26760:7:18", + "nodeType": "YulIdentifier", + "src": "26760:7:18" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "26657:1:18", + "nodeType": "YulIdentifier", + "src": "26657:1:18" + }, + { + "name": "length", + "nativeSrc": "26660:6:18", + "nodeType": "YulIdentifier", + "src": "26660:6:18" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "26654:2:18", + "nodeType": "YulIdentifier", + "src": "26654:2:18" + }, + "nativeSrc": "26654:13:18", + "nodeType": "YulFunctionCall", + "src": "26654:13:18" + }, + "nativeSrc": "26646:154:18", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "26668:21:18", + "nodeType": "YulBlock", + "src": "26668:21:18", + "statements": [ + { + "nativeSrc": "26670:17:18", + "nodeType": "YulAssignment", + "src": "26670:17:18", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "26679:1:18", + "nodeType": "YulIdentifier", + "src": "26679:1:18" + }, + { + "kind": "number", + "nativeSrc": "26682:4:18", + "nodeType": "YulLiteral", + "src": "26682:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26675:3:18", + "nodeType": "YulIdentifier", + "src": "26675:3:18" + }, + "nativeSrc": "26675:12:18", + "nodeType": "YulFunctionCall", + "src": "26675:12:18" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "26670:1:18", + "nodeType": "YulIdentifier", + "src": "26670:1:18" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "26650:3:18", + "nodeType": "YulBlock", + "src": "26650:3:18", + "statements": [] + }, + "src": "26646:154:18" + }, + { + "nativeSrc": "26813:23:18", + "nodeType": "YulAssignment", + "src": "26813:23:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "26824:3:18", + "nodeType": "YulIdentifier", + "src": "26824:3:18" + }, + { + "name": "length", + "nativeSrc": "26829:6:18", + "nodeType": "YulIdentifier", + "src": "26829:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26820:3:18", + "nodeType": "YulIdentifier", + "src": "26820:3:18" + }, + "nativeSrc": "26820:16:18", + "nodeType": "YulFunctionCall", + "src": "26820:16:18" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "26813:3:18", + "nodeType": "YulIdentifier", + "src": "26813:3:18" + } + ] + } + ] + }, + "nativeSrc": "26505:341:18", + "nodeType": "YulCase", + "src": "26505:341:18", + "value": { + "kind": "number", + "nativeSrc": "26510:1:18", + "nodeType": "YulLiteral", + "src": "26510:1:18", + "type": "", + "value": "1" + } + } + ], + "expression": { + "arguments": [ + { + "name": "slotValue", + "nativeSrc": "26308:9:18", + "nodeType": "YulIdentifier", + "src": "26308:9:18" + }, + { + "kind": "number", + "nativeSrc": "26319:1:18", + "nodeType": "YulLiteral", + "src": "26319:1:18", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "26304:3:18", + "nodeType": "YulIdentifier", + "src": "26304:3:18" + }, + "nativeSrc": "26304:17:18", + "nodeType": "YulFunctionCall", + "src": "26304:17:18" + }, + "nativeSrc": "26297:549:18", + "nodeType": "YulSwitch", + "src": "26297:549:18" + } + ] + }, + "name": "abi_encode_t_string_storage_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "25978:874:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "26066:5:18", + "nodeType": "YulTypedName", + "src": "26066:5:18", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "26073:3:18", + "nodeType": "YulTypedName", + "src": "26073:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "26081:3:18", + "nodeType": "YulTypedName", + "src": "26081:3:18", + "type": "" + } + ], + "src": "25978:874:18" + }, + { + "body": { + "nativeSrc": "26964:56:18", + "nodeType": "YulBlock", + "src": "26964:56:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "26986:6:18", + "nodeType": "YulIdentifier", + "src": "26986:6:18" + }, + { + "kind": "number", + "nativeSrc": "26994:1:18", + "nodeType": "YulLiteral", + "src": "26994:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26982:3:18", + "nodeType": "YulIdentifier", + "src": "26982:3:18" + }, + "nativeSrc": "26982:14:18", + "nodeType": "YulFunctionCall", + "src": "26982:14:18" + }, + { + "hexValue": "2f6170692f76312f6e66742f", + "kind": "string", + "nativeSrc": "26998:14:18", + "nodeType": "YulLiteral", + "src": "26998:14:18", + "type": "", + "value": "/api/v1/nft/" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "26975:6:18", + "nodeType": "YulIdentifier", + "src": "26975:6:18" + }, + "nativeSrc": "26975:38:18", + "nodeType": "YulFunctionCall", + "src": "26975:38:18" + }, + "nativeSrc": "26975:38:18", + "nodeType": "YulExpressionStatement", + "src": "26975:38:18" + } + ] + }, + "name": "store_literal_in_memory_dffb04a525cd02c1927009e9978b1b3a31e2219941c628b0e1a278e1253e73d7", + "nativeSrc": "26858:162:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "26956:6:18", + "nodeType": "YulTypedName", + "src": "26956:6:18", + "type": "" + } + ], + "src": "26858:162:18" + }, + { + "body": { + "nativeSrc": "27190:238:18", + "nodeType": "YulBlock", + "src": "27190:238:18", + "statements": [ + { + "nativeSrc": "27200:92:18", + "nodeType": "YulAssignment", + "src": "27200:92:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "27284:3:18", + "nodeType": "YulIdentifier", + "src": "27284:3:18" + }, + { + "kind": "number", + "nativeSrc": "27289:2:18", + "nodeType": "YulLiteral", + "src": "27289:2:18", + "type": "", + "value": "12" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "27207:76:18", + "nodeType": "YulIdentifier", + "src": "27207:76:18" + }, + "nativeSrc": "27207:85:18", + "nodeType": "YulFunctionCall", + "src": "27207:85:18" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "27200:3:18", + "nodeType": "YulIdentifier", + "src": "27200:3:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "27390:3:18", + "nodeType": "YulIdentifier", + "src": "27390:3:18" + } + ], + "functionName": { + "name": "store_literal_in_memory_dffb04a525cd02c1927009e9978b1b3a31e2219941c628b0e1a278e1253e73d7", + "nativeSrc": "27301:88:18", + "nodeType": "YulIdentifier", + "src": "27301:88:18" + }, + "nativeSrc": "27301:93:18", + "nodeType": "YulFunctionCall", + "src": "27301:93:18" + }, + "nativeSrc": "27301:93:18", + "nodeType": "YulExpressionStatement", + "src": "27301:93:18" + }, + { + "nativeSrc": "27403:19:18", + "nodeType": "YulAssignment", + "src": "27403:19:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "27414:3:18", + "nodeType": "YulIdentifier", + "src": "27414:3:18" + }, + { + "kind": "number", + "nativeSrc": "27419:2:18", + "nodeType": "YulLiteral", + "src": "27419:2:18", + "type": "", + "value": "12" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "27410:3:18", + "nodeType": "YulIdentifier", + "src": "27410:3:18" + }, + "nativeSrc": "27410:12:18", + "nodeType": "YulFunctionCall", + "src": "27410:12:18" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "27403:3:18", + "nodeType": "YulIdentifier", + "src": "27403:3:18" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_dffb04a525cd02c1927009e9978b1b3a31e2219941c628b0e1a278e1253e73d7_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "27026:402:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "27178:3:18", + "nodeType": "YulTypedName", + "src": "27178:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "27186:3:18", + "nodeType": "YulTypedName", + "src": "27186:3:18", + "type": "" + } + ], + "src": "27026:402:18" + }, + { + "body": { + "nativeSrc": "27544:280:18", + "nodeType": "YulBlock", + "src": "27544:280:18", + "statements": [ + { + "nativeSrc": "27554:53:18", + "nodeType": "YulVariableDeclaration", + "src": "27554:53:18", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "27601:5:18", + "nodeType": "YulIdentifier", + "src": "27601:5:18" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "27568:32:18", + "nodeType": "YulIdentifier", + "src": "27568:32:18" + }, + "nativeSrc": "27568:39:18", + "nodeType": "YulFunctionCall", + "src": "27568:39:18" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "27558:6:18", + "nodeType": "YulTypedName", + "src": "27558:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "27616:96:18", + "nodeType": "YulAssignment", + "src": "27616:96:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "27700:3:18", + "nodeType": "YulIdentifier", + "src": "27700:3:18" + }, + { + "name": "length", + "nativeSrc": "27705:6:18", + "nodeType": "YulIdentifier", + "src": "27705:6:18" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "27623:76:18", + "nodeType": "YulIdentifier", + "src": "27623:76:18" + }, + "nativeSrc": "27623:89:18", + "nodeType": "YulFunctionCall", + "src": "27623:89:18" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "27616:3:18", + "nodeType": "YulIdentifier", + "src": "27616:3:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "27760:5:18", + "nodeType": "YulIdentifier", + "src": "27760:5:18" + }, + { + "kind": "number", + "nativeSrc": "27767:4:18", + "nodeType": "YulLiteral", + "src": "27767:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "27756:3:18", + "nodeType": "YulIdentifier", + "src": "27756:3:18" + }, + "nativeSrc": "27756:16:18", + "nodeType": "YulFunctionCall", + "src": "27756:16:18" + }, + { + "name": "pos", + "nativeSrc": "27774:3:18", + "nodeType": "YulIdentifier", + "src": "27774:3:18" + }, + { + "name": "length", + "nativeSrc": "27779:6:18", + "nodeType": "YulIdentifier", + "src": "27779:6:18" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "27721:34:18", + "nodeType": "YulIdentifier", + "src": "27721:34:18" + }, + "nativeSrc": "27721:65:18", + "nodeType": "YulFunctionCall", + "src": "27721:65:18" + }, + "nativeSrc": "27721:65:18", + "nodeType": "YulExpressionStatement", + "src": "27721:65:18" + }, + { + "nativeSrc": "27795:23:18", + "nodeType": "YulAssignment", + "src": "27795:23:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "27806:3:18", + "nodeType": "YulIdentifier", + "src": "27806:3:18" + }, + { + "name": "length", + "nativeSrc": "27811:6:18", + "nodeType": "YulIdentifier", + "src": "27811:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "27802:3:18", + "nodeType": "YulIdentifier", + "src": "27802:3:18" + }, + "nativeSrc": "27802:16:18", + "nodeType": "YulFunctionCall", + "src": "27802:16:18" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "27795:3:18", + "nodeType": "YulIdentifier", + "src": "27795:3:18" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "27434:390:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "27525:5:18", + "nodeType": "YulTypedName", + "src": "27525:5:18", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "27532:3:18", + "nodeType": "YulTypedName", + "src": "27532:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "27540:3:18", + "nodeType": "YulTypedName", + "src": "27540:3:18", + "type": "" + } + ], + "src": "27434:390:18" + }, + { + "body": { + "nativeSrc": "27936:45:18", + "nodeType": "YulBlock", + "src": "27936:45:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "27958:6:18", + "nodeType": "YulIdentifier", + "src": "27958:6:18" + }, + { + "kind": "number", + "nativeSrc": "27966:1:18", + "nodeType": "YulLiteral", + "src": "27966:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "27954:3:18", + "nodeType": "YulIdentifier", + "src": "27954:3:18" + }, + "nativeSrc": "27954:14:18", + "nodeType": "YulFunctionCall", + "src": "27954:14:18" + }, + { + "hexValue": "2f", + "kind": "string", + "nativeSrc": "27970:3:18", + "nodeType": "YulLiteral", + "src": "27970:3:18", + "type": "", + "value": "/" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "27947:6:18", + "nodeType": "YulIdentifier", + "src": "27947:6:18" + }, + "nativeSrc": "27947:27:18", + "nodeType": "YulFunctionCall", + "src": "27947:27:18" + }, + "nativeSrc": "27947:27:18", + "nodeType": "YulExpressionStatement", + "src": "27947:27:18" + } + ] + }, + "name": "store_literal_in_memory_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527", + "nativeSrc": "27830:151:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "27928:6:18", + "nodeType": "YulTypedName", + "src": "27928:6:18", + "type": "" + } + ], + "src": "27830:151:18" + }, + { + "body": { + "nativeSrc": "28151:236:18", + "nodeType": "YulBlock", + "src": "28151:236:18", + "statements": [ + { + "nativeSrc": "28161:91:18", + "nodeType": "YulAssignment", + "src": "28161:91:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "28245:3:18", + "nodeType": "YulIdentifier", + "src": "28245:3:18" + }, + { + "kind": "number", + "nativeSrc": "28250:1:18", + "nodeType": "YulLiteral", + "src": "28250:1:18", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "28168:76:18", + "nodeType": "YulIdentifier", + "src": "28168:76:18" + }, + "nativeSrc": "28168:84:18", + "nodeType": "YulFunctionCall", + "src": "28168:84:18" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "28161:3:18", + "nodeType": "YulIdentifier", + "src": "28161:3:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "28350:3:18", + "nodeType": "YulIdentifier", + "src": "28350:3:18" + } + ], + "functionName": { + "name": "store_literal_in_memory_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527", + "nativeSrc": "28261:88:18", + "nodeType": "YulIdentifier", + "src": "28261:88:18" + }, + "nativeSrc": "28261:93:18", + "nodeType": "YulFunctionCall", + "src": "28261:93:18" + }, + "nativeSrc": "28261:93:18", + "nodeType": "YulExpressionStatement", + "src": "28261:93:18" + }, + { + "nativeSrc": "28363:18:18", + "nodeType": "YulAssignment", + "src": "28363:18:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "28374:3:18", + "nodeType": "YulIdentifier", + "src": "28374:3:18" + }, + { + "kind": "number", + "nativeSrc": "28379:1:18", + "nodeType": "YulLiteral", + "src": "28379:1:18", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "28370:3:18", + "nodeType": "YulIdentifier", + "src": "28370:3:18" + }, + "nativeSrc": "28370:11:18", + "nodeType": "YulFunctionCall", + "src": "28370:11:18" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "28363:3:18", + "nodeType": "YulIdentifier", + "src": "28363:3:18" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "27987:400:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "28139:3:18", + "nodeType": "YulTypedName", + "src": "28139:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "28147:3:18", + "nodeType": "YulTypedName", + "src": "28147:3:18", + "type": "" + } + ], + "src": "27987:400:18" + }, + { + "body": { + "nativeSrc": "28499:61:18", + "nodeType": "YulBlock", + "src": "28499:61:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "28521:6:18", + "nodeType": "YulIdentifier", + "src": "28521:6:18" + }, + { + "kind": "number", + "nativeSrc": "28529:1:18", + "nodeType": "YulLiteral", + "src": "28529:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "28517:3:18", + "nodeType": "YulIdentifier", + "src": "28517:3:18" + }, + "nativeSrc": "28517:14:18", + "nodeType": "YulFunctionCall", + "src": "28517:14:18" + }, + { + "hexValue": "2f72657075746174696f6e2d73636f7265", + "kind": "string", + "nativeSrc": "28533:19:18", + "nodeType": "YulLiteral", + "src": "28533:19:18", + "type": "", + "value": "/reputation-score" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "28510:6:18", + "nodeType": "YulIdentifier", + "src": "28510:6:18" + }, + "nativeSrc": "28510:43:18", + "nodeType": "YulFunctionCall", + "src": "28510:43:18" + }, + "nativeSrc": "28510:43:18", + "nodeType": "YulExpressionStatement", + "src": "28510:43:18" + } + ] + }, + "name": "store_literal_in_memory_55265a2701bc64b88c772eaa96e74946d09782e358d6aba22dcae17933df0a55", + "nativeSrc": "28393:167:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "28491:6:18", + "nodeType": "YulTypedName", + "src": "28491:6:18", + "type": "" + } + ], + "src": "28393:167:18" + }, + { + "body": { + "nativeSrc": "28730:238:18", + "nodeType": "YulBlock", + "src": "28730:238:18", + "statements": [ + { + "nativeSrc": "28740:92:18", + "nodeType": "YulAssignment", + "src": "28740:92:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "28824:3:18", + "nodeType": "YulIdentifier", + "src": "28824:3:18" + }, + { + "kind": "number", + "nativeSrc": "28829:2:18", + "nodeType": "YulLiteral", + "src": "28829:2:18", + "type": "", + "value": "17" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "28747:76:18", + "nodeType": "YulIdentifier", + "src": "28747:76:18" + }, + "nativeSrc": "28747:85:18", + "nodeType": "YulFunctionCall", + "src": "28747:85:18" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "28740:3:18", + "nodeType": "YulIdentifier", + "src": "28740:3:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "28930:3:18", + "nodeType": "YulIdentifier", + "src": "28930:3:18" + } + ], + "functionName": { + "name": "store_literal_in_memory_55265a2701bc64b88c772eaa96e74946d09782e358d6aba22dcae17933df0a55", + "nativeSrc": "28841:88:18", + "nodeType": "YulIdentifier", + "src": "28841:88:18" + }, + "nativeSrc": "28841:93:18", + "nodeType": "YulFunctionCall", + "src": "28841:93:18" + }, + "nativeSrc": "28841:93:18", + "nodeType": "YulExpressionStatement", + "src": "28841:93:18" + }, + { + "nativeSrc": "28943:19:18", + "nodeType": "YulAssignment", + "src": "28943:19:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "28954:3:18", + "nodeType": "YulIdentifier", + "src": "28954:3:18" + }, + { + "kind": "number", + "nativeSrc": "28959:2:18", + "nodeType": "YulLiteral", + "src": "28959:2:18", + "type": "", + "value": "17" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "28950:3:18", + "nodeType": "YulIdentifier", + "src": "28950:3:18" + }, + "nativeSrc": "28950:12:18", + "nodeType": "YulFunctionCall", + "src": "28950:12:18" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "28943:3:18", + "nodeType": "YulIdentifier", + "src": "28943:3:18" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_55265a2701bc64b88c772eaa96e74946d09782e358d6aba22dcae17933df0a55_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "28566:402:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "28718:3:18", + "nodeType": "YulTypedName", + "src": "28718:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "28726:3:18", + "nodeType": "YulTypedName", + "src": "28726:3:18", + "type": "" + } + ], + "src": "28566:402:18" + }, + { + "body": { + "nativeSrc": "29506:855:18", + "nodeType": "YulBlock", + "src": "29506:855:18", + "statements": [ + { + "nativeSrc": "29517:99:18", + "nodeType": "YulAssignment", + "src": "29517:99:18", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "29603:6:18", + "nodeType": "YulIdentifier", + "src": "29603:6:18" + }, + { + "name": "pos", + "nativeSrc": "29612:3:18", + "nodeType": "YulIdentifier", + "src": "29612:3:18" + } + ], + "functionName": { + "name": "abi_encode_t_string_storage_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "29524:78:18", + "nodeType": "YulIdentifier", + "src": "29524:78:18" + }, + "nativeSrc": "29524:92:18", + "nodeType": "YulFunctionCall", + "src": "29524:92:18" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "29517:3:18", + "nodeType": "YulIdentifier", + "src": "29517:3:18" + } + ] + }, + { + "nativeSrc": "29626:155:18", + "nodeType": "YulAssignment", + "src": "29626:155:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "29777:3:18", + "nodeType": "YulIdentifier", + "src": "29777:3:18" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_dffb04a525cd02c1927009e9978b1b3a31e2219941c628b0e1a278e1253e73d7_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "29633:142:18", + "nodeType": "YulIdentifier", + "src": "29633:142:18" + }, + "nativeSrc": "29633:148:18", + "nodeType": "YulFunctionCall", + "src": "29633:148:18" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "29626:3:18", + "nodeType": "YulIdentifier", + "src": "29626:3:18" + } + ] + }, + { + "nativeSrc": "29791:102:18", + "nodeType": "YulAssignment", + "src": "29791:102:18", + "value": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "29880:6:18", + "nodeType": "YulIdentifier", + "src": "29880:6:18" + }, + { + "name": "pos", + "nativeSrc": "29889:3:18", + "nodeType": "YulIdentifier", + "src": "29889:3:18" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "29798:81:18", + "nodeType": "YulIdentifier", + "src": "29798:81:18" + }, + "nativeSrc": "29798:95:18", + "nodeType": "YulFunctionCall", + "src": "29798:95:18" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "29791:3:18", + "nodeType": "YulIdentifier", + "src": "29791:3:18" + } + ] + }, + { + "nativeSrc": "29903:155:18", + "nodeType": "YulAssignment", + "src": "29903:155:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "30054:3:18", + "nodeType": "YulIdentifier", + "src": "30054:3:18" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "29910:142:18", + "nodeType": "YulIdentifier", + "src": "29910:142:18" + }, + "nativeSrc": "29910:148:18", + "nodeType": "YulFunctionCall", + "src": "29910:148:18" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "29903:3:18", + "nodeType": "YulIdentifier", + "src": "29903:3:18" + } + ] + }, + { + "nativeSrc": "30068:102:18", + "nodeType": "YulAssignment", + "src": "30068:102:18", + "value": { + "arguments": [ + { + "name": "value2", + "nativeSrc": "30157:6:18", + "nodeType": "YulIdentifier", + "src": "30157:6:18" + }, + { + "name": "pos", + "nativeSrc": "30166:3:18", + "nodeType": "YulIdentifier", + "src": "30166:3:18" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "30075:81:18", + "nodeType": "YulIdentifier", + "src": "30075:81:18" + }, + "nativeSrc": "30075:95:18", + "nodeType": "YulFunctionCall", + "src": "30075:95:18" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "30068:3:18", + "nodeType": "YulIdentifier", + "src": "30068:3:18" + } + ] + }, + { + "nativeSrc": "30180:155:18", + "nodeType": "YulAssignment", + "src": "30180:155:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "30331:3:18", + "nodeType": "YulIdentifier", + "src": "30331:3:18" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_55265a2701bc64b88c772eaa96e74946d09782e358d6aba22dcae17933df0a55_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "30187:142:18", + "nodeType": "YulIdentifier", + "src": "30187:142:18" + }, + "nativeSrc": "30187:148:18", + "nodeType": "YulFunctionCall", + "src": "30187:148:18" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "30180:3:18", + "nodeType": "YulIdentifier", + "src": "30180:3:18" + } + ] + }, + { + "nativeSrc": "30345:10:18", + "nodeType": "YulAssignment", + "src": "30345:10:18", + "value": { + "name": "pos", + "nativeSrc": "30352:3:18", + "nodeType": "YulIdentifier", + "src": "30352:3:18" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "30345:3:18", + "nodeType": "YulIdentifier", + "src": "30345:3:18" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_string_storage_t_stringliteral_dffb04a525cd02c1927009e9978b1b3a31e2219941c628b0e1a278e1253e73d7_t_string_memory_ptr_t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527_t_string_memory_ptr_t_stringliteral_55265a2701bc64b88c772eaa96e74946d09782e358d6aba22dcae17933df0a55__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed", + "nativeSrc": "28974:1387:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "29469:3:18", + "nodeType": "YulTypedName", + "src": "29469:3:18", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "29475:6:18", + "nodeType": "YulTypedName", + "src": "29475:6:18", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "29483:6:18", + "nodeType": "YulTypedName", + "src": "29483:6:18", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "29491:6:18", + "nodeType": "YulTypedName", + "src": "29491:6:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "29502:3:18", + "nodeType": "YulTypedName", + "src": "29502:3:18", + "type": "" + } + ], + "src": "28974:1387:18" + }, + { + "body": { + "nativeSrc": "30480:742:18", + "nodeType": "YulBlock", + "src": "30480:742:18", + "statements": [ + { + "nativeSrc": "30490:29:18", + "nodeType": "YulVariableDeclaration", + "src": "30490:29:18", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "30513:5:18", + "nodeType": "YulIdentifier", + "src": "30513:5:18" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "30507:5:18", + "nodeType": "YulIdentifier", + "src": "30507:5:18" + }, + "nativeSrc": "30507:12:18", + "nodeType": "YulFunctionCall", + "src": "30507:12:18" + }, + "variables": [ + { + "name": "slotValue", + "nativeSrc": "30494:9:18", + "nodeType": "YulTypedName", + "src": "30494:9:18", + "type": "" + } + ] + }, + { + "nativeSrc": "30528:50:18", + "nodeType": "YulVariableDeclaration", + "src": "30528:50:18", + "value": { + "arguments": [ + { + "name": "slotValue", + "nativeSrc": "30568:9:18", + "nodeType": "YulIdentifier", + "src": "30568:9:18" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nativeSrc": "30542:25:18", + "nodeType": "YulIdentifier", + "src": "30542:25:18" + }, + "nativeSrc": "30542:36:18", + "nodeType": "YulFunctionCall", + "src": "30542:36:18" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "30532:6:18", + "nodeType": "YulTypedName", + "src": "30532:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "30587:78:18", + "nodeType": "YulAssignment", + "src": "30587:78:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "30653:3:18", + "nodeType": "YulIdentifier", + "src": "30653:3:18" + }, + { + "name": "length", + "nativeSrc": "30658:6:18", + "nodeType": "YulIdentifier", + "src": "30658:6:18" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "30594:58:18", + "nodeType": "YulIdentifier", + "src": "30594:58:18" + }, + "nativeSrc": "30594:71:18", + "nodeType": "YulFunctionCall", + "src": "30594:71:18" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "30587:3:18", + "nodeType": "YulIdentifier", + "src": "30587:3:18" + } + ] + }, + { + "cases": [ + { + "body": { + "nativeSrc": "30714:157:18", + "nodeType": "YulBlock", + "src": "30714:157:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "30767:3:18", + "nodeType": "YulIdentifier", + "src": "30767:3:18" + }, + { + "arguments": [ + { + "name": "slotValue", + "nativeSrc": "30776:9:18", + "nodeType": "YulIdentifier", + "src": "30776:9:18" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "30791:4:18", + "nodeType": "YulLiteral", + "src": "30791:4:18", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "30787:3:18", + "nodeType": "YulIdentifier", + "src": "30787:3:18" + }, + "nativeSrc": "30787:9:18", + "nodeType": "YulFunctionCall", + "src": "30787:9:18" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "30772:3:18", + "nodeType": "YulIdentifier", + "src": "30772:3:18" + }, + "nativeSrc": "30772:25:18", + "nodeType": "YulFunctionCall", + "src": "30772:25:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "30760:6:18", + "nodeType": "YulIdentifier", + "src": "30760:6:18" + }, + "nativeSrc": "30760:38:18", + "nodeType": "YulFunctionCall", + "src": "30760:38:18" + }, + "nativeSrc": "30760:38:18", + "nodeType": "YulExpressionStatement", + "src": "30760:38:18" + }, + { + "nativeSrc": "30811:50:18", + "nodeType": "YulAssignment", + "src": "30811:50:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "30822:3:18", + "nodeType": "YulIdentifier", + "src": "30822:3:18" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "30831:4:18", + "nodeType": "YulLiteral", + "src": "30831:4:18", + "type": "", + "value": "0x20" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nativeSrc": "30851:6:18", + "nodeType": "YulIdentifier", + "src": "30851:6:18" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "30844:6:18", + "nodeType": "YulIdentifier", + "src": "30844:6:18" + }, + "nativeSrc": "30844:14:18", + "nodeType": "YulFunctionCall", + "src": "30844:14:18" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "30837:6:18", + "nodeType": "YulIdentifier", + "src": "30837:6:18" + }, + "nativeSrc": "30837:22:18", + "nodeType": "YulFunctionCall", + "src": "30837:22:18" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "30827:3:18", + "nodeType": "YulIdentifier", + "src": "30827:3:18" + }, + "nativeSrc": "30827:33:18", + "nodeType": "YulFunctionCall", + "src": "30827:33:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "30818:3:18", + "nodeType": "YulIdentifier", + "src": "30818:3:18" + }, + "nativeSrc": "30818:43:18", + "nodeType": "YulFunctionCall", + "src": "30818:43:18" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "30811:3:18", + "nodeType": "YulIdentifier", + "src": "30811:3:18" + } + ] + } + ] + }, + "nativeSrc": "30707:164:18", + "nodeType": "YulCase", + "src": "30707:164:18", + "value": { + "kind": "number", + "nativeSrc": "30712:1:18", + "nodeType": "YulLiteral", + "src": "30712:1:18", + "type": "", + "value": "0" + } + }, + { + "body": { + "nativeSrc": "30887:329:18", + "nodeType": "YulBlock", + "src": "30887:329:18", + "statements": [ + { + "nativeSrc": "30932:53:18", + "nodeType": "YulVariableDeclaration", + "src": "30932:53:18", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "30979:5:18", + "nodeType": "YulIdentifier", + "src": "30979:5:18" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nativeSrc": "30947:31:18", + "nodeType": "YulIdentifier", + "src": "30947:31:18" + }, + "nativeSrc": "30947:38:18", + "nodeType": "YulFunctionCall", + "src": "30947:38:18" + }, + "variables": [ + { + "name": "dataPos", + "nativeSrc": "30936:7:18", + "nodeType": "YulTypedName", + "src": "30936:7:18", + "type": "" + } + ] + }, + { + "nativeSrc": "30998:10:18", + "nodeType": "YulVariableDeclaration", + "src": "30998:10:18", + "value": { + "kind": "number", + "nativeSrc": "31007:1:18", + "nodeType": "YulLiteral", + "src": "31007:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "31002:1:18", + "nodeType": "YulTypedName", + "src": "31002:1:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "31065:110:18", + "nodeType": "YulBlock", + "src": "31065:110:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "31094:3:18", + "nodeType": "YulIdentifier", + "src": "31094:3:18" + }, + { + "name": "i", + "nativeSrc": "31099:1:18", + "nodeType": "YulIdentifier", + "src": "31099:1:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "31090:3:18", + "nodeType": "YulIdentifier", + "src": "31090:3:18" + }, + "nativeSrc": "31090:11:18", + "nodeType": "YulFunctionCall", + "src": "31090:11:18" + }, + { + "arguments": [ + { + "name": "dataPos", + "nativeSrc": "31109:7:18", + "nodeType": "YulIdentifier", + "src": "31109:7:18" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "31103:5:18", + "nodeType": "YulIdentifier", + "src": "31103:5:18" + }, + "nativeSrc": "31103:14:18", + "nodeType": "YulFunctionCall", + "src": "31103:14:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "31083:6:18", + "nodeType": "YulIdentifier", + "src": "31083:6:18" + }, + "nativeSrc": "31083:35:18", + "nodeType": "YulFunctionCall", + "src": "31083:35:18" + }, + "nativeSrc": "31083:35:18", + "nodeType": "YulExpressionStatement", + "src": "31083:35:18" + }, + { + "nativeSrc": "31135:26:18", + "nodeType": "YulAssignment", + "src": "31135:26:18", + "value": { + "arguments": [ + { + "name": "dataPos", + "nativeSrc": "31150:7:18", + "nodeType": "YulIdentifier", + "src": "31150:7:18" + }, + { + "kind": "number", + "nativeSrc": "31159:1:18", + "nodeType": "YulLiteral", + "src": "31159:1:18", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "31146:3:18", + "nodeType": "YulIdentifier", + "src": "31146:3:18" + }, + "nativeSrc": "31146:15:18", + "nodeType": "YulFunctionCall", + "src": "31146:15:18" + }, + "variableNames": [ + { + "name": "dataPos", + "nativeSrc": "31135:7:18", + "nodeType": "YulIdentifier", + "src": "31135:7:18" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "31032:1:18", + "nodeType": "YulIdentifier", + "src": "31032:1:18" + }, + { + "name": "length", + "nativeSrc": "31035:6:18", + "nodeType": "YulIdentifier", + "src": "31035:6:18" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "31029:2:18", + "nodeType": "YulIdentifier", + "src": "31029:2:18" + }, + "nativeSrc": "31029:13:18", + "nodeType": "YulFunctionCall", + "src": "31029:13:18" + }, + "nativeSrc": "31021:154:18", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "31043:21:18", + "nodeType": "YulBlock", + "src": "31043:21:18", + "statements": [ + { + "nativeSrc": "31045:17:18", + "nodeType": "YulAssignment", + "src": "31045:17:18", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "31054:1:18", + "nodeType": "YulIdentifier", + "src": "31054:1:18" + }, + { + "kind": "number", + "nativeSrc": "31057:4:18", + "nodeType": "YulLiteral", + "src": "31057:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "31050:3:18", + "nodeType": "YulIdentifier", + "src": "31050:3:18" + }, + "nativeSrc": "31050:12:18", + "nodeType": "YulFunctionCall", + "src": "31050:12:18" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "31045:1:18", + "nodeType": "YulIdentifier", + "src": "31045:1:18" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "31025:3:18", + "nodeType": "YulBlock", + "src": "31025:3:18", + "statements": [] + }, + "src": "31021:154:18" + }, + { + "nativeSrc": "31188:18:18", + "nodeType": "YulAssignment", + "src": "31188:18:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "31199:3:18", + "nodeType": "YulIdentifier", + "src": "31199:3:18" + }, + { + "name": "i", + "nativeSrc": "31204:1:18", + "nodeType": "YulIdentifier", + "src": "31204:1:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "31195:3:18", + "nodeType": "YulIdentifier", + "src": "31195:3:18" + }, + "nativeSrc": "31195:11:18", + "nodeType": "YulFunctionCall", + "src": "31195:11:18" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "31188:3:18", + "nodeType": "YulIdentifier", + "src": "31188:3:18" + } + ] + } + ] + }, + "nativeSrc": "30880:336:18", + "nodeType": "YulCase", + "src": "30880:336:18", + "value": { + "kind": "number", + "nativeSrc": "30885:1:18", + "nodeType": "YulLiteral", + "src": "30885:1:18", + "type": "", + "value": "1" + } + } + ], + "expression": { + "arguments": [ + { + "name": "slotValue", + "nativeSrc": "30685:9:18", + "nodeType": "YulIdentifier", + "src": "30685:9:18" + }, + { + "kind": "number", + "nativeSrc": "30696:1:18", + "nodeType": "YulLiteral", + "src": "30696:1:18", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "30681:3:18", + "nodeType": "YulIdentifier", + "src": "30681:3:18" + }, + "nativeSrc": "30681:17:18", + "nodeType": "YulFunctionCall", + "src": "30681:17:18" + }, + "nativeSrc": "30674:542:18", + "nodeType": "YulSwitch", + "src": "30674:542:18" + } + ] + }, + "name": "abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack", + "nativeSrc": "30391:831:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "30461:5:18", + "nodeType": "YulTypedName", + "src": "30461:5:18", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "30468:3:18", + "nodeType": "YulTypedName", + "src": "30468:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "30476:3:18", + "nodeType": "YulTypedName", + "src": "30476:3:18", + "type": "" + } + ], + "src": "30391:831:18" + }, + { + "body": { + "nativeSrc": "31391:345:18", + "nodeType": "YulBlock", + "src": "31391:345:18", + "statements": [ + { + "nativeSrc": "31401:26:18", + "nodeType": "YulAssignment", + "src": "31401:26:18", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "31413:9:18", + "nodeType": "YulIdentifier", + "src": "31413:9:18" + }, + { + "kind": "number", + "nativeSrc": "31424:2:18", + "nodeType": "YulLiteral", + "src": "31424:2:18", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "31409:3:18", + "nodeType": "YulIdentifier", + "src": "31409:3:18" + }, + "nativeSrc": "31409:18:18", + "nodeType": "YulFunctionCall", + "src": "31409:18:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "31401:4:18", + "nodeType": "YulIdentifier", + "src": "31401:4:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "31448:9:18", + "nodeType": "YulIdentifier", + "src": "31448:9:18" + }, + { + "kind": "number", + "nativeSrc": "31459:1:18", + "nodeType": "YulLiteral", + "src": "31459:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "31444:3:18", + "nodeType": "YulIdentifier", + "src": "31444:3:18" + }, + "nativeSrc": "31444:17:18", + "nodeType": "YulFunctionCall", + "src": "31444:17:18" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "31467:4:18", + "nodeType": "YulIdentifier", + "src": "31467:4:18" + }, + { + "name": "headStart", + "nativeSrc": "31473:9:18", + "nodeType": "YulIdentifier", + "src": "31473:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "31463:3:18", + "nodeType": "YulIdentifier", + "src": "31463:3:18" + }, + "nativeSrc": "31463:20:18", + "nodeType": "YulFunctionCall", + "src": "31463:20:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "31437:6:18", + "nodeType": "YulIdentifier", + "src": "31437:6:18" + }, + "nativeSrc": "31437:47:18", + "nodeType": "YulFunctionCall", + "src": "31437:47:18" + }, + "nativeSrc": "31437:47:18", + "nodeType": "YulExpressionStatement", + "src": "31437:47:18" + }, + { + "nativeSrc": "31493:83:18", + "nodeType": "YulAssignment", + "src": "31493:83:18", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "31562:6:18", + "nodeType": "YulIdentifier", + "src": "31562:6:18" + }, + { + "name": "tail", + "nativeSrc": "31571:4:18", + "nodeType": "YulIdentifier", + "src": "31571:4:18" + } + ], + "functionName": { + "name": "abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack", + "nativeSrc": "31501:60:18", + "nodeType": "YulIdentifier", + "src": "31501:60:18" + }, + "nativeSrc": "31501:75:18", + "nodeType": "YulFunctionCall", + "src": "31501:75:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "31493:4:18", + "nodeType": "YulIdentifier", + "src": "31493:4:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "31597:9:18", + "nodeType": "YulIdentifier", + "src": "31597:9:18" + }, + { + "kind": "number", + "nativeSrc": "31608:2:18", + "nodeType": "YulLiteral", + "src": "31608:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "31593:3:18", + "nodeType": "YulIdentifier", + "src": "31593:3:18" + }, + "nativeSrc": "31593:18:18", + "nodeType": "YulFunctionCall", + "src": "31593:18:18" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "31617:4:18", + "nodeType": "YulIdentifier", + "src": "31617:4:18" + }, + { + "name": "headStart", + "nativeSrc": "31623:9:18", + "nodeType": "YulIdentifier", + "src": "31623:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "31613:3:18", + "nodeType": "YulIdentifier", + "src": "31613:3:18" + }, + "nativeSrc": "31613:20:18", + "nodeType": "YulFunctionCall", + "src": "31613:20:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "31586:6:18", + "nodeType": "YulIdentifier", + "src": "31586:6:18" + }, + "nativeSrc": "31586:48:18", + "nodeType": "YulFunctionCall", + "src": "31586:48:18" + }, + "nativeSrc": "31586:48:18", + "nodeType": "YulExpressionStatement", + "src": "31586:48:18" + }, + { + "nativeSrc": "31643:86:18", + "nodeType": "YulAssignment", + "src": "31643:86:18", + "value": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "31715:6:18", + "nodeType": "YulIdentifier", + "src": "31715:6:18" + }, + { + "name": "tail", + "nativeSrc": "31724:4:18", + "nodeType": "YulIdentifier", + "src": "31724:4:18" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nativeSrc": "31651:63:18", + "nodeType": "YulIdentifier", + "src": "31651:63:18" + }, + "nativeSrc": "31651:78:18", + "nodeType": "YulFunctionCall", + "src": "31651:78:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "31643:4:18", + "nodeType": "YulIdentifier", + "src": "31643:4:18" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_storage_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "31228:508:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "31355:9:18", + "nodeType": "YulTypedName", + "src": "31355:9:18", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "31367:6:18", + "nodeType": "YulTypedName", + "src": "31367:6:18", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "31375:6:18", + "nodeType": "YulTypedName", + "src": "31375:6:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "31386:4:18", + "nodeType": "YulTypedName", + "src": "31386:4:18", + "type": "" + } + ], + "src": "31228:508:18" + }, + { + "body": { + "nativeSrc": "31786:49:18", + "nodeType": "YulBlock", + "src": "31786:49:18", + "statements": [ + { + "nativeSrc": "31796:33:18", + "nodeType": "YulAssignment", + "src": "31796:33:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "31814:5:18", + "nodeType": "YulIdentifier", + "src": "31814:5:18" + }, + { + "kind": "number", + "nativeSrc": "31821:2:18", + "nodeType": "YulLiteral", + "src": "31821:2:18", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "31810:3:18", + "nodeType": "YulIdentifier", + "src": "31810:3:18" + }, + "nativeSrc": "31810:14:18", + "nodeType": "YulFunctionCall", + "src": "31810:14:18" + }, + { + "kind": "number", + "nativeSrc": "31826:2:18", + "nodeType": "YulLiteral", + "src": "31826:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "31806:3:18", + "nodeType": "YulIdentifier", + "src": "31806:3:18" + }, + "nativeSrc": "31806:23:18", + "nodeType": "YulFunctionCall", + "src": "31806:23:18" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "31796:6:18", + "nodeType": "YulIdentifier", + "src": "31796:6:18" + } + ] + } + ] + }, + "name": "divide_by_32_ceil", + "nativeSrc": "31742:93:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "31769:5:18", + "nodeType": "YulTypedName", + "src": "31769:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "31779:6:18", + "nodeType": "YulTypedName", + "src": "31779:6:18", + "type": "" + } + ], + "src": "31742:93:18" + }, + { + "body": { + "nativeSrc": "31894:54:18", + "nodeType": "YulBlock", + "src": "31894:54:18", + "statements": [ + { + "nativeSrc": "31904:37:18", + "nodeType": "YulAssignment", + "src": "31904:37:18", + "value": { + "arguments": [ + { + "name": "bits", + "nativeSrc": "31929:4:18", + "nodeType": "YulIdentifier", + "src": "31929:4:18" + }, + { + "name": "value", + "nativeSrc": "31935:5:18", + "nodeType": "YulIdentifier", + "src": "31935:5:18" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "31925:3:18", + "nodeType": "YulIdentifier", + "src": "31925:3:18" + }, + "nativeSrc": "31925:16:18", + "nodeType": "YulFunctionCall", + "src": "31925:16:18" + }, + "variableNames": [ + { + "name": "newValue", + "nativeSrc": "31904:8:18", + "nodeType": "YulIdentifier", + "src": "31904:8:18" + } + ] + } + ] + }, + "name": "shift_left_dynamic", + "nativeSrc": "31841:107:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nativeSrc": "31869:4:18", + "nodeType": "YulTypedName", + "src": "31869:4:18", + "type": "" + }, + { + "name": "value", + "nativeSrc": "31875:5:18", + "nodeType": "YulTypedName", + "src": "31875:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nativeSrc": "31885:8:18", + "nodeType": "YulTypedName", + "src": "31885:8:18", + "type": "" + } + ], + "src": "31841:107:18" + }, + { + "body": { + "nativeSrc": "32030:317:18", + "nodeType": "YulBlock", + "src": "32030:317:18", + "statements": [ + { + "nativeSrc": "32040:35:18", + "nodeType": "YulVariableDeclaration", + "src": "32040:35:18", + "value": { + "arguments": [ + { + "name": "shiftBytes", + "nativeSrc": "32061:10:18", + "nodeType": "YulIdentifier", + "src": "32061:10:18" + }, + { + "kind": "number", + "nativeSrc": "32073:1:18", + "nodeType": "YulLiteral", + "src": "32073:1:18", + "type": "", + "value": "8" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "32057:3:18", + "nodeType": "YulIdentifier", + "src": "32057:3:18" + }, + "nativeSrc": "32057:18:18", + "nodeType": "YulFunctionCall", + "src": "32057:18:18" + }, + "variables": [ + { + "name": "shiftBits", + "nativeSrc": "32044:9:18", + "nodeType": "YulTypedName", + "src": "32044:9:18", + "type": "" + } + ] + }, + { + "nativeSrc": "32084:109:18", + "nodeType": "YulVariableDeclaration", + "src": "32084:109:18", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nativeSrc": "32115:9:18", + "nodeType": "YulIdentifier", + "src": "32115:9:18" + }, + { + "kind": "number", + "nativeSrc": "32126:66:18", + "nodeType": "YulLiteral", + "src": "32126:66:18", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nativeSrc": "32096:18:18", + "nodeType": "YulIdentifier", + "src": "32096:18:18" + }, + "nativeSrc": "32096:97:18", + "nodeType": "YulFunctionCall", + "src": "32096:97:18" + }, + "variables": [ + { + "name": "mask", + "nativeSrc": "32088:4:18", + "nodeType": "YulTypedName", + "src": "32088:4:18", + "type": "" + } + ] + }, + { + "nativeSrc": "32202:51:18", + "nodeType": "YulAssignment", + "src": "32202:51:18", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nativeSrc": "32233:9:18", + "nodeType": "YulIdentifier", + "src": "32233:9:18" + }, + { + "name": "toInsert", + "nativeSrc": "32244:8:18", + "nodeType": "YulIdentifier", + "src": "32244:8:18" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nativeSrc": "32214:18:18", + "nodeType": "YulIdentifier", + "src": "32214:18:18" + }, + "nativeSrc": "32214:39:18", + "nodeType": "YulFunctionCall", + "src": "32214:39:18" + }, + "variableNames": [ + { + "name": "toInsert", + "nativeSrc": "32202:8:18", + "nodeType": "YulIdentifier", + "src": "32202:8:18" + } + ] + }, + { + "nativeSrc": "32262:30:18", + "nodeType": "YulAssignment", + "src": "32262:30:18", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "32275:5:18", + "nodeType": "YulIdentifier", + "src": "32275:5:18" + }, + { + "arguments": [ + { + "name": "mask", + "nativeSrc": "32286:4:18", + "nodeType": "YulIdentifier", + "src": "32286:4:18" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "32282:3:18", + "nodeType": "YulIdentifier", + "src": "32282:3:18" + }, + "nativeSrc": "32282:9:18", + "nodeType": "YulFunctionCall", + "src": "32282:9:18" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "32271:3:18", + "nodeType": "YulIdentifier", + "src": "32271:3:18" + }, + "nativeSrc": "32271:21:18", + "nodeType": "YulFunctionCall", + "src": "32271:21:18" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "32262:5:18", + "nodeType": "YulIdentifier", + "src": "32262:5:18" + } + ] + }, + { + "nativeSrc": "32301:40:18", + "nodeType": "YulAssignment", + "src": "32301:40:18", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "32314:5:18", + "nodeType": "YulIdentifier", + "src": "32314:5:18" + }, + { + "arguments": [ + { + "name": "toInsert", + "nativeSrc": "32325:8:18", + "nodeType": "YulIdentifier", + "src": "32325:8:18" + }, + { + "name": "mask", + "nativeSrc": "32335:4:18", + "nodeType": "YulIdentifier", + "src": "32335:4:18" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "32321:3:18", + "nodeType": "YulIdentifier", + "src": "32321:3:18" + }, + "nativeSrc": "32321:19:18", + "nodeType": "YulFunctionCall", + "src": "32321:19:18" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "32311:2:18", + "nodeType": "YulIdentifier", + "src": "32311:2:18" + }, + "nativeSrc": "32311:30:18", + "nodeType": "YulFunctionCall", + "src": "32311:30:18" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "32301:6:18", + "nodeType": "YulIdentifier", + "src": "32301:6:18" + } + ] + } + ] + }, + "name": "update_byte_slice_dynamic32", + "nativeSrc": "31954:393:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "31991:5:18", + "nodeType": "YulTypedName", + "src": "31991:5:18", + "type": "" + }, + { + "name": "shiftBytes", + "nativeSrc": "31998:10:18", + "nodeType": "YulTypedName", + "src": "31998:10:18", + "type": "" + }, + { + "name": "toInsert", + "nativeSrc": "32010:8:18", + "nodeType": "YulTypedName", + "src": "32010:8:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "32023:6:18", + "nodeType": "YulTypedName", + "src": "32023:6:18", + "type": "" + } + ], + "src": "31954:393:18" + }, + { + "body": { + "nativeSrc": "32413:82:18", + "nodeType": "YulBlock", + "src": "32413:82:18", + "statements": [ + { + "nativeSrc": "32423:66:18", + "nodeType": "YulAssignment", + "src": "32423:66:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "32481:5:18", + "nodeType": "YulIdentifier", + "src": "32481:5:18" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "32463:17:18", + "nodeType": "YulIdentifier", + "src": "32463:17:18" + }, + "nativeSrc": "32463:24:18", + "nodeType": "YulFunctionCall", + "src": "32463:24:18" + } + ], + "functionName": { + "name": "identity", + "nativeSrc": "32454:8:18", + "nodeType": "YulIdentifier", + "src": "32454:8:18" + }, + "nativeSrc": "32454:34:18", + "nodeType": "YulFunctionCall", + "src": "32454:34:18" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "32436:17:18", + "nodeType": "YulIdentifier", + "src": "32436:17:18" + }, + "nativeSrc": "32436:53:18", + "nodeType": "YulFunctionCall", + "src": "32436:53:18" + }, + "variableNames": [ + { + "name": "converted", + "nativeSrc": "32423:9:18", + "nodeType": "YulIdentifier", + "src": "32423:9:18" + } + ] + } + ] + }, + "name": "convert_t_uint256_to_t_uint256", + "nativeSrc": "32353:142:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "32393:5:18", + "nodeType": "YulTypedName", + "src": "32393:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nativeSrc": "32403:9:18", + "nodeType": "YulTypedName", + "src": "32403:9:18", + "type": "" + } + ], + "src": "32353:142:18" + }, + { + "body": { + "nativeSrc": "32548:28:18", + "nodeType": "YulBlock", + "src": "32548:28:18", + "statements": [ + { + "nativeSrc": "32558:12:18", + "nodeType": "YulAssignment", + "src": "32558:12:18", + "value": { + "name": "value", + "nativeSrc": "32565:5:18", + "nodeType": "YulIdentifier", + "src": "32565:5:18" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "32558:3:18", + "nodeType": "YulIdentifier", + "src": "32558:3:18" + } + ] + } + ] + }, + "name": "prepare_store_t_uint256", + "nativeSrc": "32501:75:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "32534:5:18", + "nodeType": "YulTypedName", + "src": "32534:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "32544:3:18", + "nodeType": "YulTypedName", + "src": "32544:3:18", + "type": "" + } + ], + "src": "32501:75:18" + }, + { + "body": { + "nativeSrc": "32658:193:18", + "nodeType": "YulBlock", + "src": "32658:193:18", + "statements": [ + { + "nativeSrc": "32668:63:18", + "nodeType": "YulVariableDeclaration", + "src": "32668:63:18", + "value": { + "arguments": [ + { + "name": "value_0", + "nativeSrc": "32723:7:18", + "nodeType": "YulIdentifier", + "src": "32723:7:18" + } + ], + "functionName": { + "name": "convert_t_uint256_to_t_uint256", + "nativeSrc": "32692:30:18", + "nodeType": "YulIdentifier", + "src": "32692:30:18" + }, + "nativeSrc": "32692:39:18", + "nodeType": "YulFunctionCall", + "src": "32692:39:18" + }, + "variables": [ + { + "name": "convertedValue_0", + "nativeSrc": "32672:16:18", + "nodeType": "YulTypedName", + "src": "32672:16:18", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "32747:4:18", + "nodeType": "YulIdentifier", + "src": "32747:4:18" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nativeSrc": "32787:4:18", + "nodeType": "YulIdentifier", + "src": "32787:4:18" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "32781:5:18", + "nodeType": "YulIdentifier", + "src": "32781:5:18" + }, + "nativeSrc": "32781:11:18", + "nodeType": "YulFunctionCall", + "src": "32781:11:18" + }, + { + "name": "offset", + "nativeSrc": "32794:6:18", + "nodeType": "YulIdentifier", + "src": "32794:6:18" + }, + { + "arguments": [ + { + "name": "convertedValue_0", + "nativeSrc": "32826:16:18", + "nodeType": "YulIdentifier", + "src": "32826:16:18" + } + ], + "functionName": { + "name": "prepare_store_t_uint256", + "nativeSrc": "32802:23:18", + "nodeType": "YulIdentifier", + "src": "32802:23:18" + }, + "nativeSrc": "32802:41:18", + "nodeType": "YulFunctionCall", + "src": "32802:41:18" + } + ], + "functionName": { + "name": "update_byte_slice_dynamic32", + "nativeSrc": "32753:27:18", + "nodeType": "YulIdentifier", + "src": "32753:27:18" + }, + "nativeSrc": "32753:91:18", + "nodeType": "YulFunctionCall", + "src": "32753:91:18" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "32740:6:18", + "nodeType": "YulIdentifier", + "src": "32740:6:18" + }, + "nativeSrc": "32740:105:18", + "nodeType": "YulFunctionCall", + "src": "32740:105:18" + }, + "nativeSrc": "32740:105:18", + "nodeType": "YulExpressionStatement", + "src": "32740:105:18" + } + ] + }, + "name": "update_storage_value_t_uint256_to_t_uint256", + "nativeSrc": "32582:269:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "32635:4:18", + "nodeType": "YulTypedName", + "src": "32635:4:18", + "type": "" + }, + { + "name": "offset", + "nativeSrc": "32641:6:18", + "nodeType": "YulTypedName", + "src": "32641:6:18", + "type": "" + }, + { + "name": "value_0", + "nativeSrc": "32649:7:18", + "nodeType": "YulTypedName", + "src": "32649:7:18", + "type": "" + } + ], + "src": "32582:269:18" + }, + { + "body": { + "nativeSrc": "32906:24:18", + "nodeType": "YulBlock", + "src": "32906:24:18", + "statements": [ + { + "nativeSrc": "32916:8:18", + "nodeType": "YulAssignment", + "src": "32916:8:18", + "value": { + "kind": "number", + "nativeSrc": "32923:1:18", + "nodeType": "YulLiteral", + "src": "32923:1:18", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "32916:3:18", + "nodeType": "YulIdentifier", + "src": "32916:3:18" + } + ] + } + ] + }, + "name": "zero_value_for_split_t_uint256", + "nativeSrc": "32857:73:18", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "32902:3:18", + "nodeType": "YulTypedName", + "src": "32902:3:18", + "type": "" + } + ], + "src": "32857:73:18" + }, + { + "body": { + "nativeSrc": "32989:136:18", + "nodeType": "YulBlock", + "src": "32989:136:18", + "statements": [ + { + "nativeSrc": "32999:46:18", + "nodeType": "YulVariableDeclaration", + "src": "32999:46:18", + "value": { + "arguments": [], + "functionName": { + "name": "zero_value_for_split_t_uint256", + "nativeSrc": "33013:30:18", + "nodeType": "YulIdentifier", + "src": "33013:30:18" + }, + "nativeSrc": "33013:32:18", + "nodeType": "YulFunctionCall", + "src": "33013:32:18" + }, + "variables": [ + { + "name": "zero_0", + "nativeSrc": "33003:6:18", + "nodeType": "YulTypedName", + "src": "33003:6:18", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "33098:4:18", + "nodeType": "YulIdentifier", + "src": "33098:4:18" + }, + { + "name": "offset", + "nativeSrc": "33104:6:18", + "nodeType": "YulIdentifier", + "src": "33104:6:18" + }, + { + "name": "zero_0", + "nativeSrc": "33112:6:18", + "nodeType": "YulIdentifier", + "src": "33112:6:18" + } + ], + "functionName": { + "name": "update_storage_value_t_uint256_to_t_uint256", + "nativeSrc": "33054:43:18", + "nodeType": "YulIdentifier", + "src": "33054:43:18" + }, + "nativeSrc": "33054:65:18", + "nodeType": "YulFunctionCall", + "src": "33054:65:18" + }, + "nativeSrc": "33054:65:18", + "nodeType": "YulExpressionStatement", + "src": "33054:65:18" + } + ] + }, + "name": "storage_set_to_zero_t_uint256", + "nativeSrc": "32936:189:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "32975:4:18", + "nodeType": "YulTypedName", + "src": "32975:4:18", + "type": "" + }, + { + "name": "offset", + "nativeSrc": "32981:6:18", + "nodeType": "YulTypedName", + "src": "32981:6:18", + "type": "" + } + ], + "src": "32936:189:18" + }, + { + "body": { + "nativeSrc": "33181:136:18", + "nodeType": "YulBlock", + "src": "33181:136:18", + "statements": [ + { + "body": { + "nativeSrc": "33248:63:18", + "nodeType": "YulBlock", + "src": "33248:63:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "start", + "nativeSrc": "33292:5:18", + "nodeType": "YulIdentifier", + "src": "33292:5:18" + }, + { + "kind": "number", + "nativeSrc": "33299:1:18", + "nodeType": "YulLiteral", + "src": "33299:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "storage_set_to_zero_t_uint256", + "nativeSrc": "33262:29:18", + "nodeType": "YulIdentifier", + "src": "33262:29:18" + }, + "nativeSrc": "33262:39:18", + "nodeType": "YulFunctionCall", + "src": "33262:39:18" + }, + "nativeSrc": "33262:39:18", + "nodeType": "YulExpressionStatement", + "src": "33262:39:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "start", + "nativeSrc": "33201:5:18", + "nodeType": "YulIdentifier", + "src": "33201:5:18" + }, + { + "name": "end", + "nativeSrc": "33208:3:18", + "nodeType": "YulIdentifier", + "src": "33208:3:18" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "33198:2:18", + "nodeType": "YulIdentifier", + "src": "33198:2:18" + }, + "nativeSrc": "33198:14:18", + "nodeType": "YulFunctionCall", + "src": "33198:14:18" + }, + "nativeSrc": "33191:120:18", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "33213:26:18", + "nodeType": "YulBlock", + "src": "33213:26:18", + "statements": [ + { + "nativeSrc": "33215:22:18", + "nodeType": "YulAssignment", + "src": "33215:22:18", + "value": { + "arguments": [ + { + "name": "start", + "nativeSrc": "33228:5:18", + "nodeType": "YulIdentifier", + "src": "33228:5:18" + }, + { + "kind": "number", + "nativeSrc": "33235:1:18", + "nodeType": "YulLiteral", + "src": "33235:1:18", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "33224:3:18", + "nodeType": "YulIdentifier", + "src": "33224:3:18" + }, + "nativeSrc": "33224:13:18", + "nodeType": "YulFunctionCall", + "src": "33224:13:18" + }, + "variableNames": [ + { + "name": "start", + "nativeSrc": "33215:5:18", + "nodeType": "YulIdentifier", + "src": "33215:5:18" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "33195:2:18", + "nodeType": "YulBlock", + "src": "33195:2:18", + "statements": [] + }, + "src": "33191:120:18" + } + ] + }, + "name": "clear_storage_range_t_bytes1", + "nativeSrc": "33131:186:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "start", + "nativeSrc": "33169:5:18", + "nodeType": "YulTypedName", + "src": "33169:5:18", + "type": "" + }, + { + "name": "end", + "nativeSrc": "33176:3:18", + "nodeType": "YulTypedName", + "src": "33176:3:18", + "type": "" + } + ], + "src": "33131:186:18" + }, + { + "body": { + "nativeSrc": "33402:464:18", + "nodeType": "YulBlock", + "src": "33402:464:18", + "statements": [ + { + "body": { + "nativeSrc": "33428:431:18", + "nodeType": "YulBlock", + "src": "33428:431:18", + "statements": [ + { + "nativeSrc": "33442:54:18", + "nodeType": "YulVariableDeclaration", + "src": "33442:54:18", + "value": { + "arguments": [ + { + "name": "array", + "nativeSrc": "33490:5:18", + "nodeType": "YulIdentifier", + "src": "33490:5:18" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nativeSrc": "33458:31:18", + "nodeType": "YulIdentifier", + "src": "33458:31:18" + }, + "nativeSrc": "33458:38:18", + "nodeType": "YulFunctionCall", + "src": "33458:38:18" + }, + "variables": [ + { + "name": "dataArea", + "nativeSrc": "33446:8:18", + "nodeType": "YulTypedName", + "src": "33446:8:18", + "type": "" + } + ] + }, + { + "nativeSrc": "33509:63:18", + "nodeType": "YulVariableDeclaration", + "src": "33509:63:18", + "value": { + "arguments": [ + { + "name": "dataArea", + "nativeSrc": "33532:8:18", + "nodeType": "YulIdentifier", + "src": "33532:8:18" + }, + { + "arguments": [ + { + "name": "startIndex", + "nativeSrc": "33560:10:18", + "nodeType": "YulIdentifier", + "src": "33560:10:18" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nativeSrc": "33542:17:18", + "nodeType": "YulIdentifier", + "src": "33542:17:18" + }, + "nativeSrc": "33542:29:18", + "nodeType": "YulFunctionCall", + "src": "33542:29:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "33528:3:18", + "nodeType": "YulIdentifier", + "src": "33528:3:18" + }, + "nativeSrc": "33528:44:18", + "nodeType": "YulFunctionCall", + "src": "33528:44:18" + }, + "variables": [ + { + "name": "deleteStart", + "nativeSrc": "33513:11:18", + "nodeType": "YulTypedName", + "src": "33513:11:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "33729:27:18", + "nodeType": "YulBlock", + "src": "33729:27:18", + "statements": [ + { + "nativeSrc": "33731:23:18", + "nodeType": "YulAssignment", + "src": "33731:23:18", + "value": { + "name": "dataArea", + "nativeSrc": "33746:8:18", + "nodeType": "YulIdentifier", + "src": "33746:8:18" + }, + "variableNames": [ + { + "name": "deleteStart", + "nativeSrc": "33731:11:18", + "nodeType": "YulIdentifier", + "src": "33731:11:18" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nativeSrc": "33713:10:18", + "nodeType": "YulIdentifier", + "src": "33713:10:18" + }, + { + "kind": "number", + "nativeSrc": "33725:2:18", + "nodeType": "YulLiteral", + "src": "33725:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "33710:2:18", + "nodeType": "YulIdentifier", + "src": "33710:2:18" + }, + "nativeSrc": "33710:18:18", + "nodeType": "YulFunctionCall", + "src": "33710:18:18" + }, + "nativeSrc": "33707:49:18", + "nodeType": "YulIf", + "src": "33707:49:18" + }, + { + "expression": { + "arguments": [ + { + "name": "deleteStart", + "nativeSrc": "33798:11:18", + "nodeType": "YulIdentifier", + "src": "33798:11:18" + }, + { + "arguments": [ + { + "name": "dataArea", + "nativeSrc": "33815:8:18", + "nodeType": "YulIdentifier", + "src": "33815:8:18" + }, + { + "arguments": [ + { + "name": "len", + "nativeSrc": "33843:3:18", + "nodeType": "YulIdentifier", + "src": "33843:3:18" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nativeSrc": "33825:17:18", + "nodeType": "YulIdentifier", + "src": "33825:17:18" + }, + "nativeSrc": "33825:22:18", + "nodeType": "YulFunctionCall", + "src": "33825:22:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "33811:3:18", + "nodeType": "YulIdentifier", + "src": "33811:3:18" + }, + "nativeSrc": "33811:37:18", + "nodeType": "YulFunctionCall", + "src": "33811:37:18" + } + ], + "functionName": { + "name": "clear_storage_range_t_bytes1", + "nativeSrc": "33769:28:18", + "nodeType": "YulIdentifier", + "src": "33769:28:18" + }, + "nativeSrc": "33769:80:18", + "nodeType": "YulFunctionCall", + "src": "33769:80:18" + }, + "nativeSrc": "33769:80:18", + "nodeType": "YulExpressionStatement", + "src": "33769:80:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "len", + "nativeSrc": "33419:3:18", + "nodeType": "YulIdentifier", + "src": "33419:3:18" + }, + { + "kind": "number", + "nativeSrc": "33424:2:18", + "nodeType": "YulLiteral", + "src": "33424:2:18", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "33416:2:18", + "nodeType": "YulIdentifier", + "src": "33416:2:18" + }, + "nativeSrc": "33416:11:18", + "nodeType": "YulFunctionCall", + "src": "33416:11:18" + }, + "nativeSrc": "33413:446:18", + "nodeType": "YulIf", + "src": "33413:446:18" + } + ] + }, + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nativeSrc": "33323:543:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "array", + "nativeSrc": "33378:5:18", + "nodeType": "YulTypedName", + "src": "33378:5:18", + "type": "" + }, + { + "name": "len", + "nativeSrc": "33385:3:18", + "nodeType": "YulTypedName", + "src": "33385:3:18", + "type": "" + }, + { + "name": "startIndex", + "nativeSrc": "33390:10:18", + "nodeType": "YulTypedName", + "src": "33390:10:18", + "type": "" + } + ], + "src": "33323:543:18" + }, + { + "body": { + "nativeSrc": "33935:54:18", + "nodeType": "YulBlock", + "src": "33935:54:18", + "statements": [ + { + "nativeSrc": "33945:37:18", + "nodeType": "YulAssignment", + "src": "33945:37:18", + "value": { + "arguments": [ + { + "name": "bits", + "nativeSrc": "33970:4:18", + "nodeType": "YulIdentifier", + "src": "33970:4:18" + }, + { + "name": "value", + "nativeSrc": "33976:5:18", + "nodeType": "YulIdentifier", + "src": "33976:5:18" + } + ], + "functionName": { + "name": "shr", + "nativeSrc": "33966:3:18", + "nodeType": "YulIdentifier", + "src": "33966:3:18" + }, + "nativeSrc": "33966:16:18", + "nodeType": "YulFunctionCall", + "src": "33966:16:18" + }, + "variableNames": [ + { + "name": "newValue", + "nativeSrc": "33945:8:18", + "nodeType": "YulIdentifier", + "src": "33945:8:18" + } + ] + } + ] + }, + "name": "shift_right_unsigned_dynamic", + "nativeSrc": "33872:117:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nativeSrc": "33910:4:18", + "nodeType": "YulTypedName", + "src": "33910:4:18", + "type": "" + }, + { + "name": "value", + "nativeSrc": "33916:5:18", + "nodeType": "YulTypedName", + "src": "33916:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nativeSrc": "33926:8:18", + "nodeType": "YulTypedName", + "src": "33926:8:18", + "type": "" + } + ], + "src": "33872:117:18" + }, + { + "body": { + "nativeSrc": "34046:118:18", + "nodeType": "YulBlock", + "src": "34046:118:18", + "statements": [ + { + "nativeSrc": "34056:68:18", + "nodeType": "YulVariableDeclaration", + "src": "34056:68:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "34105:1:18", + "nodeType": "YulLiteral", + "src": "34105:1:18", + "type": "", + "value": "8" + }, + { + "name": "bytes", + "nativeSrc": "34108:5:18", + "nodeType": "YulIdentifier", + "src": "34108:5:18" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "34101:3:18", + "nodeType": "YulIdentifier", + "src": "34101:3:18" + }, + "nativeSrc": "34101:13:18", + "nodeType": "YulFunctionCall", + "src": "34101:13:18" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "34120:1:18", + "nodeType": "YulLiteral", + "src": "34120:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "34116:3:18", + "nodeType": "YulIdentifier", + "src": "34116:3:18" + }, + "nativeSrc": "34116:6:18", + "nodeType": "YulFunctionCall", + "src": "34116:6:18" + } + ], + "functionName": { + "name": "shift_right_unsigned_dynamic", + "nativeSrc": "34072:28:18", + "nodeType": "YulIdentifier", + "src": "34072:28:18" + }, + "nativeSrc": "34072:51:18", + "nodeType": "YulFunctionCall", + "src": "34072:51:18" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "34068:3:18", + "nodeType": "YulIdentifier", + "src": "34068:3:18" + }, + "nativeSrc": "34068:56:18", + "nodeType": "YulFunctionCall", + "src": "34068:56:18" + }, + "variables": [ + { + "name": "mask", + "nativeSrc": "34060:4:18", + "nodeType": "YulTypedName", + "src": "34060:4:18", + "type": "" + } + ] + }, + { + "nativeSrc": "34133:25:18", + "nodeType": "YulAssignment", + "src": "34133:25:18", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "34147:4:18", + "nodeType": "YulIdentifier", + "src": "34147:4:18" + }, + { + "name": "mask", + "nativeSrc": "34153:4:18", + "nodeType": "YulIdentifier", + "src": "34153:4:18" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "34143:3:18", + "nodeType": "YulIdentifier", + "src": "34143:3:18" + }, + "nativeSrc": "34143:15:18", + "nodeType": "YulFunctionCall", + "src": "34143:15:18" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "34133:6:18", + "nodeType": "YulIdentifier", + "src": "34133:6:18" + } + ] + } + ] + }, + "name": "mask_bytes_dynamic", + "nativeSrc": "33995:169:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "34023:4:18", + "nodeType": "YulTypedName", + "src": "34023:4:18", + "type": "" + }, + { + "name": "bytes", + "nativeSrc": "34029:5:18", + "nodeType": "YulTypedName", + "src": "34029:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "34039:6:18", + "nodeType": "YulTypedName", + "src": "34039:6:18", + "type": "" + } + ], + "src": "33995:169:18" + }, + { + "body": { + "nativeSrc": "34250:214:18", + "nodeType": "YulBlock", + "src": "34250:214:18", + "statements": [ + { + "nativeSrc": "34383:37:18", + "nodeType": "YulAssignment", + "src": "34383:37:18", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "34410:4:18", + "nodeType": "YulIdentifier", + "src": "34410:4:18" + }, + { + "name": "len", + "nativeSrc": "34416:3:18", + "nodeType": "YulIdentifier", + "src": "34416:3:18" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nativeSrc": "34391:18:18", + "nodeType": "YulIdentifier", + "src": "34391:18:18" + }, + "nativeSrc": "34391:29:18", + "nodeType": "YulFunctionCall", + "src": "34391:29:18" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "34383:4:18", + "nodeType": "YulIdentifier", + "src": "34383:4:18" + } + ] + }, + { + "nativeSrc": "34429:29:18", + "nodeType": "YulAssignment", + "src": "34429:29:18", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "34440:4:18", + "nodeType": "YulIdentifier", + "src": "34440:4:18" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "34450:1:18", + "nodeType": "YulLiteral", + "src": "34450:1:18", + "type": "", + "value": "2" + }, + { + "name": "len", + "nativeSrc": "34453:3:18", + "nodeType": "YulIdentifier", + "src": "34453:3:18" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "34446:3:18", + "nodeType": "YulIdentifier", + "src": "34446:3:18" + }, + "nativeSrc": "34446:11:18", + "nodeType": "YulFunctionCall", + "src": "34446:11:18" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "34437:2:18", + "nodeType": "YulIdentifier", + "src": "34437:2:18" + }, + "nativeSrc": "34437:21:18", + "nodeType": "YulFunctionCall", + "src": "34437:21:18" + }, + "variableNames": [ + { + "name": "used", + "nativeSrc": "34429:4:18", + "nodeType": "YulIdentifier", + "src": "34429:4:18" + } + ] + } + ] + }, + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nativeSrc": "34169:295:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "34231:4:18", + "nodeType": "YulTypedName", + "src": "34231:4:18", + "type": "" + }, + { + "name": "len", + "nativeSrc": "34237:3:18", + "nodeType": "YulTypedName", + "src": "34237:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "used", + "nativeSrc": "34245:4:18", + "nodeType": "YulTypedName", + "src": "34245:4:18", + "type": "" + } + ], + "src": "34169:295:18" + }, + { + "body": { + "nativeSrc": "34561:1303:18", + "nodeType": "YulBlock", + "src": "34561:1303:18", + "statements": [ + { + "nativeSrc": "34572:51:18", + "nodeType": "YulVariableDeclaration", + "src": "34572:51:18", + "value": { + "arguments": [ + { + "name": "src", + "nativeSrc": "34619:3:18", + "nodeType": "YulIdentifier", + "src": "34619:3:18" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "34586:32:18", + "nodeType": "YulIdentifier", + "src": "34586:32:18" + }, + "nativeSrc": "34586:37:18", + "nodeType": "YulFunctionCall", + "src": "34586:37:18" + }, + "variables": [ + { + "name": "newLen", + "nativeSrc": "34576:6:18", + "nodeType": "YulTypedName", + "src": "34576:6:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "34708:22:18", + "nodeType": "YulBlock", + "src": "34708:22:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "34710:16:18", + "nodeType": "YulIdentifier", + "src": "34710:16:18" + }, + "nativeSrc": "34710:18:18", + "nodeType": "YulFunctionCall", + "src": "34710:18:18" + }, + "nativeSrc": "34710:18:18", + "nodeType": "YulExpressionStatement", + "src": "34710:18:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "34680:6:18", + "nodeType": "YulIdentifier", + "src": "34680:6:18" + }, + { + "kind": "number", + "nativeSrc": "34688:18:18", + "nodeType": "YulLiteral", + "src": "34688:18:18", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "34677:2:18", + "nodeType": "YulIdentifier", + "src": "34677:2:18" + }, + "nativeSrc": "34677:30:18", + "nodeType": "YulFunctionCall", + "src": "34677:30:18" + }, + "nativeSrc": "34674:56:18", + "nodeType": "YulIf", + "src": "34674:56:18" + }, + { + "nativeSrc": "34740:52:18", + "nodeType": "YulVariableDeclaration", + "src": "34740:52:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nativeSrc": "34786:4:18", + "nodeType": "YulIdentifier", + "src": "34786:4:18" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "34780:5:18", + "nodeType": "YulIdentifier", + "src": "34780:5:18" + }, + "nativeSrc": "34780:11:18", + "nodeType": "YulFunctionCall", + "src": "34780:11:18" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nativeSrc": "34754:25:18", + "nodeType": "YulIdentifier", + "src": "34754:25:18" + }, + "nativeSrc": "34754:38:18", + "nodeType": "YulFunctionCall", + "src": "34754:38:18" + }, + "variables": [ + { + "name": "oldLen", + "nativeSrc": "34744:6:18", + "nodeType": "YulTypedName", + "src": "34744:6:18", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "34885:4:18", + "nodeType": "YulIdentifier", + "src": "34885:4:18" + }, + { + "name": "oldLen", + "nativeSrc": "34891:6:18", + "nodeType": "YulIdentifier", + "src": "34891:6:18" + }, + { + "name": "newLen", + "nativeSrc": "34899:6:18", + "nodeType": "YulIdentifier", + "src": "34899:6:18" + } + ], + "functionName": { + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nativeSrc": "34839:45:18", + "nodeType": "YulIdentifier", + "src": "34839:45:18" + }, + "nativeSrc": "34839:67:18", + "nodeType": "YulFunctionCall", + "src": "34839:67:18" + }, + "nativeSrc": "34839:67:18", + "nodeType": "YulExpressionStatement", + "src": "34839:67:18" + }, + { + "nativeSrc": "34916:18:18", + "nodeType": "YulVariableDeclaration", + "src": "34916:18:18", + "value": { + "kind": "number", + "nativeSrc": "34933:1:18", + "nodeType": "YulLiteral", + "src": "34933:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "srcOffset", + "nativeSrc": "34920:9:18", + "nodeType": "YulTypedName", + "src": "34920:9:18", + "type": "" + } + ] + }, + { + "nativeSrc": "34944:17:18", + "nodeType": "YulAssignment", + "src": "34944:17:18", + "value": { + "kind": "number", + "nativeSrc": "34957:4:18", + "nodeType": "YulLiteral", + "src": "34957:4:18", + "type": "", + "value": "0x20" + }, + "variableNames": [ + { + "name": "srcOffset", + "nativeSrc": "34944:9:18", + "nodeType": "YulIdentifier", + "src": "34944:9:18" + } + ] + }, + { + "cases": [ + { + "body": { + "nativeSrc": "35008:611:18", + "nodeType": "YulBlock", + "src": "35008:611:18", + "statements": [ + { + "nativeSrc": "35022:37:18", + "nodeType": "YulVariableDeclaration", + "src": "35022:37:18", + "value": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "35041:6:18", + "nodeType": "YulIdentifier", + "src": "35041:6:18" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "35053:4:18", + "nodeType": "YulLiteral", + "src": "35053:4:18", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "35049:3:18", + "nodeType": "YulIdentifier", + "src": "35049:3:18" + }, + "nativeSrc": "35049:9:18", + "nodeType": "YulFunctionCall", + "src": "35049:9:18" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "35037:3:18", + "nodeType": "YulIdentifier", + "src": "35037:3:18" + }, + "nativeSrc": "35037:22:18", + "nodeType": "YulFunctionCall", + "src": "35037:22:18" + }, + "variables": [ + { + "name": "loopEnd", + "nativeSrc": "35026:7:18", + "nodeType": "YulTypedName", + "src": "35026:7:18", + "type": "" + } + ] + }, + { + "nativeSrc": "35073:51:18", + "nodeType": "YulVariableDeclaration", + "src": "35073:51:18", + "value": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "35119:4:18", + "nodeType": "YulIdentifier", + "src": "35119:4:18" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nativeSrc": "35087:31:18", + "nodeType": "YulIdentifier", + "src": "35087:31:18" + }, + "nativeSrc": "35087:37:18", + "nodeType": "YulFunctionCall", + "src": "35087:37:18" + }, + "variables": [ + { + "name": "dstPtr", + "nativeSrc": "35077:6:18", + "nodeType": "YulTypedName", + "src": "35077:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "35137:10:18", + "nodeType": "YulVariableDeclaration", + "src": "35137:10:18", + "value": { + "kind": "number", + "nativeSrc": "35146:1:18", + "nodeType": "YulLiteral", + "src": "35146:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "35141:1:18", + "nodeType": "YulTypedName", + "src": "35141:1:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "35205:163:18", + "nodeType": "YulBlock", + "src": "35205:163:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "35230:6:18", + "nodeType": "YulIdentifier", + "src": "35230:6:18" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "35248:3:18", + "nodeType": "YulIdentifier", + "src": "35248:3:18" + }, + { + "name": "srcOffset", + "nativeSrc": "35253:9:18", + "nodeType": "YulIdentifier", + "src": "35253:9:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "35244:3:18", + "nodeType": "YulIdentifier", + "src": "35244:3:18" + }, + "nativeSrc": "35244:19:18", + "nodeType": "YulFunctionCall", + "src": "35244:19:18" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "35238:5:18", + "nodeType": "YulIdentifier", + "src": "35238:5:18" + }, + "nativeSrc": "35238:26:18", + "nodeType": "YulFunctionCall", + "src": "35238:26:18" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "35223:6:18", + "nodeType": "YulIdentifier", + "src": "35223:6:18" + }, + "nativeSrc": "35223:42:18", + "nodeType": "YulFunctionCall", + "src": "35223:42:18" + }, + "nativeSrc": "35223:42:18", + "nodeType": "YulExpressionStatement", + "src": "35223:42:18" + }, + { + "nativeSrc": "35282:24:18", + "nodeType": "YulAssignment", + "src": "35282:24:18", + "value": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "35296:6:18", + "nodeType": "YulIdentifier", + "src": "35296:6:18" + }, + { + "kind": "number", + "nativeSrc": "35304:1:18", + "nodeType": "YulLiteral", + "src": "35304:1:18", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "35292:3:18", + "nodeType": "YulIdentifier", + "src": "35292:3:18" + }, + "nativeSrc": "35292:14:18", + "nodeType": "YulFunctionCall", + "src": "35292:14:18" + }, + "variableNames": [ + { + "name": "dstPtr", + "nativeSrc": "35282:6:18", + "nodeType": "YulIdentifier", + "src": "35282:6:18" + } + ] + }, + { + "nativeSrc": "35323:31:18", + "nodeType": "YulAssignment", + "src": "35323:31:18", + "value": { + "arguments": [ + { + "name": "srcOffset", + "nativeSrc": "35340:9:18", + "nodeType": "YulIdentifier", + "src": "35340:9:18" + }, + { + "kind": "number", + "nativeSrc": "35351:2:18", + "nodeType": "YulLiteral", + "src": "35351:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "35336:3:18", + "nodeType": "YulIdentifier", + "src": "35336:3:18" + }, + "nativeSrc": "35336:18:18", + "nodeType": "YulFunctionCall", + "src": "35336:18:18" + }, + "variableNames": [ + { + "name": "srcOffset", + "nativeSrc": "35323:9:18", + "nodeType": "YulIdentifier", + "src": "35323:9:18" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "35171:1:18", + "nodeType": "YulIdentifier", + "src": "35171:1:18" + }, + { + "name": "loopEnd", + "nativeSrc": "35174:7:18", + "nodeType": "YulIdentifier", + "src": "35174:7:18" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "35168:2:18", + "nodeType": "YulIdentifier", + "src": "35168:2:18" + }, + "nativeSrc": "35168:14:18", + "nodeType": "YulFunctionCall", + "src": "35168:14:18" + }, + "nativeSrc": "35160:208:18", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "35183:21:18", + "nodeType": "YulBlock", + "src": "35183:21:18", + "statements": [ + { + "nativeSrc": "35185:17:18", + "nodeType": "YulAssignment", + "src": "35185:17:18", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "35194:1:18", + "nodeType": "YulIdentifier", + "src": "35194:1:18" + }, + { + "kind": "number", + "nativeSrc": "35197:4:18", + "nodeType": "YulLiteral", + "src": "35197:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "35190:3:18", + "nodeType": "YulIdentifier", + "src": "35190:3:18" + }, + "nativeSrc": "35190:12:18", + "nodeType": "YulFunctionCall", + "src": "35190:12:18" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "35185:1:18", + "nodeType": "YulIdentifier", + "src": "35185:1:18" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "35164:3:18", + "nodeType": "YulBlock", + "src": "35164:3:18", + "statements": [] + }, + "src": "35160:208:18" + }, + { + "body": { + "nativeSrc": "35404:156:18", + "nodeType": "YulBlock", + "src": "35404:156:18", + "statements": [ + { + "nativeSrc": "35422:43:18", + "nodeType": "YulVariableDeclaration", + "src": "35422:43:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "35449:3:18", + "nodeType": "YulIdentifier", + "src": "35449:3:18" + }, + { + "name": "srcOffset", + "nativeSrc": "35454:9:18", + "nodeType": "YulIdentifier", + "src": "35454:9:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "35445:3:18", + "nodeType": "YulIdentifier", + "src": "35445:3:18" + }, + "nativeSrc": "35445:19:18", + "nodeType": "YulFunctionCall", + "src": "35445:19:18" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "35439:5:18", + "nodeType": "YulIdentifier", + "src": "35439:5:18" + }, + "nativeSrc": "35439:26:18", + "nodeType": "YulFunctionCall", + "src": "35439:26:18" + }, + "variables": [ + { + "name": "lastValue", + "nativeSrc": "35426:9:18", + "nodeType": "YulTypedName", + "src": "35426:9:18", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "35489:6:18", + "nodeType": "YulIdentifier", + "src": "35489:6:18" + }, + { + "arguments": [ + { + "name": "lastValue", + "nativeSrc": "35516:9:18", + "nodeType": "YulIdentifier", + "src": "35516:9:18" + }, + { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "35531:6:18", + "nodeType": "YulIdentifier", + "src": "35531:6:18" + }, + { + "kind": "number", + "nativeSrc": "35539:4:18", + "nodeType": "YulLiteral", + "src": "35539:4:18", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "35527:3:18", + "nodeType": "YulIdentifier", + "src": "35527:3:18" + }, + "nativeSrc": "35527:17:18", + "nodeType": "YulFunctionCall", + "src": "35527:17:18" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nativeSrc": "35497:18:18", + "nodeType": "YulIdentifier", + "src": "35497:18:18" + }, + "nativeSrc": "35497:48:18", + "nodeType": "YulFunctionCall", + "src": "35497:48:18" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "35482:6:18", + "nodeType": "YulIdentifier", + "src": "35482:6:18" + }, + "nativeSrc": "35482:64:18", + "nodeType": "YulFunctionCall", + "src": "35482:64:18" + }, + "nativeSrc": "35482:64:18", + "nodeType": "YulExpressionStatement", + "src": "35482:64:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "loopEnd", + "nativeSrc": "35387:7:18", + "nodeType": "YulIdentifier", + "src": "35387:7:18" + }, + { + "name": "newLen", + "nativeSrc": "35396:6:18", + "nodeType": "YulIdentifier", + "src": "35396:6:18" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "35384:2:18", + "nodeType": "YulIdentifier", + "src": "35384:2:18" + }, + "nativeSrc": "35384:19:18", + "nodeType": "YulFunctionCall", + "src": "35384:19:18" + }, + "nativeSrc": "35381:179:18", + "nodeType": "YulIf", + "src": "35381:179:18" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "35580:4:18", + "nodeType": "YulIdentifier", + "src": "35580:4:18" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "35594:6:18", + "nodeType": "YulIdentifier", + "src": "35594:6:18" + }, + { + "kind": "number", + "nativeSrc": "35602:1:18", + "nodeType": "YulLiteral", + "src": "35602:1:18", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "35590:3:18", + "nodeType": "YulIdentifier", + "src": "35590:3:18" + }, + "nativeSrc": "35590:14:18", + "nodeType": "YulFunctionCall", + "src": "35590:14:18" + }, + { + "kind": "number", + "nativeSrc": "35606:1:18", + "nodeType": "YulLiteral", + "src": "35606:1:18", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "35586:3:18", + "nodeType": "YulIdentifier", + "src": "35586:3:18" + }, + "nativeSrc": "35586:22:18", + "nodeType": "YulFunctionCall", + "src": "35586:22:18" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "35573:6:18", + "nodeType": "YulIdentifier", + "src": "35573:6:18" + }, + "nativeSrc": "35573:36:18", + "nodeType": "YulFunctionCall", + "src": "35573:36:18" + }, + "nativeSrc": "35573:36:18", + "nodeType": "YulExpressionStatement", + "src": "35573:36:18" + } + ] + }, + "nativeSrc": "35001:618:18", + "nodeType": "YulCase", + "src": "35001:618:18", + "value": { + "kind": "number", + "nativeSrc": "35006:1:18", + "nodeType": "YulLiteral", + "src": "35006:1:18", + "type": "", + "value": "1" + } + }, + { + "body": { + "nativeSrc": "35636:222:18", + "nodeType": "YulBlock", + "src": "35636:222:18", + "statements": [ + { + "nativeSrc": "35650:14:18", + "nodeType": "YulVariableDeclaration", + "src": "35650:14:18", + "value": { + "kind": "number", + "nativeSrc": "35663:1:18", + "nodeType": "YulLiteral", + "src": "35663:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "35654:5:18", + "nodeType": "YulTypedName", + "src": "35654:5:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "35687:67:18", + "nodeType": "YulBlock", + "src": "35687:67:18", + "statements": [ + { + "nativeSrc": "35705:35:18", + "nodeType": "YulAssignment", + "src": "35705:35:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "35724:3:18", + "nodeType": "YulIdentifier", + "src": "35724:3:18" + }, + { + "name": "srcOffset", + "nativeSrc": "35729:9:18", + "nodeType": "YulIdentifier", + "src": "35729:9:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "35720:3:18", + "nodeType": "YulIdentifier", + "src": "35720:3:18" + }, + "nativeSrc": "35720:19:18", + "nodeType": "YulFunctionCall", + "src": "35720:19:18" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "35714:5:18", + "nodeType": "YulIdentifier", + "src": "35714:5:18" + }, + "nativeSrc": "35714:26:18", + "nodeType": "YulFunctionCall", + "src": "35714:26:18" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "35705:5:18", + "nodeType": "YulIdentifier", + "src": "35705:5:18" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nativeSrc": "35680:6:18", + "nodeType": "YulIdentifier", + "src": "35680:6:18" + }, + "nativeSrc": "35677:77:18", + "nodeType": "YulIf", + "src": "35677:77:18" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "35774:4:18", + "nodeType": "YulIdentifier", + "src": "35774:4:18" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "35833:5:18", + "nodeType": "YulIdentifier", + "src": "35833:5:18" + }, + { + "name": "newLen", + "nativeSrc": "35840:6:18", + "nodeType": "YulIdentifier", + "src": "35840:6:18" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nativeSrc": "35780:52:18", + "nodeType": "YulIdentifier", + "src": "35780:52:18" + }, + "nativeSrc": "35780:67:18", + "nodeType": "YulFunctionCall", + "src": "35780:67:18" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "35767:6:18", + "nodeType": "YulIdentifier", + "src": "35767:6:18" + }, + "nativeSrc": "35767:81:18", + "nodeType": "YulFunctionCall", + "src": "35767:81:18" + }, + "nativeSrc": "35767:81:18", + "nodeType": "YulExpressionStatement", + "src": "35767:81:18" + } + ] + }, + "nativeSrc": "35628:230:18", + "nodeType": "YulCase", + "src": "35628:230:18", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "34981:6:18", + "nodeType": "YulIdentifier", + "src": "34981:6:18" + }, + { + "kind": "number", + "nativeSrc": "34989:2:18", + "nodeType": "YulLiteral", + "src": "34989:2:18", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "34978:2:18", + "nodeType": "YulIdentifier", + "src": "34978:2:18" + }, + "nativeSrc": "34978:14:18", + "nodeType": "YulFunctionCall", + "src": "34978:14:18" + }, + "nativeSrc": "34971:887:18", + "nodeType": "YulSwitch", + "src": "34971:887:18" + } + ] + }, + "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", + "nativeSrc": "34469:1395:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "34550:4:18", + "nodeType": "YulTypedName", + "src": "34550:4:18", + "type": "" + }, + { + "name": "src", + "nativeSrc": "34556:3:18", + "nodeType": "YulTypedName", + "src": "34556:3:18", + "type": "" + } + ], + "src": "34469:1395:18" + }, + { + "body": { + "nativeSrc": "35898:152:18", + "nodeType": "YulBlock", + "src": "35898:152:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "35915:1:18", + "nodeType": "YulLiteral", + "src": "35915:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "35918:77:18", + "nodeType": "YulLiteral", + "src": "35918:77:18", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "35908:6:18", + "nodeType": "YulIdentifier", + "src": "35908:6:18" + }, + "nativeSrc": "35908:88:18", + "nodeType": "YulFunctionCall", + "src": "35908:88:18" + }, + "nativeSrc": "35908:88:18", + "nodeType": "YulExpressionStatement", + "src": "35908:88:18" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "36012:1:18", + "nodeType": "YulLiteral", + "src": "36012:1:18", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "36015:4:18", + "nodeType": "YulLiteral", + "src": "36015:4:18", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "36005:6:18", + "nodeType": "YulIdentifier", + "src": "36005:6:18" + }, + "nativeSrc": "36005:15:18", + "nodeType": "YulFunctionCall", + "src": "36005:15:18" + }, + "nativeSrc": "36005:15:18", + "nodeType": "YulExpressionStatement", + "src": "36005:15:18" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "36036:1:18", + "nodeType": "YulLiteral", + "src": "36036:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "36039:4:18", + "nodeType": "YulLiteral", + "src": "36039:4:18", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "36029:6:18", + "nodeType": "YulIdentifier", + "src": "36029:6:18" + }, + "nativeSrc": "36029:15:18", + "nodeType": "YulFunctionCall", + "src": "36029:15:18" + }, + "nativeSrc": "36029:15:18", + "nodeType": "YulExpressionStatement", + "src": "36029:15:18" + } + ] + }, + "name": "panic_error_0x11", + "nativeSrc": "35870:180:18", + "nodeType": "YulFunctionDefinition", + "src": "35870:180:18" + }, + { + "body": { + "nativeSrc": "36100:147:18", + "nodeType": "YulBlock", + "src": "36100:147:18", + "statements": [ + { + "nativeSrc": "36110:25:18", + "nodeType": "YulAssignment", + "src": "36110:25:18", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "36133:1:18", + "nodeType": "YulIdentifier", + "src": "36133:1:18" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "36115:17:18", + "nodeType": "YulIdentifier", + "src": "36115:17:18" + }, + "nativeSrc": "36115:20:18", + "nodeType": "YulFunctionCall", + "src": "36115:20:18" + }, + "variableNames": [ + { + "name": "x", + "nativeSrc": "36110:1:18", + "nodeType": "YulIdentifier", + "src": "36110:1:18" + } + ] + }, + { + "nativeSrc": "36144:25:18", + "nodeType": "YulAssignment", + "src": "36144:25:18", + "value": { + "arguments": [ + { + "name": "y", + "nativeSrc": "36167:1:18", + "nodeType": "YulIdentifier", + "src": "36167:1:18" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "36149:17:18", + "nodeType": "YulIdentifier", + "src": "36149:17:18" + }, + "nativeSrc": "36149:20:18", + "nodeType": "YulFunctionCall", + "src": "36149:20:18" + }, + "variableNames": [ + { + "name": "y", + "nativeSrc": "36144:1:18", + "nodeType": "YulIdentifier", + "src": "36144:1:18" + } + ] + }, + { + "nativeSrc": "36178:16:18", + "nodeType": "YulAssignment", + "src": "36178:16:18", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "36189:1:18", + "nodeType": "YulIdentifier", + "src": "36189:1:18" + }, + { + "name": "y", + "nativeSrc": "36192:1:18", + "nodeType": "YulIdentifier", + "src": "36192:1:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "36185:3:18", + "nodeType": "YulIdentifier", + "src": "36185:3:18" + }, + "nativeSrc": "36185:9:18", + "nodeType": "YulFunctionCall", + "src": "36185:9:18" + }, + "variableNames": [ + { + "name": "sum", + "nativeSrc": "36178:3:18", + "nodeType": "YulIdentifier", + "src": "36178:3:18" + } + ] + }, + { + "body": { + "nativeSrc": "36218:22:18", + "nodeType": "YulBlock", + "src": "36218:22:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nativeSrc": "36220:16:18", + "nodeType": "YulIdentifier", + "src": "36220:16:18" + }, + "nativeSrc": "36220:18:18", + "nodeType": "YulFunctionCall", + "src": "36220:18:18" + }, + "nativeSrc": "36220:18:18", + "nodeType": "YulExpressionStatement", + "src": "36220:18:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nativeSrc": "36210:1:18", + "nodeType": "YulIdentifier", + "src": "36210:1:18" + }, + { + "name": "sum", + "nativeSrc": "36213:3:18", + "nodeType": "YulIdentifier", + "src": "36213:3:18" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "36207:2:18", + "nodeType": "YulIdentifier", + "src": "36207:2:18" + }, + "nativeSrc": "36207:10:18", + "nodeType": "YulFunctionCall", + "src": "36207:10:18" + }, + "nativeSrc": "36204:36:18", + "nodeType": "YulIf", + "src": "36204:36:18" + } + ] + }, + "name": "checked_add_t_uint256", + "nativeSrc": "36056:191:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nativeSrc": "36087:1:18", + "nodeType": "YulTypedName", + "src": "36087:1:18", + "type": "" + }, + { + "name": "y", + "nativeSrc": "36090:1:18", + "nodeType": "YulTypedName", + "src": "36090:1:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nativeSrc": "36096:3:18", + "nodeType": "YulTypedName", + "src": "36096:3:18", + "type": "" + } + ], + "src": "36056:191:18" + }, + { + "body": { + "nativeSrc": "36351:124:18", + "nodeType": "YulBlock", + "src": "36351:124:18", + "statements": [ + { + "nativeSrc": "36361:26:18", + "nodeType": "YulAssignment", + "src": "36361:26:18", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "36373:9:18", + "nodeType": "YulIdentifier", + "src": "36373:9:18" + }, + { + "kind": "number", + "nativeSrc": "36384:2:18", + "nodeType": "YulLiteral", + "src": "36384:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "36369:3:18", + "nodeType": "YulIdentifier", + "src": "36369:3:18" + }, + "nativeSrc": "36369:18:18", + "nodeType": "YulFunctionCall", + "src": "36369:18:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "36361:4:18", + "nodeType": "YulIdentifier", + "src": "36361:4:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "36441:6:18", + "nodeType": "YulIdentifier", + "src": "36441:6:18" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "36454:9:18", + "nodeType": "YulIdentifier", + "src": "36454:9:18" + }, + { + "kind": "number", + "nativeSrc": "36465:1:18", + "nodeType": "YulLiteral", + "src": "36465:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "36450:3:18", + "nodeType": "YulIdentifier", + "src": "36450:3:18" + }, + "nativeSrc": "36450:17:18", + "nodeType": "YulFunctionCall", + "src": "36450:17:18" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "36397:43:18", + "nodeType": "YulIdentifier", + "src": "36397:43:18" + }, + "nativeSrc": "36397:71:18", + "nodeType": "YulFunctionCall", + "src": "36397:71:18" + }, + "nativeSrc": "36397:71:18", + "nodeType": "YulExpressionStatement", + "src": "36397:71:18" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nativeSrc": "36253:222:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "36323:9:18", + "nodeType": "YulTypedName", + "src": "36323:9:18", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "36335:6:18", + "nodeType": "YulTypedName", + "src": "36335:6:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "36346:4:18", + "nodeType": "YulTypedName", + "src": "36346:4:18", + "type": "" + } + ], + "src": "36253:222:18" + }, + { + "body": { + "nativeSrc": "36509:152:18", + "nodeType": "YulBlock", + "src": "36509:152:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "36526:1:18", + "nodeType": "YulLiteral", + "src": "36526:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "36529:77:18", + "nodeType": "YulLiteral", + "src": "36529:77:18", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "36519:6:18", + "nodeType": "YulIdentifier", + "src": "36519:6:18" + }, + "nativeSrc": "36519:88:18", + "nodeType": "YulFunctionCall", + "src": "36519:88:18" + }, + "nativeSrc": "36519:88:18", + "nodeType": "YulExpressionStatement", + "src": "36519:88:18" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "36623:1:18", + "nodeType": "YulLiteral", + "src": "36623:1:18", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "36626:4:18", + "nodeType": "YulLiteral", + "src": "36626:4:18", + "type": "", + "value": "0x12" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "36616:6:18", + "nodeType": "YulIdentifier", + "src": "36616:6:18" + }, + "nativeSrc": "36616:15:18", + "nodeType": "YulFunctionCall", + "src": "36616:15:18" + }, + "nativeSrc": "36616:15:18", + "nodeType": "YulExpressionStatement", + "src": "36616:15:18" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "36647:1:18", + "nodeType": "YulLiteral", + "src": "36647:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "36650:4:18", + "nodeType": "YulLiteral", + "src": "36650:4:18", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "36640:6:18", + "nodeType": "YulIdentifier", + "src": "36640:6:18" + }, + "nativeSrc": "36640:15:18", + "nodeType": "YulFunctionCall", + "src": "36640:15:18" + }, + "nativeSrc": "36640:15:18", + "nodeType": "YulExpressionStatement", + "src": "36640:15:18" + } + ] + }, + "name": "panic_error_0x12", + "nativeSrc": "36481:180:18", + "nodeType": "YulFunctionDefinition", + "src": "36481:180:18" + }, + { + "body": { + "nativeSrc": "36773:63:18", + "nodeType": "YulBlock", + "src": "36773:63:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "36795:6:18", + "nodeType": "YulIdentifier", + "src": "36795:6:18" + }, + { + "kind": "number", + "nativeSrc": "36803:1:18", + "nodeType": "YulLiteral", + "src": "36803:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "36791:3:18", + "nodeType": "YulIdentifier", + "src": "36791:3:18" + }, + "nativeSrc": "36791:14:18", + "nodeType": "YulFunctionCall", + "src": "36791:14:18" + }, + { + "hexValue": "5552492063616e6e6f7420626520656d707479", + "kind": "string", + "nativeSrc": "36807:21:18", + "nodeType": "YulLiteral", + "src": "36807:21:18", + "type": "", + "value": "URI cannot be empty" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "36784:6:18", + "nodeType": "YulIdentifier", + "src": "36784:6:18" + }, + "nativeSrc": "36784:45:18", + "nodeType": "YulFunctionCall", + "src": "36784:45:18" + }, + "nativeSrc": "36784:45:18", + "nodeType": "YulExpressionStatement", + "src": "36784:45:18" + } + ] + }, + "name": "store_literal_in_memory_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231", + "nativeSrc": "36667:169:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "36765:6:18", + "nodeType": "YulTypedName", + "src": "36765:6:18", + "type": "" + } + ], + "src": "36667:169:18" + }, + { + "body": { + "nativeSrc": "36988:220:18", + "nodeType": "YulBlock", + "src": "36988:220:18", + "statements": [ + { + "nativeSrc": "36998:74:18", + "nodeType": "YulAssignment", + "src": "36998:74:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "37064:3:18", + "nodeType": "YulIdentifier", + "src": "37064:3:18" + }, + { + "kind": "number", + "nativeSrc": "37069:2:18", + "nodeType": "YulLiteral", + "src": "37069:2:18", + "type": "", + "value": "19" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "37005:58:18", + "nodeType": "YulIdentifier", + "src": "37005:58:18" + }, + "nativeSrc": "37005:67:18", + "nodeType": "YulFunctionCall", + "src": "37005:67:18" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "36998:3:18", + "nodeType": "YulIdentifier", + "src": "36998:3:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "37170:3:18", + "nodeType": "YulIdentifier", + "src": "37170:3:18" + } + ], + "functionName": { + "name": "store_literal_in_memory_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231", + "nativeSrc": "37081:88:18", + "nodeType": "YulIdentifier", + "src": "37081:88:18" + }, + "nativeSrc": "37081:93:18", + "nodeType": "YulFunctionCall", + "src": "37081:93:18" + }, + "nativeSrc": "37081:93:18", + "nodeType": "YulExpressionStatement", + "src": "37081:93:18" + }, + { + "nativeSrc": "37183:19:18", + "nodeType": "YulAssignment", + "src": "37183:19:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "37194:3:18", + "nodeType": "YulIdentifier", + "src": "37194:3:18" + }, + { + "kind": "number", + "nativeSrc": "37199:2:18", + "nodeType": "YulLiteral", + "src": "37199:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "37190:3:18", + "nodeType": "YulIdentifier", + "src": "37190:3:18" + }, + "nativeSrc": "37190:12:18", + "nodeType": "YulFunctionCall", + "src": "37190:12:18" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "37183:3:18", + "nodeType": "YulIdentifier", + "src": "37183:3:18" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231_to_t_string_memory_ptr_fromStack", + "nativeSrc": "36842:366:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "36976:3:18", + "nodeType": "YulTypedName", + "src": "36976:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "36984:3:18", + "nodeType": "YulTypedName", + "src": "36984:3:18", + "type": "" + } + ], + "src": "36842:366:18" + }, + { + "body": { + "nativeSrc": "37385:248:18", + "nodeType": "YulBlock", + "src": "37385:248:18", + "statements": [ + { + "nativeSrc": "37395:26:18", + "nodeType": "YulAssignment", + "src": "37395:26:18", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "37407:9:18", + "nodeType": "YulIdentifier", + "src": "37407:9:18" + }, + { + "kind": "number", + "nativeSrc": "37418:2:18", + "nodeType": "YulLiteral", + "src": "37418:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "37403:3:18", + "nodeType": "YulIdentifier", + "src": "37403:3:18" + }, + "nativeSrc": "37403:18:18", + "nodeType": "YulFunctionCall", + "src": "37403:18:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "37395:4:18", + "nodeType": "YulIdentifier", + "src": "37395:4:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "37442:9:18", + "nodeType": "YulIdentifier", + "src": "37442:9:18" + }, + { + "kind": "number", + "nativeSrc": "37453:1:18", + "nodeType": "YulLiteral", + "src": "37453:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "37438:3:18", + "nodeType": "YulIdentifier", + "src": "37438:3:18" + }, + "nativeSrc": "37438:17:18", + "nodeType": "YulFunctionCall", + "src": "37438:17:18" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "37461:4:18", + "nodeType": "YulIdentifier", + "src": "37461:4:18" + }, + { + "name": "headStart", + "nativeSrc": "37467:9:18", + "nodeType": "YulIdentifier", + "src": "37467:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "37457:3:18", + "nodeType": "YulIdentifier", + "src": "37457:3:18" + }, + "nativeSrc": "37457:20:18", + "nodeType": "YulFunctionCall", + "src": "37457:20:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "37431:6:18", + "nodeType": "YulIdentifier", + "src": "37431:6:18" + }, + "nativeSrc": "37431:47:18", + "nodeType": "YulFunctionCall", + "src": "37431:47:18" + }, + "nativeSrc": "37431:47:18", + "nodeType": "YulExpressionStatement", + "src": "37431:47:18" + }, + { + "nativeSrc": "37487:139:18", + "nodeType": "YulAssignment", + "src": "37487:139:18", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "37621:4:18", + "nodeType": "YulIdentifier", + "src": "37621:4:18" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231_to_t_string_memory_ptr_fromStack", + "nativeSrc": "37495:124:18", + "nodeType": "YulIdentifier", + "src": "37495:124:18" + }, + "nativeSrc": "37495:131:18", + "nodeType": "YulFunctionCall", + "src": "37495:131:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "37487:4:18", + "nodeType": "YulIdentifier", + "src": "37487:4:18" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "37214:419:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "37365:9:18", + "nodeType": "YulTypedName", + "src": "37365:9:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "37380:4:18", + "nodeType": "YulTypedName", + "src": "37380:4:18", + "type": "" + } + ], + "src": "37214:419:18" + }, + { + "body": { + "nativeSrc": "37702:52:18", + "nodeType": "YulBlock", + "src": "37702:52:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "37719:3:18", + "nodeType": "YulIdentifier", + "src": "37719:3:18" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "37741:5:18", + "nodeType": "YulIdentifier", + "src": "37741:5:18" + } + ], + "functionName": { + "name": "cleanup_t_bytes4", + "nativeSrc": "37724:16:18", + "nodeType": "YulIdentifier", + "src": "37724:16:18" + }, + "nativeSrc": "37724:23:18", + "nodeType": "YulFunctionCall", + "src": "37724:23:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "37712:6:18", + "nodeType": "YulIdentifier", + "src": "37712:6:18" + }, + "nativeSrc": "37712:36:18", + "nodeType": "YulFunctionCall", + "src": "37712:36:18" + }, + "nativeSrc": "37712:36:18", + "nodeType": "YulExpressionStatement", + "src": "37712:36:18" + } + ] + }, + "name": "abi_encode_t_bytes4_to_t_bytes4_fromStack", + "nativeSrc": "37639:115:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "37690:5:18", + "nodeType": "YulTypedName", + "src": "37690:5:18", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "37697:3:18", + "nodeType": "YulTypedName", + "src": "37697:3:18", + "type": "" + } + ], + "src": "37639:115:18" + }, + { + "body": { + "nativeSrc": "37856:122:18", + "nodeType": "YulBlock", + "src": "37856:122:18", + "statements": [ + { + "nativeSrc": "37866:26:18", + "nodeType": "YulAssignment", + "src": "37866:26:18", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "37878:9:18", + "nodeType": "YulIdentifier", + "src": "37878:9:18" + }, + { + "kind": "number", + "nativeSrc": "37889:2:18", + "nodeType": "YulLiteral", + "src": "37889:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "37874:3:18", + "nodeType": "YulIdentifier", + "src": "37874:3:18" + }, + "nativeSrc": "37874:18:18", + "nodeType": "YulFunctionCall", + "src": "37874:18:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "37866:4:18", + "nodeType": "YulIdentifier", + "src": "37866:4:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "37944:6:18", + "nodeType": "YulIdentifier", + "src": "37944:6:18" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "37957:9:18", + "nodeType": "YulIdentifier", + "src": "37957:9:18" + }, + { + "kind": "number", + "nativeSrc": "37968:1:18", + "nodeType": "YulLiteral", + "src": "37968:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "37953:3:18", + "nodeType": "YulIdentifier", + "src": "37953:3:18" + }, + "nativeSrc": "37953:17:18", + "nodeType": "YulFunctionCall", + "src": "37953:17:18" + } + ], + "functionName": { + "name": "abi_encode_t_bytes4_to_t_bytes4_fromStack", + "nativeSrc": "37902:41:18", + "nodeType": "YulIdentifier", + "src": "37902:41:18" + }, + "nativeSrc": "37902:69:18", + "nodeType": "YulFunctionCall", + "src": "37902:69:18" + }, + "nativeSrc": "37902:69:18", + "nodeType": "YulExpressionStatement", + "src": "37902:69:18" + } + ] + }, + "name": "abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed", + "nativeSrc": "37760:218:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "37828:9:18", + "nodeType": "YulTypedName", + "src": "37828:9:18", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "37840:6:18", + "nodeType": "YulTypedName", + "src": "37840:6:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "37851:4:18", + "nodeType": "YulTypedName", + "src": "37851:4:18", + "type": "" + } + ], + "src": "37760:218:18" + }, + { + "body": { + "nativeSrc": "38110:206:18", + "nodeType": "YulBlock", + "src": "38110:206:18", + "statements": [ + { + "nativeSrc": "38120:26:18", + "nodeType": "YulAssignment", + "src": "38120:26:18", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "38132:9:18", + "nodeType": "YulIdentifier", + "src": "38132:9:18" + }, + { + "kind": "number", + "nativeSrc": "38143:2:18", + "nodeType": "YulLiteral", + "src": "38143:2:18", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "38128:3:18", + "nodeType": "YulIdentifier", + "src": "38128:3:18" + }, + "nativeSrc": "38128:18:18", + "nodeType": "YulFunctionCall", + "src": "38128:18:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "38120:4:18", + "nodeType": "YulIdentifier", + "src": "38120:4:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "38200:6:18", + "nodeType": "YulIdentifier", + "src": "38200:6:18" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "38213:9:18", + "nodeType": "YulIdentifier", + "src": "38213:9:18" + }, + { + "kind": "number", + "nativeSrc": "38224:1:18", + "nodeType": "YulLiteral", + "src": "38224:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "38209:3:18", + "nodeType": "YulIdentifier", + "src": "38209:3:18" + }, + "nativeSrc": "38209:17:18", + "nodeType": "YulFunctionCall", + "src": "38209:17:18" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "38156:43:18", + "nodeType": "YulIdentifier", + "src": "38156:43:18" + }, + "nativeSrc": "38156:71:18", + "nodeType": "YulFunctionCall", + "src": "38156:71:18" + }, + "nativeSrc": "38156:71:18", + "nodeType": "YulExpressionStatement", + "src": "38156:71:18" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "38281:6:18", + "nodeType": "YulIdentifier", + "src": "38281:6:18" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "38294:9:18", + "nodeType": "YulIdentifier", + "src": "38294:9:18" + }, + { + "kind": "number", + "nativeSrc": "38305:2:18", + "nodeType": "YulLiteral", + "src": "38305:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "38290:3:18", + "nodeType": "YulIdentifier", + "src": "38290:3:18" + }, + "nativeSrc": "38290:18:18", + "nodeType": "YulFunctionCall", + "src": "38290:18:18" + } + ], + "functionName": { + "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nativeSrc": "38237:43:18", + "nodeType": "YulIdentifier", + "src": "38237:43:18" + }, + "nativeSrc": "38237:72:18", + "nodeType": "YulFunctionCall", + "src": "38237:72:18" + }, + "nativeSrc": "38237:72:18", + "nodeType": "YulExpressionStatement", + "src": "38237:72:18" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed", + "nativeSrc": "37984:332:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "38074:9:18", + "nodeType": "YulTypedName", + "src": "38074:9:18", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "38086:6:18", + "nodeType": "YulTypedName", + "src": "38086:6:18", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "38094:6:18", + "nodeType": "YulTypedName", + "src": "38094:6:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "38105:4:18", + "nodeType": "YulTypedName", + "src": "38105:4:18", + "type": "" + } + ], + "src": "37984:332:18" + }, + { + "body": { + "nativeSrc": "38504:371:18", + "nodeType": "YulBlock", + "src": "38504:371:18", + "statements": [ + { + "nativeSrc": "38514:27:18", + "nodeType": "YulAssignment", + "src": "38514:27:18", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "38526:9:18", + "nodeType": "YulIdentifier", + "src": "38526:9:18" + }, + { + "kind": "number", + "nativeSrc": "38537:3:18", + "nodeType": "YulLiteral", + "src": "38537:3:18", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "38522:3:18", + "nodeType": "YulIdentifier", + "src": "38522:3:18" + }, + "nativeSrc": "38522:19:18", + "nodeType": "YulFunctionCall", + "src": "38522:19:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "38514:4:18", + "nodeType": "YulIdentifier", + "src": "38514:4:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "38595:6:18", + "nodeType": "YulIdentifier", + "src": "38595:6:18" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "38608:9:18", + "nodeType": "YulIdentifier", + "src": "38608:9:18" + }, + { + "kind": "number", + "nativeSrc": "38619:1:18", + "nodeType": "YulLiteral", + "src": "38619:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "38604:3:18", + "nodeType": "YulIdentifier", + "src": "38604:3:18" + }, + "nativeSrc": "38604:17:18", + "nodeType": "YulFunctionCall", + "src": "38604:17:18" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "38551:43:18", + "nodeType": "YulIdentifier", + "src": "38551:43:18" + }, + "nativeSrc": "38551:71:18", + "nodeType": "YulFunctionCall", + "src": "38551:71:18" + }, + "nativeSrc": "38551:71:18", + "nodeType": "YulExpressionStatement", + "src": "38551:71:18" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "38676:6:18", + "nodeType": "YulIdentifier", + "src": "38676:6:18" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "38689:9:18", + "nodeType": "YulIdentifier", + "src": "38689:9:18" + }, + { + "kind": "number", + "nativeSrc": "38700:2:18", + "nodeType": "YulLiteral", + "src": "38700:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "38685:3:18", + "nodeType": "YulIdentifier", + "src": "38685:3:18" + }, + "nativeSrc": "38685:18:18", + "nodeType": "YulFunctionCall", + "src": "38685:18:18" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "38632:43:18", + "nodeType": "YulIdentifier", + "src": "38632:43:18" + }, + "nativeSrc": "38632:72:18", + "nodeType": "YulFunctionCall", + "src": "38632:72:18" + }, + "nativeSrc": "38632:72:18", + "nodeType": "YulExpressionStatement", + "src": "38632:72:18" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nativeSrc": "38758:6:18", + "nodeType": "YulIdentifier", + "src": "38758:6:18" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "38771:9:18", + "nodeType": "YulIdentifier", + "src": "38771:9:18" + }, + { + "kind": "number", + "nativeSrc": "38782:2:18", + "nodeType": "YulLiteral", + "src": "38782:2:18", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "38767:3:18", + "nodeType": "YulIdentifier", + "src": "38767:3:18" + }, + "nativeSrc": "38767:18:18", + "nodeType": "YulFunctionCall", + "src": "38767:18:18" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "38714:43:18", + "nodeType": "YulIdentifier", + "src": "38714:43:18" + }, + "nativeSrc": "38714:72:18", + "nodeType": "YulFunctionCall", + "src": "38714:72:18" + }, + "nativeSrc": "38714:72:18", + "nodeType": "YulExpressionStatement", + "src": "38714:72:18" + }, + { + "expression": { + "arguments": [ + { + "name": "value3", + "nativeSrc": "38840:6:18", + "nodeType": "YulIdentifier", + "src": "38840:6:18" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "38853:9:18", + "nodeType": "YulIdentifier", + "src": "38853:9:18" + }, + { + "kind": "number", + "nativeSrc": "38864:2:18", + "nodeType": "YulLiteral", + "src": "38864:2:18", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "38849:3:18", + "nodeType": "YulIdentifier", + "src": "38849:3:18" + }, + "nativeSrc": "38849:18:18", + "nodeType": "YulFunctionCall", + "src": "38849:18:18" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "38796:43:18", + "nodeType": "YulIdentifier", + "src": "38796:43:18" + }, + "nativeSrc": "38796:72:18", + "nodeType": "YulFunctionCall", + "src": "38796:72:18" + }, + "nativeSrc": "38796:72:18", + "nodeType": "YulExpressionStatement", + "src": "38796:72:18" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256_t_uint256__fromStack_reversed", + "nativeSrc": "38322:553:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "38452:9:18", + "nodeType": "YulTypedName", + "src": "38452:9:18", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "38464:6:18", + "nodeType": "YulTypedName", + "src": "38464:6:18", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "38472:6:18", + "nodeType": "YulTypedName", + "src": "38472:6:18", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "38480:6:18", + "nodeType": "YulTypedName", + "src": "38480:6:18", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "38488:6:18", + "nodeType": "YulTypedName", + "src": "38488:6:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "38499:4:18", + "nodeType": "YulTypedName", + "src": "38499:4:18", + "type": "" + } + ], + "src": "38322:553:18" + }, + { + "body": { + "nativeSrc": "39107:408:18", + "nodeType": "YulBlock", + "src": "39107:408:18", + "statements": [ + { + "nativeSrc": "39117:26:18", + "nodeType": "YulAssignment", + "src": "39117:26:18", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "39129:9:18", + "nodeType": "YulIdentifier", + "src": "39129:9:18" + }, + { + "kind": "number", + "nativeSrc": "39140:2:18", + "nodeType": "YulLiteral", + "src": "39140:2:18", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "39125:3:18", + "nodeType": "YulIdentifier", + "src": "39125:3:18" + }, + "nativeSrc": "39125:18:18", + "nodeType": "YulFunctionCall", + "src": "39125:18:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "39117:4:18", + "nodeType": "YulIdentifier", + "src": "39117:4:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "39164:9:18", + "nodeType": "YulIdentifier", + "src": "39164:9:18" + }, + { + "kind": "number", + "nativeSrc": "39175:1:18", + "nodeType": "YulLiteral", + "src": "39175:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "39160:3:18", + "nodeType": "YulIdentifier", + "src": "39160:3:18" + }, + "nativeSrc": "39160:17:18", + "nodeType": "YulFunctionCall", + "src": "39160:17:18" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "39183:4:18", + "nodeType": "YulIdentifier", + "src": "39183:4:18" + }, + { + "name": "headStart", + "nativeSrc": "39189:9:18", + "nodeType": "YulIdentifier", + "src": "39189:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "39179:3:18", + "nodeType": "YulIdentifier", + "src": "39179:3:18" + }, + "nativeSrc": "39179:20:18", + "nodeType": "YulFunctionCall", + "src": "39179:20:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "39153:6:18", + "nodeType": "YulIdentifier", + "src": "39153:6:18" + }, + "nativeSrc": "39153:47:18", + "nodeType": "YulFunctionCall", + "src": "39153:47:18" + }, + "nativeSrc": "39153:47:18", + "nodeType": "YulExpressionStatement", + "src": "39153:47:18" + }, + { + "nativeSrc": "39209:116:18", + "nodeType": "YulAssignment", + "src": "39209:116:18", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "39311:6:18", + "nodeType": "YulIdentifier", + "src": "39311:6:18" + }, + { + "name": "tail", + "nativeSrc": "39320:4:18", + "nodeType": "YulIdentifier", + "src": "39320:4:18" + } + ], + "functionName": { + "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nativeSrc": "39217:93:18", + "nodeType": "YulIdentifier", + "src": "39217:93:18" + }, + "nativeSrc": "39217:108:18", + "nodeType": "YulFunctionCall", + "src": "39217:108:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "39209:4:18", + "nodeType": "YulIdentifier", + "src": "39209:4:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "39346:9:18", + "nodeType": "YulIdentifier", + "src": "39346:9:18" + }, + { + "kind": "number", + "nativeSrc": "39357:2:18", + "nodeType": "YulLiteral", + "src": "39357:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "39342:3:18", + "nodeType": "YulIdentifier", + "src": "39342:3:18" + }, + "nativeSrc": "39342:18:18", + "nodeType": "YulFunctionCall", + "src": "39342:18:18" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "39366:4:18", + "nodeType": "YulIdentifier", + "src": "39366:4:18" + }, + { + "name": "headStart", + "nativeSrc": "39372:9:18", + "nodeType": "YulIdentifier", + "src": "39372:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "39362:3:18", + "nodeType": "YulIdentifier", + "src": "39362:3:18" + }, + "nativeSrc": "39362:20:18", + "nodeType": "YulFunctionCall", + "src": "39362:20:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "39335:6:18", + "nodeType": "YulIdentifier", + "src": "39335:6:18" + }, + "nativeSrc": "39335:48:18", + "nodeType": "YulFunctionCall", + "src": "39335:48:18" + }, + "nativeSrc": "39335:48:18", + "nodeType": "YulExpressionStatement", + "src": "39335:48:18" + }, + { + "nativeSrc": "39392:116:18", + "nodeType": "YulAssignment", + "src": "39392:116:18", + "value": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "39494:6:18", + "nodeType": "YulIdentifier", + "src": "39494:6:18" + }, + { + "name": "tail", + "nativeSrc": "39503:4:18", + "nodeType": "YulIdentifier", + "src": "39503:4:18" + } + ], + "functionName": { + "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nativeSrc": "39400:93:18", + "nodeType": "YulIdentifier", + "src": "39400:93:18" + }, + "nativeSrc": "39400:108:18", + "nodeType": "YulFunctionCall", + "src": "39400:108:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "39392:4:18", + "nodeType": "YulIdentifier", + "src": "39392:4:18" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed", + "nativeSrc": "38881:634:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "39071:9:18", + "nodeType": "YulTypedName", + "src": "39071:9:18", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "39083:6:18", + "nodeType": "YulTypedName", + "src": "39083:6:18", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "39091:6:18", + "nodeType": "YulTypedName", + "src": "39091:6:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "39102:4:18", + "nodeType": "YulTypedName", + "src": "39102:4:18", + "type": "" + } + ], + "src": "38881:634:18" + }, + { + "body": { + "nativeSrc": "39579:40:18", + "nodeType": "YulBlock", + "src": "39579:40:18", + "statements": [ + { + "nativeSrc": "39590:22:18", + "nodeType": "YulAssignment", + "src": "39590:22:18", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "39606:5:18", + "nodeType": "YulIdentifier", + "src": "39606:5:18" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "39600:5:18", + "nodeType": "YulIdentifier", + "src": "39600:5:18" + }, + "nativeSrc": "39600:12:18", + "nodeType": "YulFunctionCall", + "src": "39600:12:18" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "39590:6:18", + "nodeType": "YulIdentifier", + "src": "39590:6:18" + } + ] + } + ] + }, + "name": "array_length_t_bytes_memory_ptr", + "nativeSrc": "39521:98:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "39562:5:18", + "nodeType": "YulTypedName", + "src": "39562:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "39572:6:18", + "nodeType": "YulTypedName", + "src": "39572:6:18", + "type": "" + } + ], + "src": "39521:98:18" + }, + { + "body": { + "nativeSrc": "39720:73:18", + "nodeType": "YulBlock", + "src": "39720:73:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "39737:3:18", + "nodeType": "YulIdentifier", + "src": "39737:3:18" + }, + { + "name": "length", + "nativeSrc": "39742:6:18", + "nodeType": "YulIdentifier", + "src": "39742:6:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "39730:6:18", + "nodeType": "YulIdentifier", + "src": "39730:6:18" + }, + "nativeSrc": "39730:19:18", + "nodeType": "YulFunctionCall", + "src": "39730:19:18" + }, + "nativeSrc": "39730:19:18", + "nodeType": "YulExpressionStatement", + "src": "39730:19:18" + }, + { + "nativeSrc": "39758:29:18", + "nodeType": "YulAssignment", + "src": "39758:29:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "39777:3:18", + "nodeType": "YulIdentifier", + "src": "39777:3:18" + }, + { + "kind": "number", + "nativeSrc": "39782:4:18", + "nodeType": "YulLiteral", + "src": "39782:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "39773:3:18", + "nodeType": "YulIdentifier", + "src": "39773:3:18" + }, + "nativeSrc": "39773:14:18", + "nodeType": "YulFunctionCall", + "src": "39773:14:18" + }, + "variableNames": [ + { + "name": "updated_pos", + "nativeSrc": "39758:11:18", + "nodeType": "YulIdentifier", + "src": "39758:11:18" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", + "nativeSrc": "39625:168:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "39692:3:18", + "nodeType": "YulTypedName", + "src": "39692:3:18", + "type": "" + }, + { + "name": "length", + "nativeSrc": "39697:6:18", + "nodeType": "YulTypedName", + "src": "39697:6:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nativeSrc": "39708:11:18", + "nodeType": "YulTypedName", + "src": "39708:11:18", + "type": "" + } + ], + "src": "39625:168:18" + }, + { + "body": { + "nativeSrc": "39889:283:18", + "nodeType": "YulBlock", + "src": "39889:283:18", + "statements": [ + { + "nativeSrc": "39899:52:18", + "nodeType": "YulVariableDeclaration", + "src": "39899:52:18", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "39945:5:18", + "nodeType": "YulIdentifier", + "src": "39945:5:18" + } + ], + "functionName": { + "name": "array_length_t_bytes_memory_ptr", + "nativeSrc": "39913:31:18", + "nodeType": "YulIdentifier", + "src": "39913:31:18" + }, + "nativeSrc": "39913:38:18", + "nodeType": "YulFunctionCall", + "src": "39913:38:18" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "39903:6:18", + "nodeType": "YulTypedName", + "src": "39903:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "39960:77:18", + "nodeType": "YulAssignment", + "src": "39960:77:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "40025:3:18", + "nodeType": "YulIdentifier", + "src": "40025:3:18" + }, + { + "name": "length", + "nativeSrc": "40030:6:18", + "nodeType": "YulIdentifier", + "src": "40030:6:18" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", + "nativeSrc": "39967:57:18", + "nodeType": "YulIdentifier", + "src": "39967:57:18" + }, + "nativeSrc": "39967:70:18", + "nodeType": "YulFunctionCall", + "src": "39967:70:18" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "39960:3:18", + "nodeType": "YulIdentifier", + "src": "39960:3:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "40085:5:18", + "nodeType": "YulIdentifier", + "src": "40085:5:18" + }, + { + "kind": "number", + "nativeSrc": "40092:4:18", + "nodeType": "YulLiteral", + "src": "40092:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "40081:3:18", + "nodeType": "YulIdentifier", + "src": "40081:3:18" + }, + "nativeSrc": "40081:16:18", + "nodeType": "YulFunctionCall", + "src": "40081:16:18" + }, + { + "name": "pos", + "nativeSrc": "40099:3:18", + "nodeType": "YulIdentifier", + "src": "40099:3:18" + }, + { + "name": "length", + "nativeSrc": "40104:6:18", + "nodeType": "YulIdentifier", + "src": "40104:6:18" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "40046:34:18", + "nodeType": "YulIdentifier", + "src": "40046:34:18" + }, + "nativeSrc": "40046:65:18", + "nodeType": "YulFunctionCall", + "src": "40046:65:18" + }, + "nativeSrc": "40046:65:18", + "nodeType": "YulExpressionStatement", + "src": "40046:65:18" + }, + { + "nativeSrc": "40120:46:18", + "nodeType": "YulAssignment", + "src": "40120:46:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "40131:3:18", + "nodeType": "YulIdentifier", + "src": "40131:3:18" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "40158:6:18", + "nodeType": "YulIdentifier", + "src": "40158:6:18" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "40136:21:18", + "nodeType": "YulIdentifier", + "src": "40136:21:18" + }, + "nativeSrc": "40136:29:18", + "nodeType": "YulFunctionCall", + "src": "40136:29:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "40127:3:18", + "nodeType": "YulIdentifier", + "src": "40127:3:18" + }, + "nativeSrc": "40127:39:18", + "nodeType": "YulFunctionCall", + "src": "40127:39:18" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "40120:3:18", + "nodeType": "YulIdentifier", + "src": "40120:3:18" + } + ] + } + ] + }, + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", + "nativeSrc": "39799:373:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "39870:5:18", + "nodeType": "YulTypedName", + "src": "39870:5:18", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "39877:3:18", + "nodeType": "YulTypedName", + "src": "39877:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "39885:3:18", + "nodeType": "YulTypedName", + "src": "39885:3:18", + "type": "" + } + ], + "src": "39799:373:18" + }, + { + "body": { + "nativeSrc": "40406:523:18", + "nodeType": "YulBlock", + "src": "40406:523:18", + "statements": [ + { + "nativeSrc": "40416:27:18", + "nodeType": "YulAssignment", + "src": "40416:27:18", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "40428:9:18", + "nodeType": "YulIdentifier", + "src": "40428:9:18" + }, + { + "kind": "number", + "nativeSrc": "40439:3:18", + "nodeType": "YulLiteral", + "src": "40439:3:18", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "40424:3:18", + "nodeType": "YulIdentifier", + "src": "40424:3:18" + }, + "nativeSrc": "40424:19:18", + "nodeType": "YulFunctionCall", + "src": "40424:19:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "40416:4:18", + "nodeType": "YulIdentifier", + "src": "40416:4:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "40497:6:18", + "nodeType": "YulIdentifier", + "src": "40497:6:18" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "40510:9:18", + "nodeType": "YulIdentifier", + "src": "40510:9:18" + }, + { + "kind": "number", + "nativeSrc": "40521:1:18", + "nodeType": "YulLiteral", + "src": "40521:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "40506:3:18", + "nodeType": "YulIdentifier", + "src": "40506:3:18" + }, + "nativeSrc": "40506:17:18", + "nodeType": "YulFunctionCall", + "src": "40506:17:18" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "40453:43:18", + "nodeType": "YulIdentifier", + "src": "40453:43:18" + }, + "nativeSrc": "40453:71:18", + "nodeType": "YulFunctionCall", + "src": "40453:71:18" + }, + "nativeSrc": "40453:71:18", + "nodeType": "YulExpressionStatement", + "src": "40453:71:18" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "40578:6:18", + "nodeType": "YulIdentifier", + "src": "40578:6:18" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "40591:9:18", + "nodeType": "YulIdentifier", + "src": "40591:9:18" + }, + { + "kind": "number", + "nativeSrc": "40602:2:18", + "nodeType": "YulLiteral", + "src": "40602:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "40587:3:18", + "nodeType": "YulIdentifier", + "src": "40587:3:18" + }, + "nativeSrc": "40587:18:18", + "nodeType": "YulFunctionCall", + "src": "40587:18:18" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "40534:43:18", + "nodeType": "YulIdentifier", + "src": "40534:43:18" + }, + "nativeSrc": "40534:72:18", + "nodeType": "YulFunctionCall", + "src": "40534:72:18" + }, + "nativeSrc": "40534:72:18", + "nodeType": "YulExpressionStatement", + "src": "40534:72:18" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nativeSrc": "40660:6:18", + "nodeType": "YulIdentifier", + "src": "40660:6:18" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "40673:9:18", + "nodeType": "YulIdentifier", + "src": "40673:9:18" + }, + { + "kind": "number", + "nativeSrc": "40684:2:18", + "nodeType": "YulLiteral", + "src": "40684:2:18", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "40669:3:18", + "nodeType": "YulIdentifier", + "src": "40669:3:18" + }, + "nativeSrc": "40669:18:18", + "nodeType": "YulFunctionCall", + "src": "40669:18:18" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "40616:43:18", + "nodeType": "YulIdentifier", + "src": "40616:43:18" + }, + "nativeSrc": "40616:72:18", + "nodeType": "YulFunctionCall", + "src": "40616:72:18" + }, + "nativeSrc": "40616:72:18", + "nodeType": "YulExpressionStatement", + "src": "40616:72:18" + }, + { + "expression": { + "arguments": [ + { + "name": "value3", + "nativeSrc": "40742:6:18", + "nodeType": "YulIdentifier", + "src": "40742:6:18" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "40755:9:18", + "nodeType": "YulIdentifier", + "src": "40755:9:18" + }, + { + "kind": "number", + "nativeSrc": "40766:2:18", + "nodeType": "YulLiteral", + "src": "40766:2:18", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "40751:3:18", + "nodeType": "YulIdentifier", + "src": "40751:3:18" + }, + "nativeSrc": "40751:18:18", + "nodeType": "YulFunctionCall", + "src": "40751:18:18" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "40698:43:18", + "nodeType": "YulIdentifier", + "src": "40698:43:18" + }, + "nativeSrc": "40698:72:18", + "nodeType": "YulFunctionCall", + "src": "40698:72:18" + }, + "nativeSrc": "40698:72:18", + "nodeType": "YulExpressionStatement", + "src": "40698:72:18" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "40791:9:18", + "nodeType": "YulIdentifier", + "src": "40791:9:18" + }, + { + "kind": "number", + "nativeSrc": "40802:3:18", + "nodeType": "YulLiteral", + "src": "40802:3:18", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "40787:3:18", + "nodeType": "YulIdentifier", + "src": "40787:3:18" + }, + "nativeSrc": "40787:19:18", + "nodeType": "YulFunctionCall", + "src": "40787:19:18" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "40812:4:18", + "nodeType": "YulIdentifier", + "src": "40812:4:18" + }, + { + "name": "headStart", + "nativeSrc": "40818:9:18", + "nodeType": "YulIdentifier", + "src": "40818:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "40808:3:18", + "nodeType": "YulIdentifier", + "src": "40808:3:18" + }, + "nativeSrc": "40808:20:18", + "nodeType": "YulFunctionCall", + "src": "40808:20:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "40780:6:18", + "nodeType": "YulIdentifier", + "src": "40780:6:18" + }, + "nativeSrc": "40780:49:18", + "nodeType": "YulFunctionCall", + "src": "40780:49:18" + }, + "nativeSrc": "40780:49:18", + "nodeType": "YulExpressionStatement", + "src": "40780:49:18" + }, + { + "nativeSrc": "40838:84:18", + "nodeType": "YulAssignment", + "src": "40838:84:18", + "value": { + "arguments": [ + { + "name": "value4", + "nativeSrc": "40908:6:18", + "nodeType": "YulIdentifier", + "src": "40908:6:18" + }, + { + "name": "tail", + "nativeSrc": "40917:4:18", + "nodeType": "YulIdentifier", + "src": "40917:4:18" + } + ], + "functionName": { + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", + "nativeSrc": "40846:61:18", + "nodeType": "YulIdentifier", + "src": "40846:61:18" + }, + "nativeSrc": "40846:76:18", + "nodeType": "YulFunctionCall", + "src": "40846:76:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "40838:4:18", + "nodeType": "YulIdentifier", + "src": "40838:4:18" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed", + "nativeSrc": "40178:751:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "40346:9:18", + "nodeType": "YulTypedName", + "src": "40346:9:18", + "type": "" + }, + { + "name": "value4", + "nativeSrc": "40358:6:18", + "nodeType": "YulTypedName", + "src": "40358:6:18", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "40366:6:18", + "nodeType": "YulTypedName", + "src": "40366:6:18", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "40374:6:18", + "nodeType": "YulTypedName", + "src": "40374:6:18", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "40382:6:18", + "nodeType": "YulTypedName", + "src": "40382:6:18", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "40390:6:18", + "nodeType": "YulTypedName", + "src": "40390:6:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "40401:4:18", + "nodeType": "YulTypedName", + "src": "40401:4:18", + "type": "" + } + ], + "src": "40178:751:18" + }, + { + "body": { + "nativeSrc": "40997:79:18", + "nodeType": "YulBlock", + "src": "40997:79:18", + "statements": [ + { + "nativeSrc": "41007:22:18", + "nodeType": "YulAssignment", + "src": "41007:22:18", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "41022:6:18", + "nodeType": "YulIdentifier", + "src": "41022:6:18" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "41016:5:18", + "nodeType": "YulIdentifier", + "src": "41016:5:18" + }, + "nativeSrc": "41016:13:18", + "nodeType": "YulFunctionCall", + "src": "41016:13:18" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "41007:5:18", + "nodeType": "YulIdentifier", + "src": "41007:5:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "41064:5:18", + "nodeType": "YulIdentifier", + "src": "41064:5:18" + } + ], + "functionName": { + "name": "validator_revert_t_bytes4", + "nativeSrc": "41038:25:18", + "nodeType": "YulIdentifier", + "src": "41038:25:18" + }, + "nativeSrc": "41038:32:18", + "nodeType": "YulFunctionCall", + "src": "41038:32:18" + }, + "nativeSrc": "41038:32:18", + "nodeType": "YulExpressionStatement", + "src": "41038:32:18" + } + ] + }, + "name": "abi_decode_t_bytes4_fromMemory", + "nativeSrc": "40935:141:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "40975:6:18", + "nodeType": "YulTypedName", + "src": "40975:6:18", + "type": "" + }, + { + "name": "end", + "nativeSrc": "40983:3:18", + "nodeType": "YulTypedName", + "src": "40983:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "40991:5:18", + "nodeType": "YulTypedName", + "src": "40991:5:18", + "type": "" + } + ], + "src": "40935:141:18" + }, + { + "body": { + "nativeSrc": "41158:273:18", + "nodeType": "YulBlock", + "src": "41158:273:18", + "statements": [ + { + "body": { + "nativeSrc": "41204:83:18", + "nodeType": "YulBlock", + "src": "41204:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "41206:77:18", + "nodeType": "YulIdentifier", + "src": "41206:77:18" + }, + "nativeSrc": "41206:79:18", + "nodeType": "YulFunctionCall", + "src": "41206:79:18" + }, + "nativeSrc": "41206:79:18", + "nodeType": "YulExpressionStatement", + "src": "41206:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "41179:7:18", + "nodeType": "YulIdentifier", + "src": "41179:7:18" + }, + { + "name": "headStart", + "nativeSrc": "41188:9:18", + "nodeType": "YulIdentifier", + "src": "41188:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "41175:3:18", + "nodeType": "YulIdentifier", + "src": "41175:3:18" + }, + "nativeSrc": "41175:23:18", + "nodeType": "YulFunctionCall", + "src": "41175:23:18" + }, + { + "kind": "number", + "nativeSrc": "41200:2:18", + "nodeType": "YulLiteral", + "src": "41200:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "41171:3:18", + "nodeType": "YulIdentifier", + "src": "41171:3:18" + }, + "nativeSrc": "41171:32:18", + "nodeType": "YulFunctionCall", + "src": "41171:32:18" + }, + "nativeSrc": "41168:119:18", + "nodeType": "YulIf", + "src": "41168:119:18" + }, + { + "nativeSrc": "41297:127:18", + "nodeType": "YulBlock", + "src": "41297:127:18", + "statements": [ + { + "nativeSrc": "41312:15:18", + "nodeType": "YulVariableDeclaration", + "src": "41312:15:18", + "value": { + "kind": "number", + "nativeSrc": "41326:1:18", + "nodeType": "YulLiteral", + "src": "41326:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "41316:6:18", + "nodeType": "YulTypedName", + "src": "41316:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "41341:73:18", + "nodeType": "YulAssignment", + "src": "41341:73:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "41386:9:18", + "nodeType": "YulIdentifier", + "src": "41386:9:18" + }, + { + "name": "offset", + "nativeSrc": "41397:6:18", + "nodeType": "YulIdentifier", + "src": "41397:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "41382:3:18", + "nodeType": "YulIdentifier", + "src": "41382:3:18" + }, + "nativeSrc": "41382:22:18", + "nodeType": "YulFunctionCall", + "src": "41382:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "41406:7:18", + "nodeType": "YulIdentifier", + "src": "41406:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_bytes4_fromMemory", + "nativeSrc": "41351:30:18", + "nodeType": "YulIdentifier", + "src": "41351:30:18" + }, + "nativeSrc": "41351:63:18", + "nodeType": "YulFunctionCall", + "src": "41351:63:18" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "41341:6:18", + "nodeType": "YulIdentifier", + "src": "41341:6:18" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes4_fromMemory", + "nativeSrc": "41082:349:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "41128:9:18", + "nodeType": "YulTypedName", + "src": "41128:9:18", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "41139:7:18", + "nodeType": "YulTypedName", + "src": "41139:7:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "41151:6:18", + "nodeType": "YulTypedName", + "src": "41151:6:18", + "type": "" + } + ], + "src": "41082:349:18" + }, + { + "body": { + "nativeSrc": "41765:725:18", + "nodeType": "YulBlock", + "src": "41765:725:18", + "statements": [ + { + "nativeSrc": "41775:27:18", + "nodeType": "YulAssignment", + "src": "41775:27:18", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "41787:9:18", + "nodeType": "YulIdentifier", + "src": "41787:9:18" + }, + { + "kind": "number", + "nativeSrc": "41798:3:18", + "nodeType": "YulLiteral", + "src": "41798:3:18", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "41783:3:18", + "nodeType": "YulIdentifier", + "src": "41783:3:18" + }, + "nativeSrc": "41783:19:18", + "nodeType": "YulFunctionCall", + "src": "41783:19:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "41775:4:18", + "nodeType": "YulIdentifier", + "src": "41775:4:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "41856:6:18", + "nodeType": "YulIdentifier", + "src": "41856:6:18" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "41869:9:18", + "nodeType": "YulIdentifier", + "src": "41869:9:18" + }, + { + "kind": "number", + "nativeSrc": "41880:1:18", + "nodeType": "YulLiteral", + "src": "41880:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "41865:3:18", + "nodeType": "YulIdentifier", + "src": "41865:3:18" + }, + "nativeSrc": "41865:17:18", + "nodeType": "YulFunctionCall", + "src": "41865:17:18" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "41812:43:18", + "nodeType": "YulIdentifier", + "src": "41812:43:18" + }, + "nativeSrc": "41812:71:18", + "nodeType": "YulFunctionCall", + "src": "41812:71:18" + }, + "nativeSrc": "41812:71:18", + "nodeType": "YulExpressionStatement", + "src": "41812:71:18" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "41937:6:18", + "nodeType": "YulIdentifier", + "src": "41937:6:18" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "41950:9:18", + "nodeType": "YulIdentifier", + "src": "41950:9:18" + }, + { + "kind": "number", + "nativeSrc": "41961:2:18", + "nodeType": "YulLiteral", + "src": "41961:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "41946:3:18", + "nodeType": "YulIdentifier", + "src": "41946:3:18" + }, + "nativeSrc": "41946:18:18", + "nodeType": "YulFunctionCall", + "src": "41946:18:18" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "41893:43:18", + "nodeType": "YulIdentifier", + "src": "41893:43:18" + }, + "nativeSrc": "41893:72:18", + "nodeType": "YulFunctionCall", + "src": "41893:72:18" + }, + "nativeSrc": "41893:72:18", + "nodeType": "YulExpressionStatement", + "src": "41893:72:18" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "41986:9:18", + "nodeType": "YulIdentifier", + "src": "41986:9:18" + }, + { + "kind": "number", + "nativeSrc": "41997:2:18", + "nodeType": "YulLiteral", + "src": "41997:2:18", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "41982:3:18", + "nodeType": "YulIdentifier", + "src": "41982:3:18" + }, + "nativeSrc": "41982:18:18", + "nodeType": "YulFunctionCall", + "src": "41982:18:18" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "42006:4:18", + "nodeType": "YulIdentifier", + "src": "42006:4:18" + }, + { + "name": "headStart", + "nativeSrc": "42012:9:18", + "nodeType": "YulIdentifier", + "src": "42012:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "42002:3:18", + "nodeType": "YulIdentifier", + "src": "42002:3:18" + }, + "nativeSrc": "42002:20:18", + "nodeType": "YulFunctionCall", + "src": "42002:20:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "41975:6:18", + "nodeType": "YulIdentifier", + "src": "41975:6:18" + }, + "nativeSrc": "41975:48:18", + "nodeType": "YulFunctionCall", + "src": "41975:48:18" + }, + "nativeSrc": "41975:48:18", + "nodeType": "YulExpressionStatement", + "src": "41975:48:18" + }, + { + "nativeSrc": "42032:116:18", + "nodeType": "YulAssignment", + "src": "42032:116:18", + "value": { + "arguments": [ + { + "name": "value2", + "nativeSrc": "42134:6:18", + "nodeType": "YulIdentifier", + "src": "42134:6:18" + }, + { + "name": "tail", + "nativeSrc": "42143:4:18", + "nodeType": "YulIdentifier", + "src": "42143:4:18" + } + ], + "functionName": { + "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nativeSrc": "42040:93:18", + "nodeType": "YulIdentifier", + "src": "42040:93:18" + }, + "nativeSrc": "42040:108:18", + "nodeType": "YulFunctionCall", + "src": "42040:108:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "42032:4:18", + "nodeType": "YulIdentifier", + "src": "42032:4:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "42169:9:18", + "nodeType": "YulIdentifier", + "src": "42169:9:18" + }, + { + "kind": "number", + "nativeSrc": "42180:2:18", + "nodeType": "YulLiteral", + "src": "42180:2:18", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "42165:3:18", + "nodeType": "YulIdentifier", + "src": "42165:3:18" + }, + "nativeSrc": "42165:18:18", + "nodeType": "YulFunctionCall", + "src": "42165:18:18" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "42189:4:18", + "nodeType": "YulIdentifier", + "src": "42189:4:18" + }, + { + "name": "headStart", + "nativeSrc": "42195:9:18", + "nodeType": "YulIdentifier", + "src": "42195:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "42185:3:18", + "nodeType": "YulIdentifier", + "src": "42185:3:18" + }, + "nativeSrc": "42185:20:18", + "nodeType": "YulFunctionCall", + "src": "42185:20:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "42158:6:18", + "nodeType": "YulIdentifier", + "src": "42158:6:18" + }, + "nativeSrc": "42158:48:18", + "nodeType": "YulFunctionCall", + "src": "42158:48:18" + }, + "nativeSrc": "42158:48:18", + "nodeType": "YulExpressionStatement", + "src": "42158:48:18" + }, + { + "nativeSrc": "42215:116:18", + "nodeType": "YulAssignment", + "src": "42215:116:18", + "value": { + "arguments": [ + { + "name": "value3", + "nativeSrc": "42317:6:18", + "nodeType": "YulIdentifier", + "src": "42317:6:18" + }, + { + "name": "tail", + "nativeSrc": "42326:4:18", + "nodeType": "YulIdentifier", + "src": "42326:4:18" + } + ], + "functionName": { + "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nativeSrc": "42223:93:18", + "nodeType": "YulIdentifier", + "src": "42223:93:18" + }, + "nativeSrc": "42223:108:18", + "nodeType": "YulFunctionCall", + "src": "42223:108:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "42215:4:18", + "nodeType": "YulIdentifier", + "src": "42215:4:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "42352:9:18", + "nodeType": "YulIdentifier", + "src": "42352:9:18" + }, + { + "kind": "number", + "nativeSrc": "42363:3:18", + "nodeType": "YulLiteral", + "src": "42363:3:18", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "42348:3:18", + "nodeType": "YulIdentifier", + "src": "42348:3:18" + }, + "nativeSrc": "42348:19:18", + "nodeType": "YulFunctionCall", + "src": "42348:19:18" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "42373:4:18", + "nodeType": "YulIdentifier", + "src": "42373:4:18" + }, + { + "name": "headStart", + "nativeSrc": "42379:9:18", + "nodeType": "YulIdentifier", + "src": "42379:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "42369:3:18", + "nodeType": "YulIdentifier", + "src": "42369:3:18" + }, + "nativeSrc": "42369:20:18", + "nodeType": "YulFunctionCall", + "src": "42369:20:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "42341:6:18", + "nodeType": "YulIdentifier", + "src": "42341:6:18" + }, + "nativeSrc": "42341:49:18", + "nodeType": "YulFunctionCall", + "src": "42341:49:18" + }, + "nativeSrc": "42341:49:18", + "nodeType": "YulExpressionStatement", + "src": "42341:49:18" + }, + { + "nativeSrc": "42399:84:18", + "nodeType": "YulAssignment", + "src": "42399:84:18", + "value": { + "arguments": [ + { + "name": "value4", + "nativeSrc": "42469:6:18", + "nodeType": "YulIdentifier", + "src": "42469:6:18" + }, + { + "name": "tail", + "nativeSrc": "42478:4:18", + "nodeType": "YulIdentifier", + "src": "42478:4:18" + } + ], + "functionName": { + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", + "nativeSrc": "42407:61:18", + "nodeType": "YulIdentifier", + "src": "42407:61:18" + }, + "nativeSrc": "42407:76:18", + "nodeType": "YulFunctionCall", + "src": "42407:76:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "42399:4:18", + "nodeType": "YulIdentifier", + "src": "42399:4:18" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__to_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__fromStack_reversed", + "nativeSrc": "41437:1053:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "41705:9:18", + "nodeType": "YulTypedName", + "src": "41705:9:18", + "type": "" + }, + { + "name": "value4", + "nativeSrc": "41717:6:18", + "nodeType": "YulTypedName", + "src": "41717:6:18", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "41725:6:18", + "nodeType": "YulTypedName", + "src": "41725:6:18", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "41733:6:18", + "nodeType": "YulTypedName", + "src": "41733:6:18", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "41741:6:18", + "nodeType": "YulTypedName", + "src": "41741:6:18", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "41749:6:18", + "nodeType": "YulTypedName", + "src": "41749:6:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "41760:4:18", + "nodeType": "YulTypedName", + "src": "41760:4:18", + "type": "" + } + ], + "src": "41437:1053:18" + } + ] + }, + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_bytes32(value) {\n if iszero(eq(value, cleanup_t_bytes32(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes32(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes32(value)\n }\n\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := mul(length, 0x20)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // uint256[]\n function abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr(offset, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr(length))\n let dst := array\n\n mstore(array, length)\n dst := add(array, 0x20)\n\n let srcEnd := add(offset, mul(length, 0x20))\n if gt(srcEnd, end) {\n revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef()\n }\n for { let src := offset } lt(src, srcEnd) { src := add(src, 0x20) }\n {\n\n let elementPos := src\n\n mstore(dst, abi_decode_t_uint256(elementPos, end))\n dst := add(dst, 0x20)\n }\n }\n\n // uint256[]\n function abi_decode_t_array$_t_uint256_$dyn_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory_with_cleanup(src, dst, length) {\n\n calldatacopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n function abi_decode_available_length_t_bytes_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory_with_cleanup(src, dst, length)\n }\n\n // bytes\n function abi_decode_t_bytes_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_bytes_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4 {\n if slt(sub(dataEnd, headStart), 160) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2 := abi_decode_t_array$_t_uint256_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value3 := abi_decode_t_array$_t_uint256_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 128))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value4 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_bytes32t_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_allocation_size_t_array$_t_address_$dyn_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := mul(length, 0x20)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n // address[]\n function abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr(offset, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_array$_t_address_$dyn_memory_ptr(length))\n let dst := array\n\n mstore(array, length)\n dst := add(array, 0x20)\n\n let srcEnd := add(offset, mul(length, 0x20))\n if gt(srcEnd, end) {\n revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef()\n }\n for { let src := offset } lt(src, srcEnd) { src := add(src, 0x20) }\n {\n\n let elementPos := src\n\n mstore(dst, abi_decode_t_address(elementPos, end))\n dst := add(dst, 0x20)\n }\n }\n\n // address[]\n function abi_decode_t_array$_t_address_$dyn_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptr(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_array$_t_address_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_array$_t_uint256_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_array$_t_uint256_$dyn_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function array_dataslot_t_array$_t_uint256_$dyn_memory_ptr(ptr) -> data {\n data := ptr\n\n data := add(ptr, 0x20)\n\n }\n\n function abi_encode_t_uint256_to_t_uint256(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encodeUpdatedPos_t_uint256_to_t_uint256(value0, pos) -> updatedPos {\n abi_encode_t_uint256_to_t_uint256(value0, pos)\n updatedPos := add(pos, 0x20)\n }\n\n function array_nextElement_t_array$_t_uint256_$dyn_memory_ptr(ptr) -> next {\n next := add(ptr, 0x20)\n }\n\n // uint256[] -> uint256[]\n function abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_array$_t_uint256_$dyn_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack(pos, length)\n let baseRef := array_dataslot_t_array$_t_uint256_$dyn_memory_ptr(value)\n let srcPtr := baseRef\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n let elementValue0 := mload(srcPtr)\n pos := abi_encodeUpdatedPos_t_uint256_to_t_uint256(elementValue0, pos)\n srcPtr := array_nextElement_t_array$_t_uint256_$dyn_memory_ptr(srcPtr)\n }\n end := pos\n }\n\n function abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value0, tail)\n\n }\n\n function abi_decode_tuple_t_addresst_uint256t_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value3 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_allocation_size_t_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function abi_decode_available_length_t_string_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory_with_cleanup(src, dst, length)\n }\n\n // string\n function abi_decode_t_string_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_string_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_uint256t_string_memory_ptr(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_string_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_addresst_bool(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_bool(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4 {\n if slt(sub(dataEnd, headStart), 160) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 96\n\n value3 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 128))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value4 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function cleanup_t_rational_1_by_1(value) -> cleaned {\n cleaned := value\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_rational_1_by_1_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_rational_1_by_1(value)))\n }\n\n function abi_encode_t_rational_1_by_1_to_t_uint256_fromStack(value, pos) {\n mstore(pos, convert_t_rational_1_by_1_to_t_uint256(value))\n }\n\n function abi_encode_tuple_t_rational_1_by_1__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_rational_1_by_1_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function store_literal_in_memory_c2ef5cec3cd5807ca7e192fb77bd9e3da1378958f99ebf24571ab659b0b36619(memPtr) {\n\n mstore(add(memPtr, 0), \"Account cannot be empty\")\n\n }\n\n function abi_encode_t_stringliteral_c2ef5cec3cd5807ca7e192fb77bd9e3da1378958f99ebf24571ab659b0b36619_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 23)\n store_literal_in_memory_c2ef5cec3cd5807ca7e192fb77bd9e3da1378958f99ebf24571ab659b0b36619(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_c2ef5cec3cd5807ca7e192fb77bd9e3da1378958f99ebf24571ab659b0b36619__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_c2ef5cec3cd5807ca7e192fb77bd9e3da1378958f99ebf24571ab659b0b36619_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n // string -> string\n function abi_encode_t_string_storage_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> ret {\n let slotValue := sload(value)\n let length := extract_byte_array_length(slotValue)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n switch and(slotValue, 1)\n case 0 {\n // short byte array\n mstore(pos, and(slotValue, not(0xff)))\n ret := add(pos, mul(length, iszero(iszero(length))))\n }\n case 1 {\n // long byte array\n let dataPos := array_dataslot_t_string_storage(value)\n let i := 0\n for { } lt(i, length) { i := add(i, 0x20) } {\n mstore(add(pos, i), sload(dataPos))\n dataPos := add(dataPos, 1)\n }\n ret := add(pos, length)\n }\n }\n\n function store_literal_in_memory_dffb04a525cd02c1927009e9978b1b3a31e2219941c628b0e1a278e1253e73d7(memPtr) {\n\n mstore(add(memPtr, 0), \"/api/v1/nft/\")\n\n }\n\n function abi_encode_t_stringliteral_dffb04a525cd02c1927009e9978b1b3a31e2219941c628b0e1a278e1253e73d7_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 12)\n store_literal_in_memory_dffb04a525cd02c1927009e9978b1b3a31e2219941c628b0e1a278e1253e73d7(pos)\n end := add(pos, 12)\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n function store_literal_in_memory_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527(memPtr) {\n\n mstore(add(memPtr, 0), \"/\")\n\n }\n\n function abi_encode_t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 1)\n store_literal_in_memory_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527(pos)\n end := add(pos, 1)\n }\n\n function store_literal_in_memory_55265a2701bc64b88c772eaa96e74946d09782e358d6aba22dcae17933df0a55(memPtr) {\n\n mstore(add(memPtr, 0), \"/reputation-score\")\n\n }\n\n function abi_encode_t_stringliteral_55265a2701bc64b88c772eaa96e74946d09782e358d6aba22dcae17933df0a55_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 17)\n store_literal_in_memory_55265a2701bc64b88c772eaa96e74946d09782e358d6aba22dcae17933df0a55(pos)\n end := add(pos, 17)\n }\n\n function abi_encode_tuple_packed_t_string_storage_t_stringliteral_dffb04a525cd02c1927009e9978b1b3a31e2219941c628b0e1a278e1253e73d7_t_string_memory_ptr_t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527_t_string_memory_ptr_t_stringliteral_55265a2701bc64b88c772eaa96e74946d09782e358d6aba22dcae17933df0a55__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value2, value1, value0) -> end {\n\n pos := abi_encode_t_string_storage_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n pos := abi_encode_t_stringliteral_dffb04a525cd02c1927009e9978b1b3a31e2219941c628b0e1a278e1253e73d7_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value1, pos)\n\n pos := abi_encode_t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value2, pos)\n\n pos := abi_encode_t_stringliteral_55265a2701bc64b88c772eaa96e74946d09782e358d6aba22dcae17933df0a55_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n end := pos\n }\n\n // string -> string\n function abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack(value, pos) -> ret {\n let slotValue := sload(value)\n let length := extract_byte_array_length(slotValue)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n switch and(slotValue, 1)\n case 0 {\n // short byte array\n mstore(pos, and(slotValue, not(0xff)))\n ret := add(pos, mul(0x20, iszero(iszero(length))))\n }\n case 1 {\n // long byte array\n let dataPos := array_dataslot_t_string_storage(value)\n let i := 0\n for { } lt(i, length) { i := add(i, 0x20) } {\n mstore(add(pos, i), sload(dataPos))\n dataPos := add(dataPos, 1)\n }\n ret := add(pos, i)\n }\n }\n\n function abi_encode_tuple_t_string_storage_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack(value0, tail)\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value1, tail)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function store_literal_in_memory_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231(memPtr) {\n\n mstore(add(memPtr, 0), \"URI cannot be empty\")\n\n }\n\n function abi_encode_t_stringliteral_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 19)\n store_literal_in_memory_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_t_bytes4_to_t_bytes4_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes4(value))\n }\n\n function abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes4_to_t_bytes4_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256_t_uint256__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n tail := add(headStart, 128)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value3, add(headStart, 96))\n\n }\n\n function abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value0, tail)\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value1, tail)\n\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 160)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value3, add(headStart, 96))\n\n mstore(add(headStart, 128), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value4, tail)\n\n }\n\n function abi_decode_t_bytes4_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__to_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 160)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n mstore(add(headStart, 64), sub(tail, headStart))\n tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value2, tail)\n\n mstore(add(headStart, 96), sub(tail, headStart))\n tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value3, tail)\n\n mstore(add(headStart, 128), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value4, tail)\n\n }\n\n}\n", + "id": 18, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b506004361061012b5760003560e01c806376b676f1116100ad578063d383f64611610071578063d383f64614610364578063d547741f1461036e578063e985e9c51461038a578063f242432a146103ba578063f5298aca146103d65761012b565b806376b676f1146102ae57806391d14854146102de578063931688cb1461030e578063a217fddf1461032a578063a22cb465146103485761012b565b80632f2ff15d116100f45780632f2ff15d1461020c57806336568abe146102285780634e1273f41461024457806361bc221a14610274578063731133e9146102925761012b565b8062fdd58e1461013057806301ffc9a7146101605780630e89341c14610190578063248a9ca3146101c05780632eb2c2d6146101f0575b600080fd5b61014a600480360381019061014591906121b1565b6103f2565b6040516101579190612200565b60405180910390f35b61017a60048036038101906101759190612273565b61044c565b60405161018791906122bb565b60405180910390f35b6101aa60048036038101906101a591906122d6565b61048c565b6040516101b79190612393565b60405180910390f35b6101da60048036038101906101d591906123eb565b610520565b6040516101e79190612427565b60405180910390f35b61020a6004803603810190610205919061263f565b610540565b005b6102266004803603810190610221919061270e565b6105e8565b005b610242600480360381019061023d919061270e565b61060a565b005b61025e60048036038101906102599190612811565b610685565b60405161026b9190612947565b60405180910390f35b61027c61078e565b6040516102899190612200565b60405180910390f35b6102ac60048036038101906102a79190612969565b610798565b005b6102c860048036038101906102c39190612a8d565b610856565b6040516102d59190612393565b60405180910390f35b6102f860048036038101906102f3919061270e565b6108de565b60405161030591906122bb565b60405180910390f35b61032860048036038101906103239190612ae9565b610949565b005b6103326109ad565b60405161033f9190612427565b60405180910390f35b610362600480360381019061035d9190612b5e565b6109b4565b005b61036c6109ca565b005b6103886004803603810190610383919061270e565b610a47565b005b6103a4600480360381019061039f9190612b9e565b610a69565b6040516103b191906122bb565b60405180910390f35b6103d460048036038101906103cf9190612bde565b610afd565b005b6103f060048036038101906103eb9190612c75565b610ba5565b005b600080600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600061046d3073ffffffffffffffffffffffffffffffffffffffff16610c87565b156104825761047b82610cd4565b9050610487565b600090505b919050565b60606002805461049b90612cf7565b80601f01602080910402602001604051908101604052809291908181526020018280546104c790612cf7565b80156105145780601f106104e957610100808354040283529160200191610514565b820191906000526020600020905b8154815290600101906020018083116104f757829003601f168201915b50505050509050919050565b600060036000838152602001908152602001600020600101549050919050565b600061054a610d4e565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415801561058f575061058d8682610a69565b155b156105d35780866040517fe237d9220000000000000000000000000000000000000000000000000000000081526004016105ca929190612d37565b60405180910390fd5b6105e08686868686610d56565b505050505050565b6105f182610520565b6105fa81610e4e565b6106048383610e62565b50505050565b610612610d4e565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610676576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106808282610f54565b505050565b606081518351146106d157815183516040517f5b0599910000000000000000000000000000000000000000000000000000000081526004016106c8929190612d60565b60405180910390fd5b6000835167ffffffffffffffff8111156106ee576106ed612447565b5b60405190808252806020026020018201604052801561071c5781602001602082028036833780820191505090505b50905060005b845181101561078357610759610741828761104790919063ffffffff16565b610754838761105b90919063ffffffff16565b6103f2565b82828151811061076c5761076b612d89565b5b602002602001018181525050806001019050610722565b508091505092915050565b6000600454905090565b826107a28161106f565b60016107ae86866103f2565b106107f25784846040517f788d25560000000000000000000000000000000000000000000000000000000081526004016107e9929190612db8565b60405180910390fd5b6107ff85856001856110b8565b838573ffffffffffffffffffffffffffffffffffffffff167f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f60016040516108479190612e26565b60405180910390a35050505050565b6060826108628161106f565b8260008151036108a7576040517fc29f9db300000000000000000000000000000000000000000000000000000000815260040161089e90612e8d565b60405180910390fd5b60056108b286611151565b856040516020016108c593929190613065565b6040516020818303038152906040529250505092915050565b60006003600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000801b61095681610e4e565b61095f8261121f565b7f309b29ded109b9e28fb9885757b3e0096eb75c51d23aa4635d68bcd569f6adc160058360405161099192919061313b565b60405180910390a181600590816109a891906132ff565b505050565b6000801b81565b6109c66109bf610d4e565b8383611266565b5050565b600060045490506109ed33826001604051806020016040528060008152506110b8565b803373ffffffffffffffffffffffffffffffffffffffff167fc65a3f767206d2fdcede0b094a4840e01c0dd0be1888b5ba800346eaa0123c1660405160405180910390a3600181610a3e9190613400565b60048190555050565b610a5082610520565b610a5981610e4e565b610a638383610f54565b50505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000610b07610d4e565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015610b4c5750610b4a8682610a69565b155b15610b905780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401610b87929190612d37565b60405180910390fd5b610b9d86868686866113d6565b505050505050565b81610baf8161106f565b83833373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610c235781816040517f8626cc03000000000000000000000000000000000000000000000000000000008152600401610c1a929190612db8565b60405180910390fd5b610c2f868660016114e1565b848673ffffffffffffffffffffffffffffffffffffffff167f49995e5dd6158cf69ad3e9777c46755a1a826a446c6416992167462dad033b2a6001604051610c779190612e26565b60405180910390a3505050505050565b6000610cb3827f01ffc9a700000000000000000000000000000000000000000000000000000000611588565b8015610ccd5750610ccb8263ffffffff60e01b611588565b155b9050919050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610d475750610d4682611627565b5b9050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610dc85760006040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401610dbf9190613434565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610e3a5760006040517f01a83514000000000000000000000000000000000000000000000000000000008152600401610e319190613434565b60405180910390fd5b610e478585858585611709565b5050505050565b610e5f81610e5a610d4e565b6117bb565b50565b6000610e6e83836108de565b610f495760016003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610ee6610d4e565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050610f4e565b600090505b92915050565b6000610f6083836108de565b1561103c5760006003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610fd9610d4e565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050611041565b600090505b92915050565b600060208202602084010151905092915050565b600060208202602084010151905092915050565b60045481106110b557806040517fc80a970c0000000000000000000000000000000000000000000000000000000081526004016110ac9190612200565b60405180910390fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361112a5760006040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016111219190613434565b60405180910390fd5b600080611137858561180c565b91509150611149600087848487611709565b505050505050565b6060600060016111608461183c565b01905060008167ffffffffffffffff81111561117f5761117e612447565b5b6040519080825280601f01601f1916602001820160405280156111b15781602001600182028036833780820191505090505b509050600082602001820190505b600115611214578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816112085761120761344f565b5b049450600085036111bf575b819350505050919050565b6000815103611263576040517f1897cf6600000000000000000000000000000000000000000000000000000000815260040161125a906134ca565b60405180910390fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112d85760006040517fced3e1000000000000000000000000000000000000000000000000000000000081526004016112cf9190613434565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516113c991906122bb565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036114485760006040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161143f9190613434565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036114ba5760006040517f01a835140000000000000000000000000000000000000000000000000000000081526004016114b19190613434565b60405180910390fd5b6000806114c7858561180c565b915091506114d88787848487611709565b50505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115535760006040517f01a8351400000000000000000000000000000000000000000000000000000000815260040161154a9190613434565b60405180910390fd5b600080611560848461180c565b91509150611581856000848460405180602001604052806000815250611709565b5050505050565b6000808260405160240161159c91906134f9565b6040516020818303038152906040526301ffc9a760e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506000806000602060008551602087018a617530fa92503d9150600051905082801561160f575060208210155b801561161b5750600081115b94505050505092915050565b60007fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806116f257507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061170257506117018261198f565b5b9050919050565b611715858585856119f9565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146117b4576000611753610d4e565b905060018451036117a357600061177460008661105b90919063ffffffff16565b9050600061178c60008661105b90919063ffffffff16565b905061179c838989858589611da1565b50506117b2565b6117b1818787878787611f55565b5b505b5050505050565b6117c582826108de565b6118085780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016117ff929190613514565b60405180910390fd5b5050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061189a577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816118905761188f61344f565b5b0492506040810190505b6d04ee2d6d415b85acef810000000083106118d7576d04ee2d6d415b85acef810000000083816118cd576118cc61344f565b5b0492506020810190505b662386f26fc10000831061190657662386f26fc1000083816118fc576118fb61344f565b5b0492506010810190505b6305f5e100831061192f576305f5e10083816119255761192461344f565b5b0492506008810190505b612710831061195457612710838161194a5761194961344f565b5b0492506004810190505b60648310611977576064838161196d5761196c61344f565b5b0492506002810190505b600a8310611986576001810190505b80915050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b8051825114611a4357815181516040517f5b059991000000000000000000000000000000000000000000000000000000008152600401611a3a929190612d60565b60405180910390fd5b6000611a4d610d4e565b905060005b8351811015611c5c576000611a70828661105b90919063ffffffff16565b90506000611a87838661105b90919063ffffffff16565b9050600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614611bb457600080600084815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611b5c57888183856040517f03dee4c5000000000000000000000000000000000000000000000000000000008152600401611b53949392919061353d565b60405180910390fd5b81810360008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614611c4f578060008084815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611c479190613400565b925050819055505b5050806001019050611a52565b506001835103611d1b576000611c7c60008561105b90919063ffffffff16565b90506000611c9460008561105b90919063ffffffff16565b90508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051611d0c929190612d60565b60405180910390a45050611d9a565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051611d91929190613582565b60405180910390a45b5050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b1115611f4d578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401611e0295949392919061360e565b6020604051808303816000875af1925050508015611e3e57506040513d601f19601f82011682018060405250810190611e3b919061367d565b60015b611ec2573d8060008114611e6e576040519150601f19603f3d011682016040523d82523d6000602084013e611e73565b606091505b506000815103611eba57846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611eb19190613434565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611f4b57846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611f429190613434565b60405180910390fd5b505b505050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b1115612101578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401611fb69594939291906136aa565b6020604051808303816000875af1925050508015611ff257506040513d601f19601f82011682018060405250810190611fef919061367d565b60015b612076573d8060008114612022576040519150601f19603f3d011682016040523d82523d6000602084013e612027565b606091505b50600081510361206e57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016120659190613434565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146120ff57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016120f69190613434565b60405180910390fd5b505b505050505050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006121488261211d565b9050919050565b6121588161213d565b811461216357600080fd5b50565b6000813590506121758161214f565b92915050565b6000819050919050565b61218e8161217b565b811461219957600080fd5b50565b6000813590506121ab81612185565b92915050565b600080604083850312156121c8576121c7612113565b5b60006121d685828601612166565b92505060206121e78582860161219c565b9150509250929050565b6121fa8161217b565b82525050565b600060208201905061221560008301846121f1565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6122508161221b565b811461225b57600080fd5b50565b60008135905061226d81612247565b92915050565b60006020828403121561228957612288612113565b5b60006122978482850161225e565b91505092915050565b60008115159050919050565b6122b5816122a0565b82525050565b60006020820190506122d060008301846122ac565b92915050565b6000602082840312156122ec576122eb612113565b5b60006122fa8482850161219c565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561233d578082015181840152602081019050612322565b60008484015250505050565b6000601f19601f8301169050919050565b600061236582612303565b61236f818561230e565b935061237f81856020860161231f565b61238881612349565b840191505092915050565b600060208201905081810360008301526123ad818461235a565b905092915050565b6000819050919050565b6123c8816123b5565b81146123d357600080fd5b50565b6000813590506123e5816123bf565b92915050565b60006020828403121561240157612400612113565b5b600061240f848285016123d6565b91505092915050565b612421816123b5565b82525050565b600060208201905061243c6000830184612418565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61247f82612349565b810181811067ffffffffffffffff8211171561249e5761249d612447565b5b80604052505050565b60006124b1612109565b90506124bd8282612476565b919050565b600067ffffffffffffffff8211156124dd576124dc612447565b5b602082029050602081019050919050565b600080fd5b6000612506612501846124c2565b6124a7565b90508083825260208201905060208402830185811115612529576125286124ee565b5b835b81811015612552578061253e888261219c565b84526020840193505060208101905061252b565b5050509392505050565b600082601f83011261257157612570612442565b5b81356125818482602086016124f3565b91505092915050565b600080fd5b600067ffffffffffffffff8211156125aa576125a9612447565b5b6125b382612349565b9050602081019050919050565b82818337600083830152505050565b60006125e26125dd8461258f565b6124a7565b9050828152602081018484840111156125fe576125fd61258a565b5b6126098482856125c0565b509392505050565b600082601f83011261262657612625612442565b5b81356126368482602086016125cf565b91505092915050565b600080600080600060a0868803121561265b5761265a612113565b5b600061266988828901612166565b955050602061267a88828901612166565b945050604086013567ffffffffffffffff81111561269b5761269a612118565b5b6126a78882890161255c565b935050606086013567ffffffffffffffff8111156126c8576126c7612118565b5b6126d48882890161255c565b925050608086013567ffffffffffffffff8111156126f5576126f4612118565b5b61270188828901612611565b9150509295509295909350565b6000806040838503121561272557612724612113565b5b6000612733858286016123d6565b925050602061274485828601612166565b9150509250929050565b600067ffffffffffffffff82111561276957612768612447565b5b602082029050602081019050919050565b600061278d6127888461274e565b6124a7565b905080838252602082019050602084028301858111156127b0576127af6124ee565b5b835b818110156127d957806127c58882612166565b8452602084019350506020810190506127b2565b5050509392505050565b600082601f8301126127f8576127f7612442565b5b813561280884826020860161277a565b91505092915050565b6000806040838503121561282857612827612113565b5b600083013567ffffffffffffffff81111561284657612845612118565b5b612852858286016127e3565b925050602083013567ffffffffffffffff81111561287357612872612118565b5b61287f8582860161255c565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6128be8161217b565b82525050565b60006128d083836128b5565b60208301905092915050565b6000602082019050919050565b60006128f482612889565b6128fe8185612894565b9350612909836128a5565b8060005b8381101561293a57815161292188826128c4565b975061292c836128dc565b92505060018101905061290d565b5085935050505092915050565b6000602082019050818103600083015261296181846128e9565b905092915050565b6000806000806080858703121561298357612982612113565b5b600061299187828801612166565b94505060206129a28782880161219c565b93505060406129b38782880161219c565b925050606085013567ffffffffffffffff8111156129d4576129d3612118565b5b6129e087828801612611565b91505092959194509250565b600067ffffffffffffffff821115612a0757612a06612447565b5b612a1082612349565b9050602081019050919050565b6000612a30612a2b846129ec565b6124a7565b905082815260208101848484011115612a4c57612a4b61258a565b5b612a578482856125c0565b509392505050565b600082601f830112612a7457612a73612442565b5b8135612a84848260208601612a1d565b91505092915050565b60008060408385031215612aa457612aa3612113565b5b6000612ab28582860161219c565b925050602083013567ffffffffffffffff811115612ad357612ad2612118565b5b612adf85828601612a5f565b9150509250929050565b600060208284031215612aff57612afe612113565b5b600082013567ffffffffffffffff811115612b1d57612b1c612118565b5b612b2984828501612a5f565b91505092915050565b612b3b816122a0565b8114612b4657600080fd5b50565b600081359050612b5881612b32565b92915050565b60008060408385031215612b7557612b74612113565b5b6000612b8385828601612166565b9250506020612b9485828601612b49565b9150509250929050565b60008060408385031215612bb557612bb4612113565b5b6000612bc385828601612166565b9250506020612bd485828601612166565b9150509250929050565b600080600080600060a08688031215612bfa57612bf9612113565b5b6000612c0888828901612166565b9550506020612c1988828901612166565b9450506040612c2a8882890161219c565b9350506060612c3b8882890161219c565b925050608086013567ffffffffffffffff811115612c5c57612c5b612118565b5b612c6888828901612611565b9150509295509295909350565b600080600060608486031215612c8e57612c8d612113565b5b6000612c9c86828701612166565b9350506020612cad8682870161219c565b9250506040612cbe8682870161219c565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612d0f57607f821691505b602082108103612d2257612d21612cc8565b5b50919050565b612d318161213d565b82525050565b6000604082019050612d4c6000830185612d28565b612d596020830184612d28565b9392505050565b6000604082019050612d7560008301856121f1565b612d8260208301846121f1565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000604082019050612dcd6000830185612d28565b612dda60208301846121f1565b9392505050565b6000819050919050565b6000819050919050565b6000612e10612e0b612e0684612de1565b612deb565b61217b565b9050919050565b612e2081612df5565b82525050565b6000602082019050612e3b6000830184612e17565b92915050565b7f4163636f756e742063616e6e6f7420626520656d707479000000000000000000600082015250565b6000612e7760178361230e565b9150612e8282612e41565b602082019050919050565b60006020820190508181036000830152612ea681612e6a565b9050919050565b600081905092915050565b60008190508160005260206000209050919050565b60008154612eda81612cf7565b612ee48186612ead565b94506001821660008114612eff5760018114612f1457612f47565b60ff1983168652811515820286019350612f47565b612f1d85612eb8565b60005b83811015612f3f57815481890152600182019150602081019050612f20565b838801955050505b50505092915050565b7f2f6170692f76312f6e66742f0000000000000000000000000000000000000000600082015250565b6000612f86600c83612ead565b9150612f9182612f50565b600c82019050919050565b6000612fa782612303565b612fb18185612ead565b9350612fc181856020860161231f565b80840191505092915050565b7f2f00000000000000000000000000000000000000000000000000000000000000600082015250565b6000613003600183612ead565b915061300e82612fcd565b600182019050919050565b7f2f72657075746174696f6e2d73636f7265000000000000000000000000000000600082015250565b600061304f601183612ead565b915061305a82613019565b601182019050919050565b60006130718286612ecd565b915061307c82612f79565b91506130888285612f9c565b915061309382612ff6565b915061309f8284612f9c565b91506130aa82613042565b9150819050949350505050565b600081546130c481612cf7565b6130ce818661230e565b945060018216600081146130e957600181146130ff57613132565b60ff198316865281151560200286019350613132565b61310885612eb8565b60005b8381101561312a5781548189015260018201915060208101905061310b565b808801955050505b50505092915050565b6000604082019050818103600083015261315581856130b7565b90508181036020830152613169818461235a565b90509392505050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026131bf7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82613182565b6131c98683613182565b95508019841693508086168417925050509392505050565b60006131fc6131f76131f28461217b565b612deb565b61217b565b9050919050565b6000819050919050565b613216836131e1565b61322a61322282613203565b84845461318f565b825550505050565b600090565b61323f613232565b61324a81848461320d565b505050565b5b8181101561326e57613263600082613237565b600181019050613250565b5050565b601f8211156132b35761328481612eb8565b61328d84613172565b8101602085101561329c578190505b6132b06132a885613172565b83018261324f565b50505b505050565b600082821c905092915050565b60006132d6600019846008026132b8565b1980831691505092915050565b60006132ef83836132c5565b9150826002028217905092915050565b61330882612303565b67ffffffffffffffff81111561332157613320612447565b5b61332b8254612cf7565b613336828285613272565b600060209050601f8311600181146133695760008415613357578287015190505b61336185826132e3565b8655506133c9565b601f19841661337786612eb8565b60005b8281101561339f5784890151825560018201915060208501945060208101905061337a565b868310156133bc57848901516133b8601f8916826132c5565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061340b8261217b565b91506134168361217b565b925082820190508082111561342e5761342d6133d1565b5b92915050565b60006020820190506134496000830184612d28565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f5552492063616e6e6f7420626520656d70747900000000000000000000000000600082015250565b60006134b460138361230e565b91506134bf8261347e565b602082019050919050565b600060208201905081810360008301526134e3816134a7565b9050919050565b6134f38161221b565b82525050565b600060208201905061350e60008301846134ea565b92915050565b60006040820190506135296000830185612d28565b6135366020830184612418565b9392505050565b60006080820190506135526000830187612d28565b61355f60208301866121f1565b61356c60408301856121f1565b61357960608301846121f1565b95945050505050565b6000604082019050818103600083015261359c81856128e9565b905081810360208301526135b081846128e9565b90509392505050565b600081519050919050565b600082825260208201905092915050565b60006135e0826135b9565b6135ea81856135c4565b93506135fa81856020860161231f565b61360381612349565b840191505092915050565b600060a0820190506136236000830188612d28565b6136306020830187612d28565b61363d60408301866121f1565b61364a60608301856121f1565b818103608083015261365c81846135d5565b90509695505050505050565b60008151905061367781612247565b92915050565b60006020828403121561369357613692612113565b5b60006136a184828501613668565b91505092915050565b600060a0820190506136bf6000830188612d28565b6136cc6020830187612d28565b81810360408301526136de81866128e9565b905081810360608301526136f281856128e9565b9050818103608083015261370681846135d5565b9050969550505050505056fea2646970667358221220240e9a7daab5d9eba2793e75f4bbf0e9a74f133868ac14d5e9561767bb722e8264736f6c634300081a0033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x12B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x76B676F1 GT PUSH2 0xAD JUMPI DUP1 PUSH4 0xD383F646 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xD383F646 EQ PUSH2 0x364 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x36E JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x38A JUMPI DUP1 PUSH4 0xF242432A EQ PUSH2 0x3BA JUMPI DUP1 PUSH4 0xF5298ACA EQ PUSH2 0x3D6 JUMPI PUSH2 0x12B JUMP JUMPDEST DUP1 PUSH4 0x76B676F1 EQ PUSH2 0x2AE JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x2DE JUMPI DUP1 PUSH4 0x931688CB EQ PUSH2 0x30E JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x32A JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x348 JUMPI PUSH2 0x12B JUMP JUMPDEST DUP1 PUSH4 0x2F2FF15D GT PUSH2 0xF4 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x20C JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x228 JUMPI DUP1 PUSH4 0x4E1273F4 EQ PUSH2 0x244 JUMPI DUP1 PUSH4 0x61BC221A EQ PUSH2 0x274 JUMPI DUP1 PUSH4 0x731133E9 EQ PUSH2 0x292 JUMPI PUSH2 0x12B JUMP JUMPDEST DUP1 PUSH3 0xFDD58E EQ PUSH2 0x130 JUMPI DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x160 JUMPI DUP1 PUSH4 0xE89341C EQ PUSH2 0x190 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x1C0 JUMPI DUP1 PUSH4 0x2EB2C2D6 EQ PUSH2 0x1F0 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x14A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x145 SWAP2 SWAP1 PUSH2 0x21B1 JUMP JUMPDEST PUSH2 0x3F2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x157 SWAP2 SWAP1 PUSH2 0x2200 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x17A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x175 SWAP2 SWAP1 PUSH2 0x2273 JUMP JUMPDEST PUSH2 0x44C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x187 SWAP2 SWAP1 PUSH2 0x22BB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1AA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1A5 SWAP2 SWAP1 PUSH2 0x22D6 JUMP JUMPDEST PUSH2 0x48C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1B7 SWAP2 SWAP1 PUSH2 0x2393 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1DA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1D5 SWAP2 SWAP1 PUSH2 0x23EB JUMP JUMPDEST PUSH2 0x520 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E7 SWAP2 SWAP1 PUSH2 0x2427 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x20A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x205 SWAP2 SWAP1 PUSH2 0x263F JUMP JUMPDEST PUSH2 0x540 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x226 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x221 SWAP2 SWAP1 PUSH2 0x270E JUMP JUMPDEST PUSH2 0x5E8 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x242 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x23D SWAP2 SWAP1 PUSH2 0x270E JUMP JUMPDEST PUSH2 0x60A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x25E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x259 SWAP2 SWAP1 PUSH2 0x2811 JUMP JUMPDEST PUSH2 0x685 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x26B SWAP2 SWAP1 PUSH2 0x2947 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x27C PUSH2 0x78E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x289 SWAP2 SWAP1 PUSH2 0x2200 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2AC PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2A7 SWAP2 SWAP1 PUSH2 0x2969 JUMP JUMPDEST PUSH2 0x798 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2C8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2C3 SWAP2 SWAP1 PUSH2 0x2A8D JUMP JUMPDEST PUSH2 0x856 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D5 SWAP2 SWAP1 PUSH2 0x2393 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2F8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2F3 SWAP2 SWAP1 PUSH2 0x270E JUMP JUMPDEST PUSH2 0x8DE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x305 SWAP2 SWAP1 PUSH2 0x22BB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x328 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x323 SWAP2 SWAP1 PUSH2 0x2AE9 JUMP JUMPDEST PUSH2 0x949 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x332 PUSH2 0x9AD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x33F SWAP2 SWAP1 PUSH2 0x2427 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x362 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x35D SWAP2 SWAP1 PUSH2 0x2B5E JUMP JUMPDEST PUSH2 0x9B4 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x36C PUSH2 0x9CA JUMP JUMPDEST STOP JUMPDEST PUSH2 0x388 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x383 SWAP2 SWAP1 PUSH2 0x270E JUMP JUMPDEST PUSH2 0xA47 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3A4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x39F SWAP2 SWAP1 PUSH2 0x2B9E JUMP JUMPDEST PUSH2 0xA69 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3B1 SWAP2 SWAP1 PUSH2 0x22BB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3D4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3CF SWAP2 SWAP1 PUSH2 0x2BDE JUMP JUMPDEST PUSH2 0xAFD JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3F0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3EB SWAP2 SWAP1 PUSH2 0x2C75 JUMP JUMPDEST PUSH2 0xBA5 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x46D ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xC87 JUMP JUMPDEST ISZERO PUSH2 0x482 JUMPI PUSH2 0x47B DUP3 PUSH2 0xCD4 JUMP JUMPDEST SWAP1 POP PUSH2 0x487 JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 DUP1 SLOAD PUSH2 0x49B SWAP1 PUSH2 0x2CF7 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x4C7 SWAP1 PUSH2 0x2CF7 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x514 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x4E9 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x514 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x4F7 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x54A PUSH2 0xD4E JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x58F JUMPI POP PUSH2 0x58D DUP7 DUP3 PUSH2 0xA69 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x5D3 JUMPI DUP1 DUP7 PUSH1 0x40 MLOAD PUSH32 0xE237D92200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5CA SWAP3 SWAP2 SWAP1 PUSH2 0x2D37 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x5E0 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH2 0xD56 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x5F1 DUP3 PUSH2 0x520 JUMP JUMPDEST PUSH2 0x5FA DUP2 PUSH2 0xE4E JUMP JUMPDEST PUSH2 0x604 DUP4 DUP4 PUSH2 0xE62 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x612 PUSH2 0xD4E JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x676 JUMPI PUSH1 0x40 MLOAD PUSH32 0x6697B23200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x680 DUP3 DUP3 PUSH2 0xF54 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 MLOAD DUP4 MLOAD EQ PUSH2 0x6D1 JUMPI DUP2 MLOAD DUP4 MLOAD PUSH1 0x40 MLOAD PUSH32 0x5B05999100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6C8 SWAP3 SWAP2 SWAP1 PUSH2 0x2D60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x6EE JUMPI PUSH2 0x6ED PUSH2 0x2447 JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x71C JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x783 JUMPI PUSH2 0x759 PUSH2 0x741 DUP3 DUP8 PUSH2 0x1047 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x754 DUP4 DUP8 PUSH2 0x105B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x3F2 JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x76C JUMPI PUSH2 0x76B PUSH2 0x2D89 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0x722 JUMP JUMPDEST POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST DUP3 PUSH2 0x7A2 DUP2 PUSH2 0x106F JUMP JUMPDEST PUSH1 0x1 PUSH2 0x7AE DUP7 DUP7 PUSH2 0x3F2 JUMP JUMPDEST LT PUSH2 0x7F2 JUMPI DUP5 DUP5 PUSH1 0x40 MLOAD PUSH32 0x788D255600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7E9 SWAP3 SWAP2 SWAP1 PUSH2 0x2DB8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x7FF DUP6 DUP6 PUSH1 0x1 DUP6 PUSH2 0x10B8 JUMP JUMPDEST DUP4 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x4C209B5FC8AD50758F13E2E1088BA56A560DFF690A1C6FEF26394F4C03821C4F PUSH1 0x1 PUSH1 0x40 MLOAD PUSH2 0x847 SWAP2 SWAP1 PUSH2 0x2E26 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP3 PUSH2 0x862 DUP2 PUSH2 0x106F JUMP JUMPDEST DUP3 PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0x8A7 JUMPI PUSH1 0x40 MLOAD PUSH32 0xC29F9DB300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x89E SWAP1 PUSH2 0x2E8D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x5 PUSH2 0x8B2 DUP7 PUSH2 0x1151 JUMP JUMPDEST DUP6 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x8C5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3065 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL PUSH2 0x956 DUP2 PUSH2 0xE4E JUMP JUMPDEST PUSH2 0x95F DUP3 PUSH2 0x121F JUMP JUMPDEST PUSH32 0x309B29DED109B9E28FB9885757B3E0096EB75C51D23AA4635D68BCD569F6ADC1 PUSH1 0x5 DUP4 PUSH1 0x40 MLOAD PUSH2 0x991 SWAP3 SWAP2 SWAP1 PUSH2 0x313B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP2 PUSH1 0x5 SWAP1 DUP2 PUSH2 0x9A8 SWAP2 SWAP1 PUSH2 0x32FF JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP2 JUMP JUMPDEST PUSH2 0x9C6 PUSH2 0x9BF PUSH2 0xD4E JUMP JUMPDEST DUP4 DUP4 PUSH2 0x1266 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 SLOAD SWAP1 POP PUSH2 0x9ED CALLER DUP3 PUSH1 0x1 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x10B8 JUMP JUMPDEST DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xC65A3F767206D2FDCEDE0B094A4840E01C0DD0BE1888B5BA800346EAA0123C16 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x1 DUP2 PUSH2 0xA3E SWAP2 SWAP1 PUSH2 0x3400 JUMP JUMPDEST PUSH1 0x4 DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH2 0xA50 DUP3 PUSH2 0x520 JUMP JUMPDEST PUSH2 0xA59 DUP2 PUSH2 0xE4E JUMP JUMPDEST PUSH2 0xA63 DUP4 DUP4 PUSH2 0xF54 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB07 PUSH2 0xD4E JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0xB4C JUMPI POP PUSH2 0xB4A DUP7 DUP3 PUSH2 0xA69 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0xB90 JUMPI DUP1 DUP7 PUSH1 0x40 MLOAD PUSH32 0xE237D92200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB87 SWAP3 SWAP2 SWAP1 PUSH2 0x2D37 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xB9D DUP7 DUP7 DUP7 DUP7 DUP7 PUSH2 0x13D6 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST DUP2 PUSH2 0xBAF DUP2 PUSH2 0x106F JUMP JUMPDEST DUP4 DUP4 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xC23 JUMPI DUP2 DUP2 PUSH1 0x40 MLOAD PUSH32 0x8626CC0300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC1A SWAP3 SWAP2 SWAP1 PUSH2 0x2DB8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xC2F DUP7 DUP7 PUSH1 0x1 PUSH2 0x14E1 JUMP JUMPDEST DUP5 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x49995E5DD6158CF69AD3E9777C46755A1A826A446C6416992167462DAD033B2A PUSH1 0x1 PUSH1 0x40 MLOAD PUSH2 0xC77 SWAP2 SWAP1 PUSH2 0x2E26 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCB3 DUP3 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH2 0x1588 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xCCD JUMPI POP PUSH2 0xCCB DUP3 PUSH4 0xFFFFFFFF PUSH1 0xE0 SHL PUSH2 0x1588 JUMP JUMPDEST ISZERO JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x7965DB0B00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xD47 JUMPI POP PUSH2 0xD46 DUP3 PUSH2 0x1627 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xDC8 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xDBF SWAP2 SWAP1 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xE3A JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1A8351400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE31 SWAP2 SWAP1 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xE47 DUP6 DUP6 DUP6 DUP6 DUP6 PUSH2 0x1709 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0xE5F DUP2 PUSH2 0xE5A PUSH2 0xD4E JUMP JUMPDEST PUSH2 0x17BB JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE6E DUP4 DUP4 PUSH2 0x8DE JUMP JUMPDEST PUSH2 0xF49 JUMPI PUSH1 0x1 PUSH1 0x3 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0xEE6 PUSH2 0xD4E JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x1 SWAP1 POP PUSH2 0xF4E JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF60 DUP4 DUP4 PUSH2 0x8DE JUMP JUMPDEST ISZERO PUSH2 0x103C JUMPI PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0xFD9 PUSH2 0xD4E JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x1 SWAP1 POP PUSH2 0x1041 JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MUL PUSH1 0x20 DUP5 ADD ADD MLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MUL PUSH1 0x20 DUP5 ADD ADD MLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x4 SLOAD DUP2 LT PUSH2 0x10B5 JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0xC80A970C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10AC SWAP2 SWAP1 PUSH2 0x2200 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x112A JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1121 SWAP2 SWAP1 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1137 DUP6 DUP6 PUSH2 0x180C JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x1149 PUSH1 0x0 DUP8 DUP5 DUP5 DUP8 PUSH2 0x1709 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x1 PUSH2 0x1160 DUP5 PUSH2 0x183C JUMP JUMPDEST ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x117F JUMPI PUSH2 0x117E PUSH2 0x2447 JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x11B1 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x1 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x20 ADD DUP3 ADD SWAP1 POP JUMPDEST PUSH1 0x1 ISZERO PUSH2 0x1214 JUMPI DUP1 DUP1 PUSH1 0x1 SWAP1 SUB SWAP2 POP POP PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DUP2 PUSH2 0x1208 JUMPI PUSH2 0x1207 PUSH2 0x344F JUMP JUMPDEST JUMPDEST DIV SWAP5 POP PUSH1 0x0 DUP6 SUB PUSH2 0x11BF JUMPI JUMPDEST DUP2 SWAP4 POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0x1263 JUMPI PUSH1 0x40 MLOAD PUSH32 0x1897CF6600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x125A SWAP1 PUSH2 0x34CA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x12D8 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xCED3E10000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x12CF SWAP2 SWAP1 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 DUP4 PUSH1 0x40 MLOAD PUSH2 0x13C9 SWAP2 SWAP1 PUSH2 0x22BB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1448 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x143F SWAP2 SWAP1 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x14BA JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1A8351400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14B1 SWAP2 SWAP1 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x14C7 DUP6 DUP6 PUSH2 0x180C JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x14D8 DUP8 DUP8 DUP5 DUP5 DUP8 PUSH2 0x1709 JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1553 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1A8351400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x154A SWAP2 SWAP1 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1560 DUP5 DUP5 PUSH2 0x180C JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x1581 DUP6 PUSH1 0x0 DUP5 DUP5 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x1709 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x159C SWAP2 SWAP1 PUSH2 0x34F9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP SWAP1 POP PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x20 PUSH1 0x0 DUP6 MLOAD PUSH1 0x20 DUP8 ADD DUP11 PUSH2 0x7530 STATICCALL SWAP3 POP RETURNDATASIZE SWAP2 POP PUSH1 0x0 MLOAD SWAP1 POP DUP3 DUP1 ISZERO PUSH2 0x160F JUMPI POP PUSH1 0x20 DUP3 LT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x161B JUMPI POP PUSH1 0x0 DUP2 GT JUMPDEST SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xD9B67A2600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x16F2 JUMPI POP PUSH32 0xE89341C00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ JUMPDEST DUP1 PUSH2 0x1702 JUMPI POP PUSH2 0x1701 DUP3 PUSH2 0x198F JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1715 DUP6 DUP6 DUP6 DUP6 PUSH2 0x19F9 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x17B4 JUMPI PUSH1 0x0 PUSH2 0x1753 PUSH2 0xD4E JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP5 MLOAD SUB PUSH2 0x17A3 JUMPI PUSH1 0x0 PUSH2 0x1774 PUSH1 0x0 DUP7 PUSH2 0x105B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x178C PUSH1 0x0 DUP7 PUSH2 0x105B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH2 0x179C DUP4 DUP10 DUP10 DUP6 DUP6 DUP10 PUSH2 0x1DA1 JUMP JUMPDEST POP POP PUSH2 0x17B2 JUMP JUMPDEST PUSH2 0x17B1 DUP2 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x1F55 JUMP JUMPDEST JUMPDEST POP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0x17C5 DUP3 DUP3 PUSH2 0x8DE JUMP JUMPDEST PUSH2 0x1808 JUMPI DUP1 DUP3 PUSH1 0x40 MLOAD PUSH32 0xE2517D3F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x17FF SWAP3 SWAP2 SWAP1 PUSH2 0x3514 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1 DUP3 MSTORE DUP4 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH1 0x1 DUP2 MSTORE DUP3 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD PUSH1 0x40 MSTORE SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 LT PUSH2 0x189A JUMPI PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 DUP2 PUSH2 0x1890 JUMPI PUSH2 0x188F PUSH2 0x344F JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x40 DUP2 ADD SWAP1 POP JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x18D7 JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DUP2 PUSH2 0x18CD JUMPI PUSH2 0x18CC PUSH2 0x344F JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x20 DUP2 ADD SWAP1 POP JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x1906 JUMPI PUSH7 0x2386F26FC10000 DUP4 DUP2 PUSH2 0x18FC JUMPI PUSH2 0x18FB PUSH2 0x344F JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x10 DUP2 ADD SWAP1 POP JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x192F JUMPI PUSH4 0x5F5E100 DUP4 DUP2 PUSH2 0x1925 JUMPI PUSH2 0x1924 PUSH2 0x344F JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x8 DUP2 ADD SWAP1 POP JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x1954 JUMPI PUSH2 0x2710 DUP4 DUP2 PUSH2 0x194A JUMPI PUSH2 0x1949 PUSH2 0x344F JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x4 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x1977 JUMPI PUSH1 0x64 DUP4 DUP2 PUSH2 0x196D JUMPI PUSH2 0x196C PUSH2 0x344F JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x2 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x1986 JUMPI PUSH1 0x1 DUP2 ADD SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 MLOAD DUP3 MLOAD EQ PUSH2 0x1A43 JUMPI DUP2 MLOAD DUP2 MLOAD PUSH1 0x40 MLOAD PUSH32 0x5B05999100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A3A SWAP3 SWAP2 SWAP1 PUSH2 0x2D60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1A4D PUSH2 0xD4E JUMP JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0x1C5C JUMPI PUSH1 0x0 PUSH2 0x1A70 DUP3 DUP7 PUSH2 0x105B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1A87 DUP4 DUP7 PUSH2 0x105B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1BB4 JUMPI PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x1B5C JUMPI DUP9 DUP2 DUP4 DUP6 PUSH1 0x40 MLOAD PUSH32 0x3DEE4C500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1B53 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x353D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1C4F JUMPI DUP1 PUSH1 0x0 DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1C47 SWAP2 SWAP1 PUSH2 0x3400 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST POP POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0x1A52 JUMP JUMPDEST POP PUSH1 0x1 DUP4 MLOAD SUB PUSH2 0x1D1B JUMPI PUSH1 0x0 PUSH2 0x1C7C PUSH1 0x0 DUP6 PUSH2 0x105B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1C94 PUSH1 0x0 DUP6 PUSH2 0x105B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xC3D58168C5AE7397731D063D5BBF3D657854427343F4C083240F7AACAA2D0F62 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x1D0C SWAP3 SWAP2 SWAP1 PUSH2 0x2D60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP PUSH2 0x1D9A JUMP JUMPDEST DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x4A39DC06D4C0DBC64B70AF90FD698A233A518AA5D07E595D983B8C0526C8F7FB DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x1D91 SWAP3 SWAP2 SWAP1 PUSH2 0x3582 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT ISZERO PUSH2 0x1F4D JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF23A6E61 DUP8 DUP8 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1E02 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x360E JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x1E3E JUMPI POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1E3B SWAP2 SWAP1 PUSH2 0x367D JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x1EC2 JUMPI RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1E6E JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1E73 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0x1EBA JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1EB1 SWAP2 SWAP1 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH4 0xF23A6E61 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x1F4B JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1F42 SWAP2 SWAP1 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT ISZERO PUSH2 0x2101 JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xBC197C81 DUP8 DUP8 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1FB6 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x36AA JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x1FF2 JUMPI POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1FEF SWAP2 SWAP1 PUSH2 0x367D JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x2076 JUMPI RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x2022 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x2027 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0x206E JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2065 SWAP2 SWAP1 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH4 0xBC197C81 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x20FF JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x20F6 SWAP2 SWAP1 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2148 DUP3 PUSH2 0x211D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2158 DUP2 PUSH2 0x213D JUMP JUMPDEST DUP2 EQ PUSH2 0x2163 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2175 DUP2 PUSH2 0x214F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x218E DUP2 PUSH2 0x217B JUMP JUMPDEST DUP2 EQ PUSH2 0x2199 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x21AB DUP2 PUSH2 0x2185 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x21C8 JUMPI PUSH2 0x21C7 PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x21D6 DUP6 DUP3 DUP7 ADD PUSH2 0x2166 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x21E7 DUP6 DUP3 DUP7 ADD PUSH2 0x219C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x21FA DUP2 PUSH2 0x217B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2215 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x21F1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2250 DUP2 PUSH2 0x221B JUMP JUMPDEST DUP2 EQ PUSH2 0x225B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x226D DUP2 PUSH2 0x2247 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2289 JUMPI PUSH2 0x2288 PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2297 DUP5 DUP3 DUP6 ADD PUSH2 0x225E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x22B5 DUP2 PUSH2 0x22A0 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x22D0 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x22AC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x22EC JUMPI PUSH2 0x22EB PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x22FA DUP5 DUP3 DUP6 ADD PUSH2 0x219C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x233D JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x2322 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2365 DUP3 PUSH2 0x2303 JUMP JUMPDEST PUSH2 0x236F DUP2 DUP6 PUSH2 0x230E JUMP JUMPDEST SWAP4 POP PUSH2 0x237F DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x231F JUMP JUMPDEST PUSH2 0x2388 DUP2 PUSH2 0x2349 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x23AD DUP2 DUP5 PUSH2 0x235A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x23C8 DUP2 PUSH2 0x23B5 JUMP JUMPDEST DUP2 EQ PUSH2 0x23D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x23E5 DUP2 PUSH2 0x23BF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2401 JUMPI PUSH2 0x2400 PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x240F DUP5 DUP3 DUP6 ADD PUSH2 0x23D6 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2421 DUP2 PUSH2 0x23B5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x243C PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2418 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x247F DUP3 PUSH2 0x2349 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x249E JUMPI PUSH2 0x249D PUSH2 0x2447 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x24B1 PUSH2 0x2109 JUMP JUMPDEST SWAP1 POP PUSH2 0x24BD DUP3 DUP3 PUSH2 0x2476 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x24DD JUMPI PUSH2 0x24DC PUSH2 0x2447 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2506 PUSH2 0x2501 DUP5 PUSH2 0x24C2 JUMP JUMPDEST PUSH2 0x24A7 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x2529 JUMPI PUSH2 0x2528 PUSH2 0x24EE JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2552 JUMPI DUP1 PUSH2 0x253E DUP9 DUP3 PUSH2 0x219C JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x252B JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2571 JUMPI PUSH2 0x2570 PUSH2 0x2442 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2581 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x24F3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x25AA JUMPI PUSH2 0x25A9 PUSH2 0x2447 JUMP JUMPDEST JUMPDEST PUSH2 0x25B3 DUP3 PUSH2 0x2349 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x25E2 PUSH2 0x25DD DUP5 PUSH2 0x258F JUMP JUMPDEST PUSH2 0x24A7 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x25FE JUMPI PUSH2 0x25FD PUSH2 0x258A JUMP JUMPDEST JUMPDEST PUSH2 0x2609 DUP5 DUP3 DUP6 PUSH2 0x25C0 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2626 JUMPI PUSH2 0x2625 PUSH2 0x2442 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2636 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x25CF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x265B JUMPI PUSH2 0x265A PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2669 DUP9 DUP3 DUP10 ADD PUSH2 0x2166 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x267A DUP9 DUP3 DUP10 ADD PUSH2 0x2166 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x269B JUMPI PUSH2 0x269A PUSH2 0x2118 JUMP JUMPDEST JUMPDEST PUSH2 0x26A7 DUP9 DUP3 DUP10 ADD PUSH2 0x255C JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x26C8 JUMPI PUSH2 0x26C7 PUSH2 0x2118 JUMP JUMPDEST JUMPDEST PUSH2 0x26D4 DUP9 DUP3 DUP10 ADD PUSH2 0x255C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x26F5 JUMPI PUSH2 0x26F4 PUSH2 0x2118 JUMP JUMPDEST JUMPDEST PUSH2 0x2701 DUP9 DUP3 DUP10 ADD PUSH2 0x2611 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2725 JUMPI PUSH2 0x2724 PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2733 DUP6 DUP3 DUP7 ADD PUSH2 0x23D6 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2744 DUP6 DUP3 DUP7 ADD PUSH2 0x2166 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2769 JUMPI PUSH2 0x2768 PUSH2 0x2447 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x278D PUSH2 0x2788 DUP5 PUSH2 0x274E JUMP JUMPDEST PUSH2 0x24A7 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x27B0 JUMPI PUSH2 0x27AF PUSH2 0x24EE JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x27D9 JUMPI DUP1 PUSH2 0x27C5 DUP9 DUP3 PUSH2 0x2166 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x27B2 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x27F8 JUMPI PUSH2 0x27F7 PUSH2 0x2442 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2808 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x277A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2828 JUMPI PUSH2 0x2827 PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2846 JUMPI PUSH2 0x2845 PUSH2 0x2118 JUMP JUMPDEST JUMPDEST PUSH2 0x2852 DUP6 DUP3 DUP7 ADD PUSH2 0x27E3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2873 JUMPI PUSH2 0x2872 PUSH2 0x2118 JUMP JUMPDEST JUMPDEST PUSH2 0x287F DUP6 DUP3 DUP7 ADD PUSH2 0x255C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x28BE DUP2 PUSH2 0x217B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x28D0 DUP4 DUP4 PUSH2 0x28B5 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x28F4 DUP3 PUSH2 0x2889 JUMP JUMPDEST PUSH2 0x28FE DUP2 DUP6 PUSH2 0x2894 JUMP JUMPDEST SWAP4 POP PUSH2 0x2909 DUP4 PUSH2 0x28A5 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x293A JUMPI DUP2 MLOAD PUSH2 0x2921 DUP9 DUP3 PUSH2 0x28C4 JUMP JUMPDEST SWAP8 POP PUSH2 0x292C DUP4 PUSH2 0x28DC JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x290D JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2961 DUP2 DUP5 PUSH2 0x28E9 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2983 JUMPI PUSH2 0x2982 PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2991 DUP8 DUP3 DUP9 ADD PUSH2 0x2166 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x29A2 DUP8 DUP3 DUP9 ADD PUSH2 0x219C JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x29B3 DUP8 DUP3 DUP9 ADD PUSH2 0x219C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x29D4 JUMPI PUSH2 0x29D3 PUSH2 0x2118 JUMP JUMPDEST JUMPDEST PUSH2 0x29E0 DUP8 DUP3 DUP9 ADD PUSH2 0x2611 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2A07 JUMPI PUSH2 0x2A06 PUSH2 0x2447 JUMP JUMPDEST JUMPDEST PUSH2 0x2A10 DUP3 PUSH2 0x2349 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A30 PUSH2 0x2A2B DUP5 PUSH2 0x29EC JUMP JUMPDEST PUSH2 0x24A7 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x2A4C JUMPI PUSH2 0x2A4B PUSH2 0x258A JUMP JUMPDEST JUMPDEST PUSH2 0x2A57 DUP5 DUP3 DUP6 PUSH2 0x25C0 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2A74 JUMPI PUSH2 0x2A73 PUSH2 0x2442 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2A84 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x2A1D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2AA4 JUMPI PUSH2 0x2AA3 PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2AB2 DUP6 DUP3 DUP7 ADD PUSH2 0x219C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2AD3 JUMPI PUSH2 0x2AD2 PUSH2 0x2118 JUMP JUMPDEST JUMPDEST PUSH2 0x2ADF DUP6 DUP3 DUP7 ADD PUSH2 0x2A5F JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2AFF JUMPI PUSH2 0x2AFE PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2B1D JUMPI PUSH2 0x2B1C PUSH2 0x2118 JUMP JUMPDEST JUMPDEST PUSH2 0x2B29 DUP5 DUP3 DUP6 ADD PUSH2 0x2A5F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2B3B DUP2 PUSH2 0x22A0 JUMP JUMPDEST DUP2 EQ PUSH2 0x2B46 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2B58 DUP2 PUSH2 0x2B32 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2B75 JUMPI PUSH2 0x2B74 PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2B83 DUP6 DUP3 DUP7 ADD PUSH2 0x2166 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2B94 DUP6 DUP3 DUP7 ADD PUSH2 0x2B49 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2BB5 JUMPI PUSH2 0x2BB4 PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2BC3 DUP6 DUP3 DUP7 ADD PUSH2 0x2166 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2BD4 DUP6 DUP3 DUP7 ADD PUSH2 0x2166 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2BFA JUMPI PUSH2 0x2BF9 PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2C08 DUP9 DUP3 DUP10 ADD PUSH2 0x2166 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x2C19 DUP9 DUP3 DUP10 ADD PUSH2 0x2166 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x2C2A DUP9 DUP3 DUP10 ADD PUSH2 0x219C JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH2 0x2C3B DUP9 DUP3 DUP10 ADD PUSH2 0x219C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2C5C JUMPI PUSH2 0x2C5B PUSH2 0x2118 JUMP JUMPDEST JUMPDEST PUSH2 0x2C68 DUP9 DUP3 DUP10 ADD PUSH2 0x2611 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2C8E JUMPI PUSH2 0x2C8D PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2C9C DUP7 DUP3 DUP8 ADD PUSH2 0x2166 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x2CAD DUP7 DUP3 DUP8 ADD PUSH2 0x219C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x2CBE DUP7 DUP3 DUP8 ADD PUSH2 0x219C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x2D0F JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x2D22 JUMPI PUSH2 0x2D21 PUSH2 0x2CC8 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2D31 DUP2 PUSH2 0x213D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2D4C PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2D28 JUMP JUMPDEST PUSH2 0x2D59 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2D28 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2D75 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x21F1 JUMP JUMPDEST PUSH2 0x2D82 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x21F1 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2DCD PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2D28 JUMP JUMPDEST PUSH2 0x2DDA PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x21F1 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2E10 PUSH2 0x2E0B PUSH2 0x2E06 DUP5 PUSH2 0x2DE1 JUMP JUMPDEST PUSH2 0x2DEB JUMP JUMPDEST PUSH2 0x217B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2E20 DUP2 PUSH2 0x2DF5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2E3B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2E17 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4163636F756E742063616E6E6F7420626520656D707479000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2E77 PUSH1 0x17 DUP4 PUSH2 0x230E JUMP JUMPDEST SWAP2 POP PUSH2 0x2E82 DUP3 PUSH2 0x2E41 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2EA6 DUP2 PUSH2 0x2E6A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH2 0x2EDA DUP2 PUSH2 0x2CF7 JUMP JUMPDEST PUSH2 0x2EE4 DUP2 DUP7 PUSH2 0x2EAD JUMP JUMPDEST SWAP5 POP PUSH1 0x1 DUP3 AND PUSH1 0x0 DUP2 EQ PUSH2 0x2EFF JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x2F14 JUMPI PUSH2 0x2F47 JUMP JUMPDEST PUSH1 0xFF NOT DUP4 AND DUP7 MSTORE DUP2 ISZERO ISZERO DUP3 MUL DUP7 ADD SWAP4 POP PUSH2 0x2F47 JUMP JUMPDEST PUSH2 0x2F1D DUP6 PUSH2 0x2EB8 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2F3F JUMPI DUP2 SLOAD DUP2 DUP10 ADD MSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x2F20 JUMP JUMPDEST DUP4 DUP9 ADD SWAP6 POP POP POP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x2F6170692F76312F6E66742F0000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2F86 PUSH1 0xC DUP4 PUSH2 0x2EAD JUMP JUMPDEST SWAP2 POP PUSH2 0x2F91 DUP3 PUSH2 0x2F50 JUMP JUMPDEST PUSH1 0xC DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FA7 DUP3 PUSH2 0x2303 JUMP JUMPDEST PUSH2 0x2FB1 DUP2 DUP6 PUSH2 0x2EAD JUMP JUMPDEST SWAP4 POP PUSH2 0x2FC1 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x231F JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x2F00000000000000000000000000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3003 PUSH1 0x1 DUP4 PUSH2 0x2EAD JUMP JUMPDEST SWAP2 POP PUSH2 0x300E DUP3 PUSH2 0x2FCD JUMP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x2F72657075746174696F6E2D73636F7265000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x304F PUSH1 0x11 DUP4 PUSH2 0x2EAD JUMP JUMPDEST SWAP2 POP PUSH2 0x305A DUP3 PUSH2 0x3019 JUMP JUMPDEST PUSH1 0x11 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3071 DUP3 DUP7 PUSH2 0x2ECD JUMP JUMPDEST SWAP2 POP PUSH2 0x307C DUP3 PUSH2 0x2F79 JUMP JUMPDEST SWAP2 POP PUSH2 0x3088 DUP3 DUP6 PUSH2 0x2F9C JUMP JUMPDEST SWAP2 POP PUSH2 0x3093 DUP3 PUSH2 0x2FF6 JUMP JUMPDEST SWAP2 POP PUSH2 0x309F DUP3 DUP5 PUSH2 0x2F9C JUMP JUMPDEST SWAP2 POP PUSH2 0x30AA DUP3 PUSH2 0x3042 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH2 0x30C4 DUP2 PUSH2 0x2CF7 JUMP JUMPDEST PUSH2 0x30CE DUP2 DUP7 PUSH2 0x230E JUMP JUMPDEST SWAP5 POP PUSH1 0x1 DUP3 AND PUSH1 0x0 DUP2 EQ PUSH2 0x30E9 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x30FF JUMPI PUSH2 0x3132 JUMP JUMPDEST PUSH1 0xFF NOT DUP4 AND DUP7 MSTORE DUP2 ISZERO ISZERO PUSH1 0x20 MUL DUP7 ADD SWAP4 POP PUSH2 0x3132 JUMP JUMPDEST PUSH2 0x3108 DUP6 PUSH2 0x2EB8 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x312A JUMPI DUP2 SLOAD DUP2 DUP10 ADD MSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x310B JUMP JUMPDEST DUP1 DUP9 ADD SWAP6 POP POP POP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3155 DUP2 DUP6 PUSH2 0x30B7 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x3169 DUP2 DUP5 PUSH2 0x235A JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH2 0x31BF PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x3182 JUMP JUMPDEST PUSH2 0x31C9 DUP7 DUP4 PUSH2 0x3182 JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x31FC PUSH2 0x31F7 PUSH2 0x31F2 DUP5 PUSH2 0x217B JUMP JUMPDEST PUSH2 0x2DEB JUMP JUMPDEST PUSH2 0x217B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3216 DUP4 PUSH2 0x31E1 JUMP JUMPDEST PUSH2 0x322A PUSH2 0x3222 DUP3 PUSH2 0x3203 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x318F JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH2 0x323F PUSH2 0x3232 JUMP JUMPDEST PUSH2 0x324A DUP2 DUP5 DUP5 PUSH2 0x320D JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x326E JUMPI PUSH2 0x3263 PUSH1 0x0 DUP3 PUSH2 0x3237 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x3250 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x32B3 JUMPI PUSH2 0x3284 DUP2 PUSH2 0x2EB8 JUMP JUMPDEST PUSH2 0x328D DUP5 PUSH2 0x3172 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x329C JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x32B0 PUSH2 0x32A8 DUP6 PUSH2 0x3172 JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x324F JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x32D6 PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x32B8 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x32EF DUP4 DUP4 PUSH2 0x32C5 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x3308 DUP3 PUSH2 0x2303 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3321 JUMPI PUSH2 0x3320 PUSH2 0x2447 JUMP JUMPDEST JUMPDEST PUSH2 0x332B DUP3 SLOAD PUSH2 0x2CF7 JUMP JUMPDEST PUSH2 0x3336 DUP3 DUP3 DUP6 PUSH2 0x3272 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x3369 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x3357 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x3361 DUP6 DUP3 PUSH2 0x32E3 JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x33C9 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x3377 DUP7 PUSH2 0x2EB8 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x339F JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x337A JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x33BC JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x33B8 PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x32C5 JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x340B DUP3 PUSH2 0x217B JUMP JUMPDEST SWAP2 POP PUSH2 0x3416 DUP4 PUSH2 0x217B JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x342E JUMPI PUSH2 0x342D PUSH2 0x33D1 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x3449 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2D28 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x5552492063616E6E6F7420626520656D70747900000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x34B4 PUSH1 0x13 DUP4 PUSH2 0x230E JUMP JUMPDEST SWAP2 POP PUSH2 0x34BF DUP3 PUSH2 0x347E JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x34E3 DUP2 PUSH2 0x34A7 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x34F3 DUP2 PUSH2 0x221B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x350E PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x34EA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x3529 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2D28 JUMP JUMPDEST PUSH2 0x3536 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2418 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x3552 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x2D28 JUMP JUMPDEST PUSH2 0x355F PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x21F1 JUMP JUMPDEST PUSH2 0x356C PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x21F1 JUMP JUMPDEST PUSH2 0x3579 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x21F1 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x359C DUP2 DUP6 PUSH2 0x28E9 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x35B0 DUP2 DUP5 PUSH2 0x28E9 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x35E0 DUP3 PUSH2 0x35B9 JUMP JUMPDEST PUSH2 0x35EA DUP2 DUP6 PUSH2 0x35C4 JUMP JUMPDEST SWAP4 POP PUSH2 0x35FA DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x231F JUMP JUMPDEST PUSH2 0x3603 DUP2 PUSH2 0x2349 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x3623 PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x2D28 JUMP JUMPDEST PUSH2 0x3630 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x2D28 JUMP JUMPDEST PUSH2 0x363D PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x21F1 JUMP JUMPDEST PUSH2 0x364A PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x21F1 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x365C DUP2 DUP5 PUSH2 0x35D5 JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x3677 DUP2 PUSH2 0x2247 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3693 JUMPI PUSH2 0x3692 PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x36A1 DUP5 DUP3 DUP6 ADD PUSH2 0x3668 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x36BF PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x2D28 JUMP JUMPDEST PUSH2 0x36CC PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x2D28 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x36DE DUP2 DUP7 PUSH2 0x28E9 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x36F2 DUP2 DUP6 PUSH2 0x28E9 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x3706 DUP2 DUP5 PUSH2 0x35D5 JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x24 0xE SWAP11 PUSH30 0xAAB5D9EBA2793E75F4BBF0E9A74F133868AC14D5E9561767BB722E826473 PUSH16 0x6C634300081A00330000000000000000 ", + "sourceMap": "336:2840:16:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2247:132:3;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2368:263:16;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2084:103:3;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3810:120:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4014:429:3;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4226:136:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5328:245;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2536:552:3;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1468:80:16;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1762:350;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2845:329;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2854:136:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2637:202:16;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2187:49:0;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3156:144:3;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1554:202:16;;;:::i;:::-;;4642:138:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3367:157:3;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3591:351;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2118:244:16;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2247:132:3;2324:7;2350:9;:13;2360:2;2350:13;;;;;;;;;;;:22;2364:7;2350:22;;;;;;;;;;;;;;;;2343:29;;2247:132;;;;:::o;2368:263:16:-;2483:4;2503:30;2511:4;2503:28;;;:30::i;:::-;2499:104;;;2556:36;2580:11;2556:23;:36::i;:::-;2549:43;;;;2499:104;2619:5;2612:12;;2368:263;;;;:::o;2084:103:3:-;2144:13;2176:4;2169:11;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2084:103;;;:::o;3810:120:0:-;3875:7;3901:6;:12;3908:4;3901:12;;;;;;;;;;;:22;;;3894:29;;3810:120;;;:::o;4014:429:3:-;4208:14;4225:12;:10;:12::i;:::-;4208:29;;4259:6;4251:14;;:4;:14;;;;:49;;;;;4270:30;4287:4;4293:6;4270:16;:30::i;:::-;4269:31;4251:49;4247:129;;;4352:6;4360:4;4323:42;;;;;;;;;;;;:::i;:::-;;;;;;;;4247:129;4385:51;4408:4;4414:2;4418:3;4423:6;4431:4;4385:22;:51::i;:::-;4198:245;4014:429;;;;;:::o;4226:136:0:-;4300:18;4313:4;4300:12;:18::i;:::-;2464:16;2475:4;2464:10;:16::i;:::-;4330:25:::1;4341:4;4347:7;4330:10;:25::i;:::-;;4226:136:::0;;;:::o;5328:245::-;5443:12;:10;:12::i;:::-;5421:34;;:18;:34;;;5417:102;;5478:30;;;;;;;;;;;;;;5417:102;5529:37;5541:4;5547:18;5529:11;:37::i;:::-;;5328:245;;:::o;2536:552:3:-;2660:16;2711:3;:10;2692:8;:15;:29;2688:121;;2770:3;:10;2782:8;:15;2744:54;;;;;;;;;;;;:::i;:::-;;;;;;;;2688:121;2819:30;2866:8;:15;2852:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2819:63;;2898:9;2893:158;2917:8;:15;2913:1;:19;2893:158;;;2972:68;2982:30;3010:1;2982:8;:27;;:30;;;;:::i;:::-;3014:25;3037:1;3014:3;:22;;:25;;;;:::i;:::-;2972:9;:68::i;:::-;2953:13;2967:1;2953:16;;;;;;;;:::i;:::-;;;;;;;:87;;;;;2934:3;;;;;2893:158;;;;3068:13;3061:20;;;2536:552;;;;:::o;1468:80:16:-;1510:4;1533:8;;1526:15;;1468:80;:::o;1762:350::-;1908:7;1053:22;1067:7;1053:13;:22::i;:::-;1962:1:::1;1931:27;1941:7;1950;1931:9;:27::i;:::-;:32;1927:97;;1996:7;2005;1986:27;;;;;;;;;;;;:::i;:::-;;;;;;;;1927:97;2033:32;2039:7;2048;2057:1;2060:4;2033:5;:32::i;:::-;2094:7;2085;2080:25;;;2103:1;2080:25;;;;;;:::i;:::-;;;;;;;;1762:350:::0;;;;;:::o;2845:329::-;2985:13;2942:7;1053:22;1067:7;1053:13;:22::i;:::-;2967:7:::1;1361:1;1342:7;1336:21;:26:::0;1332:113:::1;;1385:49;;;;;;;;;;:::i;:::-;;;;;;;;1332:113;3070:9:::2;3095:25;3112:7;3095:16;:25::i;:::-;3125:7;3053:100;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3010:157;;1085:1:::1;2845:329:::0;;;;;:::o;2854:136:0:-;2931:4;2954:6;:12;2961:4;2954:12;;;;;;;;;;;:20;;:29;2975:7;2954:29;;;;;;;;;;;;;;;;;;;;;;;;;2947:36;;2854:136;;;;:::o;2637:202:16:-;2232:4:0;2700:18:16;;2464:16:0;2475:4;2464:10;:16::i;:::-;2730:26:16::1;2749:6;2730:18;:26::i;:::-;2771:33;2786:9;2797:6;2771:33;;;;;;;:::i;:::-;;;;;;;;2826:6;2814:9;:18;;;;;;:::i;:::-;;2637:202:::0;;:::o;2187:49:0:-;2232:4;2187:49;;;:::o;3156:144:3:-;3241:52;3260:12;:10;:12::i;:::-;3274:8;3284;3241:18;:52::i;:::-;3156:144;;:::o;1554:202:16:-;1590:17;1610:8;;1590:28;;1628:38;1634:10;1646:12;1660:1;1628:38;;;;;;;;;;;;:5;:38::i;:::-;1699:12;1687:10;1681:31;;;;;;;;;;;;1748:1;1733:12;:16;;;;:::i;:::-;1722:8;:27;;;;1580:176;1554:202::o;4642:138:0:-;4717:18;4730:4;4717:12;:18::i;:::-;2464:16;2475:4;2464:10;:16::i;:::-;4747:26:::1;4759:4;4765:7;4747:11;:26::i;:::-;;4642:138:::0;;;:::o;3367:157:3:-;3457:4;3480:18;:27;3499:7;3480:27;;;;;;;;;;;;;;;:37;3508:8;3480:37;;;;;;;;;;;;;;;;;;;;;;;;;3473:44;;3367:157;;;;:::o;3591:351::-;3714:14;3731:12;:10;:12::i;:::-;3714:29;;3765:6;3757:14;;:4;:14;;;;:49;;;;;3776:30;3793:4;3799:6;3776:16;:30::i;:::-;3775:31;3757:49;3753:129;;;3858:6;3866:4;3829:42;;;;;;;;;;;;:::i;:::-;;;;;;;;3753:129;3891:44;3909:4;3915:2;3919;3923:5;3930:4;3891:17;:44::i;:::-;3704:238;3591:351;;;;;:::o;2118:244:16:-;2237:7;1053:22;1067:7;1053:13;:22::i;:::-;2261:7:::1;2270;1179:10;1168:21;;:7;:21;;;1164:87;;1223:7;1232;1212:28;;;;;;;;;;;;:::i;:::-;;;;;;;;1164:87;2289:26:::2;2295:7;2304;2313:1;2289:5;:26::i;:::-;2344:7;2335;2330:25;;;2353:1;2330:25;;;;;;:::i;:::-;;;;;;;;1085:1:::1;;2118:244:::0;;;;:::o;719:426:12:-;783:4;990:68;1023:7;1032:25;990:32;:68::i;:::-;:148;;;;;1075:63;1108:7;614:10;1117:20;;1075:32;:63::i;:::-;1074:64;990:148;971:167;;719:426;;;:::o;2565:202:0:-;2650:4;2688:32;2673:47;;;:11;:47;;;;:87;;;;2724:36;2748:11;2724:23;:36::i;:::-;2673:87;2666:94;;2565:202;;;:::o;656:96:8:-;709:7;735:10;728:17;;656:96;:::o;9015:445:3:-;9222:1;9208:16;;:2;:16;;;9204:88;;9278:1;9247:34;;;;;;;;;;;:::i;:::-;;;;;;;;9204:88;9321:1;9305:18;;:4;:18;;;9301:88;;9375:1;9346:32;;;;;;;;;;;:::i;:::-;;;;;;;;9301:88;9398:55;9425:4;9431:2;9435:3;9440:6;9448:4;9398:26;:55::i;:::-;9015:445;;;;;:::o;3199:103:0:-;3265:30;3276:4;3282:12;:10;:12::i;:::-;3265:10;:30::i;:::-;3199:103;:::o;6179:316::-;6256:4;6277:22;6285:4;6291:7;6277;:22::i;:::-;6272:217;;6347:4;6315:6;:12;6322:4;6315:12;;;;;;;;;;;:20;;:29;6336:7;6315:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;6397:12;:10;:12::i;:::-;6370:40;;6388:7;6370:40;;6382:4;6370:40;;;;;;;;;;6431:4;6424:11;;;;6272:217;6473:5;6466:12;;6179:316;;;;;:::o;6730:317::-;6808:4;6828:22;6836:4;6842:7;6828;:22::i;:::-;6824:217;;;6898:5;6866:6;:12;6873:4;6866:12;;;;;;;;;;;:20;;:29;6887:7;6866:29;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;6949:12;:10;:12::i;:::-;6922:40;;6940:7;6922:40;;6934:4;6922:40;;;;;;;;;;6983:4;6976:11;;;;6824:217;7025:5;7018:12;;6730:317;;;;;:::o;4603:197:7:-;4689:11;4777:4;4772:3;4768:14;4761:4;4756:3;4752:14;4748:35;4742:42;4735:49;;4603:197;;;;:::o;4204:::-;4290:11;4378:4;4373:3;4369:14;4362:4;4357:3;4353:14;4349:35;4343:42;4336:49;;4204:197;;;;:::o;681:140:16:-;756:8;;745:7;:19;741:74;;796:7;787:17;;;;;;;;;;;:::i;:::-;;;;;;;;741:74;681:140;:::o;10746:346:3:-;10856:1;10842:16;;:2;:16;;;10838:88;;10912:1;10881:34;;;;;;;;;;;:::i;:::-;;;;;;;;10838:88;10936:20;10958:23;10985:29;11004:2;11008:5;10985:18;:29::i;:::-;10935:79;;;;11024:61;11059:1;11063:2;11067:3;11072:6;11080:4;11024:26;:61::i;:::-;10828:264;;10746:346;;;;:::o;637:698:10:-;693:13;742:14;779:1;759:17;770:5;759:10;:17::i;:::-;:21;742:38;;794:20;828:6;817:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;794:41;;849:11;975:6;971:2;967:15;959:6;955:28;948:35;;1010:282;1017:4;1010:282;;;1041:5;;;;;;;;1180:10;1175:2;1168:5;1164:14;1159:32;1154:3;1146:46;1236:2;1227:11;;;;;;:::i;:::-;;;;;1269:1;1260:5;:10;1010:282;1256:21;1010:282;1312:6;1305:13;;;;;637:698;;;:::o;827:174:16:-;929:1;911:6;905:20;:25;901:94;;953:31;;;;;;;;;;:::i;:::-;;;;;;;;901:94;827:174;:::o;13268:315:3:-;13395:1;13375:22;;:8;:22;;;13371:94;;13451:1;13420:34;;;;;;;;;;;:::i;:::-;;;;;;;;13371:94;13512:8;13474:18;:25;13493:5;13474:25;;;;;;;;;;;;;;;:35;13500:8;13474:35;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;13557:8;13535:41;;13550:5;13535:41;;;13567:8;13535:41;;;;;;:::i;:::-;;;;;;;;13268:315;;;:::o;8151:463::-;8287:1;8273:16;;:2;:16;;;8269:88;;8343:1;8312:34;;;;;;;;;;;:::i;:::-;;;;;;;;8269:88;8386:1;8370:18;;:4;:18;;;8366:88;;8440:1;8411:32;;;;;;;;;;;:::i;:::-;;;;;;;;8366:88;8464:20;8486:23;8513:29;8532:2;8536:5;8513:18;:29::i;:::-;8463:79;;;;8552:55;8579:4;8585:2;8589:3;8594:6;8602:4;8552:26;:55::i;:::-;8259:355;;8151:463;;;;;:::o;12099:329::-;12194:1;12178:18;;:4;:18;;;12174:88;;12248:1;12219:32;;;;;;;;;;;:::i;:::-;;;;;;;;12174:88;12272:20;12294:23;12321:29;12340:2;12344:5;12321:18;:29::i;:::-;12271:79;;;;12360:61;12387:4;12401:1;12405:3;12410:6;12360:61;;;;;;;;;;;;:26;:61::i;:::-;12164:264;;12099:329;;;:::o;4397:632:12:-;4499:4;4539:26;4611:11;4568:56;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4539:85;;4666:12;4688:18;4716:19;4860:4;4854;4838:13;4832:20;4825:4;4810:13;4806:24;4797:7;4790:5;4779:86;4768:97;;4892:16;4878:30;;4942:4;4936:11;4921:26;;4974:7;:29;;;;;4999:4;4985:10;:18;;4974:29;:48;;;;;5021:1;5007:11;:15;4974:48;4967:55;;;;;;4397:632;;;;:::o;1380:305:3:-;1482:4;1532:26;1517:41;;;:11;:41;;;;:109;;;;1589:37;1574:52;;;:11;:52;;;;1517:109;:161;;;;1642:36;1666:11;1642:23;:36::i;:::-;1517:161;1498:180;;1380:305;;;:::o;7004:690::-;7205:30;7213:4;7219:2;7223:3;7228:6;7205:7;:30::i;:::-;7263:1;7249:16;;:2;:16;;;7245:443;;7281:16;7300:12;:10;:12::i;:::-;7281:31;;7344:1;7330:3;:10;:15;7326:352;;7365:10;7378:25;7401:1;7378:3;:22;;:25;;;;:::i;:::-;7365:38;;7421:13;7437:28;7463:1;7437:6;:25;;:28;;;;:::i;:::-;7421:44;;7483:67;7514:8;7524:4;7530:2;7534;7538:5;7545:4;7483:30;:67::i;:::-;7347:218;;7326:352;;;7589:74;7625:8;7635:4;7641:2;7645:3;7650:6;7658:4;7589:35;:74::i;:::-;7326:352;7267:421;7245:443;7004:690;;;;;:::o;3432:197:0:-;3520:22;3528:4;3534:7;3520;:22::i;:::-;3515:108;;3598:7;3607:4;3565:47;;;;;;;;;;;;:::i;:::-;;;;;;;;3515:108;3432:197;;:::o;16080:849:3:-;16188:23;16213;16374:4;16368:11;16358:21;;16444:1;16436:6;16429:17;16582:8;16575:4;16567:6;16563:17;16556:35;16704:4;16696:6;16692:17;16682:27;;16737:1;16729:6;16722:17;16778:8;16771:4;16763:6;16759:17;16752:35;16907:4;16899:6;16895:17;16889:4;16882:31;16080:849;;;;;:::o;12214:916:14:-;12267:7;12286:14;12303:1;12286:18;;12351:8;12342:5;:17;12338:103;;12388:8;12379:17;;;;;;:::i;:::-;;;;;12424:2;12414:12;;;;12338:103;12467:8;12458:5;:17;12454:103;;12504:8;12495:17;;;;;;:::i;:::-;;;;;12540:2;12530:12;;;;12454:103;12583:8;12574:5;:17;12570:103;;12620:8;12611:17;;;;;;:::i;:::-;;;;;12656:2;12646:12;;;;12570:103;12699:7;12690:5;:16;12686:100;;12735:7;12726:16;;;;;;:::i;:::-;;;;;12770:1;12760:11;;;;12686:100;12812:7;12803:5;:16;12799:100;;12848:7;12839:16;;;;;;:::i;:::-;;;;;12883:1;12873:11;;;;12799:100;12925:7;12916:5;:16;12912:100;;12961:7;12952:16;;;;;;:::i;:::-;;;;;12996:1;12986:11;;;;12912:100;13038:7;13029:5;:16;13025:66;;13075:1;13065:11;;;;13025:66;13117:6;13110:13;;;12214:916;;;:::o;762:146:11:-;838:4;876:25;861:40;;;:11;:40;;;;854:47;;762:146;;;:::o;5144:1281:3:-;5279:6;:13;5265:3;:10;:27;5261:117;;5341:3;:10;5353:6;:13;5315:52;;;;;;;;;;;;:::i;:::-;;;;;;;;5261:117;5388:16;5407:12;:10;:12::i;:::-;5388:31;;5435:9;5430:691;5454:3;:10;5450:1;:14;5430:691;;;5485:10;5498:25;5521:1;5498:3;:22;;:25;;;;:::i;:::-;5485:38;;5537:13;5553:28;5579:1;5553:6;:25;;:28;;;;:::i;:::-;5537:44;;5616:1;5600:18;;:4;:18;;;5596:420;;5638:19;5660:9;:13;5670:2;5660:13;;;;;;;;;;;:19;5674:4;5660:19;;;;;;;;;;;;;;;;5638:41;;5715:5;5701:11;:19;5697:129;;;5778:4;5784:11;5797:5;5804:2;5751:56;;;;;;;;;;;;;;:::i;:::-;;;;;;;;5697:129;5978:5;5964:11;:19;5942:9;:13;5952:2;5942:13;;;;;;;;;;;:19;5956:4;5942:19;;;;;;;;;;;;;;;:41;;;;5620:396;5596:420;6048:1;6034:16;;:2;:16;;;6030:81;;6091:5;6070:9;:13;6080:2;6070:13;;;;;;;;;;;:17;6084:2;6070:17;;;;;;;;;;;;;;;;:26;;;;;;;:::i;:::-;;;;;;;;6030:81;5471:650;;5466:3;;;;;5430:691;;;;6149:1;6135:3;:10;:15;6131:288;;6166:10;6179:25;6202:1;6179:3;:22;;:25;;;;:::i;:::-;6166:38;;6218:13;6234:28;6260:1;6234:6;:25;;:28;;;;:::i;:::-;6218:44;;6312:2;6281:45;;6306:4;6281:45;;6296:8;6281:45;;;6316:2;6320:5;6281:45;;;;;;;:::i;:::-;;;;;;;;6152:185;;6131:288;;;6392:2;6362:46;;6386:4;6362:46;;6376:8;6362:46;;;6396:3;6401:6;6362:46;;;;;;;:::i;:::-;;;;;;;;6131:288;5251:1174;5144:1281;;;;:::o;13761:974::-;13984:1;13967:2;:14;;;:18;13963:766;;;14022:2;14005:38;;;14044:8;14054:4;14060:2;14064:5;14071:4;14005:71;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;14001:718;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14377:1;14360:6;:13;:18;14356:349;;14487:2;14464:26;;;;;;;;;;;:::i;:::-;;;;;;;;14356:349;14657:6;14651:13;14642:6;14638:2;14634:15;14627:38;14001:718;14137:43;;;14125:55;;;:8;:55;;;;14121:174;;14273:2;14250:26;;;;;;;;;;;:::i;:::-;;;;;;;;14121:174;14077:232;13963:766;13761:974;;;;;;:::o;14923:1041::-;15171:1;15154:2;:14;;;:18;15150:808;;;15209:2;15192:43;;;15236:8;15246:4;15252:3;15257:6;15265:4;15192:78;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;15188:760;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15606:1;15589:6;:13;:18;15585:349;;15716:2;15693:26;;;;;;;;;;;:::i;:::-;;;;;;;;15585:349;15886:6;15880:13;15871:6;15867:2;15863:15;15856:38;15188:760;15361:48;;;15349:60;;;:8;:60;;;;15345:179;;15502:2;15479:26;;;;;;;;;;;:::i;:::-;;;;;;;;15345:179;15271:267;15150:808;14923:1041;;;;;;:::o;7:75:18:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:77::-;878:7;907:5;896:16;;841:77;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:474::-;1265:6;1273;1322:2;1310:9;1301:7;1297:23;1293:32;1290:119;;;1328:79;;:::i;:::-;1290:119;1448:1;1473:53;1518:7;1509:6;1498:9;1494:22;1473:53;:::i;:::-;1463:63;;1419:117;1575:2;1601:53;1646:7;1637:6;1626:9;1622:22;1601:53;:::i;:::-;1591:63;;1546:118;1197:474;;;;;:::o;1677:118::-;1764:24;1782:5;1764:24;:::i;:::-;1759:3;1752:37;1677:118;;:::o;1801:222::-;1894:4;1932:2;1921:9;1917:18;1909:26;;1945:71;2013:1;2002:9;1998:17;1989:6;1945:71;:::i;:::-;1801:222;;;;:::o;2029:149::-;2065:7;2105:66;2098:5;2094:78;2083:89;;2029:149;;;:::o;2184:120::-;2256:23;2273:5;2256:23;:::i;:::-;2249:5;2246:34;2236:62;;2294:1;2291;2284:12;2236:62;2184:120;:::o;2310:137::-;2355:5;2393:6;2380:20;2371:29;;2409:32;2435:5;2409:32;:::i;:::-;2310:137;;;;:::o;2453:327::-;2511:6;2560:2;2548:9;2539:7;2535:23;2531:32;2528:119;;;2566:79;;:::i;:::-;2528:119;2686:1;2711:52;2755:7;2746:6;2735:9;2731:22;2711:52;:::i;:::-;2701:62;;2657:116;2453:327;;;;:::o;2786:90::-;2820:7;2863:5;2856:13;2849:21;2838:32;;2786:90;;;:::o;2882:109::-;2963:21;2978:5;2963:21;:::i;:::-;2958:3;2951:34;2882:109;;:::o;2997:210::-;3084:4;3122:2;3111:9;3107:18;3099:26;;3135:65;3197:1;3186:9;3182:17;3173:6;3135:65;:::i;:::-;2997:210;;;;:::o;3213:329::-;3272:6;3321:2;3309:9;3300:7;3296:23;3292:32;3289:119;;;3327:79;;:::i;:::-;3289:119;3447:1;3472:53;3517:7;3508:6;3497:9;3493:22;3472:53;:::i;:::-;3462:63;;3418:117;3213:329;;;;:::o;3548:99::-;3600:6;3634:5;3628:12;3618:22;;3548:99;;;:::o;3653:169::-;3737:11;3771:6;3766:3;3759:19;3811:4;3806:3;3802:14;3787:29;;3653:169;;;;:::o;3828:248::-;3910:1;3920:113;3934:6;3931:1;3928:13;3920:113;;;4019:1;4014:3;4010:11;4004:18;4000:1;3995:3;3991:11;3984:39;3956:2;3953:1;3949:10;3944:15;;3920:113;;;4067:1;4058:6;4053:3;4049:16;4042:27;3890:186;3828:248;;;:::o;4082:102::-;4123:6;4174:2;4170:7;4165:2;4158:5;4154:14;4150:28;4140:38;;4082:102;;;:::o;4190:377::-;4278:3;4306:39;4339:5;4306:39;:::i;:::-;4361:71;4425:6;4420:3;4361:71;:::i;:::-;4354:78;;4441:65;4499:6;4494:3;4487:4;4480:5;4476:16;4441:65;:::i;:::-;4531:29;4553:6;4531:29;:::i;:::-;4526:3;4522:39;4515:46;;4282:285;4190:377;;;;:::o;4573:313::-;4686:4;4724:2;4713:9;4709:18;4701:26;;4773:9;4767:4;4763:20;4759:1;4748:9;4744:17;4737:47;4801:78;4874:4;4865:6;4801:78;:::i;:::-;4793:86;;4573:313;;;;:::o;4892:77::-;4929:7;4958:5;4947:16;;4892:77;;;:::o;4975:122::-;5048:24;5066:5;5048:24;:::i;:::-;5041:5;5038:35;5028:63;;5087:1;5084;5077:12;5028:63;4975:122;:::o;5103:139::-;5149:5;5187:6;5174:20;5165:29;;5203:33;5230:5;5203:33;:::i;:::-;5103:139;;;;:::o;5248:329::-;5307:6;5356:2;5344:9;5335:7;5331:23;5327:32;5324:119;;;5362:79;;:::i;:::-;5324:119;5482:1;5507:53;5552:7;5543:6;5532:9;5528:22;5507:53;:::i;:::-;5497:63;;5453:117;5248:329;;;;:::o;5583:118::-;5670:24;5688:5;5670:24;:::i;:::-;5665:3;5658:37;5583:118;;:::o;5707:222::-;5800:4;5838:2;5827:9;5823:18;5815:26;;5851:71;5919:1;5908:9;5904:17;5895:6;5851:71;:::i;:::-;5707:222;;;;:::o;5935:117::-;6044:1;6041;6034:12;6058:180;6106:77;6103:1;6096:88;6203:4;6200:1;6193:15;6227:4;6224:1;6217:15;6244:281;6327:27;6349:4;6327:27;:::i;:::-;6319:6;6315:40;6457:6;6445:10;6442:22;6421:18;6409:10;6406:34;6403:62;6400:88;;;6468:18;;:::i;:::-;6400:88;6508:10;6504:2;6497:22;6287:238;6244:281;;:::o;6531:129::-;6565:6;6592:20;;:::i;:::-;6582:30;;6621:33;6649:4;6641:6;6621:33;:::i;:::-;6531:129;;;:::o;6666:311::-;6743:4;6833:18;6825:6;6822:30;6819:56;;;6855:18;;:::i;:::-;6819:56;6905:4;6897:6;6893:17;6885:25;;6965:4;6959;6955:15;6947:23;;6666:311;;;:::o;6983:117::-;7092:1;7089;7082:12;7123:710;7219:5;7244:81;7260:64;7317:6;7260:64;:::i;:::-;7244:81;:::i;:::-;7235:90;;7345:5;7374:6;7367:5;7360:21;7408:4;7401:5;7397:16;7390:23;;7461:4;7453:6;7449:17;7441:6;7437:30;7490:3;7482:6;7479:15;7476:122;;;7509:79;;:::i;:::-;7476:122;7624:6;7607:220;7641:6;7636:3;7633:15;7607:220;;;7716:3;7745:37;7778:3;7766:10;7745:37;:::i;:::-;7740:3;7733:50;7812:4;7807:3;7803:14;7796:21;;7683:144;7667:4;7662:3;7658:14;7651:21;;7607:220;;;7611:21;7225:608;;7123:710;;;;;:::o;7856:370::-;7927:5;7976:3;7969:4;7961:6;7957:17;7953:27;7943:122;;7984:79;;:::i;:::-;7943:122;8101:6;8088:20;8126:94;8216:3;8208:6;8201:4;8193:6;8189:17;8126:94;:::i;:::-;8117:103;;7933:293;7856:370;;;;:::o;8232:117::-;8341:1;8338;8331:12;8355:307;8416:4;8506:18;8498:6;8495:30;8492:56;;;8528:18;;:::i;:::-;8492:56;8566:29;8588:6;8566:29;:::i;:::-;8558:37;;8650:4;8644;8640:15;8632:23;;8355:307;;;:::o;8668:148::-;8766:6;8761:3;8756;8743:30;8807:1;8798:6;8793:3;8789:16;8782:27;8668:148;;;:::o;8822:423::-;8899:5;8924:65;8940:48;8981:6;8940:48;:::i;:::-;8924:65;:::i;:::-;8915:74;;9012:6;9005:5;8998:21;9050:4;9043:5;9039:16;9088:3;9079:6;9074:3;9070:16;9067:25;9064:112;;;9095:79;;:::i;:::-;9064:112;9185:54;9232:6;9227:3;9222;9185:54;:::i;:::-;8905:340;8822:423;;;;;:::o;9264:338::-;9319:5;9368:3;9361:4;9353:6;9349:17;9345:27;9335:122;;9376:79;;:::i;:::-;9335:122;9493:6;9480:20;9518:78;9592:3;9584:6;9577:4;9569:6;9565:17;9518:78;:::i;:::-;9509:87;;9325:277;9264:338;;;;:::o;9608:1509::-;9762:6;9770;9778;9786;9794;9843:3;9831:9;9822:7;9818:23;9814:33;9811:120;;;9850:79;;:::i;:::-;9811:120;9970:1;9995:53;10040:7;10031:6;10020:9;10016:22;9995:53;:::i;:::-;9985:63;;9941:117;10097:2;10123:53;10168:7;10159:6;10148:9;10144:22;10123:53;:::i;:::-;10113:63;;10068:118;10253:2;10242:9;10238:18;10225:32;10284:18;10276:6;10273:30;10270:117;;;10306:79;;:::i;:::-;10270:117;10411:78;10481:7;10472:6;10461:9;10457:22;10411:78;:::i;:::-;10401:88;;10196:303;10566:2;10555:9;10551:18;10538:32;10597:18;10589:6;10586:30;10583:117;;;10619:79;;:::i;:::-;10583:117;10724:78;10794:7;10785:6;10774:9;10770:22;10724:78;:::i;:::-;10714:88;;10509:303;10879:3;10868:9;10864:19;10851:33;10911:18;10903:6;10900:30;10897:117;;;10933:79;;:::i;:::-;10897:117;11038:62;11092:7;11083:6;11072:9;11068:22;11038:62;:::i;:::-;11028:72;;10822:288;9608:1509;;;;;;;;:::o;11123:474::-;11191:6;11199;11248:2;11236:9;11227:7;11223:23;11219:32;11216:119;;;11254:79;;:::i;:::-;11216:119;11374:1;11399:53;11444:7;11435:6;11424:9;11420:22;11399:53;:::i;:::-;11389:63;;11345:117;11501:2;11527:53;11572:7;11563:6;11552:9;11548:22;11527:53;:::i;:::-;11517:63;;11472:118;11123:474;;;;;:::o;11603:311::-;11680:4;11770:18;11762:6;11759:30;11756:56;;;11792:18;;:::i;:::-;11756:56;11842:4;11834:6;11830:17;11822:25;;11902:4;11896;11892:15;11884:23;;11603:311;;;:::o;11937:710::-;12033:5;12058:81;12074:64;12131:6;12074:64;:::i;:::-;12058:81;:::i;:::-;12049:90;;12159:5;12188:6;12181:5;12174:21;12222:4;12215:5;12211:16;12204:23;;12275:4;12267:6;12263:17;12255:6;12251:30;12304:3;12296:6;12293:15;12290:122;;;12323:79;;:::i;:::-;12290:122;12438:6;12421:220;12455:6;12450:3;12447:15;12421:220;;;12530:3;12559:37;12592:3;12580:10;12559:37;:::i;:::-;12554:3;12547:50;12626:4;12621:3;12617:14;12610:21;;12497:144;12481:4;12476:3;12472:14;12465:21;;12421:220;;;12425:21;12039:608;;11937:710;;;;;:::o;12670:370::-;12741:5;12790:3;12783:4;12775:6;12771:17;12767:27;12757:122;;12798:79;;:::i;:::-;12757:122;12915:6;12902:20;12940:94;13030:3;13022:6;13015:4;13007:6;13003:17;12940:94;:::i;:::-;12931:103;;12747:293;12670:370;;;;:::o;13046:894::-;13164:6;13172;13221:2;13209:9;13200:7;13196:23;13192:32;13189:119;;;13227:79;;:::i;:::-;13189:119;13375:1;13364:9;13360:17;13347:31;13405:18;13397:6;13394:30;13391:117;;;13427:79;;:::i;:::-;13391:117;13532:78;13602:7;13593:6;13582:9;13578:22;13532:78;:::i;:::-;13522:88;;13318:302;13687:2;13676:9;13672:18;13659:32;13718:18;13710:6;13707:30;13704:117;;;13740:79;;:::i;:::-;13704:117;13845:78;13915:7;13906:6;13895:9;13891:22;13845:78;:::i;:::-;13835:88;;13630:303;13046:894;;;;;:::o;13946:114::-;14013:6;14047:5;14041:12;14031:22;;13946:114;;;:::o;14066:184::-;14165:11;14199:6;14194:3;14187:19;14239:4;14234:3;14230:14;14215:29;;14066:184;;;;:::o;14256:132::-;14323:4;14346:3;14338:11;;14376:4;14371:3;14367:14;14359:22;;14256:132;;;:::o;14394:108::-;14471:24;14489:5;14471:24;:::i;:::-;14466:3;14459:37;14394:108;;:::o;14508:179::-;14577:10;14598:46;14640:3;14632:6;14598:46;:::i;:::-;14676:4;14671:3;14667:14;14653:28;;14508:179;;;;:::o;14693:113::-;14763:4;14795;14790:3;14786:14;14778:22;;14693:113;;;:::o;14842:732::-;14961:3;14990:54;15038:5;14990:54;:::i;:::-;15060:86;15139:6;15134:3;15060:86;:::i;:::-;15053:93;;15170:56;15220:5;15170:56;:::i;:::-;15249:7;15280:1;15265:284;15290:6;15287:1;15284:13;15265:284;;;15366:6;15360:13;15393:63;15452:3;15437:13;15393:63;:::i;:::-;15386:70;;15479:60;15532:6;15479:60;:::i;:::-;15469:70;;15325:224;15312:1;15309;15305:9;15300:14;;15265:284;;;15269:14;15565:3;15558:10;;14966:608;;;14842:732;;;;:::o;15580:373::-;15723:4;15761:2;15750:9;15746:18;15738:26;;15810:9;15804:4;15800:20;15796:1;15785:9;15781:17;15774:47;15838:108;15941:4;15932:6;15838:108;:::i;:::-;15830:116;;15580:373;;;;:::o;15959:943::-;16054:6;16062;16070;16078;16127:3;16115:9;16106:7;16102:23;16098:33;16095:120;;;16134:79;;:::i;:::-;16095:120;16254:1;16279:53;16324:7;16315:6;16304:9;16300:22;16279:53;:::i;:::-;16269:63;;16225:117;16381:2;16407:53;16452:7;16443:6;16432:9;16428:22;16407:53;:::i;:::-;16397:63;;16352:118;16509:2;16535:53;16580:7;16571:6;16560:9;16556:22;16535:53;:::i;:::-;16525:63;;16480:118;16665:2;16654:9;16650:18;16637:32;16696:18;16688:6;16685:30;16682:117;;;16718:79;;:::i;:::-;16682:117;16823:62;16877:7;16868:6;16857:9;16853:22;16823:62;:::i;:::-;16813:72;;16608:287;15959:943;;;;;;;:::o;16908:308::-;16970:4;17060:18;17052:6;17049:30;17046:56;;;17082:18;;:::i;:::-;17046:56;17120:29;17142:6;17120:29;:::i;:::-;17112:37;;17204:4;17198;17194:15;17186:23;;16908:308;;;:::o;17222:425::-;17300:5;17325:66;17341:49;17383:6;17341:49;:::i;:::-;17325:66;:::i;:::-;17316:75;;17414:6;17407:5;17400:21;17452:4;17445:5;17441:16;17490:3;17481:6;17476:3;17472:16;17469:25;17466:112;;;17497:79;;:::i;:::-;17466:112;17587:54;17634:6;17629:3;17624;17587:54;:::i;:::-;17306:341;17222:425;;;;;:::o;17667:340::-;17723:5;17772:3;17765:4;17757:6;17753:17;17749:27;17739:122;;17780:79;;:::i;:::-;17739:122;17897:6;17884:20;17922:79;17997:3;17989:6;17982:4;17974:6;17970:17;17922:79;:::i;:::-;17913:88;;17729:278;17667:340;;;;:::o;18013:654::-;18091:6;18099;18148:2;18136:9;18127:7;18123:23;18119:32;18116:119;;;18154:79;;:::i;:::-;18116:119;18274:1;18299:53;18344:7;18335:6;18324:9;18320:22;18299:53;:::i;:::-;18289:63;;18245:117;18429:2;18418:9;18414:18;18401:32;18460:18;18452:6;18449:30;18446:117;;;18482:79;;:::i;:::-;18446:117;18587:63;18642:7;18633:6;18622:9;18618:22;18587:63;:::i;:::-;18577:73;;18372:288;18013:654;;;;;:::o;18673:509::-;18742:6;18791:2;18779:9;18770:7;18766:23;18762:32;18759:119;;;18797:79;;:::i;:::-;18759:119;18945:1;18934:9;18930:17;18917:31;18975:18;18967:6;18964:30;18961:117;;;18997:79;;:::i;:::-;18961:117;19102:63;19157:7;19148:6;19137:9;19133:22;19102:63;:::i;:::-;19092:73;;18888:287;18673:509;;;;:::o;19188:116::-;19258:21;19273:5;19258:21;:::i;:::-;19251:5;19248:32;19238:60;;19294:1;19291;19284:12;19238:60;19188:116;:::o;19310:133::-;19353:5;19391:6;19378:20;19369:29;;19407:30;19431:5;19407:30;:::i;:::-;19310:133;;;;:::o;19449:468::-;19514:6;19522;19571:2;19559:9;19550:7;19546:23;19542:32;19539:119;;;19577:79;;:::i;:::-;19539:119;19697:1;19722:53;19767:7;19758:6;19747:9;19743:22;19722:53;:::i;:::-;19712:63;;19668:117;19824:2;19850:50;19892:7;19883:6;19872:9;19868:22;19850:50;:::i;:::-;19840:60;;19795:115;19449:468;;;;;:::o;19923:474::-;19991:6;19999;20048:2;20036:9;20027:7;20023:23;20019:32;20016:119;;;20054:79;;:::i;:::-;20016:119;20174:1;20199:53;20244:7;20235:6;20224:9;20220:22;20199:53;:::i;:::-;20189:63;;20145:117;20301:2;20327:53;20372:7;20363:6;20352:9;20348:22;20327:53;:::i;:::-;20317:63;;20272:118;19923:474;;;;;:::o;20403:1089::-;20507:6;20515;20523;20531;20539;20588:3;20576:9;20567:7;20563:23;20559:33;20556:120;;;20595:79;;:::i;:::-;20556:120;20715:1;20740:53;20785:7;20776:6;20765:9;20761:22;20740:53;:::i;:::-;20730:63;;20686:117;20842:2;20868:53;20913:7;20904:6;20893:9;20889:22;20868:53;:::i;:::-;20858:63;;20813:118;20970:2;20996:53;21041:7;21032:6;21021:9;21017:22;20996:53;:::i;:::-;20986:63;;20941:118;21098:2;21124:53;21169:7;21160:6;21149:9;21145:22;21124:53;:::i;:::-;21114:63;;21069:118;21254:3;21243:9;21239:19;21226:33;21286:18;21278:6;21275:30;21272:117;;;21308:79;;:::i;:::-;21272:117;21413:62;21467:7;21458:6;21447:9;21443:22;21413:62;:::i;:::-;21403:72;;21197:288;20403:1089;;;;;;;;:::o;21498:619::-;21575:6;21583;21591;21640:2;21628:9;21619:7;21615:23;21611:32;21608:119;;;21646:79;;:::i;:::-;21608:119;21766:1;21791:53;21836:7;21827:6;21816:9;21812:22;21791:53;:::i;:::-;21781:63;;21737:117;21893:2;21919:53;21964:7;21955:6;21944:9;21940:22;21919:53;:::i;:::-;21909:63;;21864:118;22021:2;22047:53;22092:7;22083:6;22072:9;22068:22;22047:53;:::i;:::-;22037:63;;21992:118;21498:619;;;;;:::o;22123:180::-;22171:77;22168:1;22161:88;22268:4;22265:1;22258:15;22292:4;22289:1;22282:15;22309:320;22353:6;22390:1;22384:4;22380:12;22370:22;;22437:1;22431:4;22427:12;22458:18;22448:81;;22514:4;22506:6;22502:17;22492:27;;22448:81;22576:2;22568:6;22565:14;22545:18;22542:38;22539:84;;22595:18;;:::i;:::-;22539:84;22360:269;22309:320;;;:::o;22635:118::-;22722:24;22740:5;22722:24;:::i;:::-;22717:3;22710:37;22635:118;;:::o;22759:332::-;22880:4;22918:2;22907:9;22903:18;22895:26;;22931:71;22999:1;22988:9;22984:17;22975:6;22931:71;:::i;:::-;23012:72;23080:2;23069:9;23065:18;23056:6;23012:72;:::i;:::-;22759:332;;;;;:::o;23097:::-;23218:4;23256:2;23245:9;23241:18;23233:26;;23269:71;23337:1;23326:9;23322:17;23313:6;23269:71;:::i;:::-;23350:72;23418:2;23407:9;23403:18;23394:6;23350:72;:::i;:::-;23097:332;;;;;:::o;23435:180::-;23483:77;23480:1;23473:88;23580:4;23577:1;23570:15;23604:4;23601:1;23594:15;23621:332;23742:4;23780:2;23769:9;23765:18;23757:26;;23793:71;23861:1;23850:9;23846:17;23837:6;23793:71;:::i;:::-;23874:72;23942:2;23931:9;23927:18;23918:6;23874:72;:::i;:::-;23621:332;;;;;:::o;23959:85::-;24004:7;24033:5;24022:16;;23959:85;;;:::o;24050:60::-;24078:3;24099:5;24092:12;;24050:60;;;:::o;24116:158::-;24174:9;24207:61;24225:42;24234:32;24260:5;24234:32;:::i;:::-;24225:42;:::i;:::-;24207:61;:::i;:::-;24194:74;;24116:158;;;:::o;24280:147::-;24375:45;24414:5;24375:45;:::i;:::-;24370:3;24363:58;24280:147;;:::o;24433:238::-;24534:4;24572:2;24561:9;24557:18;24549:26;;24585:79;24661:1;24650:9;24646:17;24637:6;24585:79;:::i;:::-;24433:238;;;;:::o;24677:173::-;24817:25;24813:1;24805:6;24801:14;24794:49;24677:173;:::o;24856:366::-;24998:3;25019:67;25083:2;25078:3;25019:67;:::i;:::-;25012:74;;25095:93;25184:3;25095:93;:::i;:::-;25213:2;25208:3;25204:12;25197:19;;24856:366;;;:::o;25228:419::-;25394:4;25432:2;25421:9;25417:18;25409:26;;25481:9;25475:4;25471:20;25467:1;25456:9;25452:17;25445:47;25509:131;25635:4;25509:131;:::i;:::-;25501:139;;25228:419;;;:::o;25653:148::-;25755:11;25792:3;25777:18;;25653:148;;;;:::o;25807:141::-;25856:4;25879:3;25871:11;;25902:3;25899:1;25892:14;25936:4;25933:1;25923:18;25915:26;;25807:141;;;:::o;25978:874::-;26081:3;26118:5;26112:12;26147:36;26173:9;26147:36;:::i;:::-;26199:89;26281:6;26276:3;26199:89;:::i;:::-;26192:96;;26319:1;26308:9;26304:17;26335:1;26330:166;;;;26510:1;26505:341;;;;26297:549;;26330:166;26414:4;26410:9;26399;26395:25;26390:3;26383:38;26476:6;26469:14;26462:22;26454:6;26450:35;26445:3;26441:45;26434:52;;26330:166;;26505:341;26572:38;26604:5;26572:38;:::i;:::-;26632:1;26646:154;26660:6;26657:1;26654:13;26646:154;;;26734:7;26728:14;26724:1;26719:3;26715:11;26708:35;26784:1;26775:7;26771:15;26760:26;;26682:4;26679:1;26675:12;26670:17;;26646:154;;;26829:6;26824:3;26820:16;26813:23;;26512:334;;26297:549;;26085:767;;25978:874;;;;:::o;26858:162::-;26998:14;26994:1;26986:6;26982:14;26975:38;26858:162;:::o;27026:402::-;27186:3;27207:85;27289:2;27284:3;27207:85;:::i;:::-;27200:92;;27301:93;27390:3;27301:93;:::i;:::-;27419:2;27414:3;27410:12;27403:19;;27026:402;;;:::o;27434:390::-;27540:3;27568:39;27601:5;27568:39;:::i;:::-;27623:89;27705:6;27700:3;27623:89;:::i;:::-;27616:96;;27721:65;27779:6;27774:3;27767:4;27760:5;27756:16;27721:65;:::i;:::-;27811:6;27806:3;27802:16;27795:23;;27544:280;27434:390;;;;:::o;27830:151::-;27970:3;27966:1;27958:6;27954:14;27947:27;27830:151;:::o;27987:400::-;28147:3;28168:84;28250:1;28245:3;28168:84;:::i;:::-;28161:91;;28261:93;28350:3;28261:93;:::i;:::-;28379:1;28374:3;28370:11;28363:18;;27987:400;;;:::o;28393:167::-;28533:19;28529:1;28521:6;28517:14;28510:43;28393:167;:::o;28566:402::-;28726:3;28747:85;28829:2;28824:3;28747:85;:::i;:::-;28740:92;;28841:93;28930:3;28841:93;:::i;:::-;28959:2;28954:3;28950:12;28943:19;;28566:402;;;:::o;28974:1387::-;29502:3;29524:92;29612:3;29603:6;29524:92;:::i;:::-;29517:99;;29633:148;29777:3;29633:148;:::i;:::-;29626:155;;29798:95;29889:3;29880:6;29798:95;:::i;:::-;29791:102;;29910:148;30054:3;29910:148;:::i;:::-;29903:155;;30075:95;30166:3;30157:6;30075:95;:::i;:::-;30068:102;;30187:148;30331:3;30187:148;:::i;:::-;30180:155;;30352:3;30345:10;;28974:1387;;;;;;:::o;30391:831::-;30476:3;30513:5;30507:12;30542:36;30568:9;30542:36;:::i;:::-;30594:71;30658:6;30653:3;30594:71;:::i;:::-;30587:78;;30696:1;30685:9;30681:17;30712:1;30707:164;;;;30885:1;30880:336;;;;30674:542;;30707:164;30791:4;30787:9;30776;30772:25;30767:3;30760:38;30851:6;30844:14;30837:22;30831:4;30827:33;30822:3;30818:43;30811:50;;30707:164;;30880:336;30947:38;30979:5;30947:38;:::i;:::-;31007:1;31021:154;31035:6;31032:1;31029:13;31021:154;;;31109:7;31103:14;31099:1;31094:3;31090:11;31083:35;31159:1;31150:7;31146:15;31135:26;;31057:4;31054:1;31050:12;31045:17;;31021:154;;;31204:1;31199:3;31195:11;31188:18;;30887:329;;30674:542;;30480:742;;30391:831;;;;:::o;31228:508::-;31386:4;31424:2;31413:9;31409:18;31401:26;;31473:9;31467:4;31463:20;31459:1;31448:9;31444:17;31437:47;31501:75;31571:4;31562:6;31501:75;:::i;:::-;31493:83;;31623:9;31617:4;31613:20;31608:2;31597:9;31593:18;31586:48;31651:78;31724:4;31715:6;31651:78;:::i;:::-;31643:86;;31228:508;;;;;:::o;31742:93::-;31779:6;31826:2;31821;31814:5;31810:14;31806:23;31796:33;;31742:93;;;:::o;31841:107::-;31885:8;31935:5;31929:4;31925:16;31904:37;;31841:107;;;;:::o;31954:393::-;32023:6;32073:1;32061:10;32057:18;32096:97;32126:66;32115:9;32096:97;:::i;:::-;32214:39;32244:8;32233:9;32214:39;:::i;:::-;32202:51;;32286:4;32282:9;32275:5;32271:21;32262:30;;32335:4;32325:8;32321:19;32314:5;32311:30;32301:40;;32030:317;;31954:393;;;;;:::o;32353:142::-;32403:9;32436:53;32454:34;32463:24;32481:5;32463:24;:::i;:::-;32454:34;:::i;:::-;32436:53;:::i;:::-;32423:66;;32353:142;;;:::o;32501:75::-;32544:3;32565:5;32558:12;;32501:75;;;:::o;32582:269::-;32692:39;32723:7;32692:39;:::i;:::-;32753:91;32802:41;32826:16;32802:41;:::i;:::-;32794:6;32787:4;32781:11;32753:91;:::i;:::-;32747:4;32740:105;32658:193;32582:269;;;:::o;32857:73::-;32902:3;32857:73;:::o;32936:189::-;33013:32;;:::i;:::-;33054:65;33112:6;33104;33098:4;33054:65;:::i;:::-;32989:136;32936:189;;:::o;33131:186::-;33191:120;33208:3;33201:5;33198:14;33191:120;;;33262:39;33299:1;33292:5;33262:39;:::i;:::-;33235:1;33228:5;33224:13;33215:22;;33191:120;;;33131:186;;:::o;33323:543::-;33424:2;33419:3;33416:11;33413:446;;;33458:38;33490:5;33458:38;:::i;:::-;33542:29;33560:10;33542:29;:::i;:::-;33532:8;33528:44;33725:2;33713:10;33710:18;33707:49;;;33746:8;33731:23;;33707:49;33769:80;33825:22;33843:3;33825:22;:::i;:::-;33815:8;33811:37;33798:11;33769:80;:::i;:::-;33428:431;;33413:446;33323:543;;;:::o;33872:117::-;33926:8;33976:5;33970:4;33966:16;33945:37;;33872:117;;;;:::o;33995:169::-;34039:6;34072:51;34120:1;34116:6;34108:5;34105:1;34101:13;34072:51;:::i;:::-;34068:56;34153:4;34147;34143:15;34133:25;;34046:118;33995:169;;;;:::o;34169:295::-;34245:4;34391:29;34416:3;34410:4;34391:29;:::i;:::-;34383:37;;34453:3;34450:1;34446:11;34440:4;34437:21;34429:29;;34169:295;;;;:::o;34469:1395::-;34586:37;34619:3;34586:37;:::i;:::-;34688:18;34680:6;34677:30;34674:56;;;34710:18;;:::i;:::-;34674:56;34754:38;34786:4;34780:11;34754:38;:::i;:::-;34839:67;34899:6;34891;34885:4;34839:67;:::i;:::-;34933:1;34957:4;34944:17;;34989:2;34981:6;34978:14;35006:1;35001:618;;;;35663:1;35680:6;35677:77;;;35729:9;35724:3;35720:19;35714:26;35705:35;;35677:77;35780:67;35840:6;35833:5;35780:67;:::i;:::-;35774:4;35767:81;35636:222;34971:887;;35001:618;35053:4;35049:9;35041:6;35037:22;35087:37;35119:4;35087:37;:::i;:::-;35146:1;35160:208;35174:7;35171:1;35168:14;35160:208;;;35253:9;35248:3;35244:19;35238:26;35230:6;35223:42;35304:1;35296:6;35292:14;35282:24;;35351:2;35340:9;35336:18;35323:31;;35197:4;35194:1;35190:12;35185:17;;35160:208;;;35396:6;35387:7;35384:19;35381:179;;;35454:9;35449:3;35445:19;35439:26;35497:48;35539:4;35531:6;35527:17;35516:9;35497:48;:::i;:::-;35489:6;35482:64;35404:156;35381:179;35606:1;35602;35594:6;35590:14;35586:22;35580:4;35573:36;35008:611;;;34971:887;;34561:1303;;;34469:1395;;:::o;35870:180::-;35918:77;35915:1;35908:88;36015:4;36012:1;36005:15;36039:4;36036:1;36029:15;36056:191;36096:3;36115:20;36133:1;36115:20;:::i;:::-;36110:25;;36149:20;36167:1;36149:20;:::i;:::-;36144:25;;36192:1;36189;36185:9;36178:16;;36213:3;36210:1;36207:10;36204:36;;;36220:18;;:::i;:::-;36204:36;36056:191;;;;:::o;36253:222::-;36346:4;36384:2;36373:9;36369:18;36361:26;;36397:71;36465:1;36454:9;36450:17;36441:6;36397:71;:::i;:::-;36253:222;;;;:::o;36481:180::-;36529:77;36526:1;36519:88;36626:4;36623:1;36616:15;36650:4;36647:1;36640:15;36667:169;36807:21;36803:1;36795:6;36791:14;36784:45;36667:169;:::o;36842:366::-;36984:3;37005:67;37069:2;37064:3;37005:67;:::i;:::-;36998:74;;37081:93;37170:3;37081:93;:::i;:::-;37199:2;37194:3;37190:12;37183:19;;36842:366;;;:::o;37214:419::-;37380:4;37418:2;37407:9;37403:18;37395:26;;37467:9;37461:4;37457:20;37453:1;37442:9;37438:17;37431:47;37495:131;37621:4;37495:131;:::i;:::-;37487:139;;37214:419;;;:::o;37639:115::-;37724:23;37741:5;37724:23;:::i;:::-;37719:3;37712:36;37639:115;;:::o;37760:218::-;37851:4;37889:2;37878:9;37874:18;37866:26;;37902:69;37968:1;37957:9;37953:17;37944:6;37902:69;:::i;:::-;37760:218;;;;:::o;37984:332::-;38105:4;38143:2;38132:9;38128:18;38120:26;;38156:71;38224:1;38213:9;38209:17;38200:6;38156:71;:::i;:::-;38237:72;38305:2;38294:9;38290:18;38281:6;38237:72;:::i;:::-;37984:332;;;;;:::o;38322:553::-;38499:4;38537:3;38526:9;38522:19;38514:27;;38551:71;38619:1;38608:9;38604:17;38595:6;38551:71;:::i;:::-;38632:72;38700:2;38689:9;38685:18;38676:6;38632:72;:::i;:::-;38714;38782:2;38771:9;38767:18;38758:6;38714:72;:::i;:::-;38796;38864:2;38853:9;38849:18;38840:6;38796:72;:::i;:::-;38322:553;;;;;;;:::o;38881:634::-;39102:4;39140:2;39129:9;39125:18;39117:26;;39189:9;39183:4;39179:20;39175:1;39164:9;39160:17;39153:47;39217:108;39320:4;39311:6;39217:108;:::i;:::-;39209:116;;39372:9;39366:4;39362:20;39357:2;39346:9;39342:18;39335:48;39400:108;39503:4;39494:6;39400:108;:::i;:::-;39392:116;;38881:634;;;;;:::o;39521:98::-;39572:6;39606:5;39600:12;39590:22;;39521:98;;;:::o;39625:168::-;39708:11;39742:6;39737:3;39730:19;39782:4;39777:3;39773:14;39758:29;;39625:168;;;;:::o;39799:373::-;39885:3;39913:38;39945:5;39913:38;:::i;:::-;39967:70;40030:6;40025:3;39967:70;:::i;:::-;39960:77;;40046:65;40104:6;40099:3;40092:4;40085:5;40081:16;40046:65;:::i;:::-;40136:29;40158:6;40136:29;:::i;:::-;40131:3;40127:39;40120:46;;39889:283;39799:373;;;;:::o;40178:751::-;40401:4;40439:3;40428:9;40424:19;40416:27;;40453:71;40521:1;40510:9;40506:17;40497:6;40453:71;:::i;:::-;40534:72;40602:2;40591:9;40587:18;40578:6;40534:72;:::i;:::-;40616;40684:2;40673:9;40669:18;40660:6;40616:72;:::i;:::-;40698;40766:2;40755:9;40751:18;40742:6;40698:72;:::i;:::-;40818:9;40812:4;40808:20;40802:3;40791:9;40787:19;40780:49;40846:76;40917:4;40908:6;40846:76;:::i;:::-;40838:84;;40178:751;;;;;;;;:::o;40935:141::-;40991:5;41022:6;41016:13;41007:22;;41038:32;41064:5;41038:32;:::i;:::-;40935:141;;;;:::o;41082:349::-;41151:6;41200:2;41188:9;41179:7;41175:23;41171:32;41168:119;;;41206:79;;:::i;:::-;41168:119;41326:1;41351:63;41406:7;41397:6;41386:9;41382:22;41351:63;:::i;:::-;41341:73;;41297:127;41082:349;;;;:::o;41437:1053::-;41760:4;41798:3;41787:9;41783:19;41775:27;;41812:71;41880:1;41869:9;41865:17;41856:6;41812:71;:::i;:::-;41893:72;41961:2;41950:9;41946:18;41937:6;41893:72;:::i;:::-;42012:9;42006:4;42002:20;41997:2;41986:9;41982:18;41975:48;42040:108;42143:4;42134:6;42040:108;:::i;:::-;42032:116;;42195:9;42189:4;42185:20;42180:2;42169:9;42165:18;42158:48;42223:108;42326:4;42317:6;42223:108;:::i;:::-;42215:116;;42379:9;42373:4;42369:20;42363:3;42352:9;42348:19;42341:49;42407:76;42478:4;42469:6;42407:76;:::i;:::-;42399:84;;41437:1053;;;;;;;;:::o" + }, + "methodIdentifiers": { + "DEFAULT_ADMIN_ROLE()": "a217fddf", + "balanceOf(address,uint256)": "00fdd58e", + "balanceOfBatch(address[],uint256[])": "4e1273f4", + "burn(address,uint256,uint256)": "f5298aca", + "counter()": "61bc221a", + "getRoleAdmin(bytes32)": "248a9ca3", + "grantRole(bytes32,address)": "2f2ff15d", + "hasRole(bytes32,address)": "91d14854", + "isApprovedForAll(address,address)": "e985e9c5", + "issue()": "d383f646", + "mint(address,uint256,uint256,bytes)": "731133e9", + "renounceRole(bytes32,address)": "36568abe", + "revokeRole(bytes32,address)": "d547741f", + "safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)": "2eb2c2d6", + "safeTransferFrom(address,address,uint256,uint256,bytes)": "f242432a", + "setApprovalForAll(address,bool)": "a22cb465", + "supportsInterface(bytes4)": "01ffc9a7", + "updateBaseURI(string)": "931688cb", + "uri(uint256)": "0e89341c", + "uri(uint256,string)": "76b676f1" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"tokenURI_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC1155InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idsLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"valuesLength\",\"type\":\"uint256\"}],\"name\":\"ERC1155InvalidArrayLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC1155MissingApprovalForAll\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"message\",\"type\":\"string\"}],\"name\":\"EmptyAccountNotAllowed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"MintLimit\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"NotAllowed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"NotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"message\",\"type\":\"string\"}],\"name\":\"URIEmpty\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"oldURI\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"newURI\",\"type\":\"string\"}],\"name\":\"BaseURIUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Burn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Issue\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Mint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"TransferBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"TransferSingle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"URI\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"}],\"name\":\"balanceOfBatch\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"counter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"issue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeBatchTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"newURI\",\"type\":\"string\"}],\"name\":\"updateBaseURI\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"uri\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"account\",\"type\":\"string\"}],\"name\":\"uri\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"ERC1155InsufficientBalance(address,uint256,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC1155InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC1155InvalidArrayLength(uint256,uint256)\":[{\"details\":\"Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation. Used in batch transfers.\",\"params\":{\"idsLength\":\"Length of the array of token identifiers\",\"valuesLength\":\"Length of the array of token amounts\"}}],\"ERC1155InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC1155InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC1155InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC1155MissingApprovalForAll(address,address)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"owner\":\"Address of the current owner of a token.\"}}]},\"events\":{\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to `approved`.\"},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"TransferBatch(address,address,address,uint256[],uint256[])\":{\"details\":\"Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all transfers.\"},\"TransferSingle(address,address,address,uint256,uint256)\":{\"details\":\"Emitted when `value` amount of tokens of type `id` are transferred from `from` to `to` by `operator`.\"},\"URI(string,uint256)\":{\"details\":\"Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI. If an {URI} event was emitted for `id`, the standard https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value returned by {IERC1155MetadataURI-uri}.\"}},\"kind\":\"dev\",\"methods\":{\"balanceOf(address,uint256)\":{\"details\":\"See {IERC1155-balanceOf}.\"},\"balanceOfBatch(address[],uint256[])\":{\"details\":\"See {IERC1155-balanceOfBatch}. Requirements: - `accounts` and `ids` must have the same length.\"},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC1155-isApprovedForAll}.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)\":{\"details\":\"See {IERC1155-safeBatchTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,uint256,bytes)\":{\"details\":\"See {IERC1155-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC1155-setApprovalForAll}.\"},\"uri(uint256)\":{\"details\":\"See {IERC1155MetadataURI-uri}. This implementation returns the same URI for *all* token types. It relies on the token type ID substitution mechanism https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the EIP]. Clients calling this function must replace the `\\\\{id\\\\}` substring with the actual token type ID.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Engagement.sol\":\"Engagement\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80\",\"dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"@openzeppelin/contracts/token/ERC1155/ERC1155.sol\":{\"keccak256\":\"0xd9b0b8ee1ac6dfee14eb1ad4383a4739dbaa0f2036594bb3a16f0408085dadde\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6309805132e519162d1134c67df22dd963323a9208b4f41344a4c13ed63c1026\",\"dweb:/ipfs/QmTBPHnf6qbtAD4NVnKVFmubUHRqMDPLkseR6apxTUpsQo\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0x6caffc9cfdc623eca9f87a686071708af5d5c17454d65022843fdddbc53c0cce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ecf8c7ed1f8ff443c181f64496ae380ee02e61dcd2ed120e1e997837a926f182\",\"dweb:/ipfs/QmWASYTrZPF2MrcpC3EBmxx6RgtZ5Fr4jwrsmB7ZF7qhDC\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0xb69597a63b202e28401128bed6a6d259e8730191274471af7303eafb247881a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://25addbda49a578b3318130585601344c5149a5549d749adf88e9685349a46b23\",\"dweb:/ipfs/Qme2DuD8gpsve1ZvaSMQpBwMdpU7yAtekDwr7gUp8dX4zX\"]},\"@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol\":{\"keccak256\":\"0xe92b5e199b963d108ad6e06feeede151ba23849e0d064956535489ff967ffe68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://280e17738a67b06dae02fec32982bd48a8ab71d8df95e9975ae03532634bc522\",\"dweb:/ipfs/QmecjsNcFgy2mMjuNfRDkLpAYMRWnh5o73fw1Bj2rCso2z\"]},\"@openzeppelin/contracts/utils/Arrays.sol\":{\"keccak256\":\"0x8806d620b6571932b662cfd48fbd518d4f70df1f88a23b5724cacde64a77bda1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8043304c8f9e1c1dc4a41935efa067daa77ad7abbae1fda41f015d53fbf327a5\",\"dweb:/ipfs/QmTrF2hSkRZoN9EEu8zdEhBpGNZ7RxzCdXf9ydzc2HQ3tM\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"@openzeppelin/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0xac3d50e321a48a40b4496970ce725900f13aeb2255b7c1203f5adbe98c4a911a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1d7b235b578347dce2d831a76f122e820a7db7e73fd2e47f13bafdcd61c5b066\",\"dweb:/ipfs/QmVAELwambfJa55HfiCoz1kFFh7iYwRYeW5x8si6AFM4iX\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"contracts/Engagement.sol\":{\"keccak256\":\"0xf0000e22d5762d5fc8d76fbd1325d661cf9d2ef4c282c4c03b45c8c71ff53508\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c769d1340eb9f4193b9f99858afc2dff270f351e0f4badc72822467ed5dd481f\",\"dweb:/ipfs/QmWd8izufDrfxqK3HV6PK2Sm4mKsakk4cjknB8uBpDWe9k\"]},\"contracts/IEngagement.sol\":{\"keccak256\":\"0xce2df92288e19ea8c6c69fd836415ee7a0ec351cb9f7910767cb4b0c968a6005\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://025629bf9308105c0d94cf389fd07f1d8921a8b12635b32b7002bb1f25c8ab36\",\"dweb:/ipfs/QmTbcjKUf1bnqKpkQiNcKexp7G6Cn3VAfxNsGDWV2Tf5D2\"]}},\"version\":1}" + } + }, + "contracts/IEngagement.sol": { + "IEngagement": { + "abi": [ + { + "inputs": [ + { + "internalType": "string", + "name": "message", + "type": "string" + } + ], + "name": "EmptyAccountNotAllowed", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "MintLimit", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "NotAllowed", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "NotFound", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "message", + "type": "string" + } + ], + "name": "URIEmpty", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "string", + "name": "oldURI", + "type": "string" + }, + { + "indexed": false, + "internalType": "string", + "name": "newURI", + "type": "string" + } + ], + "name": "BaseURIUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Burn", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Issue", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Mint", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "counter", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "issue", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "newURI", + "type": "string" + } + ], + "name": "updateBaseURI", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "burn(address,uint256,uint256)": "f5298aca", + "counter()": "61bc221a", + "issue()": "d383f646", + "mint(address,uint256,uint256,bytes)": "731133e9", + "updateBaseURI(string)": "931688cb" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"message\",\"type\":\"string\"}],\"name\":\"EmptyAccountNotAllowed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"MintLimit\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"NotAllowed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"NotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"message\",\"type\":\"string\"}],\"name\":\"URIEmpty\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"oldURI\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"newURI\",\"type\":\"string\"}],\"name\":\"BaseURIUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Burn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Issue\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Mint\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"counter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"issue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"newURI\",\"type\":\"string\"}],\"name\":\"updateBaseURI\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/IEngagement.sol\":\"IEngagement\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/IEngagement.sol\":{\"keccak256\":\"0xce2df92288e19ea8c6c69fd836415ee7a0ec351cb9f7910767cb4b0c968a6005\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://025629bf9308105c0d94cf389fd07f1d8921a8b12635b32b7002bb1f25c8ab36\",\"dweb:/ipfs/QmTbcjKUf1bnqKpkQiNcKexp7G6Cn3VAfxNsGDWV2Tf5D2\"]}},\"version\":1}" + } + } + } + } +} \ No newline at end of file diff --git a/ignition/deployments/chain-42161/deployed_addresses.json b/ignition/deployments/chain-42161/deployed_addresses.json new file mode 100644 index 0000000..0c52d4a --- /dev/null +++ b/ignition/deployments/chain-42161/deployed_addresses.json @@ -0,0 +1,3 @@ +{ + "EngagementModule#Engagement": "0x89aDc2E7561914884c47a2F5447ac5052e6770b1" +} diff --git a/ignition/deployments/chain-42161/journal.jsonl b/ignition/deployments/chain-42161/journal.jsonl new file mode 100644 index 0000000..c35ff92 --- /dev/null +++ b/ignition/deployments/chain-42161/journal.jsonl @@ -0,0 +1,7 @@ + +{"chainId":42161,"type":"DEPLOYMENT_INITIALIZE"} +{"artifactId":"EngagementModule#Engagement","constructorArgs":["http://127.0.0.1:8545/"],"contractName":"Engagement","dependencies":[],"from":"0x548c887a24077e13f17a1ce21b3a24b9c06e3d8d","futureId":"EngagementModule#Engagement","futureType":"NAMED_ARTIFACT_CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"EngagementModule#Engagement","networkInteraction":{"data":"0x608060405234801561001057600080fd5b50604051613edb380380613edb833981810160405281019061003291906103cb565b604051806020016040528060008152506100518161008b60201b60201c565b506100618161009e60201b60201c565b6100746000801b336100e560201b60201c565b5080600590816100849190610635565b5050610784565b806002908161009a9190610635565b5050565b60008151036100e2576040517f1897cf660000000000000000000000000000000000000000000000000000000081526004016100d990610764565b60405180910390fd5b50565b60006100f783836101e360201b60201c565b6101d85760016003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061017561024e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600190506101dd565b600090505b92915050565b60006003600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600033905090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6102bd82610274565b810181811067ffffffffffffffff821117156102dc576102db610285565b5b80604052505050565b60006102ef610256565b90506102fb82826102b4565b919050565b600067ffffffffffffffff82111561031b5761031a610285565b5b61032482610274565b9050602081019050919050565b60005b8381101561034f578082015181840152602081019050610334565b60008484015250505050565b600061036e61036984610300565b6102e5565b90508281526020810184848401111561038a5761038961026f565b5b610395848285610331565b509392505050565b600082601f8301126103b2576103b161026a565b5b81516103c284826020860161035b565b91505092915050565b6000602082840312156103e1576103e0610260565b5b600082015167ffffffffffffffff8111156103ff576103fe610265565b5b61040b8482850161039d565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061046657607f821691505b6020821081036104795761047861041f565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026104e17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826104a4565b6104eb86836104a4565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600061053261052d61052884610503565b61050d565b610503565b9050919050565b6000819050919050565b61054c83610517565b61056061055882610539565b8484546104b1565b825550505050565b600090565b610575610568565b610580818484610543565b505050565b5b818110156105a45761059960008261056d565b600181019050610586565b5050565b601f8211156105e9576105ba8161047f565b6105c384610494565b810160208510156105d2578190505b6105e66105de85610494565b830182610585565b50505b505050565b600082821c905092915050565b600061060c600019846008026105ee565b1980831691505092915050565b600061062583836105fb565b9150826002028217905092915050565b61063e82610414565b67ffffffffffffffff81111561065757610656610285565b5b610661825461044e565b61066c8282856105a8565b600060209050601f83116001811461069f576000841561068d578287015190505b6106978582610619565b8655506106ff565b601f1984166106ad8661047f565b60005b828110156106d5578489015182556001820191506020850194506020810190506106b0565b868310156106f257848901516106ee601f8916826105fb565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f5552492063616e6e6f7420626520656d70747900000000000000000000000000600082015250565b600061074e601383610707565b915061075982610718565b602082019050919050565b6000602082019050818103600083015261077d81610741565b9050919050565b613748806107936000396000f3fe608060405234801561001057600080fd5b506004361061012b5760003560e01c806376b676f1116100ad578063d383f64611610071578063d383f64614610364578063d547741f1461036e578063e985e9c51461038a578063f242432a146103ba578063f5298aca146103d65761012b565b806376b676f1146102ae57806391d14854146102de578063931688cb1461030e578063a217fddf1461032a578063a22cb465146103485761012b565b80632f2ff15d116100f45780632f2ff15d1461020c57806336568abe146102285780634e1273f41461024457806361bc221a14610274578063731133e9146102925761012b565b8062fdd58e1461013057806301ffc9a7146101605780630e89341c14610190578063248a9ca3146101c05780632eb2c2d6146101f0575b600080fd5b61014a600480360381019061014591906121b1565b6103f2565b6040516101579190612200565b60405180910390f35b61017a60048036038101906101759190612273565b61044c565b60405161018791906122bb565b60405180910390f35b6101aa60048036038101906101a591906122d6565b61048c565b6040516101b79190612393565b60405180910390f35b6101da60048036038101906101d591906123eb565b610520565b6040516101e79190612427565b60405180910390f35b61020a6004803603810190610205919061263f565b610540565b005b6102266004803603810190610221919061270e565b6105e8565b005b610242600480360381019061023d919061270e565b61060a565b005b61025e60048036038101906102599190612811565b610685565b60405161026b9190612947565b60405180910390f35b61027c61078e565b6040516102899190612200565b60405180910390f35b6102ac60048036038101906102a79190612969565b610798565b005b6102c860048036038101906102c39190612a8d565b610856565b6040516102d59190612393565b60405180910390f35b6102f860048036038101906102f3919061270e565b6108de565b60405161030591906122bb565b60405180910390f35b61032860048036038101906103239190612ae9565b610949565b005b6103326109ad565b60405161033f9190612427565b60405180910390f35b610362600480360381019061035d9190612b5e565b6109b4565b005b61036c6109ca565b005b6103886004803603810190610383919061270e565b610a47565b005b6103a4600480360381019061039f9190612b9e565b610a69565b6040516103b191906122bb565b60405180910390f35b6103d460048036038101906103cf9190612bde565b610afd565b005b6103f060048036038101906103eb9190612c75565b610ba5565b005b600080600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600061046d3073ffffffffffffffffffffffffffffffffffffffff16610c87565b156104825761047b82610cd4565b9050610487565b600090505b919050565b60606002805461049b90612cf7565b80601f01602080910402602001604051908101604052809291908181526020018280546104c790612cf7565b80156105145780601f106104e957610100808354040283529160200191610514565b820191906000526020600020905b8154815290600101906020018083116104f757829003601f168201915b50505050509050919050565b600060036000838152602001908152602001600020600101549050919050565b600061054a610d4e565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415801561058f575061058d8682610a69565b155b156105d35780866040517fe237d9220000000000000000000000000000000000000000000000000000000081526004016105ca929190612d37565b60405180910390fd5b6105e08686868686610d56565b505050505050565b6105f182610520565b6105fa81610e4e565b6106048383610e62565b50505050565b610612610d4e565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610676576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106808282610f54565b505050565b606081518351146106d157815183516040517f5b0599910000000000000000000000000000000000000000000000000000000081526004016106c8929190612d60565b60405180910390fd5b6000835167ffffffffffffffff8111156106ee576106ed612447565b5b60405190808252806020026020018201604052801561071c5781602001602082028036833780820191505090505b50905060005b845181101561078357610759610741828761104790919063ffffffff16565b610754838761105b90919063ffffffff16565b6103f2565b82828151811061076c5761076b612d89565b5b602002602001018181525050806001019050610722565b508091505092915050565b6000600454905090565b826107a28161106f565b60016107ae86866103f2565b106107f25784846040517f788d25560000000000000000000000000000000000000000000000000000000081526004016107e9929190612db8565b60405180910390fd5b6107ff85856001856110b8565b838573ffffffffffffffffffffffffffffffffffffffff167f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f60016040516108479190612e26565b60405180910390a35050505050565b6060826108628161106f565b8260008151036108a7576040517fc29f9db300000000000000000000000000000000000000000000000000000000815260040161089e90612e8d565b60405180910390fd5b60056108b286611151565b856040516020016108c593929190613065565b6040516020818303038152906040529250505092915050565b60006003600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000801b61095681610e4e565b61095f8261121f565b7f309b29ded109b9e28fb9885757b3e0096eb75c51d23aa4635d68bcd569f6adc160058360405161099192919061313b565b60405180910390a181600590816109a891906132ff565b505050565b6000801b81565b6109c66109bf610d4e565b8383611266565b5050565b600060045490506109ed33826001604051806020016040528060008152506110b8565b803373ffffffffffffffffffffffffffffffffffffffff167fc65a3f767206d2fdcede0b094a4840e01c0dd0be1888b5ba800346eaa0123c1660405160405180910390a3600181610a3e9190613400565b60048190555050565b610a5082610520565b610a5981610e4e565b610a638383610f54565b50505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000610b07610d4e565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015610b4c5750610b4a8682610a69565b155b15610b905780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401610b87929190612d37565b60405180910390fd5b610b9d86868686866113d6565b505050505050565b81610baf8161106f565b83833373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610c235781816040517f8626cc03000000000000000000000000000000000000000000000000000000008152600401610c1a929190612db8565b60405180910390fd5b610c2f868660016114e1565b848673ffffffffffffffffffffffffffffffffffffffff167f49995e5dd6158cf69ad3e9777c46755a1a826a446c6416992167462dad033b2a6001604051610c779190612e26565b60405180910390a3505050505050565b6000610cb3827f01ffc9a700000000000000000000000000000000000000000000000000000000611588565b8015610ccd5750610ccb8263ffffffff60e01b611588565b155b9050919050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610d475750610d4682611627565b5b9050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610dc85760006040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401610dbf9190613434565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610e3a5760006040517f01a83514000000000000000000000000000000000000000000000000000000008152600401610e319190613434565b60405180910390fd5b610e478585858585611709565b5050505050565b610e5f81610e5a610d4e565b6117bb565b50565b6000610e6e83836108de565b610f495760016003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610ee6610d4e565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050610f4e565b600090505b92915050565b6000610f6083836108de565b1561103c5760006003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610fd9610d4e565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050611041565b600090505b92915050565b600060208202602084010151905092915050565b600060208202602084010151905092915050565b60045481106110b557806040517fc80a970c0000000000000000000000000000000000000000000000000000000081526004016110ac9190612200565b60405180910390fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361112a5760006040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016111219190613434565b60405180910390fd5b600080611137858561180c565b91509150611149600087848487611709565b505050505050565b6060600060016111608461183c565b01905060008167ffffffffffffffff81111561117f5761117e612447565b5b6040519080825280601f01601f1916602001820160405280156111b15781602001600182028036833780820191505090505b509050600082602001820190505b600115611214578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816112085761120761344f565b5b049450600085036111bf575b819350505050919050565b6000815103611263576040517f1897cf6600000000000000000000000000000000000000000000000000000000815260040161125a906134ca565b60405180910390fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112d85760006040517fced3e1000000000000000000000000000000000000000000000000000000000081526004016112cf9190613434565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516113c991906122bb565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036114485760006040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161143f9190613434565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036114ba5760006040517f01a835140000000000000000000000000000000000000000000000000000000081526004016114b19190613434565b60405180910390fd5b6000806114c7858561180c565b915091506114d88787848487611709565b50505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115535760006040517f01a8351400000000000000000000000000000000000000000000000000000000815260040161154a9190613434565b60405180910390fd5b600080611560848461180c565b91509150611581856000848460405180602001604052806000815250611709565b5050505050565b6000808260405160240161159c91906134f9565b6040516020818303038152906040526301ffc9a760e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506000806000602060008551602087018a617530fa92503d9150600051905082801561160f575060208210155b801561161b5750600081115b94505050505092915050565b60007fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806116f257507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061170257506117018261198f565b5b9050919050565b611715858585856119f9565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146117b4576000611753610d4e565b905060018451036117a357600061177460008661105b90919063ffffffff16565b9050600061178c60008661105b90919063ffffffff16565b905061179c838989858589611da1565b50506117b2565b6117b1818787878787611f55565b5b505b5050505050565b6117c582826108de565b6118085780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016117ff929190613514565b60405180910390fd5b5050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061189a577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816118905761188f61344f565b5b0492506040810190505b6d04ee2d6d415b85acef810000000083106118d7576d04ee2d6d415b85acef810000000083816118cd576118cc61344f565b5b0492506020810190505b662386f26fc10000831061190657662386f26fc1000083816118fc576118fb61344f565b5b0492506010810190505b6305f5e100831061192f576305f5e10083816119255761192461344f565b5b0492506008810190505b612710831061195457612710838161194a5761194961344f565b5b0492506004810190505b60648310611977576064838161196d5761196c61344f565b5b0492506002810190505b600a8310611986576001810190505b80915050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b8051825114611a4357815181516040517f5b059991000000000000000000000000000000000000000000000000000000008152600401611a3a929190612d60565b60405180910390fd5b6000611a4d610d4e565b905060005b8351811015611c5c576000611a70828661105b90919063ffffffff16565b90506000611a87838661105b90919063ffffffff16565b9050600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614611bb457600080600084815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611b5c57888183856040517f03dee4c5000000000000000000000000000000000000000000000000000000008152600401611b53949392919061353d565b60405180910390fd5b81810360008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614611c4f578060008084815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611c479190613400565b925050819055505b5050806001019050611a52565b506001835103611d1b576000611c7c60008561105b90919063ffffffff16565b90506000611c9460008561105b90919063ffffffff16565b90508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051611d0c929190612d60565b60405180910390a45050611d9a565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051611d91929190613582565b60405180910390a45b5050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b1115611f4d578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401611e0295949392919061360e565b6020604051808303816000875af1925050508015611e3e57506040513d601f19601f82011682018060405250810190611e3b919061367d565b60015b611ec2573d8060008114611e6e576040519150601f19603f3d011682016040523d82523d6000602084013e611e73565b606091505b506000815103611eba57846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611eb19190613434565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611f4b57846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611f429190613434565b60405180910390fd5b505b505050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b1115612101578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401611fb69594939291906136aa565b6020604051808303816000875af1925050508015611ff257506040513d601f19601f82011682018060405250810190611fef919061367d565b60015b612076573d8060008114612022576040519150601f19603f3d011682016040523d82523d6000602084013e612027565b606091505b50600081510361206e57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016120659190613434565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146120ff57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016120f69190613434565b60405180910390fd5b505b505050505050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006121488261211d565b9050919050565b6121588161213d565b811461216357600080fd5b50565b6000813590506121758161214f565b92915050565b6000819050919050565b61218e8161217b565b811461219957600080fd5b50565b6000813590506121ab81612185565b92915050565b600080604083850312156121c8576121c7612113565b5b60006121d685828601612166565b92505060206121e78582860161219c565b9150509250929050565b6121fa8161217b565b82525050565b600060208201905061221560008301846121f1565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6122508161221b565b811461225b57600080fd5b50565b60008135905061226d81612247565b92915050565b60006020828403121561228957612288612113565b5b60006122978482850161225e565b91505092915050565b60008115159050919050565b6122b5816122a0565b82525050565b60006020820190506122d060008301846122ac565b92915050565b6000602082840312156122ec576122eb612113565b5b60006122fa8482850161219c565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561233d578082015181840152602081019050612322565b60008484015250505050565b6000601f19601f8301169050919050565b600061236582612303565b61236f818561230e565b935061237f81856020860161231f565b61238881612349565b840191505092915050565b600060208201905081810360008301526123ad818461235a565b905092915050565b6000819050919050565b6123c8816123b5565b81146123d357600080fd5b50565b6000813590506123e5816123bf565b92915050565b60006020828403121561240157612400612113565b5b600061240f848285016123d6565b91505092915050565b612421816123b5565b82525050565b600060208201905061243c6000830184612418565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61247f82612349565b810181811067ffffffffffffffff8211171561249e5761249d612447565b5b80604052505050565b60006124b1612109565b90506124bd8282612476565b919050565b600067ffffffffffffffff8211156124dd576124dc612447565b5b602082029050602081019050919050565b600080fd5b6000612506612501846124c2565b6124a7565b90508083825260208201905060208402830185811115612529576125286124ee565b5b835b81811015612552578061253e888261219c565b84526020840193505060208101905061252b565b5050509392505050565b600082601f83011261257157612570612442565b5b81356125818482602086016124f3565b91505092915050565b600080fd5b600067ffffffffffffffff8211156125aa576125a9612447565b5b6125b382612349565b9050602081019050919050565b82818337600083830152505050565b60006125e26125dd8461258f565b6124a7565b9050828152602081018484840111156125fe576125fd61258a565b5b6126098482856125c0565b509392505050565b600082601f83011261262657612625612442565b5b81356126368482602086016125cf565b91505092915050565b600080600080600060a0868803121561265b5761265a612113565b5b600061266988828901612166565b955050602061267a88828901612166565b945050604086013567ffffffffffffffff81111561269b5761269a612118565b5b6126a78882890161255c565b935050606086013567ffffffffffffffff8111156126c8576126c7612118565b5b6126d48882890161255c565b925050608086013567ffffffffffffffff8111156126f5576126f4612118565b5b61270188828901612611565b9150509295509295909350565b6000806040838503121561272557612724612113565b5b6000612733858286016123d6565b925050602061274485828601612166565b9150509250929050565b600067ffffffffffffffff82111561276957612768612447565b5b602082029050602081019050919050565b600061278d6127888461274e565b6124a7565b905080838252602082019050602084028301858111156127b0576127af6124ee565b5b835b818110156127d957806127c58882612166565b8452602084019350506020810190506127b2565b5050509392505050565b600082601f8301126127f8576127f7612442565b5b813561280884826020860161277a565b91505092915050565b6000806040838503121561282857612827612113565b5b600083013567ffffffffffffffff81111561284657612845612118565b5b612852858286016127e3565b925050602083013567ffffffffffffffff81111561287357612872612118565b5b61287f8582860161255c565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6128be8161217b565b82525050565b60006128d083836128b5565b60208301905092915050565b6000602082019050919050565b60006128f482612889565b6128fe8185612894565b9350612909836128a5565b8060005b8381101561293a57815161292188826128c4565b975061292c836128dc565b92505060018101905061290d565b5085935050505092915050565b6000602082019050818103600083015261296181846128e9565b905092915050565b6000806000806080858703121561298357612982612113565b5b600061299187828801612166565b94505060206129a28782880161219c565b93505060406129b38782880161219c565b925050606085013567ffffffffffffffff8111156129d4576129d3612118565b5b6129e087828801612611565b91505092959194509250565b600067ffffffffffffffff821115612a0757612a06612447565b5b612a1082612349565b9050602081019050919050565b6000612a30612a2b846129ec565b6124a7565b905082815260208101848484011115612a4c57612a4b61258a565b5b612a578482856125c0565b509392505050565b600082601f830112612a7457612a73612442565b5b8135612a84848260208601612a1d565b91505092915050565b60008060408385031215612aa457612aa3612113565b5b6000612ab28582860161219c565b925050602083013567ffffffffffffffff811115612ad357612ad2612118565b5b612adf85828601612a5f565b9150509250929050565b600060208284031215612aff57612afe612113565b5b600082013567ffffffffffffffff811115612b1d57612b1c612118565b5b612b2984828501612a5f565b91505092915050565b612b3b816122a0565b8114612b4657600080fd5b50565b600081359050612b5881612b32565b92915050565b60008060408385031215612b7557612b74612113565b5b6000612b8385828601612166565b9250506020612b9485828601612b49565b9150509250929050565b60008060408385031215612bb557612bb4612113565b5b6000612bc385828601612166565b9250506020612bd485828601612166565b9150509250929050565b600080600080600060a08688031215612bfa57612bf9612113565b5b6000612c0888828901612166565b9550506020612c1988828901612166565b9450506040612c2a8882890161219c565b9350506060612c3b8882890161219c565b925050608086013567ffffffffffffffff811115612c5c57612c5b612118565b5b612c6888828901612611565b9150509295509295909350565b600080600060608486031215612c8e57612c8d612113565b5b6000612c9c86828701612166565b9350506020612cad8682870161219c565b9250506040612cbe8682870161219c565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612d0f57607f821691505b602082108103612d2257612d21612cc8565b5b50919050565b612d318161213d565b82525050565b6000604082019050612d4c6000830185612d28565b612d596020830184612d28565b9392505050565b6000604082019050612d7560008301856121f1565b612d8260208301846121f1565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000604082019050612dcd6000830185612d28565b612dda60208301846121f1565b9392505050565b6000819050919050565b6000819050919050565b6000612e10612e0b612e0684612de1565b612deb565b61217b565b9050919050565b612e2081612df5565b82525050565b6000602082019050612e3b6000830184612e17565b92915050565b7f4163636f756e742063616e6e6f7420626520656d707479000000000000000000600082015250565b6000612e7760178361230e565b9150612e8282612e41565b602082019050919050565b60006020820190508181036000830152612ea681612e6a565b9050919050565b600081905092915050565b60008190508160005260206000209050919050565b60008154612eda81612cf7565b612ee48186612ead565b94506001821660008114612eff5760018114612f1457612f47565b60ff1983168652811515820286019350612f47565b612f1d85612eb8565b60005b83811015612f3f57815481890152600182019150602081019050612f20565b838801955050505b50505092915050565b7f2f6170692f76312f6e66742f0000000000000000000000000000000000000000600082015250565b6000612f86600c83612ead565b9150612f9182612f50565b600c82019050919050565b6000612fa782612303565b612fb18185612ead565b9350612fc181856020860161231f565b80840191505092915050565b7f2f00000000000000000000000000000000000000000000000000000000000000600082015250565b6000613003600183612ead565b915061300e82612fcd565b600182019050919050565b7f2f72657075746174696f6e2d73636f7265000000000000000000000000000000600082015250565b600061304f601183612ead565b915061305a82613019565b601182019050919050565b60006130718286612ecd565b915061307c82612f79565b91506130888285612f9c565b915061309382612ff6565b915061309f8284612f9c565b91506130aa82613042565b9150819050949350505050565b600081546130c481612cf7565b6130ce818661230e565b945060018216600081146130e957600181146130ff57613132565b60ff198316865281151560200286019350613132565b61310885612eb8565b60005b8381101561312a5781548189015260018201915060208101905061310b565b808801955050505b50505092915050565b6000604082019050818103600083015261315581856130b7565b90508181036020830152613169818461235a565b90509392505050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026131bf7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82613182565b6131c98683613182565b95508019841693508086168417925050509392505050565b60006131fc6131f76131f28461217b565b612deb565b61217b565b9050919050565b6000819050919050565b613216836131e1565b61322a61322282613203565b84845461318f565b825550505050565b600090565b61323f613232565b61324a81848461320d565b505050565b5b8181101561326e57613263600082613237565b600181019050613250565b5050565b601f8211156132b35761328481612eb8565b61328d84613172565b8101602085101561329c578190505b6132b06132a885613172565b83018261324f565b50505b505050565b600082821c905092915050565b60006132d6600019846008026132b8565b1980831691505092915050565b60006132ef83836132c5565b9150826002028217905092915050565b61330882612303565b67ffffffffffffffff81111561332157613320612447565b5b61332b8254612cf7565b613336828285613272565b600060209050601f8311600181146133695760008415613357578287015190505b61336185826132e3565b8655506133c9565b601f19841661337786612eb8565b60005b8281101561339f5784890151825560018201915060208501945060208101905061337a565b868310156133bc57848901516133b8601f8916826132c5565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061340b8261217b565b91506134168361217b565b925082820190508082111561342e5761342d6133d1565b5b92915050565b60006020820190506134496000830184612d28565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f5552492063616e6e6f7420626520656d70747900000000000000000000000000600082015250565b60006134b460138361230e565b91506134bf8261347e565b602082019050919050565b600060208201905081810360008301526134e3816134a7565b9050919050565b6134f38161221b565b82525050565b600060208201905061350e60008301846134ea565b92915050565b60006040820190506135296000830185612d28565b6135366020830184612418565b9392505050565b60006080820190506135526000830187612d28565b61355f60208301866121f1565b61356c60408301856121f1565b61357960608301846121f1565b95945050505050565b6000604082019050818103600083015261359c81856128e9565b905081810360208301526135b081846128e9565b90509392505050565b600081519050919050565b600082825260208201905092915050565b60006135e0826135b9565b6135ea81856135c4565b93506135fa81856020860161231f565b61360381612349565b840191505092915050565b600060a0820190506136236000830188612d28565b6136306020830187612d28565b61363d60408301866121f1565b61364a60608301856121f1565b818103608083015261365c81846135d5565b90509695505050505050565b60008151905061367781612247565b92915050565b60006020828403121561369357613692612113565b5b60006136a184828501613668565b91505092915050565b600060a0820190506136bf6000830188612d28565b6136cc6020830187612d28565b81810360408301526136de81866128e9565b905081810360608301526136f281856128e9565b9050818103608083015261370681846135d5565b9050969550505050505056fea2646970667358221220240e9a7daab5d9eba2793e75f4bbf0e9a74f133868ac14d5e9561767bb722e8264736f6c634300081a003300000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000016687474703a2f2f3132372e302e302e313a383534352f00000000000000000000","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"EngagementModule#Engagement","networkInteractionId":1,"nonce":20,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"20000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x08a9f1537c6fc9fb8ed39f45bdfae9a74989229a034808f97e4723a7e8d0e1df"},"type":"TRANSACTION_SEND"} +{"futureId":"EngagementModule#Engagement","hash":"0x08a9f1537c6fc9fb8ed39f45bdfae9a74989229a034808f97e4723a7e8d0e1df","networkInteractionId":1,"receipt":{"blockHash":"0x070cf18c9e17685fde730e5c8e7377b1e7722ea004d1b9aa32d27f0cfb25da19","blockNumber":280893681,"contractAddress":"0x89aDc2E7561914884c47a2F5447ac5052e6770b1","logs":[{"address":"0x89aDc2E7561914884c47a2F5447ac5052e6770b1","data":"0x","logIndex":25,"topics":["0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000548c887a24077e13f17a1ce21b3a24b9c06e3d8d","0x000000000000000000000000548c887a24077e13f17a1ce21b3a24b9c06e3d8d"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"EngagementModule#Engagement","result":{"address":"0x89aDc2E7561914884c47a2F5447ac5052e6770b1","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} \ No newline at end of file From 55eb5a66ff0dd2309be1cc8af5f3071bd03c5e3f Mon Sep 17 00:00:00 2001 From: Behzad Rabiei Date: Tue, 3 Dec 2024 13:47:50 +0200 Subject: [PATCH 2/2] doc: update readme --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 10e8a62..3eb56b7 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,7 @@ This project is built with Solidity, Hardhat, and OpenZeppelin libraries, ensuri | ---------------------------------------------------------------------------------------- | ----------------- | | N/A | Sepolia | | https://sepolia-optimism.etherscan.io/address/0xd826769f1844cc83a16923d2aef8a479e62da732 | Optimisim Sepolia | +| https://arbiscan.io/address/0x89aDc2E7561914884c47a2F5447ac5052e6770b1#code | Arbitrum One | ---